当前位置:文档之家› (完整版)C语言基础知识综合练习题

(完整版)C语言基础知识综合练习题

一、C语言基本知识和基本语句(一)选择题1.设a,b和c都是int型变量,且a=3,b=4,c=5则下面的表达式中,值为零的表达式是()。

A)‘a’&&’b’ B) a<=bC) a || b+c&&b-c D) ! ((a<b)&&! C|| 1)2.设ch是char型变量,其值为A字符,且有表达式:ch= (ch >= ‘A’ && ch <=‘Z’) ? ( ch + 32):ch,则表达式ch的值是()字符。

A) A B) a C) Z D) z3.若x和y都是int 型变量,x=100,y=200,且有程序段:printf (“%d”,(x,y));则输出结果是()。

A) 200 B)100 C) 100,200 D)输出格式不够,输出不确定的值4.C语言中最简单的数据类型包括()。

A)整型、实型、逻辑型 B) 整型、单精度型、双精度、字符型 C) 整型、字符型、逻辑型 D) 整型、实型、逻辑型、字符型5.C语言中,运算对象必须是整型的运算符是()。

A)% B) / C) % 和 / D) **6.数学关系x≥y≥z ,它对应C语言表达式是()。

A)(x>=y)&& (y>=z ) B) (x>=y) AND (y>=z )C) (x>=y>=z) D) (x>=y) & (y>=z )7.以下说法中正确的是()。

A)C语言程序总是从第一个定义的函数开始执行B) 在C语言程序中,要调用的函数必须在main()函数中定义C) C语言程序总是从main()函数开始执行D) C语言程序中的main()函数必须放在程序的开始部分8.设int x=10,y=3,z;则语句printf (“%d\n”,z=(x%y,x/y));的输出结果是()。

A) 1 B) 0 C) 4 D) 39.C语言表达式10 != 9 的值是()。

A)true B) 非零值 C) 0 D) 110.合法的C语言字符常量是()。

A)’\t’B) “A” C) 65 D) A11.若int类型数据占两个字节,则下列语句的输出为()。

int k = -1 ;printf (“%d,%u\n ”,k,k);A)- 1,- 1 B) – 1,32767 C) –1,32768 D) –1,65535 12.组成C语言程序的是()。

A)子程序 B) 过程 C) 函数 D) 主程序和子程序13.以下的选项中,正确的赋值语句是()。

A)i++; B)a=1,b=2; C) a=b=5 D) y=int(x);14. 以下不符合C语言语法的语句是()。

A)i++; B)i=j=5; C)k=2*4,k*4; D) y=float(i)15. 下列程序的输出结果是()。

main(){ int a=9;a+=a-=a+a;printf(“%d\n”,a); }A) 18 B) 9 C) –18 D) –916. 下列语句的输出结果是()。

printf(“%d\n”,(int)(2.5+3.0)/3);A)有语法错误不能通过编译 B) 2 C) 1 D) 017.下列程序的输出是()。

main(){ int a = 7,b=5;printf(“%d\n”,b=b/a); }A)有语法错误不能通过编译 B) 2 C) 1 D) 018.请阅读程序()。

main(){ int a;float b,c;scanf(“%2d%3f%4f”,&a,&b,&c);printf(“\na=%d,b=%f,c=%f\n”,a,b,c); }若运行时从键盘上输入9876543210<CR>(CR表示回车),则上面程序的输出结果是()。

A)a=98,b=765,c=4321 B) a=10,b=432,c=8765C) a=98,b=765.000000,c=4321.000000 D) a=98,b=765.0,c=4321.0 19.以下程序的输出结果是()。

main(){ int a=-1,b=4,k;k=(++a<0)&&! (b - -<=0);printf (“%d%d%d\n”,k,a,b); }A) 1 0 4 B) 1 0 3 C) 0 0 3 D) 0 0 420.下列程序的输出结果是()。

main(){ int i,j,k,a=3,b=2;i=(- -a= =b++)?- - a :++b;j=a++;k=b;printf (“i=%d,j=%d,k=%d\n”,i,j,k);}A)i=2,j=1,k=3 B) i=1,j=1,k=2 C) i=4,j=2,k=4 D) i=1,j=1,k=3(二)填空题1.在C语言中,double类型数据占个字节;char类型数据占个字节。

2.设C语言中,int 类型数据占2个个字节,则long类型数据占个字节;unsigned int类型数据占个字节;short类型数据占个字节;3.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.37))值的数据类型为4.假设m是一个三位数,从左到右用a,b,c表示每一位的数字,若从左到右数字是bac的三位数,则在C语言中用m表示bac的表达式是二、C语言选择和循环结构1.在C语言中,能代表逻辑值“真”的是()。

A)true B) 大于0的数 C) 非0整数 D) 非0的数2.若给定条件表达式(M)?(a++): (a--);则其中表达式MA)和(M==0)等价 B) 和(M==1)等价C) 和(M!=0)等价 D) 和(M!=1)等价3.在C语言的if语句中,用作判断的表达式是()。

A)关系表达式 B)逻辑表达式 C)算术表达式 D)任意表达式4.若变量已正确定义,则以下程序段的输出为()。

int a=2;b=3;printf(a>b?“* * * a=%d”:“# # # b=%d”,b);A)没有正确的输出格式控制 B) * * * a=2C) # # # b=3 D) * * * a= 2# # # # b=35.以下程序段的输出结果为()。

int a=1;b=2,c=2,t=0;while(a<b) {t=a;a=b;b=t;c++;}printf(“%d,%d,%d”,a,b,c );A)1,2,0 B) 2,1,0 C)1,2,1 D) 2,1,36.已知int x=10,y=20,z=30;以下语句执行后x,y,z的值是()。

if (x>y) z=x;x=y;y=z;A) x=10,y=20,z=30 B) x=20,y=30,z=30C) x=20,y=30,z=10 D) x=20,y=30,z=207.以下程序的运行结果是()。

main( ){ int m=5;if (m++>5) printf (“%d\n”,m);else printf (“%d\n”,m--); }A)4 B) 5 C) 6 D) 78. 以下不正确的语句是()。

A)if (x>y);B) if (x=y)&&(x!=0) x+=y;C) if (x!=y) scanf(“%d”,&x);else scanf(“%d”,&y);D) if (x<y) {x++;y++;}9. 若w、x、y、z、m均为int型变量,则执行下面语句后的m 值是()。

w=1;x=2;y=3;z=4;m=(w<x)?w:x;m=(m<y)?m:y;m=(m<z)?m:z;A)1 B) 2 C) 3 D) 410.下面有关for循环的正确描述是()。

A)for 循环只能用于循环次数已经确定的情况B)for 循环是先执行循环体语句,后判断表达式C)在for 循环中,不能用break语句跳出循环体D)for 循环的循环体中,可包含多条语句,但必须用花括号括起来11.若i为整数变量,则以下循环执行的次数是()。

for(i=2;i==0;) printf(“%d”,i--);A)无限次 B) 0次 C) 1次 D) 2次12.执行语句for(i=1;i++< 4;);后变量i的值是()。

A) 3 B) 4 C) 5 D) 不定13.以下正确的说法是()。

A)continue 语句的作用是结束整个循环的执行B) 只能在循环体内和switch语句体内使用break语句C) 在循环体内使用break语句或continue语句的作用相同D) 在多层循环嵌套中退出时,只能使用goto语句14. 以下程序的功能是判断输入的年份是否是闰年。

请在填入正确内容main ( ){ int y,f;scanf (“%d”,&y);if (y%400 = = 0) f=1;else if ( ①) f=1;else ②;if (f) printf(“%d is ”,y);else printf(“%d is not ”,y);printf (“a leap year \n”); }15.有四个数a,b,c,d 要求按从大到小的顺序输出请在内填入正确内容main( ){ int a,b,c,d,t;scanf(“%d %d %d %d”,&a,&b,&c,&d);if (a<b) {t=a;a=b;b=t;}if ( ①) {t=a;a=d;d=t;}if (a<c) {t=a;a=c;c=t;}if (②) {t=b;b=c;c=t;}if (b<d) {t=b;b=d;d=t;}if (c<d) {t=c;c=d;d=t;}printf (“%d %d %d %d\n”,a,b,c,d); }16.以下程序的功能是()。

从键盘输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。

main ( ){ float x,amax,amin;scanf (“%f”,&x);amax = x;amin = x;while ( ①){ if (x>amax) amax = x;if ( ②) amin = x;scanf (“%f”,&x);}printf (“\namax = %f\namin = %f\n”,amax,amin);}17.以下程序的功能是计算1-3+5-7+……-99+101的值,请填空。

main ( ){ int i,t =1,s = 0;for (i= 1; i< =101;i+=2){ ①; s = s+t; ②;}printf (“%d\n”,s);}或:main ( ){ int i,t =1,s = 0;for (i= 1; i< =101;i+=2){ s = s+t*i; ③;}printf (“%d\n”,s);}18.若用0至9之间不同的三个数构成一个三位数,下面程序统计出共有多少种方法。

相关主题