广技师C语言复习题4 练习(循环结构)(有答案)
C语言程序设计习题集第4章 循环结构(答案)

第4章循环结构一、选择题1、有以下程序段int k=0;while(k=1)k++;while 循环执行的次数是( A)A) 无限次B) 有语法错,不能执行C) 一次也不执行D) 执行1次2、t为int类型,进入下面的循环之前,t的值为0while( t=1){ …… }则以下叙述中正确的是( B)A) 循环控制表达式的值为0B) 循环控制表达式的值为1C) 循环控制表达式不合法D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是(B )A) m==0 B) m!=0 C) m==1 D) m!=14、有以下程序,程序运行后的输出结果是(C )。
main(){int i=1,sum=0;while(i<=4){sum=sum+i;i=i+1;}printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。
main(){ int i=1,sum=0;while(i<=4)sum=sum+i;i=i+1;printf(“%d\n”,sum);}A)4 B)5 C)10 D)死循环6、有如下程序main(){int n=9;while(n>6){n--;printf(“%d”,n);}}该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是( B )main(){ int num= 0;while(num<=2){ num++; printf(“%d\n”,num);}}A) 1 B) 1 C)1 D) l2 2 23 348、有以下程序,若运行时输入3.6 2.4<回车>,则输出的结果是( B)。
main(){float x,y,z;scanf(“%f%f”,&x,&y);z=x/y;while(1){if(fabs(z)>1.0){x=y;y=z;z=x/y;}elsebreak;}printf(“%f\n”,y);}A)1.500000 B)1.600000 C)2.000000 D)2.4000009、执行以下程序段时x=-1;do{ x=x*x; }while(! x);则下面描述正确的是(A )A) 循环体将执行一次B) 循环体将执行两次C) 循环体将执行无限次D) 系统将提示有语法错误10、有以下程序段其输出结果是(C )int x=3;do{ printf("%d",x-=2); }while (!(--x));A) 1 B) 3 0 C) 1 -2D) 死循环11、有如下程序main(){int x=23;do{printf(“%d”,x);x--;}while(!x);}该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容D) 陷入死循环12、有以下程序段int n=0,p;do{scanf(“%d”,&p);n++;}while(p!=12345 &&n<3);此处do—while循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于12345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于313、以下不构成无限循环的语句或语句组是(A)A) n=0;do {++n;}while(n<0);B) n=0;while(1){n++;}C) n=10;while(n);{n--;}D) for(n=0,i=1; ;i++)n+=i;14、若i为整型变量,则以下循环执行的次数是(B)for(i=2;i= =0;) printf(“%d”,i--);A)无限次B)0次C)1次D)2次15、执行语句for(i=1;i++<4;)后,变量i的值是(C)A) 3 B) 4 C) 5 D) 不定16、有以下程序main(){int y=9 ;for( ; y>0 ; y--)if(y%3==0 ) printf("%d" , --y) ;}程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定D)0main(){ int i , sum;for(i=1;i<6;i++) sum+=i;printf(“%d\n”,sum);}18、有如下程序{ int i,sum=0;for(i=1;i<=3;sum++) sum+=i;printf(“%d\n”,sum);}该程序的执行结果是(C)A) 6 B) 3 C) 死循环D) 019、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。
C语言循环结构复习题

循环结构程序设计复习题一.选择题1.以下while循环中,循环体执行的次数是:()k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次2.有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=0;while (!x!=0) x++;a) 退出while循环后,x的值为0b) 退出while循环后,x的值为1c) while的控制表达式是非法的d) while循环执行无限次3. 有以下程序段,其中n为整型变量,执行后输出结果是:()n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 04. 有以下程序段,其中t为整型变量,以下选项中叙述正确的是:()t=1;while (-1){ t--;if(t) break;}a) 循环一次也不执行b) 循环执行一次c) 循环控制表达式(-1)不合法d) 循环执行2次5. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:()x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-16. 有以下程序段,其中x,y为整型变量,程序输出结果是:()for(x=0,y=0;(x<=1)&&(y=1);x++,y--) ;printf(“x=%d,y=%d”,x,y);a) x=2,y=0 b) x=1,y=0x=0,y=0d) x=1,y=1 c)解析:在开始时 x=0,y=0;进入循环判断(x<=1)&&(y= 1) 条件成立,同时把1赋给y,此时x=0,y=1;然后执行 x++,y--,执行之后x=1,y=0;再进入循环判断(x<=1)&&(y= 1),条件成立,同时同时把1赋给y,此时x=1,y=1; 然后执行 x++,y--,执行之后x=2,y=0;再进入循环判断(x<=1)&&(y= 1),条件不成立,跳出循环输出x=2,y=0 。
广技师C语言复习题4. 练习(循环结构)(有答案)

一、选择题1. 设有如下程序段,则下面描述正确的是int k=10;while (k=0) k=k-1;A.while循环执行10次B.循环是无限循环C.循环体语句一次也不执行D.循环体语句执行一次2. 下面程序段的运行结果是a=1; b=2; c=2;while(a<b<c) { t=a; a=b; b=t; c--;}pirntf(“%d, %d, %d”,a,b,c);A.1,2,0 B.2,1,0 C.1,2,1 D.2,1,1 3. 下面程序段的运行结果是。
int n=0;while(n<=2) n++; printf(“%d”,n);A.2 B.3 C.4 D.有语法错误4. 设有如下程序段,则描述正确的是。
t=0;while (printf(“*”)){t++; if(t<3) break;}A.其中循环控制表达式与0等价B.其中循环控制表达式与‘0’等价C.其中循环控制表达式是不合法的D.以上说法都不对5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对等数时结束循环,请选择填空。
#include<stdio.h>int main(){int a,b,t;scanf("%d%d",&a,&b);while( ){if(a>b) {t=a;a=b;b=t;}printf("%d,%d\n",a,b);scanf("%d%d",&a,&b);}return 0;}A.!a=b B.a!=b C.a==b D.a=b8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入0结束循环,请选择填空。
#include<stdio.h>int main(){int a,max=0;scanf("%d",&a);while( ){if(max<a) max=a;scanf("%d",&a);}printf("%d\n",max);return 0;}A.!a=0 B.a!=0 C.a= =0 D.a=09. 下面程序的运行结果是。
C循环结构程序设计试题以及参考答案

C循环结构程序设计试题以及参考答案C循环结构程序设计试题以及参考答案实验内容:1.编程:输出200以内所有能被7整除的数。
#includemain(){int i;for(i=1;i<200;i++)if(i%7==0)printf("%4d",i);}2. 编程:求出1 ~ 1000之间能被13整除的最⼤的那个数。
#includemain(){int i,max=0;for(i=1;i<1000;i++)if(i%13==0){i>=max;max=i;}printf("max=%d",max);}3.编程:找出若⼲个⾮零数中的最⼩值m以及它们的平均值a。
要求:若⼲个数由键盘输⼊,每次输⼊⼀个赋给变量x,x为零时,结束输⼊。
#includemain(){int n,i,b,min,s=0;float a;printf("输⼊的数据的个数n=");scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&b);if(i==1)min=b;if(min>b)min=b;s=s+b;}a=s*1.0/n;printf("min=%d\n a=%f",min,a); }4. 编程:求两个正整数m、n之间所有奇数之和x与偶数之和y。
要求:(1)m、n的值由键盘输⼊。
(2)输⼊时,允许⽤户随意先输⼊⼤的或⼩的整数。
#include main(){int m,n,i,x1=0,x2=0;printf("input m,n(mscanf("%d,%d",&m,&n);for(i=m;i<=n;i++){if (i%2==1)x1+=i;elsex2+=i;}printf("x1=%d,x2=%d\n",x1,x2);}5. 编程:计算π的近似值,π的计算公式为:要求:(1)n值由键盘输⼊。
第四章循环结构习题及课后题答案

习题答案及教程答案习题答案第四章循环结构选择题:1.答案:B①N的值为10,n>7为真,执行循环体,n的值减1后为9,输出n的值9②N的值为9,n>7为真,执行循环体,n的值减1后为8,输出n的值8③N的值为8,n>7为真,执行循环体,n的值减1后为7,输出n的值7④N的值为7,n>7为假,结束循环。
2.答案:Ak的值为5,进入循环,(--k)表达式的值为4(真),同时k的值改变为4,输出表达式k-=3的值1,同时k的值为1。
k为1,表达式(—k)的值为0, 结束循环。
3.答案:A1.X=0,y=5,z=3,(z>0&&x<4)值为真,进入循环体,y值为4,z值为2, x值为12.(z>0&&x<4)值为真,进入循环体, y值为3,z值为1, x值为23.(z>0&&x<4)值为真,进入循环体, y值为2,z值为0, x值为34.(z>0&&x<4)值为假,结束循环。
5.输出x,y,z的值3,2,04.答案:D分析:当K的值为3时,只执行case 3后面的语句n+=k,n的值为3;当k的值为2时,先执行case 2后面的语句,但没有break,所以不会退出,继续执行case 3后面的语句n+=k,n的值为5;当k的值为1时,先执行case 1后面的语句n+=k,n的值为6,先执行case 2后面的语句(没有),继续执行case 3后面的语句n+=k,n的值为7。
输出n的值7。
5.答案:B在循环体中有“s+=1;”s的初始值为0,要让s的值等于2必须是循环体执行两遍。
当循环提执行两遍后a的值等于-3,所以在n=-3的时候循环体执行两遍后条件表达试(a!=0)为假,会退出循环。
6.答案:A分析:t值为1,s的值为0。
从键盘中输入-3后,n的值为-3.先执行循环体。
执行s=s+t;s的值为1,执行t=t-2;t的值为-1.再判断表达式的值t!=n为真,再次执行循环体。
C 循环结构23道题[含答案解析]
![C 循环结构23道题[含答案解析]](https://img.taocdn.com/s3/m/682b712acc7931b765ce1588.png)
题目、描述、输入、输出、输入样例、输出样例、测试输入、测试输出循环01:最大数写一个程序,可以输入一批正数,输入0时结束循环,并且输出最大的正数。
输入39 28 5 63 18 27 0输出63测试:输入153 26 963 28 75 90 156 0输出963#include<iostream>using namespace std;int main(){int i,max=0;cin>>i;while(i!=0){if(i>max)max=i;cin>>i;}cout<<max<<endl;return 0;}循环02:素数输入正数n,判断n是否为素数。
若为素数则输出1,否则输出0。
(提示:素数是指只可以被1和其本身整除的正数(1除外))输入10输出0输入7输出1测试:输入9输出0#include<iostream>using namespace std;int main(){int n,i,d;cin>>n;for(i=2;i<n;i++){d=n%i;if(n%i==0)break;}if(n==i)cout<<"1"<<endl;elsecout<<"0"<<endl;return 0;}循环03:数列求和输入一个正整数n,计算前n项之和:1+1/4+1/7+1/10..+1/(3*n-2)。
输入5输出1.56978输入4输出1.49286#include<iostream>using namespace std;int main(){int i,n;double s=0;cin>>n;for(i=1;i<=n;i++)s+=1.0/(3*i-2);cout<<s<<endl;return 0;}循环04:西瓜卖几天n个西瓜,第一天卖一半多两个,以后每天卖剩下的一半多两个,问几天以后能卖完?说明:当西瓜个数为奇数时,卖一半为一半的整数,如当西瓜个数为5时,卖一半为卖2个。
C语言循环结构练习题带答案.doc

第 5 章循环结构程序设计练习题1.单项选择题( 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__。
while (a){if (b) continue;c;}A.while (a)B.while (c){ if (!b) c; }{ if (!b) break; c; }C. while (c)D. while (a){ if (b) c; }{ if (b) break; c; }( 8)以下程序的输出结果是_B___。
C语言循环结构测习题带答案

C语言循环结构测习题带答案Prepared on 21 November 2021第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。
intx=-1;do{x=x*x;}while(!x);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、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1. 设有如下程序段,则下面描述正确的是
int k=10;
while (k=0) k=k-1;
A.while 循环执行 10 次
B.循环是无限循环
C.循环体语句一次也不执行
D.循环体语句执行一次
2. 下面程序段的运行结果是
a=1; b=2; c=2;
while(a<b<c) { t=a; a=b; b=t; c--;}
}
A.z=x
B.z=1
C.z=0
D.z=y
A.i/result==1 B.i=result
C.i!=result
D.i==result
25. 以下正确的描述是
。
A.continue 语句的作用是结束整个循环的执行
B.只能在循环体内和 switch 语句体内使用 break 语句
C.在循坏体内使用 break 语句或 continue 语句的作用相同
pirntf(“%d, %d, %d”,a,b,c);
A.1,2,0
B.2,1,0
C.1,2,1
D.2,1,1
3. 下面程序段的运行结果是
。
int n=0;
while(n<=2) n++; printf(“%d”,n);
A.2 B.3 C.4
D.有语法错误
4. 设有如下程序段,则描述正确的是
。
t=0;
B.for( ; ; x++=i);
C.while(1) {x++;}
D.for(i=10; ; i--) sum+=i;
24. 下面程序的功能是求算式 xyz+yzz=532 中的 x,y,z 的值(其中 xyz 和 yzz 分别
表示一个三位数),请选择填空。
#include <stdio.h>
int main( )
do
{ sum=sum+
;
n=
;
}while(n);
printf(“sum=%d”,sum);
return 0;
}
A.n%10
B.(n%10)*(n%10)
C.n/10
D.(n/10)*(n/10)
A.n/1000 B.n/100 C.n/10 D.n%10
17. 下面程序的运行结果是
。
#include<stdio.h>
int main()
{int a,b,t;
scanf("%d%d",&a,&b);
while(
)
{if(a>b) {t=a;a=b;b=t;}
printf("%d,%d\n",a,b);
scanf("%d%d",&a,&b);
}
return 0;
}
A.!a=b
B.a!=b C.a==b D.a=b
11. 以下程序的功能是计算一个整数的各位数字之和,请选择填空。
#include<stdio.h>
int main()
{int n,m=0;
scanf("%d",&n);
for( ; n!=0; )
{m
;
n/=10;
}
printf("%d\n",m);
return 0;
}
A.+=n%10
B.=n%10
while (printf(“*”))
{t++; if(t<3) break;}
A.其中循环控制表达式与 0 等价
B.其中循环控制表达式与‘0’等价
C.其中循环控制表达式是不合法的
D.以上说法都不对
5. 下面程序的功能是将从键盘输入的一对数,由小到大排序输出,当输入一对
等数时结束循环,请选择填空。
#include<stdio.h>
{ int x,y,z,I,result=532;
for(x=1;x<10;x++)
for(y=1;y<10;y++)
for(
; z<10; z++)
{ i=100*x+10*y+z+100*y+10*z+z;
if (
)
printf(“x=%d,y=%d,z=%d\n”,x,y,z);
}
return 0;
C.+=n
D.=n/10
13. 以下程序段
。
x=-1;
do
{ x=x*x;}while(!x);
A.是死循环 B.循环执行二次 C.循环执行一次 D.有语法错误
14. 以下描述中正确的是
。
A.while、do-while、for 循环中的循环体语句都至少被执行一次
B.do-while 循环中,while(表达式)后面的分号可以省略
int main()
{ int y=10;
do
{y--;}while(--y);
printf("%d\n",y--);
return 0;
}
A.-1
B.1
C.8
D.0
18.下面有关 for 循环的正确描述是
。
A.for 循环只能用于循环次数已经确定的情况
B.for 循环是先执行循环体语句,后判断表达式
D.or(表达式 1;表达式 3;表达式 3)
20. 若 i 为整型变量,则以下循环执行次数是
。
for (i=2; i= =0; ) printf(“%d”,i--);
A.无限次
B.0 次
C.1 次
D.2 次
21. 以下不是无限循环的语句为
。
A.for(y=0, x=1; x>++y; x=i++) i=x;
8. 下面程序的功能是在输入的一系列正整数中求出最大者,输入 0 结束循环,
请选择填空。
#include<stdio.h>
int main()
{int a,max=0;
scanf("%d",&a);
while(
)
{if(max<a) max=a;
scanf("%d",&a);
}
printf("%d\n",max);
return 0;
}
A.!a=0
B.a!=0 C.a= =0 D.a=0
9. 下面程序的运行结果是
。
#include<stdio.h>
int main()
{int num=0;
while(num<=2)
{num++;
printf("%d",num);
}
return 0;
}
A.1
B.12
C.123
D.1234
C.for 循环中,不能用 break 语句跳出循环体
D.for 循环的循环体语句中,可以包含多条语句,但必须用花括号括起来
19. 对 for(表达式 1; ;表达式 3)可理解为
。
A.for(表达式 1;0;表达式 3)
B.for(表达式 1;1;表达式 3)
C.for(表达式 1;表达式 1;表达式 3)
C.while 循环体中,一定要有能使 while 后面表达式的值变为“假”的作
D.do-while 循环中,根据情况可以省略 while
15.下面程序的功能是计算正整数 2345 的各位数字的平方和,请填空。
#include <stdio.h>
int main( )
{ int n=2345,sum=0;