C程序练习题一(结构化程序设计)
一 选择题
1. 有以下语句printf(“%d,%d,%u\\n”,016,16,-16);其输出结果是(d ) a) 16,16,65520 b) 14,16,65520 c) 16,16,-16 d) 14,16,-16
2. 若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是(b ) a) 23 b) 24 c) 25 d) 22 3、有以下程序 main()
{ int m=0256,n=256; printf(\ } 程序运行后的输出结果是___A___。 A、0256 0400 B、0256 256 C、256 400 D、400 400
4、设以下变量均为int类型,则值不等于7的表达式是CABD A) (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-z
6.已有定义语句:int a=3,b=4;,则执行下述表达式后,变量b的值是:(a++==4)&&(b++==5)
a) 3 b) 4 c) 5 d) 6
7. 已有定义语句:int a=4,b=6;,则执行下述表达式后,变量b的值是:(a++==4)||(b++==6)
a) 4 b) 5 c) 6 d) 7 8. 以下程序的运行结果是:(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) 1 10. 有以下程序:
D ) C)( ( main()
{ int a=2,b=1,c=2; if(b
printf(“b=%d,c=%d\\n”,b,c); }
程序的输出结果是:(A ) a) b=1,c=2 b) b=1,c=0 c) b=2,c=2 d) b=1,c=1 11. 有以下程序:
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) 8 12. 有以下程序:
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) 12 13. 假设所有变量均已正确说明:
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) 3 14. 当a=1、b=3、c=5、d=4时,执行下面一段程序:
if(a
以上程序段运行后,x的值是:(C ) a) 1 b) 2 c) 3 d) 6 15. 以下程序的输出结果是:( )
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) 4 18.以下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) 0
20. 有以下程序段,其中x为整型变量,以下选项中叙述正确的是:(C )
x=-1; do {;} while (x++); printf(“x=%d”,x);
a) 该循环没有循环体,程序错误 b) 输出x=1 c) 输出x=0 d) 输出x=-1 21. 有以下程序:
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 22. 有以下程序:
main() { int num=0; do
{ num++ ;printf(“%d\\n”,num); } while(num<=2); }
程序的输出结果是:(A )
a) 1 b) 1 c) 1 2 2 2 3 3 4 23. 有以下程序:
main() { int x=3; do
{ printf(“%d”,x-=2); } while(!(--x)); }
d) 1,4 d) 1 程序的输出结果是:(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 25. 有以下程序:
main() { int x=3,y; do { y=--x;
if( !y) printf(“x”) ; else printf(“y”) ; } while(x); }
程序的输出结果是:(B )
a) xyx b) yyx c) yxx 26. 有以下程序:
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 27. 有以下程序:
main() { int i,s=1;
for(i=1 ;i<=50 ;i++)
if( !(i%5)&& !(i%3)) s+=i; printf(“%d\\n”,s);
d) 0 d) yxy d) 1,-3