C语言程序设计的试题及答案(2)

时间:2021-08-31

  第三章 顺序结构

  一、填空

  1. C 语言的语句可分为 5 类,它们是:控制语句、____________、函数语句、符合语句和空 语句。

  2. 常用于字符输入的函数为:________________ 。

  3. 常用于字符输出的函数为:________________。

  4. 常用于字符串输入的函数为:________________。

  5. 常用于字符串输出的函数为:________________。 6. 格式输入函数的一般形式为:________________ 。 7. 格式输出函数的一般形式为:________________ 。 8. printf 和 scanf 是标准的库函数,它们的函数原型在头文件________________中。 9. 有 char ch,则从键盘给 ch 赋值的格式输入语句为:________________。 10. 如果要输出字符串常量“HelloWord! ” ,则格式输出语句为:________________。 11. 设有定义:long x=-123456L; ,请写出能够正确输出变量 x 值的语句________________ 。 12. 若有 int a,b; ,想通过 scanf("%d%d",&a,&b);输入语句给 a 赋于 1,给 b 赋于 2,则从键 盘

  输入数据的形式是________________。 13. 若有 int i,j; scanf("i=%d,j=%d";&i,&j); ,要求给 i 赋 10,给 j 赋 20,则应该从键盘 输入_______。 14. 已知 i、j、k 为 int 型变量,若从键盘输入:1,2,3<回车>,使 i 的值为 1、j 的值为 2、 k 的值为 3,请写出正确的输入语句________________ 。 15. 有 int m,n,p; scanf("m=%dn=%dp=%d",&m,&n,&p); printf("%d%d%d\n",m,n,p); 若想 从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456,p 中的值为 789,则正确的输入是 _____ ___________。 16. 有 int a; float b, c; %f\n", a, b, c); scanf("%2d%3f%4f",&a,&b,&c); printf("\na=%d, b=%f, c=

  , 若 运 行 时 从 键 盘 上 输 入 9876543210< 回 车 > , 则 程 序 的 输 出 结 果 是 ___________________ __。 17. 有 int m=0256,n=256; 则 printf("%o %o\n",m,n); 的输出结果是__________________ ___ 。 18. 有 int x=102,y=012; , 则 printf(“%2d,%2d\n”,x,y); 的输出结果是______________ _______ 。 19. 有定义和语句:int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); , 则 printf("%d %d %3.1f %3.1f\n",a,c,f,x); 的输出结果是_____________________ 。 20. 若有定义和语句:int m=0xabc,n=0xabc; m-=n; 则 printf("%o\n",m);的输出结果是___ __________。 21. 若有 int m=32,n=032; ,则 printf("%d,%x\n",m,n); 执行后输出结果是______________ _____ 。 22. 若有 int a=1234; ,则 printf("%2d\n",a); 的输出结果是_____________________ 。 23. 若变量已正确说明为 float 类型,要通过语句 scanf(“%f %f %f ”,&a,&b,&c);给 a 赋于 1 0.0,b 赋予 22.0,c 赋予 33.0,不正确的输入形式是_____________________ 。 A) 10 <回车>22<回车>33<回车> B) 10.0,22.0,33.0<回车> C) 10.0<回车> 22.0 33.0<回车> D) 10 22<回车> 33<回车>

  24. 若有 int x=3,y=1; 则 printf("%d %d\n",x++,y+2); 的输出结果是__________________ ___ 。 25. 若有定义和语句:double d; float f; long l; int i; i=f=l=d=20/3; 则 printf("% d %ld %f %f \n", i,l,f,d);的输出结果是(小数点后只写一位) _____________________。 26. 以下说法中正确的是 _____________________。 A) #define 和 printf 都是 C 语句 B) #define 是 C 语句,而 printf 不是 C) printf 是 C 语句,但#define 不是 D) #define 和 printf 都不是 C 语句 27. 若有 int k=17; ,则 printf("%d,%o,%x \n",k,k,k);的输出结果是_________________ ____ 。 28. 以下叙述中正确的是_____________________ 。 A) 输入项可以是一个实型常量,如:scanf("%f",3.5); B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如:scakf("a=%d,b=%d"); C) 当输入数据时,必须指明变量地址,例如:scanf("%f",&f); 29. 若有定义和语句:int u=010,v=0x10,w=10;则 printf("%d,%d,%d\n",u,v,w); 输出结果是 _____________________。 30. 若有 int a=1,b=4,c=2; float x=10.5, y=4.0, z; z=(a+b)/c+sqrt((double)y)*1.2/c+ x; ,则 printf("%f\n",z); 的输出结果是_____________________ 。 31. 若有 int a=2,c=5; ,则 printf("a=%%d,b=%%d\n",a,c);的输出结果是________________ _____ 。 32. 有 char c; int n=100; float f=10; double x; x=f*=n/=(c=50); 则 printf("%d %f\ n",n,x); 的输出结果是_____________________。 33. 有 int i=0,j=0,k=0; scanf("%d%*d%d",&i,&j,&k); printf("%d%d%d\n",i,j,k); 若 从键盘输入:10 20 30<回车>。输出结果是_____________________。 34. 若有 int a,b,c; a=25; b=025; c=0x25;,则 printf("%d %d %d\n",a,b,c); 的输出结果 是___________。 35. 有以下语句段 int n1=10,n2=20; printf(“________________”,n1,n2); 要求按以下格式输出 n1 和 n2 的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 36. 若有语句 int i=-19,j=i%4; 则 printf("%d\n",j);的输出结果是_____________________

  。 37. 有 int a=0; a+=(a=8); 则 printf("%d\n",a);的输出结果是_____________________。 38. 有 int a=1, b=2; a=a+b; b=a-b; a=a-b;则 printf(“%d,%d\n”, a, b );的输出结果是 ______________。 39. 有 unsigned short a=65536; int b;,则 printf(“%d\n”,b=a);的输出结果是________ ______。 40. 语句 printf("\10289\n");的数据结果为:__________________ 。 解答: 1. 表达式语句 2. getchar( ) 3. putchar( ) 4. gets( ) 5. puts( ) 6. scanf(“格式控制字符串” ,地址表列); 7. printf(“格式控制字符串” ,输出表列); 8. stdio.h 9. scanf (“%c” ,&ch); 10. printf (“%s” ,HelloWord!); 或者:printf (“HelloWord!”); 11. printf(“x=%1d\n”,x); 12. 1 2 或者 1 2 13. i=10,j=20 14. scanf(“%d,%d,%d”,&i,&j,&k); 15. m=123n=456p=789

  16. a=98, b=765.000000, c=4321.000000 17. 256 400 18. 102,10 19. 1 65 1.5 6.5 20. 0 21. 32,1a 22. 1234 23. B 24. 3 3 25. 6 6 6.0 6.0 26. D 27. 17,21,11 28. C 29. 8,16,10 30. 13.700000 31. a=%d,b=%d 32. 2 20.000000 33. 10300 34. 25 21 37 35. n1=%d\nn2=%d 36. -3 37. 16

  38. 2,1 39. 0 40. B89 二.阅读程序写结果 解答: 三.补充程序 解答: 四.改错题 解答: 五.编程一 解答: 六.编程二 解答: 第四章 选择结构 一.填空 1. 在 if, while, case, do, else 等关键字中,用于选择结构的有( ). 2. 已知 a = 1; 那么 if ( a = 2) printf("%d", 2); else printf("%d", 1); 的输出结 果是( ). 3. 已知 char a = 'A'; 那么 if ( a > 65) printf("%s", "bigger"); else printf("%s" , "smaller"); 的输出结果是( ). 4. 表示“x≥ y≥ z”的 C 语言表达式是 ( 5. 在 C 语言中,用于实现选择结构的语句有( 。 6. 判断两个浮点型变量 x 和 y 是否相等一般用:if( 7. 设有程序段: t=6;a=7;b=8; if(a=b) t=a;,这段程序执行后,t 的结果是( 。 8. 设 a=1,b=2,c=3,d=4,则表达式:a>b?a:c>d?a:d 的结果为( 9. 表达式 98 && 8 && 31 && (98 - 'a')的值为( 10. 若 int a = 3; 则表达式 (a > 2)&& ! ('D'> 69) 的值为( )。 )。 ) 。 )语句和( )。 ) 语句

  <1e-6 )? 。 )

  解答: 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 二.阅读程序写结果 1. #include void main( ) { int x,y,t; x=7;y=9; if(x

  2. #include void main( ) { int x=1,a=2,b=3; switch(x) { case 1: case 2: case 3: a--; break; b++; break; a++;b++;

  } printf("\na=%d,b=%d\n",a,b); }

  3. #include void main( ) { char ch1 = 'E'; if(ch1 >= 'A') ch1++; else ch1+=32; printf("ch1 = %c\n", ch1); }

  4. #include void main( ) { int x,y,t; x=5;y=3;

  if(x>y) { t=x;x=y;y=t;} printf("%d,%d\n" , x,y ); }

  5. #include int main() { int a,b,c,m; printf("Enter three integers:"); scanf("%d%d%d",&a,&b,&c); if(a<=b) m=a; else m=b; if(c

  6. #include int main() { char ch1='a',ch2='B',ch3='E'; if(ch1>ch2) if(ch2>ch3) else --ch3; printf("ch3=%c\n",ch3); return 0; }

  ch3++;