1、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) 循环控制表达式的值为0 B) 循环控制表达式的值为1C) 循环控制表达式不合法 D) 以上说法都不对3、在C程序中,与while(m)中表达式m完全等价的是 (B )A) m=0 B) m!=0 C) m=1 D) m!=14、有以下程序,程序运行后的输出
2、结果是(C )。main()int i=1,sum=0;while(i=4) sum=sum+i; i=i+1;printf(“%dn”,sum);A)4 B)5 C)10 D)死循环5、有以下程序,程序运行后的输出结果是(D )。main() int i=1,sum=0;while(i6)n-;printf(“%d”,n);该程序段的输出结果是(B)A) 987 B) 876 C) 8765 D) 98767、以下程序的输出结果是 ( B )main() int num= 0;while(num=2) num+; printf(“%dn”,num);A) 1 B) 1 C)1 D) l 2
3、2 2 3 3 48、有以下程序,若运行时输入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; else break; printf(“%fn”,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) 系统将提示有语法
4、错误10、有以下程序段其输出结果是(C ) int x=3;do printf(%d,x-=2); while (!(-x);A) 1 B) 3 0 C) 1 - D) 死循环11、有如下程序 main() int x=23;do printf(“%d”,x);x-;while(!x);该程序的执行结果是(B )A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环12、有以下程序段int n=0,p;doscanf(“%d”,&p);n+;while(p!=12345 &n3);此处dowhile循环的结束条件是( D)A) P的值不等于12345并且n的值小于3B) P的值等于1
5、2345并且n的值大于等于3C) P的值不等于12345或者n的值小于3D) P的值等于12345或者n的值大于等于3 13、以下不构成无限循环的语句或语句组是(A)A) n=0; do +n;while(n0);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+0 ; y-) if(y%3=0 ) printf(%d , -y
6、) ;程序的运行结果是(C)A) 741 B)963 C)852 D)87542117、以下程序执行后sum的值是( C)A)15 B)14 C) 不确定 D)0main() int i , sum; for(i=1;i6;i+) sum+=i; printf(“%dn”,sum);18、有如下程序main() int i,sum=0;for(i=1;i0;i-);i-;后,变量i的值是(C )A)0 B)10 C)-1 D)120、执行下面程序片段的结果是(A )。int x;for(x=3;x6;x+) printf(x%2)?(“*%d”):(”#%dn”),x);A)*3#4 B)#3
7、 *5 *4#5C)#3*4 D)*3#4 *5 #521、有以下程序,执行后输出的结果是(A )。main() int i; for(i=0;i3;i+) switch(i) case 1: printf(%d,i); case 2: printf(%d,i); default: printf(%d,i); A) 011122 B) 012 C) 012020 D) 12022、有以下程序,程序运行后的输出结果是(C )。main() int k=4,n=0; for( ; nk ; ) n+; if(n%3!=0) continue; k-; printf(%d,%dn,k,n); A)1
8、,1 B)2,2 C)3,3 D)4,423、设变量已正确定义,则以下能正确计算f = n!的程序段是(D )A) f=0 ; for(i=1;i=n;i+) f*=i; B) f=1; for(i=1;i1;i+) f*=i; D) f=1;for(i=n;i=2;i-) f*=i;24、执行下面程序片段的结果是(B )。main()int a,b; for(a=1,b=1;a=20) break; if(b%3= =1) b+=3;continue; b-=5; printf(“%dn”,a); A)7 B)8 C)9 D)1025、以下程序的输出结果是( B )。main() int i
9、=0,a=0; while(i20) for(;) if(i%10)=0) break; else i-; i+=11; a+=i; printf(%dn,a); A) 21 B) 32 C) 33 D) 1126、以下程序的输出结果是(A )main() int i,j,x=0; for(i=1;i2;i+) x+;for(j=0;j=1;i-) for(j=1;j2); printf(“%dn”,j);2、设有以下程序:main() int n1,n2; scanf(“%d”,&n2); while(n2!=0) n1=n2%10; n2=n2/10; printf(“%d”,n1); 程
10、序运行后,如果从键盘上输入1298;则输出结果为 8921 。3、以下程序的输出结果是 5 。main() int s,i; for(s=0,i=1;i0;i-) printf(”%d,”,i); printf(”%d”,i);5、阅读下面程序,程序的结果是 14,4 。 main() int i,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()int j,a=2,n=4;long s=0,t=0;for(j=0;jn;j+)t=t*10+a;s=t;f
11、or(j=1;jn-1;j+)t=t/10;s=s-t;printf(”%d”,s);7、以下程序运行后的输出结果是 0918273645 main() char c1,c2; for(c1=0,c2=9;c1c2;c1+,c2-) printf(%c%c,c1,c2); printf(n);8、以下程序的输出结果是 5 。main() int s,i; for(s=0,i=1;i3;i+,s+=i); printf(%dn,s);9、执行以下程序后,输出#号的个数是 6 。main() int i,j;for(i=1; i5; i+)for(j=2; j=i; j+) putchar(#);
12、10、以下程序的输出结果是 x=4 main() int i,j,x=0; for(i=1;i2;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( ) int m=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! ,请填空。mai
13、n( ) double s=0.0,fac=1.0; int i;int n;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() int t=0,s=0,i; for( i=1; i=5; i+) t=i+ t*10 ; s=s+t; printf(s=%dn,s);4、要使以下程序段输出10个整数,请填入一个整数。 for(i=0;i= 18 ;printf(“%dn”,i+=2);5、以下函数的功能是:求
14、x的y次方,请填空。double fun( double x, int y) int i;double z;for(i=1, z=x; iy;i+) z=z* y ;return z;6、以下程序的功能是根据以下近似公式求值: (*)/6=1+1/(2*2)+1/(3*3)+.+1/(n*n)现在请你在下面的函数中填空,完成求的功能。 main() double s=0.0; long i,n;scanf(“%ld”,&n);for(i=1;i=n;i+) s=s+ 1.0/(i*i) ;printf(“%lf”,sqrt(6*s); 7、以下用来输出两整数M和N之间的所有素数(质数),请填空
15、,使程序能正确运行。#define M 4#define N 30main() int i, j, k, s=0; for(i=M; i= N ; i+) for(j=2; j=i) printf(%5d, i); s=s+1; if( s%5=0 ) printf(n); printf(n);8、以下程序实现:从键盘输入一位整数,计算其各位数字之和。比如输入整数31421,则打印结果为11。请填空。main() int i,sum=0,a; scanf(%d,&i); while(i0) a= i%10 ; sum+=a; i= i/10 ; printf(%dn,sum);9、以下程序实现
16、:计算110之间(不含10)的奇数之和以及偶数之和main() int a,b,i; a=b=0; for(i=0;i10;i+=2) a= a+i ; b= b+i+1 ; printf(偶数为:%d,奇数和为:%dn,a,b);10、以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。 main() int i,j; for(i=0; i10 ;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、编写程序,实现如下图形1121231234123455、打印100-999以内所有满足条件的数。条件为,这个数等于其个位数,十位数,百位数立方和,如153=1*1*1+5*5*5+3*3*3
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1