《C语言单元测验一(1-4章)答案(4页).doc》由会员分享,可在线阅读,更多相关《C语言单元测验一(1-4章)答案(4页).doc(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-C语言单元测验一(1-4章)答案-第 4 页C语言单元测试一(1-4章)一、选择题:(每题2分,共66分)1若有定义语句int b=2; 则表达式 (b2)/(3|b)的值是A)4 B)8 C)0 D)22有以下程序#include main() char a=H; a=(a=A&a6 B)(3!=4)2 C)3=4|3 D)(34)=16C语言中char类型数据占字节数为A)3 B)4 C)1 D)27若有定义和语句:int a,b;scanf(%d,%d,&a,&b);以下选项中的输入数据,不能把值3赋给变量a、5赋给变量b的是(说明:符号表示空格)A)3,5, B)3,5,4 C)3,
2、5 D)3,58在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)常量是在程序运行过程中值不能被改变的量C)定义符号常量必须用类型名来设定常量的类型 D)用符号名表示的常量叫符号常量11以下选项中表示一个合法的常量是(说明:符号
3、表示空格)A)999 B)0Xab C)123E0.2 D)2.7e12变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是A)ab B)a|b C)a&b D)a=2 & c=2 & c=2 & c 5) printf (%dn, m); else printf (%dn, m- );A)4 B)5 C)6 D)717设以下变量均为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)
4、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.0e20下列可用于C语言用户标识符的一组是A)void, define, WORD B)a3_3,_123,Car C)For, -abc, IF Case D)2a, DO, sizeof21有以下程序#inclu
5、de main() int a=24,b; b=a2;printf(%dn,b);程序运行后的输出结果是A)2 B)4 C)6 D)822以下不能输出字符A的语句是(注:字符A的ASCII码值为65,字符a的ASCII码值为97)A)printf(%cn,a-32); B)printf(%dn,A);C)printf(%cn,65); D)printf(%cn,B-1);23下列条件语句中,输出结果与其他语句不同的是A)if(a) printf(%dn,x); else printf(%dn,y);B)if(a=0) printf(%dn,y); else printf(%dn,x);C)if
6、(a!=0) printf(%dn,x); else printf(%dn,y);D)if(a=0) printf(%dn,x); else printf(%dn,y);24有以下程序#include main() int a=1,b=0; if(-a) b+; else if(a=0) b+=2; else b+=3; printf(%dn,b);程序运行后的输出结果是A)0 B)1 C)2 D)325若有定义语句:int k1=10,k2=20; ,执行表达式 (k1=k1k2)&(k2=k2k1)后,k1和k2的值分别为A)0和1 B)0和20 C)10和1 D)10和2026若有定义语
7、句:int x=12,y=8,z; ,在其后执行语句z=0.9+x/y;,则z的值为A)1.9 B)1 C)2 D)2.427若有定义语句:int a=10;double b=3.14; ,则表达式 A+a+b 值的类型是A)char B)int C)double D)float28有以下程序#include main() unsigned char a=8,c; c=a3; printf(%dn,c);程序运行后的输出结果是A)32 B)16 C)1 D)029有以下定义:int a; long b; double x,y;,则以下选项中正确的表达式是A)a%(int)(x-y) B)a=x
8、!=y; C)(a*y)%b D)y=x+y=x30若有定义语句: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(%dn,+x);程序运行后的输出结果是A)12 B)11 C)10 D)932能正确表示“当x 的取值在1,10和200,210范围内为真,否则为假”的表达式是A)(x=1) & (x=200) & (x=1) | (x=200) | (x=1) & (x=200) & (x=1) | (x=2
9、00) | (x=210)33以下叙述中错误的是A)C程序在运行过程中所有计算都以二进制方式进行B)C程序在运行过程中所有计算都以十进制方式进行C)所有C程序都需要编译链接无误后才能运行D)C程序中整型变量只能存放整数,实型变量只能存放浮点数二、填空题(每空2分,共20分)1有以下程序: main( ) int k=0; char c1=a,c2=b; scanf(%d%c%c,&k,&c1,&c2); printf(%d,%c,%cn,k,c1,c2); 若运行时从键盘输入:55 A B,则输出结果是_。2若运行以下程序时输入:1605,则程序的运行结果是_。main() int t,h,m
10、; scanf(%d,&t); h=(t/100)%12; if(h=0) h=12; printf(%d:,h); m =t % 100; if(m10) printf(0); printf(%d,m); if(t1200 | t=2400) printf(AM); else printf(PM);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; p
11、rintf(%d%d%dn,n1,n2,n3);若程序运行时输入3412,则输出结果是_。4阅读下面语句,则程序的执行结果是_。#include stdio.hmain() int a=-1,b=1,k; if(+a0)&!(b-=0) printf(%d,%dn,a,b); else printf(%d,%dn,b,a);5请写出与 !(a=b) 等价的C语言表达式_。6以下程序运行时从键盘输入:1.0 2.0 ,输出结果是:1.000000 2.000000,请填空。#include main() double a; float b; scanf(_,&a,&b);printf(%f %f
12、n,a,b);7以下程序的运行结果是_。main() int x,y,z; x=2;y=1;z=0; x=x|y&z; printf(%d,%d,x,x&!y|z); 8有以下程序#include main() int x; scanf(%d,&x); if(x15) printf(%d,x-5); if(x10) printf(%d,x); if(x5) printf(%dn,x+5);若程序运行时从键盘输入12,则输出结果为_。9有以下程序#include main() int x, y; scanf(%2d%3d,&x,&y); printf(%dn,x+y); 程序运行时输入:1234567程序的运行结果是_。10若程序中已给整型变量a和b赋值10和20,请写出按以下格式输出a,b值的语句_。*a=10,b=20*三、编程题(每题7分,共14分)1、编写程序,实现功能:输入整数a和b,若a2+b2100,则输出a2+b2之和的百位以上数字,否则直接输出a2+b2的和。2编写程序实现功能:根据下表中的函数关系,对输入的x值,计算出相应的y值。 xyx000x10x10x201020xb%lf%f1,01217910357printf(*a=%d,b=%d*n,a,b);