A. 1 B. 2 C. 3 D. 4 27. 在C语言中,有语句“int a,b; scanf(\"a=%d b=%d\”,下列输入方法能使a的值为2、b的值为3的是
A. a=2 b=3 B. a=2,b=3 C. 2,3 D. 2 3
28. 若有定义:int a,b;,通过语句scanf(\"%d,%d\,能把整数3赋给变量a,5赋给变量b的输入
数据是
A. 3 5 B. 3,5 C. 3;5 D. 3:5
29. 若有定义:int a,b;,通过语句scanf(\"a=%d,b=%d\,能把整数3赋给变量a,5赋给变量b的
输入数据是
A. 3 5 B. a=3,b=5 C. a=3;b=5 D. a=3b=5 30. 下列程序段执行后x、y和z的值分别是
int x=10,y=20,z=30; if(x>y) z=x;x=y;y=z;
A. 10,20,30 B. 20,30,30 C. 20,30,10 D. 20,30,20 31. 若有定义语句:int a,b;double x;,则下列选项中没有错误的是
A. switch(x%2) B. switch((int)x/2.0) { case 0:a++;break; { case 0:a++;break; case 1:b++;break; case 1:b++;break; default:a++;b++; default:a++;b++; } }
C. switch((int)x%2) D. switch((int)x/2)
{ case 0:a++;break; { case 0.0:a++;break; case 1:b++;break; case 1.0:b++;break; default:a++;b++; default:a++;b++; } }
32. 若有定义:float x=1.5;int a=1,b=3,c=2;则正确的switch语句是
A. switch(x) B. switch((int)x);
{ case 1.0:printf(\"*\\n\"); { case 1.0:printf(\"*\\n\"); case 2.0: printf(\"**\\n\"); } case 2.0: printf(\"**\\n\"); }
2
C语言练习题资料
C. switch(a+b) D. switch(a+b)
{ case 1:printf(\"*\\n\"); { case 1:printf(\"*\\n\"); case 2+1: printf(\"**\\n\"); } case c: printf(\"**\\n\"); }
33. 在C语言中,有以下程序段: int a=10,b=O; do{ b+=2;
a-=2+b; } while(a>=O); 程序段中循环体的执行次数是
A.2 B.3 C.4 D. 5 34. 对循环结构正确的叙述是
A. do-while循环体可能被执行0次 B. do-while循环体至少被执行1次 C. while循环体不可能被执行0次 D. for循环体不可能被执行无限次 35. 有以下程序
main() { int i;
for(i=0;i<3;i++) switch(i)
{ case 0: printf(\"%d\ case 1: printf(\"%d\ default: printf(\"%d\
} }
程序执行后的输出结果是
A.000112 B. 012 C. 012020 D. 120 36. C语言规定,在一个源程序中,main函数的位置
A.必须在最开始 B. 必须在系统调用的库函数的后面 C. 可以任意 D. 必须在最后 37. 能将C语言源程序转换成目标程序的是
A. 解释程序 B. 编译程序 C. 编辑程序 D. 调试程序 38. 以下叙述中正确的是
A. 构成C程序的基本单位是函数 B. 可以在一个函数中定义另一个函数 C. main()函数必须放在其它函数之前
D. 所有被调用函数一定要在调用之前进行定义 39. 主函数头中的“main”是
A. 保留字 B. 函数名 C. 变量名 D. 类型名 40. 在一个C语言程序中
A. 主函数只能有一个 B. 主函数可以有多个
C. 非主函数只能有一个 D. 主函数和非主函数都可以有多个 41. 关于C语言程序描述正确的是
A. 函数必须要有return语句 B. 主函数必须位于程序的开头 C. 程序中每行只能写一条语句 D. 一个程序中只能有一个主函数 42. C语言源程序是由
A. 一个主程序和若干子程序组成 B. 函数组成
C. 若干过程组成 D. 若干子程序组成 43. 下列叙述正确的是
A. 实参不能是表达式
3
C语言练习题资料
B. 函数可以没有形式参数
C. 在一个函数中,只能有一个return 语句
D. 函数定义时,若函数类型缺省则默认的类型是void
44. 函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是
A. 3 B. 4 C. 5 D. 6 45. 函数调用语句“exec((v1,v2),(v3,v4,v5),v6);”中实参的个数是
A. 3 B. 4 C. 5 D. 6 46. 下面的函数调用语句中func函数的实参个数是
func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8)));
A. 3 B. 4 C. 5 D. 8 47. 在C语言中,以下函数定义格式正确的是 A.double fun(int x,int y) { z=x+y; retun z; return z; } }
C.fun(x,y) { int x,y; double z; z=x+y; return z; }
48. 以下程序段的输出结果是
int fun(int x,int y) { return (x+y); } main()
{ int a=1,b=2,c=3,sum;
sum=fun((a++,b++,a+b),c++); printf(\"%d\\n\}
A. 6 B. 7 49. 以下程序的输出结果是
int f(int x) { int y;
if(x==0||x==1) return (3); else y=x*x-f(x-2); return y; } main()
{ printf(\"%d\\n\
A. 0 B. 9 50. 以下程序运行后的输出结果是
int f(int x,int y) { return((y-x)*x); } main()
{ int a=3,b=4,c=5,d; d=f(f(a,b),f(a,c)); printf(\"%d\\n\
B.fun(int x,y) { int z;
D.double fun(int x,int y) { double z; z=x+y; return z; }
C. 8 D. 9 C. 6 D. 8 4
C语言练习题资料
A.10 B.9 C.8 D.7 51. 在C语言中,有语句“int a[]={0,1,2,3};”,则数组a的长度是
A. 2 B. 3 C. 4 D. 5 52. 在C语言中,以下错误的定义语句是
A. int x[][3]={{0},{1},{1,2,3}};
B. int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; C. int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}}; D. int x[][3]={1,2,3,4};
53. 在C语言中,有语句“char ch[]=\"01234\";”,则数组ch的长度是
A. 3 B. 4 C. 5 D. 6 54. 在C语言中,有以下程序段: char str[]=\"\ab\\n\\012\\\\\\\"\"; printf(\"%d\
其输出结果是 C
A.3 B. 4 C.7 D.13 二、填空题:把答案填在题中横线上。
1. C程序设计的三种基本结构是:选择结构、循环结构和 。 2. 在C语言中,整型常量的书写形式包括:八进制、十进制和 进制。 3. 在C语言中,实型变量分为float和 。
4. 在C语言中,若x=3,y=2,z=1,则表达式(x+=z)6. 执行C语言语句\"int a=3,b=4,c;c=a++>3||--b<4;\" 后变量c的值为 。 7. 设int y;执行表达式(y=1)||(y=2)||(y=3)后,y的值是 。 8. 设int a,b;,表达式a=2,b=5,b++,a+b的值是 。 9. 请写出数学式a/bc的C语言表达式 。10. 设int a=1,b=2,m=2,n=2;,执行表达式(m=aint x=3;
do { printf(\"%3d\",x-=2); } while(!(--x));
13. 执行语句for(i=10;i>0;i--);后,变量i的值是 。
14. 设int x,y;,循环语句for(x=0,y=0;(y!=10)&&(x<5);x++);执行的次数是 。 15. 若函数内定义变量的存储类别是static,该变量被称为局部 变量。
16. 设int x=3;,执行语句printf((x%2)?(\"**%d\\n\"):(\"##%d\\n\"),x);后,输出结果是 。 17. 执行C语言程序段“int a=3,b=2;b=a<0&&a++>3;”后,a的值为 ,b的值为 。 18. 下面程序的执行的结果是 。
5
C语言练习题资料
#define MOD(a,b) a%b main()
{ int x=4,y=16,z; z=MOD(y,x);
printf(\"%d\\n\ }则程序
19. 若程序运行时从键盘输入12<回车>,则程序的执行的结果是 。
#include main() { int x;scanf(\"%d\
if(x>15) printf(\"%d\ if(x>10) printf(\"%d\ if(x>5) printf(\"%d\ }
20. 执行下列程序段后,输出结果是 。
int a=1,b=10;
do { b-=a;a++; }while(b--<0); printf(\"a=%d,b=%d\\n\21. 在C语言中,若有以下函数:
int fun(int x)
{ static int t=0; return (t+=x); } 则fun(fun(2))的结果为 。 22. 在C语言中,若有以下函数:
int f(int n)
{ return 2*n+1; }
则f(f(f(1)))的结果为 。 23. 在C语言中,若有以下函数:
int fac(int n)
{ if(n==0||n==1) return 1; else return n*fac(n-1);} 则fac(5)的结果为 。
24. 在C语言中,声明结构体类型时所使用的关键字是 。 25. 在C语言中,有如下语句: struct stud { int a[3]; char ch; double f; } stud1;
则结构体变量stud1占用内存的字节数为 。 三、读程序写结果:把程序的结果写在横线上。
6
C语言练习题资料
1. 写出程序的运行结果 main()
{ int x=1,y=0,a=0,b=0; switch(x)
{ case 1:
switch(y)
{ case 0: a++; break; case 1: b++; break; } case 2: a++; b++; break; } printf(\"a=%d,b=%d\\n\运行结果_____________ 2. 写出程序的运行结果 main()
{ int i=0,j=4; while(iif(i%3!=0) continue; j--; }printf(\"%d,%d\\n\运行结果__________ 3. 写出程序的运行结果 main()
{ int i=0,s=0; do
{ if(i%2) { i++;
continue; } i++; s+=i;
} while(i<7);
printf(\"s=%d\\n\ }
运行结果__________ 4. 写出程序的运行结果 main() { int j;
for(j=1;j<10;j+=2)
{ if(j%3==0) printf(\"*\"); else continue; printf(\"#\"); } printf(\"\\n\"); } 5. 写出程序的运行结果 main()
{ int i,a=0,b=0;
for(i=0;i<5;i++) switch(i)
{ case 0: a++;b++; case 1: a++;break; case 2: b++;
case 3: b++;break; default: a++;b++; } printf(\"a=%d\\n\ printf(\"b=%d\\n\运行结果_____________ _____________ 6. 写出程序的运行结果 main()
{ int a=0,i;
for(i=1;i<5;i++) switch(i) { case 0:
case 3: a+=2; case 1:
case 2: a+=3; default: a+=5; } printf(\"%d\\n\运行结果_____________ 7. 写出程序的运行结果 main()
{ int num,i;
scanf(\"%d\ while(num!=0) { i=num%10;
printf(\"%d\ num/=10; } printf(\"\\n\"); }
当输入27356时,显示___________ 8. 写出程序的运行结果 main()
{ int n,m=0;
scanf(\"%d\ while(n!=0) { m+=n%10; n/=10; }
printf(\"m=%d\\n\
输入12324时,则显示_____________ 输入34235时,则显示_____________ 9. 写出程序的运行结果
7
C语言练习题资料
main()
{ int i,j,x=0; for(i=0;i<2;i++) { x++;
for(j=0;j<3;j++) { if(j%2) continue; x++; } x++; } }
printf(\"x=%d\\n\运行结果 ________ 10. 写出程序的运行结果 main()
{ int p[]={11,13,14,15,16,17,18},i=0,j=0; while(i<7&&p[i]%2==1) j+=p[i++];
printf(\"%d,%d\\n\运行结果_____________
______________
11. 写出程序的运行结果 int fun(char *s) { char *p; p=s;
while(*p!='\\0') p++;
return p-s; } main()
{ printf(\"%d\\n\
printf(\"%d\\n\ printf(\"%d\\n\运行结果_______________ _______________ _______________ 12. 写出程序的运行结果 int fun(int n) { int num=1; do
{ num*=n%10;
n/=10; } while(n!=0); return num; } main() { int n;
scanf(\"%d\
printf(\"%d\\n\输入1234,则显示______________
8
输入1305, 则显示______________ 13. 写出程序的运行结果 void swap(int *x,int *y) { int t; t=*x; *x=*y; *y=t; } main()
{ int a,b;
scanf(\"%d,%d\ swap(&a,&b);
printf(\"a=%d,b=%d\\n\输入3,5,则显示___________ 输入6,4,则显示___________ 14. 写出程序的运行结果 int fun(int n) { int i,s=1;
for(i=1;i<=n;i++) s*=i;
return s; } main()
{ int i,s=0;
for(i=1;i<=4;i++) s+=fun(i);
printf(\"s=%d\\n\运行结果____________ 15. 写出程序的运行结果 void fun(int x) { static int f=1; int sum=0; f*=x; sum+=x;
printf(\"%d,%d\\n\main() { int i;
for(i=1;i<=4;i++) fun(i); }
运行结果______________ ______________ ______________ ______________ 16. 写出程序的运行结果 #include int f(int a)C语言练习题资料
{ int b=0;
static int c=3; b++; c++;
return a+b+c; } main()
{ int i,a=2;
for(i=0;i<3;i++)
printf(\"%d\\n\运行结果______________ ______________ ______________ 17. 写出程序的运行结果 int sub(int *s) { static int t=0; t=*s+t; return t; } main()
{ int i,k;
for(i=1;i<4;i++) { k=sub(&i);
printf(\"%3d\\n\运行结果______________ ______________ ______________ 18. 写出程序的运行结果 int fun()
{ static int x=0; int t=0; switch(x)
{ case 0: t+=x++;
case 1: t+=x++;break; case 2: t+=x++;
case 3: t+=x++;break; default: t+=x++; } return t+=x++; } main()
{ int i,s=0;
for(i=0;i<3;i++) s+=fun();
printf(\"s=%d\\n\运行结果______________ 19. 写出程序的运行结果 #define f(x) x*x
main()
{ int a=6,b=2,c; c=f(a)/f(b);
printf(\"%d\\n\运行结果______________ 20. 写出程序的运行结果 #define S(x) 4*x*x-1 main()
{ int i,j; i=2;j=3;
printf(\"%d\\n\ printf(\"%d\\n\}
运行结果______________ ______________ 21. 写出程序的运行结果
#define MIN(x,y) (x)<(y)?(x):(y) main()
{ int i=10,j=15,k; k=10*MIN(i,j); printf(\"%d\\n\}
22. 写出程序的运行结果
#define MAX(x,y) (x)>(y)?(x):(y) main()
{ int a=5,b=2,c=3,d=3,t; t=MAX(a+b,c+d)*10; printf(\"%d\\n\}
运行结果______________ 23. 写出程序的运行结果 main()
{ int a=2,b=3,c=4; { int c; c=a*b++; c+=a++;
printf(\"%d,%d,%d\\n\ }
printf(\"%d,%d,%d\\n\}
运行结果________________ ________________
9