当前位置:文档之家› 结构化程序设计习题

结构化程序设计习题

C程序练习题一(结构化程序设计)一选择题1. 有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是(d )a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-162.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是(b )a) 23 b) 24 c) 25 d) 223、有以下程序main(){ int m=0256,n=256;printf("%o %o\n",m,n); }程序运行后的输出结果是___A___。

A、0256 0400B、0256 256C、256 400D、400 4004、设以下变量均为int类型,则值不等于7的表达式是CABDA) (x=y=6,x-f-y,x+1) B) (x=y=6,x+y,y+1)C) (x=6,x+1,y=6,x+y) D) (y=6,y+1,x=y,x+1)5.已有定义语句:int x=3,y=4,z=5;,则值为0的表达式是:(A )a) x>y++ b) x<=++y c) x !=y+z>y-z d) y%z>=y-z6.已有定义语句:int a=3,b=4;,则执行下述表达式后,变量b的值是:(D )(a++==4)&&(b++==5)a) 3 b) 4 c) 5 d) 67. 已有定义语句:int a=4,b=6;,则执行下述表达式后,变量b的值是:(C)(a++==4)||(b++==6)a) 4 b) 5 c) 6 d) 78. 以下程序的运行结果是:(D )main(){ int i=0;if(i==0) printf(“**”);else printf(“$”); printf(“*\n”);}a) * b) $* c) ** d) ***9. 若变量a,b,c都为整型,且a=1、b=15、c=0,则表达式a==b>c的值是(A )a) 0 b) 非零c) “真” d) 110. 有以下程序:{ int a=2,b=1,c=2;if(b<a)if(b<0) c=0,c++;b++;printf(“b=%d,c=%d\n”,b,c);}程序的输出结果是:(A )a) b=1,c=2 b) b=1,c=0c) b=2,c=2 d) b=1,c=111. 有以下程序:main(){ int n;scanf(“%d”,&n);if(n++<5) printf(“%X\n”,n);else printf(“%X\n”,n--);}若执行程序时从键盘上输入9,则输出结果是:(c )a) 11 b) A c) 9 d) 812. 有以下程序:main(){ int m=5;if(++m>5)if(m++>5) printf(“%d\n”,m+5);else printf(“%d\n”,m--);else printf(“%d\n”,--m);}程序的输出结果是:(D )a) 8 b) 5 c) 10 d) 1213. 假设所有变量均已正确说明:a=b=c=0; x=35;if(!a) x--;else if(b) ; if(c) x=3;else x=4;以上程序段运行后,x的值是:(A )a) 34 b) 35 c) 4 d) 314. 当a=1、b=3、c=5、d=4时,执行下面一段程序:if(c<d) x=1;elseif(a<c)if(b<d) x=2;else x=3;else x=6;else x=7;以上程序段运行后,x的值是:(C )a) 1 b) 2 c) 3 d) 615. 以下程序的输出结果是:()main(){ int a=5,b=4,c=6,d;printf(“%d\n”,d=a>b ?(a>c ? a:c) : (b)); }m17.有以下程序:main(){ int a=15,b=21,m=0;switch(a%3){ case 0: m++;break; 是跳出整个程序吗case 1: m++;switch(b%2){ default: m++;case 0: m++;break;}}printf(“%d\n”,m);}程序的输出结果是:(C)a) 1 b) 2 c) 3 d) 418.以下while循环中,循环体执行的次数是:(C )k=1;while (--k) k=10;a) 10次b) 无限次c) 一次也不执行d) 1次19. 有以下程序段,其中n为整型变量,执行后输出结果是:(D )n=20 ;while(n--) ; printf(“%d”,n) ;a) 2 b) 10 c) -1 d) 020. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:(C )x=-1;do{;}while (x++);printf(“x=%d”,x);a) 该循环没有循环体,程序错误b) 输出x=1c) 输出x=0d) 输出x=-121. 有以下程序:main(){ int x=0,y=0;while(x<5&&++y) y--,x++;printf(“%d,%d”,y,x);}程序的输出结果是:(A )a) 0,5 b) 1,5 c) 0,4 d) 1,422. 有以下程序:main(){ int num=0;do{ num++ ;printf(“%d\n”,num); }while(num<=2);}程序的输出结果是:(A )a) 1 b) 1 c) 1 d) 12 2 23 3423. 有以下程序:main(){ int x=3;do{ printf(“%d”,x-=2); }while(!(--x));}程序的输出结果是:(C )a) 1 b) 3 0 c) 1 -2 d) 死循环24. 有以下程序:main(){ int y=10;do { y--; } while(--y);printf(“%d\n”,y--);}程序的输出结果是:(D )a) 1 b) -1 c) 8 d) 025. 有以下程序:main(){ int x=3,y;do{ y=--x;if( !y) printf(“x”) ;else printf(“y”) ;} while(x);}程序的输出结果是:(B )a) xyx b) yyx c) yxx d) yxy26. 有以下程序:main(){ int x=3,y=0;do{ while( !y) y=-x;} while(x--);printf(“%d,%d\n”,x,y);}程序的输出结果是:(B )a) -1,3 b) -1,-3 c) 0,0 d) 1,-327. 有以下程序:main(){ int i,s=1;for(i=1 ;i<=50 ;i++)if( !(i%5)&& !(i%3)) s+=i;printf(“%d\n”,s);}程序的输出结果是:()a) 409 b) 277 c) 1 d) 9128. 有以下程序:main(){ int x=0,y=0,i;for(i=1 ; ;++i){ if(i%2==0) {x++ ;continue ;}if(i%5==0) {y++ ;break ;}}printf(“%d,%d”,x,y);}程序的输出结果是:()a) 2,1 b) 2,2 c) 2,5 d) 5,229. 有以下程序:main(){ int a,b;for(a=1,b=1 ;a<=100 ;a++){ if(b>=10) break;if(b%3==1){ b+=3; continue; }}printf(“%d\n”,a);}程序的输出结果是:()a) 101 b) 6 c) 5 d) 430.有以下程序:main(){ int i=0;for(i+=3 ;i<=5 ;i=i+2)switch(i%5){ case 0: printf(“*”);case 1: printf(“#”); break;default: printf(“!”); break;case 2: printf(“&”);}}程序的输出结果是:()a) *# b) !& c) !*# d) *#*二程序填空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++);2、以下程序的功能是计算s=1+1/2!+1/3 !+1/4 !+…+1/n! ,请填空。

main( ){double s=0.0,fac=1.0;int i;int n;scanf(“%d”,&n);for(i=1,i<=n;i++){ fac=fac * ;s=s+fac;}printf(“s=%lf”,s);}3、以下程序的功能是计算:s=1+12+123+1234+12345。

请填空。

main(){ int t=0,s=0,i;; s=s+t; }\n",s);}4、下列程序计算0到9 之间的任意3个不同的数字组成的三位数共有多少种不同的组成方式。

请完成下列程序。

#include <stdio.h>main(){ int j,i,k,count=0;for(i=9;i>=1;i--)for(j=9;j>=0;j--)if( )continue;elsefor(k=0;k<=9;k++)if( )count++;printf("%d\n",count);}5、以下用来输出两整数M和N之间的所有素数(质数),请填空,使程序能正确运行。

#define M 4#define N 30main(){int i, j, k, s=0;for(i=M; i<= N ; i++){ for(j=2; j< i ; j++)if(i%j== 0 ) break;if(j>=i){ printf("%5d", i);s=s+1;if( s%5==0 ) printf("\n");}}printf("\n");}6、以下程序实现:从键盘输入一位整数,计算其各位数字之和。

比如输入整数31421,则打印结果为11。

请填空。

main(){int i,sum=0,a;scanf("%d",&i);while(i>0){a= ;sum+=a;i= ;}printf("%d\n",sum);}7、以下程序的功能是:输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

相关主题