6 循环控制练习
第6章循环结构程序设计习题及答案

第6章循环结构程序设计6-1.比较while语句、do–while语句和for语句的异同。
答:(1)while语句、do-while语句用于条件循环,for语句用于计数循环。
(2)while语句、for语句是先判断循环条件,后执行循环体,如果循环条件一开始就不成立,则循环体一次也不被执行;而do-while语句是是先执行循环体,后判断循环条件,所以循环体至少被执行一次。
(3)知道循环的次数可选用for语句实现循环,不知道循环的次数可选用while语句或do-while语句实现循环.(4)一般而言,三种循环语句可等价实现.6-2 仔细阅读下面的程序,指出程序的运行结果.#include<stdio.h>void main(){ int i;for(i=0;++i;i<5){ if(i==3){printf("%d\n",++i);break;}printf("%d\n",++i);}}答:24思考:语句“for(“i=0;++i;i<5”)在编译时为何会给出语法警告错误?当将其改为“for(i=0;i<5;++i)”时,运行结果又将如何?6-3 仔细阅读下面的语的程序,指出程序的运行结果。
#include"stdio.h"void main(){ int i, a=0;for(i=1;i<=5;i++){do{i++;a++;} while(i<3);}i++;printf("a=%d,i=%d",a,i);}答:a=3,i=7思考:在for循环中嵌套着do-while循环,那么do-while循环中对i的修改会对for循环产生影响吗?6-4编写程序,用1000个单词”computer”填充屏幕,每行60个 .解:#include<stdio.h>void main(){ int i;for(i=1;i<=1000;i++){ printf("computer.");if(i%60==0)printf("\n");}}思考:在for循环中,”if(i%60==0)printf(“\n”);”语句的作用是什么?没有此语句将会是什么状况?6-5输入一行字符(以$结束),统计其中的数字字符、空格字符出现的次数。
(完整版)C语言循环结构练习题集带答案解析

第5章循环结构程序设计5.1 基本知识点while语句的使用格式和注意事项do-while语句的使用格式和注意事项for语句的使用格式和注意事项break和continue语句在循环语句中的应用循环结构的嵌套使用goto语句实现循环结构穷举法程序设计方法迭代程序设计方法5.2 练习题51. 单项选择题(1)语句while (!e);中的条件!e等价于 A 。
A. e==0B. e!=1C. e!=0D. ~e(2)下面有关for循环的正确描述是 D 。
A. for循环只能用于循环次数已经确定的情况B. for循环是先执行循环体语句,后判定表达式C. 在for循环中,不能用break语句跳出循环体D. for循环体语句中,可以包含多条语句,但要用花括号括起来(3)C语言中 D 。
A. 不能使用do-while语句构成的循环B. do-while语句构成的循环必须用break语句才能退出C. do-while语句构成的循环,当while语句中的表达式值为非零时结束循环D. do-while语句构成的循环,当while语句中的表达式值为零时结束循环(4)C语言中while和do-while循环的主要区别是 A 。
A. do-while的循环体至少无条件执行一次B. while的循环控制条件比do-while的循环控制条件严格C. do-while允许从外部转到循环体内D. do-while的循环体不能是复合语句(5)以下程序段 C 。
int x=-1;do{x=x*x;}while (!x);A. 是死循环B. 循环执行二次C. 循环执行一次D. 有语法错误(6)下列语句段中不是死循环的是__C__。
A. i=100;while (1){i=i%100+1;if (i==20) break;}B. for (i=1;;i++)sum=sum+1;C. k=0;do{++k;} while (k<=0);D. s=3379;while (s++%2+3%2)s++;(7)与以下程序段等价的是__A__。
操作系统第六章练习题

操作系统第六章练习题一、选择题1. 在操作系统中,下列关于进程状态的描述,错误的是()。
A. 运行态是指进程正在占用CPUB. 阻塞态是指进程因等待某事件而暂时停止运行C. 就绪态是指进程已经具备运行条件,等待CPU调度D. 空闲态是指进程已经执行完毕,等待被系统回收2. 在操作系统中,下列关于进程调度算法的描述,正确的是()。
A. 先来先服务(FCFS)调度算法可能导致饥饿现象B. 短作业优先(SJF)调度算法是非抢占式的C. 优先级调度算法中,优先级高的进程一定能立即获得CPUD. 时间片轮转调度算法适用于分时系统3. 在操作系统中,下列关于进程同步与互斥的描述,错误的是()。
A. 临界区是指进程中访问共享资源的代码段B. 信号量是一种用于实现进程同步与互斥的机制C. Peterson算法可以保证两个进程互斥进入临界区D. 生产者消费者问题可以通过信号量机制解决二、填空题1. 在操作系统中,进程的五大状态包括:____、____、____、____和____。
2. 在进程同步与互斥中,信号量的值表示了____资源的使用情况。
3. 在操作系统中,死锁产生的四个必要条件是:____、____、____和____。
三、简答题1. 请简述进程与线程的区别。
2. 请说明进程调度的主要目标。
3. 请阐述银行家算法的基本思想及其应用场景。
四、编程题1. 编写一个程序,实现进程的创建、撤销和切换。
2. 编写一个程序,使用信号量机制解决生产者消费者问题。
3. 编写一个程序,模拟进程的优先级调度算法。
五、案例分析题进程最大需求量已分配资源量P1 R1=3, R2=2 R1=1, R2=0P2 R2=2, R3=2 R2=1, R3=1P3 R3=2, R4=2 R3=1, R4=0P4 R1=4, R4=3 R1=2, R4=2(1)系统当前可用资源为:R1=1, R2=1, R3=1, R4=1(2)系统当前可用资源为:R1=0, R2=1, R3=1, R4=12. 假设有一个系统采用时间片轮转调度算法,时间片长度为50ms。
第6章 循环结构练习题

循环结构练习题一、选择题。
2、对于DO UNTIL ……LOOP循环,正确的是()。
A 如果循环条上为常数0,则一次循环也不执行B 如果循环条件为常数0,则至少执行一次循环C 如果循环条件是不为0的常数,则至少执行一次循环D 无论循环条件是否为TRUE,都至少执行一次循环3、要在DO ……LOOP循环中退出循环,应使用()语句。
A EXITB EXIT DOC CONTINUED STOP LOOP4、以下循环结构中,VB不支持的是()。
A FOR……NEXTB FOR EACH……NEXTC DO…..LOOPD DO……ENDDO5、要在FOR……NEXT循环中退出循环,应使用()语句。
A EXITB EXIT FORC CONTINUED STOP LOOP6、下列关于FOR循环的说法中,正确的是()。
A 循环变量、初值、终值和步长都必须是数值型B STEP后面的值必须为正数C 初值必须小于终值D 初值必须大于终值7、下列关于DO……LOOP语句的叙述中,不正确的是()。
A DO……LOOP语句采用逻辑表达式来控制循环体执行的次数。
B DO WHILE……LOOP语句与DO UNTIL……LOOP语句中WHILE与UNTIL后面的表达式值为TRUE或非0时,循环继续。
C DO……LOOP WHILE与DO……LOOP UNTIL 语句都至少执行一次循环D DO WHILE…..LOOOP语句与DO UNTIL……LOOP语句可能不执行循环8、下面的循环程序在执行时将()。
FOR I=1 TO 10 STEP 0K=K+2NEXT IA 形成无限循环B 仅循环一次C 语法错误D 一次也不循环9、对于EXIT FOR,叙述正确的是()。
A EXIT FOR语句可以退出任何类型的循环B 一个循环只能有一条EXIT FOR语句C EXIT FOR表示返回到FOR语句执行D 一个FOR循环可以有多条EXIT FOR语句10、对于FOR循环中的初值、终值、步长,下列说法中,正确的是()。
Python练习题与参考答案

Python练习题与参考答案一、单选题(共57题,每题1分,共57分)1.关于Python字符编码,以下选项中描述错误的是( )A、ord(x)和chr(x)是一对函数B、chr(x)将字符转换为Unicode编码C、Python可以处理任何字符编码文本D、Python默认采用Unicode字符编码正确答案:B2.关于return语句,以下选项中描述正确的是( )A、return只能返回一个值B、函数必须有一个return语句C、函数中最多只有一个return语句D、函数可以没有return语句正确答案:D3.( )函数是指直接或间接调用函数本身的函数A、递归B、闭包C、lambdaD、匿名正确答案:A4.关于 Python 语言的注释,以下选项中描述错误的是( )A、Python 语言有两种注释方式:单行注释和多行注释B、Python 语言的单行注释以#开头C、Python 语言的单行注释以单引号 ' 开头D、Python 语言的多行注释以 ' ' '(三个单引号)开头和结尾正确答案:C5.面代码的输出结果是( )>>> oct(–255)A、‘0d–377’B、‘0o–377’C、‘–0d377’D、‘–0o377’正确答案:D6.下面代码的输出结果是( ) >>>f=lambda x,y:y+x>>>f(10,10)A、10,10B、10C、20D、100正确答案:C7.Python 3.x 版本的保留字总数是( )A、27B、33C、16D、29正确答案:B8.关于Python语言的注释,以下选项中描述错误的是( )A、Python语言的单行注释以单引号 ' 开头B、Python语言有两种注释方式:单行注释和多行注释C、Python语言的多行注释以'''(三个单引号)开头和结尾D、Python语言的单行注释以#开头正确答案:A9.以下代码中calculate( )函数属于哪个分类def calculate(number):Result = 0 i = 1While i <= number: result = result + i i += 1Return resultResult = calculate(100) print('1~100的累积和为:', result)A、无参无返回值函数B、有参有返回值函数C、无参有返回值函数D、有参无返回值函数正确答案:B10.以下选项对应的方法可以辅助用于从CSV文件中解析二维数据的是( )A、count()B、strip()C、format()D、center()正确答案:B11.关于open()函数的文件名,以下选项中描述错误的是( )A、文件名可以是相对路径B、文件名不能是一个目录C、文件名对应的文件可以不存在,打开时不会报错D、文件名可以是绝对路径正确答案:C12.下面( )不是Python合法的标识符A、40XLB、selfC、int32D、name正确答案:A13.下列Python保留字中,不用于表示分支结构的是( )A、elifB、inC、ifD、else正确答案:B14.以下不属于Python语言保留字的是( )A、TrueB、passC、doD、while正确答案:C15.以下关于元组的描述正确的是A、元组中的元素允许被修改B、创建元组tup:tup = ();C、创建元组tup:tup = (50);D、元组中的元素允许被删除正确答案:B16.下列 for 语句中,在 in 后使用不正确的是( ) for var in ( ) : print(var)A、(1)B、range(0, 10, 5)C、[1, 2, 3, 4, 5]D、set(‘str’)正确答案:A17.假设a=9,b=2,那么下列运算中,错误的是()A、a+b的值是11B、a%b的值是1C、a**b的值是18D、a//b的值是4正确答案:C18.关于字符串下列说法错误的是( )A、字符串以\0标志字符串的结束B、在三引号字符串中可以包含换行回车等特殊字符C、既可以用单引号,也可以用双引号创建字符串D、字符应该视为长度为1的字符串正确答案:A19.以下的布尔代数运算错误的是( )A、(False and x) == FalseB、(True or x) == TrueC、not (a and b) == not (a) and not (b)D、(True or False) == True正确答案:C20.下列Python语句正确的是 ( )A、max = x > y ? x : yB、if (x > y) print xC、min = x if x < y: else yD、while True : pass正确答案:D21.( )模块是python标准库中最常用的模块之一。
实验六——循环结构程序练习总结

实验六——循环结构程序练习总结1、本次课学习到的知识点:(1)循环结构程序设计归纳出哪些操作需要反复执⾏——循环体这些操作在什么情况下重复执⾏——循环控制条件⼀旦确定循环体和循环条件,循环结构也就基本确定了。
再选⽤三种循环语句实现循环。
(2)如果实现给定了循环次数:⾸选for语句,因为它看起来最清晰。
如果循环次数不明确,需要通过其他条件控制循环,通常选⽤while语句或do-while语句。
if(循环次数已知)使⽤for语句else /*循环条件未知*/if(循环条件在进⼊循环是明确)使⽤while语句else /*循环条件需要在循环体中明确*/使⽤do-while语句(3)在例4-9中,当x最后变成0时,处理过程结束。
经过归纳得到:重复的步骤:1、x%10,分离⼀位2、x=x/10,为下⼀次分离做准备3、直到x==0,循环结束。
(4)在例4-11中,假定头两项分别⽤x1=1和x2=1表⽰,则新项x=x1+x2,然后更新x1和x2:x1=x2及x2=x,为计算下⼀个新项x做准备。
2. 实验过程中遇到的问题及解决⽅法:(1)在做⼀道实验时,有时候不太会分析题⽬的意思。
(2)复杂的实验,往往不知道从何开始。
(3)询问⽼师和同学,查阅书籍和资料来解决问题。
3. 实验⼼得体会及本章学习总结:这⼀节课主要是循环结构程序设计,熟练运⽤三种循环语句for语句,while语句,do-while语句进⾏程序编译并解决问题。
通过实验练习,已经感觉⾃⼰渐渐会使⽤这三种语句了。
不知不觉,已经过去了六周,上了六次课了,对于c语⾔已经不再陌⽣了,希望接下来的学习会越来越好。
本章学习总结:循环结构:循环语句主要有for语句,while语句,do-while语句。
其中for语句和while语句都是在循环前先判断条件,只有条件满⾜才会进⼊循环。
do-while语句先执⾏循环体,后判断循环条件。
事先给定循环次数⾸选for语句,通过其他条件控制循环,考虑while 语句和do-while语句。
[计算机软件及应用]计算机基础2C语言第6章循环结构
![[计算机软件及应用]计算机基础2C语言第6章循环结构](https://img.taocdn.com/s3/m/f45143d1bcd126fff6050bd4.png)
2021/8/26
2
while语句
(1)一般格式 while(循环继续条件) { 循环体语句组;}
while语句的语义是:计算表达式的值,当值为真(非 0)时, 执行循环体语句。
2021/8/26
3
#include <stdio.h>
main()
{ int n=0; printf("input a string:\n"); while(getchar()!='\n') n++; printf("%d",n); }
重循环
2021/8/26
5
当输入a的值为5时,分析以下程序 的结果
main() {
int a,n=0; scanf(“%d”,&a); while(a=5)
printf("%d ",n++); }
2021/8/26
6
以下程序的输出结果是2 0。
#include <stdio.h> void main() {
char c; c=getchar( ); while((getchar())!='?')
putchar(++c); }
jhiu
2021/8/26
9
#include <stdio.h> void main() {
输入:2473<CR>(<CR>代表回车符), 程序的输出结果是
int c;
while((c=getchar())!='\n')
for(n=7;n<=100;n+=7)
C练习题(有答案)

1循环控制:2数组:3函数4宏定义5指针6文件1循环控制:(一)选择题1.设有程序段int k=10;while(k=0)k=k-1;这下面描述中正确的是_________.a)while循环执行10次 b)循环是无限循环c)循环体语句一次也不执行 d)循环体语句执行一次2.语句while(!E);中的表达式!E等价于________. a)E==0 b)E!=1 c)E!=0 d)E==1 3.下面程序段的运行结果是__________.int n=0;while(n++<=2);printf("%d",n);a)2 b)3 c)4 d)有语法错4.下面程序的运行结果是____.#include<stdio.h>main(){int num=0;while(num<=2){num++;printf("%d\n",num); } }a)1 b)1 c)1 d)12 2 23 345.以下程序段________.x=-1;do{x=x*x;}while(!x);a)是死循环 b)循环执行二次c)循环执行一次 d)有语法错误6.若有如下语句int x=3;do{printf(""%d\n",x-=2);}while(!(--x));则上面程序段______.a)输出的是1 b)输出的是1和-2 c)输出的是3和0 d)是死循环7.下面程序的运行结果是______.#include<stdio.h>main(){int y=10;do{y--;}while(--y);printf("%d\n",y--);}a)-1 b)1 c)8 d)08.若i为整型变量,则以下循环执行次数是_____.for(i=2;i==0;)printf("%d",i--);a)无限次b)0次 c)1次 d)2次9.执行语句for(i=1;i++<4; );后变量i的值是______.a)3 b)4 c)5 d)不定10.以下正确的描述是_______.a)continue语句的作用是结束整个循环的执行b)只能在循环体内和switch语句体内使用break语句c)在循环体内使用break语句或continue语句的作用相同d)从多层循环嵌套中退出时,只能使用goto语句(二)填空题1.下面程序段是从键盘输入的字符中统计字符的个数,用换行符结束循环。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6 循环控制
一、单项选择题
1、for(i=1;i<9;i+=1);该循环共执行了( )次。
A、 7
B、 8
C、 9
D、 10
2、int a=2;while(a=0) a--;该循环共执行了( )次。
A、 0
B、 1
C、 2
D、 3
3、执行完循环 for(i=1;i<100;i++);后,i 的值为( )。
A、 99
B、 100
C、 101
D、 102
4、以下 for语句中,书写错误的就是。
A、 for(i=1;i<5;i++)
B、 i=1;for(;i<5;i++)
C、 for(i=1;i<5;i++);
D、 for(i=1;i<5;) i++;
5、( )语句,在循环条件初次判断为假,还会执行一次循环体。
A、 for
B、 while
C、 do-while
D、以上都不就是
6、有以下程序段int i=5;do{ if(i%3==1)if(i%5==2){printf("*%d",i); break; } i++; }while(i!=0); 其运行结果就是( )
A、*2*6
B、 *7
C、*5
D、 *3*5
7、i、j已定义为 int 类型,则以下程序段中内循环体的执行次数就是( ) 。
for(i=5;i;i--) for(j=0;j<4;j++){…}
A、 20
B、 24
C、 25
D、 30
8、以下不构成无限循环的语句或语句组就是( )。
A、n=10; while(n);{n--;}
B、n=0; while(1){n++;}
C、n=0; do{++n;}while(n<=0);
D、for(n=0,i=1;;i++)n+=i;
9、有以下程序段int y=9; for(y>0;y--) if(y%3==0) printf("%d",--y);其运行结果就是( )。
A、 875421 B.963 C、852 D、 741
10、有以下程序段:int i,j;for(i=3;i>=1;i--){for(j=1;j<=2;j++) printf("%d",i+j);printf("\n");}
其运行结果就是( )。
A、2 3 4
B、4 3 2
C、2 3
D、4 5
3 4 5 5 4 3 3 4 3 4
4 5 2 3
二、判断题
( )1、do {……} while(0); 程序块至少会执行一次
( )2、语句for(i=0;i=10;i++) {……}; 至多循环10次
( )3、for( ; ; )表示无限循环。
( )4、下面的循环不能正常结束: for (s=0,i=1; i<=10; ) { s=s+i; i++; }
( )5、continue语句就是终止整个循环的执行。
( )6、对for(表达式1;;表达式3;)可理解为for(表达式1;1;表达式3;)。
( )7、下列程序段执行循环二次 x=-1; do {x=x*x;}while(!x);
( )8、下列程序段能计算s=10!的值i=1;s=1; do {s=s*i;i++;} while(i<=10);
( )9、下列程序段将输出3与0 , int x=3; do{printf(“%d\n”,x-=2);}while(!--x));
三、程序填空题
1、有1020个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天后卖完?
main( )
{ int day,x1,x2;
day=0; x1=1020;
while( )
{ x2= ; x1= ; day++; }
printf("day=%d\n",day);
}
2、输入若干个字符,分别统计数字字符的个数、英文字母的个数,当输入换行符时输出统计结果,运行结束。
#include <stdio、h>
void main( )
{ int s1=0,s2=0;
char ch;
while(( )!='\n')
{ if(ch>='0'&&ch<='9') s1++;
if(ch>='a'&&ch<='z' || ) s2++;
} printf(“%d,%d”,s1,s2);
}
3、下面程序的功能就是计算1-3+5-7+……-99+101的值,请填空。
#include <stdio、h>
main( )
{ int i=1,t=1,s=0;
for(i=1;i<=101; i=i+2 )
{ ; ;}
printf(“%d\n”,s);
}
四、阅读下列程序,写出程序运行的输出结果
1.void main( )
{ int y=9;
for( ;y>0; y--)
if(y%3==0) { printf("%d", --y); continue;}
}
程序运行后输出结果为
2、 main( )
{ int n1,n2;
scanf("%d",&n2);
while(n2!=0)
{ n1=n2%10; n2=n2/10; printf("%d",n1); }
}
程序运行后,如果从键盘上输入1298;则输出结果为
3、 main ( )
{int s,i;
for(s=0,i=1;i<3;i++,s+=i);
printf("%d\n",s);
}
程序运行后输出结果为
4、 #include <stdio、h>
void main( )
{ int s=1,t=1,a,n;
scanf("%d%d",&a,&n);
for(int i=1;i<n;i++)
{ t=t*10+1; s=s+t; }
s*=a; printf("SUM=%d\n",s);
}
程序运行后,如果从键盘上输入2,4;则输出结果为
五、程序改错
1、以下程序就是显示[200,300]所有能被7整除的数,每行显示5个数,此程序有 5处错。
main( )
{ int i,n=0; /*n用来记录每行已打印数的个数*/
while(i<300)
{ if(i%7==0) break;
printf("%5d",i);
n=n+1;
if(n=5)/*满5个换行*/
{ printf("\n"); n=0; }
}
}
2、以下程序就是求 1!+2!+3!+4!+5!+6!+7!的值,其中有 3 处错误。
main()
{ int i,s,t=0;
for(i=1;i<=7;i++)
{ s=0; t=t*i; s=s+t; }
printf("sum=d\n",s);
}
六、选做题
1、求序列2/1,3/2,5/3,8/5,13/8,21/13,的前20项之与。
2、请完成用一元人民币换成一分、两分、五分的所有兑换方案。