C语言程序设计单元测试一 下载本文

内容发布更新时间 : 2024/5/27 22:10:56星期一 下面是文章的全部内容请认真阅读。

C语言单元测试一(1-4章)

一、选择题:(每题2分,共66分)

1.若有定义语句int b=2; 则表达式 (b<<2)/(3||b)的值是 A)4 B)8 C)0 D)2 2.有以下程序

#include main()

{ char a='H';

a=(a>='A'&&a<='Z') ? (a-'A'+'a'):a; printf(\}

程序运行后的输出结果是

A)A B)a C)H D)h

3.若以下选项中的变量全部为整型变量,且已正确定义并赋值,则语法正确的switch语句是 A)switch(a+9)

{ case c1 : y=a-b; case c2 : y=a+b; }

B)switch a*b

{ case 10 : x=a+b; Default : y=a-b; }

C)switch(a+b)

{ case1 : case3 : y=a+b;break; case0 : case4 : y=a-b; }

D)switch(a*a+b*b) { default : break;

case 3 : y=a+b;break; case 2 : y=a-b;break; }

4.在C语言中,字符型数据在内存中以( )形式存放。 A

)原码 B)ASCII码 C)反码 D)BCD码 5.下列关系表达式中,结果为“假”的是

A)(3+4)>6 B)(3!=4)>2 C)3<=4||3 D)(3<4)==1 6.C语言中char类型数据占字节数为 A)3 B)4 C)1 D)2 7.若有定义和语句:int a,b;scanf(\以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是(说明:符号□表示空格)

A)3,5, B)3,5,4 C)3□,5 D)3,5 8.在C语言中,要求运算数必须是整型的运算符是 A)/ B)++ C)!= D)% 9.已知各变量的类型说明如下:

int i=8,k,a,b; unsigned long w=5; double x=1.42,y=5.2; 则以下正确的表达式是

A)a + = a-= (b=4) * (a=3) B)a = a * 3=2 C)x % (-3) D)y = float(i) 10.以下叙述中错误的是

A)非零的数值型常量有正值和负值的区分 B)常量是在程序运行过程中值不能被改变的量

1

C)定义符号常量必须用类型名来设定常量的类型 D)用符号名表示的常量叫符号常量 11.以下选项中表示一个合法的常量是(说明:符号□表示空格) A)9□9□9 B)0Xab C)123E0.2 D)2.7e 12.变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是

A)a^b B)a|b C)a&b D)a<<4 13.当变量c的值不为2、4、6时,值也为“真”的表达式是

A)(c==2)||(c==4)||(c==6) B)(c>=2 && c<=6) || (c!=3)||(c!=5) C)(c>=2 && c<=6) && !(c%2) D)(c>=2 && c<=6) && (c%2!=1) 14.有以下程序段

char ch; int k; ch='a'; k=12;

printf(\printf(\

已知字符a的ASCII码值为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 15.int a=123,b=12345;

printf(“M,M”,a,b);的输出结果为(说明:符号□表示空格)

A)□123,1234 B)123,12345 C)□123,12345 D)123□,1234 16.以下程序的运行结果是 void main() { int m=5;

if (m++ > 5) printf (\ else printf (\}

A)4 B)5 C)6 D)7

17.设以下变量均为int类型,则值不等于7的表达式是

A)(x= y= 6, x+y,x+1) B)(x= y= 6,x+y,y+1) C)(x= 6,x+1,y= 6,x+y) D)(y=6,y+l,x = y,x+1) 18.以下关于运算符优先顺序的描述中正确的是

A)关系运算符< 算术运算符< 赋值运算符< 逻辑与运算符 B)逻辑运算符< 关系运算符< 算术运算符< 赋值运算符 C)赋值运算符< 逻辑与运算符< 关系运算符< 算术运算符 D)算术运算符< 关系运算符< 赋值运算符< 逻辑与运算符 19.以下选项中可作为C语言合法常量的是

A)-80 B)-080 C)-8e1.0 D)-80.0e 20.下列可用于C语言用户标识符的一组是

A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof 21.有以下程序

#include main()

{ int a=24,b;

b=a>>2;printf(\}

程序运行后的输出结果是

A)2 B)4 C)6 D)8

22.以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97) A)printf(\)printf(\C)printf(\)printf(\23.下列条件语句中,输出结果与其他语句不同的是

A)if(a) printf(\B)if(a==0) printf(\C)if(a!=0) printf(\D)if(a==0) printf(\24.有以下程序

#include main()

{ int a=1,b=0; if(--a) b++;

else if(a==0) b+=2; else b+=3;

printf(\}

程序运行后的输出结果是

A)0 B)1 C)2 D)3

25.若有定义语句:int k1=10,k2=20; ,执行表达式 (k1=k1>k2)&&(k2=k2>k1)后,k1和k2的值分别为A)0和1 B)0和20 C)10和1 D)10和20

26.若有定义语句:int x=12,y=8,z; ,在其后执行语句z=0.9+x/y;,则z的值为 A)1.9 B)1 C)2 D)2.4

27.若有定义语句:int a=10;double b=3.14; ,则表达式 'A'+a+b 值的类型是 A)char B)int C)double D)float 28.有以下程序

#include main()

{ unsigned char a=8,c; c=a>>3;

printf(\}

程序运行后的输出结果是

A)32 B)16 C)1 D)0

29.有以下定义:int a; long b; double x,y;,则以下选项中正确的表达式是

A)a%(int)(x-y) B)a=x!=y; C)(a*y)%b D)y=x+y=x 30.若有定义语句: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) 31.有以下程序

#include main()

{ int x=011;

printf(\}

程序运行后的输出结果是

A)12 B)11 C)10 D)9

32.能正确表示“当x 的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是

A)(x>=1) && (x<=10) && (x>=200) && (x<=210) B)(x>=1) || (x<=10) || (x>=200) || (x<=210) C)(x>=1) && (x<=10) || (x>=200) && (x<=210) D)(x>=1) || (x<=10) && (x>=200) || (x<=210) 33.以下叙述中错误的是

A)C程序在运行过程中所有计算都以二进制方式进行 B)C程序在运行过程中所有计算都以十进制方式进行 C)所有C程序都需要编译链接无误后才能运行

D)C程序中整型变量只能存放整数,实型变量只能存放浮点数

二、填空题(每空2分,共20分)

1.有以下程序: main( )

{ int k=0; char c1=’a’,c2=’b’;

scanf(\若运行时从键盘输入:55 A B<回车>,则输出结果是______________。

2.若运行以下程序时输入:1605<回车>,则程序的运行结果是______________。 main()

{ int t,h,m; scanf(\ if(h==0) h=12; printf(\ m =t % 100;

if(m<10) printf(\ if(t<1200 || t==2400) printf(\ else printf(\}

3.有以下程序

#include main()

{ int n1=0,n2=0,n3=0; char ch; ch=getchar(); switch(ch)

{ case '1':case '3': n1++;break; case '2':case '4': n2++;break; default: n3++;break; }

printf(\}

若程序运行时输入3412<回车>,则输出结果是__________。 4.阅读下面语句,则程序的执行结果是______________。 #include \main()

{ int a=-1,b=1,k;

if((++a<0)&&!(b--<=0)) printf(\ else printf(\}

2

5.请写出与 !(a<=b) 等价的C语言表达式______________。

6.以下程序运行时从键盘输入:1.0 2.0 ,输出结果是:1.000000 2.000000,请填空。 #include main()

{ double a; float b;

scanf(\}

7.以下程序的运行结果是______________。 main()

{ int x,y,z; x=2;y=1;z=0; x=x||y&&z; printf(\8.有以下程序

#include main() { int x;

scanf(\

if(x>15) printf(\ if(x>10) printf(\ if(x>5) printf(\}

若程序运行时从键盘输入12<回车>,则输出结果为__________。 9.有以下程序

#include main()

{ int x, y; scanf(\程序运行时输入:1234567程序的运行结果是______________。

10.若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a,b值的语句______________。 ****a=10,b=20****

x x≤0 0

y 0 x 10 -0.5x+20 2.编写程序实现功能:根据下表中的函数关系,对输入的x值,计算出相应的y值。

三、编程题(每题7分,共14分)

1、编写程序,实现功能:输入整数a和b,若a+b>100,则输出a+b之和的百位以上数字,否则直接输出a+b的和。

3

2

2

2

2

2

2