您的当前位置:首页C语言练习题

C语言练习题

2024-02-19 来源:乌哈旅游
C语言练习题资料

一、 单项选择题:每小题给出的四个选项中,只有一个是符合题目要求的。 1. 在C语言中,下列5种基本数据类型的存储空间长度的排列顺序正确的是

A.charA. FILE B. auto C. define D. Else 3. 在C程序中,不能作为变量名的是

A. w B.  C. Q2 D. _m 4. 下列用户自定义标识符正确的是

A. 4a B. b_1 C. -& D. *p 5. 在C语言中,非法的字符常量是

A. '\' B. '\\17' C. \"\\n\" D. '\\xaa' 6. 在C语言中,转义字符中正确的是

A. '\\' B. '\\xyz' C. '\\\\' D. '\\8 20' 7. 以下选项中可用作C程序合法实数的是

A. .1e0 B. 3.0e0.2 C. E9 D. 9.12E 8. 在C语言中,合法的实型常数是

A. 5E2.0 B. E-3 C. .2E0 D. 1.3E 9. 下列运算符的操作数必须是整型的是

A./ B. ! C. % D. = 10. 在C语言中,表达式3.6-5/2+1.2+5%2的值是

A. 4.3 B. 4.8 C. 3.3 D. 3.8 11. 设int a=0,b=1;,下列语句错误的是 ..A. a=b=10; B. a++; C. b+=a; D.(a+b)++; 12. 若有定义语句:int a=3,b=2,c=1;,以下选项中错误的赋值表达式是

A. a=(b=4)=3 B. a=b=c+1 C. a=(b=4)+c D. a=1+(b=c=4) 13. 设int i=8,a,b; double x=1.42,y=5.2;,正确的表达式是

A. a+=(b=4)*(a=3) B. a=a*3=2 C. x%(-3)+y*3 D. y=float(i) 14. 能正确表达数学关系式0≤x<20的C语言表达式是

A. 0<=x<20 B. x>=0||x<20 C. x>=0&&x<20 D. !(x<=0)&&x<20 15. 设int i=3,j=3;,表达式i+++j的值是

A. 6 B. 7 C. 8 D. 9 16. 设char c='A';int i=1,j;,执行j=!c&&i++;后,i和j的值分别是

A. 1和0 B. 1和1 C. 2和0 D. 2和l 17. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是

A. 1和2 B. 2和3 C. 3和4 D. 4和5 18. 在C语言中,假设所有变量均为整型,则表达式(a=3,b=7,a++,a+b)的值是

A.1O B.11 C.4 D. 13 19. 设 int x=-1,则表达式x++&&(++x||++x)的值是

A. 1 B. 2 C. 0 D. -1 20. 假设所有量为整型,表达式a=2,b=5,a>b?a++:b++,a+b的值是

1

C语言练习题资料

A.5 B.8 C.9 D.2 21. 下列选项中,不能正确描述x为偶数的表达式是

A. x%2==0 B. !(x%2) C. x%2 D. !(x%2)==1 22. 在C语言中,若有下列程序段:

int x=1,y=2;

x=x+y;y=x-y;x=x-y;

则执行后x和y的值分别为

A. 1和2 B. 2和2 C. 2和1 D. 1和1 23. 表达式a+=a-=a=9的结果为

A. 9 B. -9 C. 18 D. 0 24. 设int a=l,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是

A. 0 B. 1 C. 2 D. 3 25. 设int n=0;执行表达式n||(n=-1)||(n=0)||(n=1)||(n=2)后n的值是

A.-1 B. 0 C. 1 D. 2 26. 下列程序段执行后的输出结果是

int k=4,a=3,b=2,c=1;

printf(\"%d\\n\",kA. 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

因篇幅问题不能全部显示,请点此查看更多更全内容