C语言程序设计习题集第4章循环结构答案.docx
- 文档编号:8688175
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:16
- 大小:18.66KB
C语言程序设计习题集第4章循环结构答案.docx
《C语言程序设计习题集第4章循环结构答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题集第4章循环结构答案.docx(16页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题集第4章循环结构答案
第4章循环结构
一、选择题
1、有以下程序段
intk=0;
while(k=1)k++;
while循环执行的次数是(A)
A)无限次B)有语法错,不能执行
C)一次也不执行D)执行1次
2、t为int类型,进入下面的循环之前,t的值为0
while(t=1)
{⋯⋯}
则以下叙述中正确的是(B)
A)循环控制表达式的值为0
B)循环控制表达式的值为1
C)循环控制表达式不合法
D)以上说法都不对
3、在C程序中,与while(m)中表达式m完全等价的是(B)
A)m==0B)m!
=0C)m==1D)m!
=1
4、有以下程序,程序运行后的输出结果是(C)。
main()
{inti=1,sum=0;
while(i<=4)
{
sum=sum+i;
i=i+1;
}
printf(“%n”d,sum);}
A)4B)5C)10D)死循环
5、有以下程序,程序运行后的输出结果是(D)。
main()
{inti=1,sum=0;
while(i<=4)
sum=sum+i;
i=i+1;
printf(“%n”d,sum);
}
A)4B)5C)10D)死循环
6、有如下程序
main(){
intn=9;
while(n>6){n--;printf(“%d”,n);}
}
该程序段的输出结果是(B)
A)987B)876C)8765D)9876
7、以下程序的输出结果是(B)
main()
{intnum=0;
while(num<=2)
{num++;printf(“%n”d,num);}
}
A)1B)1C)1D)l
222
33
4
8、有以下程序,若运行时输入3.62.4<回车>,则输出的结果是(B)。
main()
{floatx,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while
(1){
if(fabs(z)>1.0)
{
x=y;
y=z;
z=x/y;}
else
break;}
printf(“n%”f,y);}
A)1.500000B)1.600000C)2.000000D)2.400000
9、执行以下程序段时
x=-1;
do
{x=x*x;}
while(!
x);
则下面描述正确的是(A)
A)循环体将执行一次B)循环体将执行两次
C)循环体将执行无限次D)系统将提示有语法错误
10、有以下程序段其输出结果是(C)
intx=3;
do
{printf("%d",x-=2);}
while(!
(--x));
A)1B)30C)1-2D)死循环
11、有如下程序
main(){
intx=23;
do
{
printf(“%d”,x);
x--;
}while(!
x);
}
该程序的执行结果是(B)
A)321B)23C)不输出任何内容D)陷入死循环
12、有以下程序段
intn=0,p;
do{scanf(“%d”,&p);n++;}while(p!
=12345&&n<3);
此处do—while循环的结束条件是(D)
A)P的值不等于12345并且n的值小于3
B)P的值等于12345并且n的值大于等于3
C)P的值不等于12345或者n的值小于3
D)P的值等于12345或者n的值大于等于3
13、以下不构成无限循环的语句或语句组是(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)3B)4C)5D)不定
16、有以下程序
main()
{
inty=9;
for(;y>0;y--)
if(y%3==0)printf("%d",--y);
}
程序的运行结果是(C)
A)741B)963C)852D)875421
17、以下程序执行后sum的值是(C)
A)15B)14C)不确定D)0
main()
{inti,sum;
for(i=1;i<6;i++)sum+=i;
printf(“n%”d,sum);
}
18、有如下程序
main()
{inti,sum=0;
for(i=1;i<=3;sum++)sum+=i;
printf(“%n”d,sum);
}
该程序的执行结果是(C)
A)6B)3C)死循环D)0
19、执行语句for(i=3;i>0;i--);i--;后,变量i的值是(C)
A)0B)10C)-1D)1
20、执行下面程序片段的结果是(A)。
intx;
for(x=3;x<6;x++)
printf((x%2)?
(“**%d”):
(”#n#”%d),x);
A)**3##4B)##3
**5**4##5
C)##3**4D)**3##4
**5##5
21、有以下程序,执行后输出的结果是(A)。
main()
{inti;
for(i=0;i<3;i++)
switch(i)
{case1:
printf("%d",i);
case2:
printf("%d",i);
default:
printf("%d",i);
}
}
A)011122B)012C)012020D)120
22、有以下程序,程序运行后的输出结果是(C)。
main()
{intk=4,n=0;
for(;n {n++; if(n%3! =0)continue; k--; } printf("%d,%d\n",k,n); } A)1,1B)2,2C)3,3D)4,4 23、设变量已正确定义,则以下能正确计算f=n! 的程序段是(D) A)f=0; for(i=1;i<=n;i++)f*=i; B)f=1; for(i=1;i C)f=1; for(i=n;i>1;i++)f*=i; D)f=1; for(i=n;i>=2;i--)f*=i; 24、执行下面程序片段的结果是(B)。 main() {inta,b; for(a=1,b=1;a<=100;a++) { if(b>=20) break; if(b%3==1) { b+=3;continue; } b-=5; } printf(“%n”d,a); } A)7B)8C)9D)10 25、以下程序的输出结果是(B)。 main() {inti=0,a=0; while(i<20) {for(;;) {if((i%10)==0)break; elsei--; } i+=11;a+=i; } printf("%d\n",a); } A)21B)32C)33D)11 26、以下程序的输出结果是(A) main() {inti,j,x=0; for(i=1;i<2;i++) {x++; for(j=0;j<=3;j++) {if(j%2)continue; x++;} x++;} printf(“x=%n”d,x);} A)x=4B)x=8C)x=6D)x=12 27、有以下程序 main() { inti,j; for(i=3;i>=1;i--) { for(j=1;j<=2;j++) printf("%d",i+j); printf("\n"); } } 程序的运行结果是(D) A)234B)432C)23D)45 3455433434 4523 28、有以下程序 main() {inti=5; do { if(i%3==1) if(i%5==2) {printf("*%d",i);break;} i++; }while(i! =0); printf("\n"); } 程序的运行结果是(A) A)*7B)*3*5C)*5D)*2*6 29、以下程序的结果是(A) main() {intn; for(n=1;;) {if(++n%2==0)continue; if(++n%3==0)break;} printf("n=%d",n); } A)n=6B)n=5C)n=4D)死循环 30、以下叙述中正确的是(C) A)break语句只能用于switch语句题中 B)continue语句的作用是: 使程序的执行流程跳出包含它的所有循环 C)break语句只能用在循环体内和switch语句体内 D)在循环体内使用break语句和continue语句的作用相同 二、程序阅读题(共10题) 1、以下程序运行后的输出结果是52。 main() { inti=10,j=0; do {j=j+i; i--; }while(i>2); printf(“n%”d,j); } 2、设有以下程序: main() { intn1,n2; scanf(“%d”,&n2); while(n2! =0) { n1=n2%10; n2=n2/10; printf(“%d”,n1); } } 程序运行后,如果从键盘上输入1298;则输出结果为8921。 3、以下程序的输出结果是5。 main() {ints,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); } 4、阅读下面程序,程序的结果是2,1,0。 main() {inti=7; for(i=2;i>0;i--) printf(”%d,”,i); printf(”%d”,i);} 5、阅读下面程序,程序的结果是14,4。 main() {inti,j,m=0; for(i=2;i<=10;i+=4) for(j=3;j<=4;j++) {m++;i++;} printf("%d,%d",i,m);} 6、阅读下面程序,程序的结果是1978。 main() {intj,a=2,n=4; longs=0,t=0; for(j=0;j t=t*10+a; s=t; for(j=1;j {t=t/10; s=s-t;} printf(”%d”,s); } 7、以下程序运行后的输出结果是0918273645 main() { charc1,c2; for(c1='0',c2='9';c1 printf("%c%c",c1,c2); printf("\n"); } 8、以下程序的输出结果是5。 main() { ints,i; for(s=0,i=1;i<3;i++,s+=i); printf("%d\n",s); } 9、执行以下程序后,输出'#'号的个数是6。 main() {inti,j; for(i=1;i<5;i++) for(j=2;j<=i;j++)putchar('#'); } 10、以下程序的输出结果是x=4 main() {inti,j,x=0; for(i=1;i<2;i++) {x++; for(j=0;j<=3;j++) {if(j%2)continue; x++;} x++;} printf(“x=%dn”,x);} 三、程序填空题 1、以下程序的功能是计算: m=1-2+3-4+⋯+9-10,并输出结果。 请填空。 main() {intm=0,f=1,i,n; scanf(“%d”,&n); for(i=1;i<=n;i++) {m+=i*f; f=-f; } printf(“m=%”d,m) } 2、以下程序的功能是计算s=1+1/2! +1/3! +1/4! +⋯+1/n! ,请填空。 main() { doubles=0.0,fac=1.0;inti; intn; scanf(“%d”,&n); for(i=1,i<=n;i++) {fac=fac*1.0/i; s=s+fac; } printf(“s=%lf”,s); } 3、以下程序的功能是计算: s=1+12+123+1234+12345。 请填空。 main() {intt=0,s=0,i; for(i=1;i<=5;i++) {t=i+t*10;s=s+t;} printf("s=%d\n",s); } 4、要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i<=18;printf(“n%”d,i+=2)); 5、以下函数的功能是: 求x的y次方,请填空。 doublefun(doublex,inty) {inti; doublez; for(i=1,z=x;i returnz; } 6、以下程序的功能是根据以下近似公式求π值: (π*π)/6=1+1/(2*2)+1/(3*3)+..+1/(n*n) 现在请你在下面的函数中填空,完成求π的功能。 main(){ doubles=0.0;longi,n; scanf(“%ld”,&n); for(i=1;i<=n;i++)s=s+1.0/(i*i); printf(“%lf”,sqrt(6*s)); } 7、以下用来输出两整数M和N之间的所有素数(质数),请填空,使程序能正确运行。 #defineM4 #defineN30 main() { inti,j,k,s=0; for(i=M;i<=N;i++) {for(j=2;j if(i%j==0)break; if(j>=i) {printf("%5d",i); s=s+1; if(s%5==0)printf("\n"); } } printf("\n");} 8、以下程序实现: 从键盘输入一位整数,计算其各位数字之和。 比如输入整数31421,则 打印结果为11。 请填空。 main(){ inti,sum=0,a; scanf("%d",&i); while(i>0){ a=i%10; sum+=a; i=i/10; } printf("%d\n",sum); } 9、以下程序实现: 计算1~10之间(不含10)的奇数之和以及偶数之和 main() { inta,b,i; a=b=0; for(i=0;i<10;i+=2) { a=a+i; b=b+i+1; } printf("偶数为: %d,奇数和为: %d\n",a,b); } 10、以下程序的功能是: 输出100以内(不含100)能被3整除且个位数为6的所有整数, 请填空。 main() { inti,j; for(i=0;i<10;i++){ j=i*10+6; if(j%3==0)continue; printf(“%d”,j); } } 四、编程题 1、写一个程序,程序的功能是: 从键盘输入一个整数m,输出1到m(含m)能被7或11 整除的所有整数,并计算出这些数的个数。 例如: 如果m为50,则程序输出7、11、14、 21、22、28、33、35、42、44、49共11个数。 2、计算100到1000间有多少个数其各位数字之和是5。 3、从键盘输入整数n,输出1+3+5+7+⋯前n项的和(输入的n<=10) 4、编写程序,实现如下图形 1 12 123 1234 12345 5、打印100-999以内所有满足条件的数。 条件为,这个数等于其个位数,十位数,百位数 立方和,如153=1*1*1+5*5*5+3*3*3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题集 循环 结构 答案