《C语言程序设计习题及答案.pdf》由会员分享,可在线阅读,更多相关《C语言程序设计习题及答案.pdf(117页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、算法与程序设计1.将三个数排序需要比较 次A、2 B、3 C、4 D、不确定2.算法的表示方法有A、自然语言,传统流程图,N-S流程图,伪代码,计算机语言B、高级语言,汇编语言,机器语言C、C 语言,QBASIC 语言,InterDevD、图形图像法,描述法,编程法E、计算机语言3.算法的表示方法有4.算法有哪些特性?5.什么叫算法?为什么要提倡结构化算法?习题答案:1.B 2.A 3 自然语言,传统流程语言,N-S流程图,伪代码,计 算 机 语 言 4.略 5.略C 语言概述1 .c 语言程序的基本单位是(A)。A、函 数 B、过程 C、子 程 序 D、子例程2.下列各选项中,合法的c 语言
2、关健字是(D)。A、in teg ex B、sin C、string D、void3.下列选项中,是 C 语言提供的合法的关键字的是(C)A、swicth B、cher C、default D、Case4.下列叙述不正确的是(B)A、在c程序中,%是只能用于整数运算的运算符B、在C程序中,无论是整数还是实数,都能正确无误地表示U 若a是实型变量,c程序中a=20是正确的,因此实型变量允许被整型数赋值D、在c程序中,语句之间必须要用分号“r分隔5.在C程序中,可以作为用户标识符的一组标识符是(B)。A、void define WORD B、as_b3 _224 ElseC、switch _wel
3、 ease D、4b DO SIG6.下列不合法的十六进制数是(A)A、oxff B、OXcde C、Oxll D、0 x237.在c语言中,下列合法的字符常量是(B)A.039 B、x76 C ab D.o8以下选项中合法的用户标识符是(D)A、int B、a#C、5mem D、_2439.(A)是构成c语言程序的基本单位A、函数 B、变 量C、子 程 序D、语句10.一个C语言程序总是从(B)开始执行A、主 过 程B、主 函 数C、子 程 序D、主程序11.以下叙述不正确的是(D)A、一个c源程序可由一个或多个函数组成B、一个C源程序必须包含一个main。函数C、c程序的基本组成单位是函数
4、D、在C程序中,注释说明只能位于一条语句的后面12.在C语言中,数字029是一个(D)A八 进 制 数B十六进制数C十进制数.D非法数13.C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)oA必须为字母 B必须为下划线C必须为字母或下划线 D可以是字母、数字和下划线中任意一种字符14.C语言可执行程序的开始执行点是(C)A程序中的一条可执行语句 B程序中第一个函数C程序中的main函数 D包含文件中的第一个函数15.C程序是(B)A顺 序 执 行B从Main函 数 开 始C从函数体开始D任意语句16.C语言程序由(C)组成A子 程 序B过 程C函 数D主程序段程序17.
5、以下说法中正确的是(C1AC语言程序中是从第一定义的函数开始执行B 在C语言程序中,要调用的函数必须在main。函数中定义CC语言程序总是从main。函数开始执行DC语言程序中的main()函数必须放在程序的开始部分18.以下叙述正确的是(C)A、在 C 程序中,main函数必须位于程序的最前面B、C 程序的每行中只能写一条语句 U C 语言本身没有输入输出语句D、在对一个C 程序进行编译的过程中,可发现注释中的拼写错误19.以下叙述不正确的是(D)A 一个C 源程序可由一个或多个函数组成B 一个C 源程序必须包含一个main函数U C 程序的基本组成单位是函数D 在 C 程序中,注释说明只能
6、位于一条语句的后面20.C 语言规定,在一个源程序中,main函数的位置(C)A、必须在最开始B、必须在系统调用的库函数的后面C、可以任意 D、必须在最后21.C 源程序的基本单位是函数22.2 2.在一个C 源程序中,注释部分两侧的分界符分别为/*,*/2 3.函数体用花括号 开始,用花括号 结束。24.C程序执行过程生成的3种文件及扩展名为源文件.cpp,目标文件Qbj,可执行文件.exe25.C语言中的标识符只能由3种字符组成,它们是数字、字母和下划线27.2829.一个c语言程序的开发过程包括:编辑、编译、连接和运行4个步骤。最简单的程序设计1.以下程序的输出结果是main()int
7、a=3;printf(%dn,(a+=a-=a*a);)A、-6 B、12 C、0 D、-122.以下程序的输出结果是main()char c=z;printf(%c,c-25);)A、a B、Z C、z-25 D、y3.以下程序的输出结果是main()int a=5,b=4fc=6fd;printf(%dn,d=a b?(a c?a:c):(b);)A、5 B、4 C、6 D、不确定4.下列程序执行后的输出结果是main()char x=OxFFFF;printf(%d n,x);A、-32767 B、FFFE C、-108 D、-327685.语句 printf(abrehiVyboun)
8、的输出结果是(说明:b是退格符)har x=0 xFFFF;printf(%d n,x-)A、abrehiybouB、abrehiybouC、rehiyou D、abrehiybou6.请读程序int i=65536printf(%dn,i);上面程序的输出结果是一A、65535 B、0 C、有语法错误,无 输 出 结 果 D、17.设x 为 int型变量很!J执行以下语句后,x 的值为x=10;x+=x-=x-x;A、10 B、20 C、40 D、308.下面程序的输出是main()int x=023;printf(%dn,x);)A、17 B、18 C、23 D、249.以下程序的输出结果
9、是main()char str12=s,t,r,ifn,g);printf(%dn,strlen(str);)A、6 B、7 C、11 D、1210.语句:printf(%d n,12&12);的输出结果是A、12 B、1 C、24 D、011.下面哪个是C 语言中的正确赋值语句;A、a=l,b=2 B、i+;C、a=b=5 D、y=int(x)12.执行程序段char str20=a,b,f,c,o);int len=strlen(str);变 量len的值为()A、20 B、4 C、3 D、3 或 4 或 2013.有以下程序#indudemain()int a,b,c=246;a=c/1
10、00%9;b=(-l)&(-l);printf(%d,%dnfa,b);)输出结果是A、2,1 B、3,2 C、4,3 D、2,-114.已知字母A的ASCII码为十进制的65,下面程序的输出是main()(char chl,ch2;chl=A+5-,3,;ch2=,A+,6-,3;printf(%d,%cn,chl,ch2);)A、67,D B、B,C C、C.D D、不确定的值15.以下程序运行后,输出结果是main()char s=abcde;s+=2;printf(%ldn,s);)A.cde B、字符(:的ASCII码 值C、字符c 的地址D、出错16.若有以下定义和语句:char
11、sl=,12345,f s2=,1234r,;printf(,%dn,strlen(strcpy(sl,s2);则输出结果是A、4 B、5 C、9 D、1017.请读程序片段(字符串内没有空格字符):printf(%dn,strlen(ATSnO12l);上面程序片段的输出结果是A、11 B、9 C、10 D、818.以下程序的输出结果是main()int x=10fy=10;printf(%d%dn,x,-y);)A、10 10 B、9 9 C、9 10 D、10 919.请读程序:main()int A;float B,C;scanf(%2d%3f%4f,&A,&B,&C);printf(
12、nA=%d,B=%f,C=%fn,A,BfC);)若运行时从键盘上输入9876543210俵示回车),则上面程序的输出结果是A、A=98,B=765,C=4321B、A=10,B=765.000000,C=4321.000000C、A=98,B=765.0,C=4321.0D、以上答案都不正确20.请读程序:main()int A;float B,C;scanf(%2d%3f%4f,&A,&B,&C);printf(nA=%d,B=%ffC=%fn,AfB,C);)若运行时从键盘上输入9876543210(表示回车),则上面程序的输出结果是A、A=10,B=765.000000,C=4321.
13、000000B、A=10,B=765.000000,C=4321.000000C、A=98,B=765.0,C=4321.0D、以上答案都不正确21.以下程序的输出结果是main()(int a=12,b=12;printf(%d%dn,-a,+b);)A、10 10 B、12 12 C、11 13 D、11 1022.以下程序的输出结果是()6#indudemain()(int x=l,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;case 3:a+:bA、a
14、=l,b=0 B、a=2,b=lC、a=l,b=l D、a=2,b=223.下面的程序()#indudemain()int x=3,y=0,z=0;if(x=y+z)printf(,r*);else printf(#);)A、有语法错误不能通过编译 B、输出*U 可以通过编译,但是不能通过连接,因而不能运行D、输出#24.下列关于switch语句和break语句的结论中,正 确 的 是()A、break语句是switch语句中的一部分B、在 switch语句中可以根据需要使用或不使用break语句C、在 switch语句中必须使用break语句D、break语句只能用于switch语句中25.
15、输 入 一个华氏温度,要求输出摄氏温度。计 算 公 式 为:c=5/9(F-32),以下程序正确的是()A、main()(float c,F;scanf(%f,%f,&c,&F);c=5/9*(F-32);printf(摄氏温度是:%fn,c);)B、main()(float c,F;scanf(%f,%f,&c,&F);c=5*(F-32)/9;printf(摄氏温度是:%fn,c);)C、main()float c,F;scanf(%f,%f,&c,&F);c=5%9*(F-32);printf(摄氏温度是:%fn,c);)D、main()(float c,F;scanf(%f,%f,&c
16、,&F);c=5.0/9.0(F-32);printf(摄氏温度是:%fn,c);)26.若想通过以下输入语句使a 中存放字符串1234,b中存放字符5,则输 入 数 据 的 形 式 应 该 是 0char a10,b;scanf(a=%s b=%c,&a,&b);printf(%s,%cn,a,b);27.标准库函数 在屏幕上显示信息28.main()char st=A;int i=10;st=st+i;i=st%i;printf(%C,%dnfst,i);已知字母A的ASCII码为65结果:一29.以下程序的输出结果是一main()inta=177;printf(%on,a);30.以下程
17、序输出的结果是_main()int a=5,b=4,c=3,d;d=(a b c);printf(%dnfd);31.以下程序段的输出结果是_#include void main()int a=0234;printf(%-3d,%-6d,*%-06d,*%06d,%06d n,a,a,a,a,a);)32.使用强制转换方法将正整数转换成字符。本题程序如下:#include void main()(char c;in tI;scanf(%d,&I);c=(%c 的 ASCII 码为d n,c,I);)本程序的执行结果为33.以下程序不用第三个变量,实现将两个数进行对调操作:#includemai
18、n()int a,b;scanf(%d%d,&a,&b);printf(a=%d b=%dn,a,b);a=(_);b=();a=();printf(a=%d b=%dnfa,b);)34.当a=l,b=2,c=3时,以下语句执行后a、b、c中的值分别为if(ac)b=a;a=c;c=b;35.若从键盘输入58,则以下程序输出的结果是#indudemain()int a;scanf(,f%d,&a);if(a50)prinff(K%d:a);if(a40)prinff(%d,a);if(a30)printfr%d”,a);)36.设a、b、c为整型数,f i a=2,b=3,c=4,贝!J执彳
19、亍完语句a*=16+(b+)-(+c);后,a 的值是37.以下程序的输出结果是一#indudemain()int x=2,y=-l,z=2;if(xif(yelse z+=l:printf(H%d n,z);)习题答案:l.D 2.A 3.C 4.C 5.C 6.B 7.B 8.B 9.A10.B ll.B 12.B 13.A 14.A 15.D 16.A 17.B 18.D 19.D20.D 21.C 22.B 23.D 24.B 25.B26.a=1234 b=5 27.printf 28.k,5 29.26130.0 31.156/156,*000156,%06d 32.a 的 ASC
20、II 码为9733.a+b,a-b,a-b 34.3 2 2 35.58585836.28 37.2数据类型和标识符1.执行下列程序时输入:123空 格 456空 格 789回车 ,输出结果是main()char s100;int c,i;scanf(%c,&c);scanf(%d,&i);scanf(%s,s);printf(%c,%d,%s n,c,i,s);)A、123,456,789 B、1,456,789 C、1,23,456,789 D、1,23,4562.在C语言中,不正确的int类型的常数是()A、32768 B、0 C、037 D、OxAF3.若变量a是int类型,并执行了语
21、句:a=+1.6;,则正确的叙述是()A、a的值是字符C B、a的值是浮点型U 不允许字符型和浮点型相加 D、a的值是字符A 的ASCII值加上14.在C语言中,合法的长整型常数是()A、OL B、4962710 C、324562&D、216D5.假定x和y为double型,贝!J表达式x=2,y=x+3/2的值是()A、3.500000 B、3 C、2.000000 D、3.0000006.以下选项中,非法的字符常量是()A.t B.17 Q n D、xaa7.下列变量定义中合法的是()A、short _a=l-.le-l;B、double b=l+5e2.5;C、long do=0 xfd
22、aL;D、float 2_and=l-e-3;8.下列变量名合法的是()A、#1 B、$567 C、a-b D、m_number9.请选出可用作C语言用户标识符的一组标识符()A、Void-define WORD B、a3_b3 _123 IFC、For-abc Case D、2a Do sizeof10.C语言提供的合法的数据类型关键字是:()A、Double B、short C、integer D、Char11.若有以下定义:char a;int b;float qdouble d;则表达式a*b+d-c值的类型为()A、float B、int C、char D、double12.在C语言
23、中(以16位PC机为例),5种基本数据类型的存储空间长度的排列顺序为()A、char int long int =float double B、char=int long int=float doubleC、char int long int=float=double D、char=int=long int=float double13.假设所有变量均为整型,则表达式(a=2,b=5,b+,a+b)的值是()A、7 B、8 C、6 D、214.下列四组选项中,均不是C语言关键字的选项是()A、define IF type B、getc char printfC、include scanf ca
24、se D、while go pow15C语言中的标识符只能由字母,数字和下划线三种字符组成,且第一个字符()A、必须为字母 B、必须为下划线C、必须为字母或下划线 D、可以是字母,数字和下划线中任一字符16.下面四个选项中,均是合法整型常量的选项是()A、160-Oxffff O il B、-Oxcdf Ola OxeC、-0 x46a 2e5 Ox D、-0 x48a 2e5 Ox17.下面四个选项中,均是不合法的整型常量的选项是()A、-O fl-Oxffff 0011 B、-Oxcdf 017 12,456C、-018 999 5e2 D、-0 x48eg-068 03f18.下面四个选
25、项中,均是不合法的浮点数的选项是()A、160.0.12 e3 B、123 2e4.2.e5C、-.18 123e4 0.0 D、-e3.234 le319.下面正确的字符常量是()A、c B C、W D、20.下面四个选项中,均是正确的八进制数或十六进制数的选项是()A、-10 0 x8f-011 B、Oabc-017 OxcC、0010-Oxll Oxfl D、0al2-0 x123-Oxa21.以下正确的叙述是()A、在 C程序中,每行中只能写一条语句B、若 a 是实型变量,C 程序中允许赋值a=1 0,因此实型变量中允许存放整型数U 在 C程序中,无论是整数还是实数,都能被准确无误地表
26、示D、在C程序中,是只能用于整数运算的运算符22.设有说明:char w;int x;float y;double z;贝!J表达式 w*x+z-y值的数据类型为()A、float B、char C、int D、double23.字符型常量在内存中存放的是该字符对应的()A、ASCII代码值 B、BCD代码值 C、内码值 D、十进制代码值24.以下关于字符串的不正确说法是()A、字符串长度就是字符串中字符的个数B、字符串的尾部会自动追加一个 字符串结束标志”C、字符串的长度为字符介数加1 D、在C语言中常用字符型数组来存放字符串25.C语言中,double类型数据占()个字节,char类型数据
27、占()个字节A、1 B、2 C、4 D、8 和 126.C语言中最简单的数据类型是一整型实型字符型27设有以下变量定义,并 已 赋 确 定 的 值char w;int x;float y;double z;则表达式:w*x+z-y 所求得的数据类型为_ _ _ _ _ _ _ _ _ _28.在C语言中(以16位PC机为例),一个char型数据在内存中所占的字节数为_1;一 个in t型数据在内存中所占的字节数为_2 _29.在C 语言中(以16位 PC机为例),一个float型数据在内存中所占的字节数为_ 4 ;一个double型数据在内存中所占的字节数为_ 8_30.表达式 8/4*(in
28、t)2.5/(int)(1.25*(3.7+2.3)值的数据类型为31.表达式pow(2.8,sqrt(double(x)值的数据类型为32.设C 语言中,一个int型数据在内存中占2 个字节,则 int型数据的取值范围为_-32768至 32767习题答案:l.D 2.A 3.D 4.A 5.D 6.C 7.A 8.D 9.B 10.B 11.D12.A 13.B 14.A 15.C 16.A 17.D 18.B19.C 20.C 21.D22.D 23.A 24 A 25.D 26.整型 实型 字符型27.double 28.1,2 29.4,8 30.int 31.double32.-3
29、2768 至 32767位运算L 表达式0 xl3|0 xl7的 值 是(B)A、0 x13 B、0 x17 C、0 xE8 D、0 xc82.表达式0 xl3A0 xl7 的值是(A)A、0 x04 B、0 x13 C、0 xE8 D、0 x173.表达式 0乂 13的值是(A)A、OxFFEC B、0 xFF71 C、0 xFF68 D、0 xFF174.表达式0 xl3A0 xl7的值是(A)A、0 x04 B、0 x13 C、0 xE8 D、0 x175.表达式0 xl3&0 xl7的 值 是(B)A、0 x17 B、0 x13 C、0 xf8 D、Oxec6.若a=l,b=2则a|b
30、的值是(D)A、0 B、1 C、2 D、37.若有以下程序段:int x=l,y=2;x=xAy;y=yAx;x=xAy;贝!执行以上语句后x和y的值分别是(C)A、x=l,b=2 B、x=2,y=2 C、x=2,y=l D、x=l,y=l8.若有运算符,sizeof,A,&二,则它们按优先级由高至低的正确排列次序是(B)A、sizeof,&=,A B、sizeof,A,&=C、A,sizeof,&=D、,A,&=,sizeof9.若x=2,y=3贝!J x&y的结果是(B)A、0 B、2 C、3 D、510.请 读 程 序 片段:unsigned t=129;t=tAO O;printf(%
31、d,%on,t,t);以上程序片段的输出结果是(B)A、0,0 B、129,201 C、126,176 D、101,1451L请读程序片段:int x=20;printf(%dn,x);上面程序片段的输出结果是(C)A、02 B、-20 C、-21 D、-111 2.请读程序片段:char x=56;x=x&056;printf(%d,%on,x,x);以上程序片段的输出结果是(C)A、56,70 B、0,0 C、40,50 D、62,762 6.在C语言中,要求运算数必须是整型或字符型的运算符是(B)A、&B、&C、!D、|14.在 执 行 完 以 下C语 句 后,B的 值 是charZ=A
32、;int B;B=(241&15)&(Z|A);(B)A、0 B、1 C、TRUE D、FALSE15.设有以下语句int a=l,b=2,c;c=aA(b2)/(b:L)的值是(D)A、0 B、2 C、4 D、818以下程序的功能是进行位运算main()unsigned char a,b;a=7A3;b=4&3;printf(%d%dn,afb);程序运行后的输出结果是(A)A、4 3 B、7 3 C、7 0 D、4 019.有以下程序main()unsigned char a=2,b=4,c=5,d;d=a|b;d&=c;printf(%dn,d);程序运行后的输出结果是(B)A、3 B、
33、4 C、5 D、620有 以 下 程序 main()unsigned char a,b;a=4|3;b=4&3;printf(%d%dn”,a,b(;执行后输出结果是(A)A、7 0 B、0 7 C、1 1 D、43 021.设c为一个字符,fi(C3)&C0为真,贝!I C的字符代码是01000001o22.八位二进制补码能表示的最大十进制数为+127或-12823.设有char a,b;若要通过a&b运算屏蔽掉a中的其它位,只保留第2位和第8位(右起为第1位),则b的二进制是10000010运算符和表达式1.假定w、x、V、心m均为int型变量,有如下程序段:w=l;x=2;y=3;z=4
34、;m=(wX)?W: X; M=(MY)?M:Y; M=(MZ)?M: 则该程序运行后,m的值是:A、4 B、3 C、2 D、12.若希望当A的值为奇数时,表达式的值为“真,A的值为偶数时,表达式的值为 假,则以下不能满足要求的表达式是A、A%2=1 B、!(A%2=0)C、!(A%2)D、A%23.若变量已正确说明为float类型,要通过语句scanf(%f%f%f”,&a,&b,&c);给a赋于10.0,b赋予22.0,c赋予33.0,不正确的输入形式是:A)10回车22c回车33 回车C)10.0 回车22.0 33.0回车A、A B、BB)10.
35、0,22.0,33.0 回车D)10 22 回车33c回车4.C语言中运算艰必须是整型的运算符是A、%=B、/C、=D、=5.若已定义x和y为double类 型,则表达式x=l,y=x+3/2的值是A、1 B、2 C、2.0 D、2.56.下列程序执行后的输出结果是(小数点后只写一位)main()double d;float f;long I;int i;i=f=l=d=20/3;printf(%d%ld%f%f nf ij,ffd);)A、6 6 6.0 6.0 B、6 6 6.7 6.7C、6 6 6.0 6.7 D、6 6 6.7 6.07.设有以下定义:int x=10,y=3,z;则
36、语句printf(%dn,z=(x%y,x/y)的输出结果是A、1 B、0 C、4 D、38.若已定义x和y为double类 型,贝J表 达 式:x=l,y=x+3/2的值是_ _ _ _ _A、1 B、2 C、2.0 D、2.59.设intb=2;表达式b/(b*2)的值是_ _ _ _ _ _A、0 B、0.5 C、0.500000 D、0.00000010.设 int x=5,y=4,(-x=y+)?-x:+y 的值是:A、5 B、3 C、4 D、6I L下面的表达式中 满足:当x为偶数时值为 真,为奇数时值为 假”A、x%2=0 B、!x%2!=0C、2*x/2-x=0 D、!(x%2
37、)12.设有如下定义:int a=l,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=ad)后,m的值为A、1 B、2 C、3 D、013.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x 的值为A、4 B、16 C、32 D、5214.设有a=b=c=2,求表达式a+b+c+的结果是A、6 B、9 C、8 D、表达式出错15.以下定义和语句:char cl=b,c2=e;printf(%d,%cn”,c2-cl,c2-a+A);则输出结果是:A、2,M B、3,E C、2,ED、输出项与对应的格式控制不一致,输出结果不确定16.设x和y均为
38、int型变量,则以下语句:x+=y;y=x-y;x-=y;的功能是A、把x和y按从大到小排列 B、把x和y按从小到大排列C、无确定结果 D、交换x和y中的值17.设 A=3,B=4,执行printf(“%d,%d,(A,B),(B,A);的 输 出 是.A、3,4 B、4,3 C、3,3 D、4,418.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为x=(i=4,j=16.k=32)A、4 B、16 C、32 D、5219.以下符合C语言语法的赋值表达式是A、d=9+e+f=d+9 B、d=9+e,f=d+9C、d=9+e,e+,d+9 D、d=9+e+=d+720.已知字母A
39、的ASCII码为十进制数65,且c2为字符型,则执行语句 c2=A+6-3;Ja f c2 中的值为A、D B、68 C、不确定的值 D、C21.表达式18/4*sqrt(4.0)/8值的数据类型为int B、float C、double D、不确定22.若有以下定义,则能使值为3的表达式是int k=7,x=12;A、x%=(k%=5)B、x%=(k-k%5)C、x%=k-k%5 D、(x%=k)-(k%=5)23.以下说法中正确的是()A、#define和printf都是C语句 B、#define是C语句,而printf不是C、printf 是 C 语句,但#define 不是 D、#de
40、fine 和 printf 都不是C语句24.语句:printf(%d n,12&12);的输出结果是A、12 B、1 C、24 D、025.已有定义int a=-2;和输出语句printf(“8lx”,a);以下正确的叙述是A、整型变量的输出形式只有d一种B、%x是格式符的一种,它可以适用于任何一种类型的数据C、%x是格式符的一种,其变量的值按十六进制输出,但8仅是错误的D、%8lx不是错误的格式符,其中数字8规定了输出字段的宽度26.设x和y均为int型变量,且x=l,y=2,则以下表达式:O+x/y的值为27.计算表达式6*7%2+7%2*5的值是28.若有说明语句in tl,j,1=6
41、,执行j=(+I)+(1+)后,j的值是29.输出为main()char x,y;x=a;y=b;printf(xybmnr);printf(%c%cn,xfy);printf(%can,65);30.写出下列表达式运算后a的值设原来a=121)a+=a2)a-=a3)a/=a+a4)a+=a-=a*=a31.若a,b和c均是int型变量,则计算表达式后,a值为 b值为 c值为a=(b=4)+(c=2)32.若有定义:inta=2,b=3;floatx=3.5,y=2.5;则下面表达式的值为_ _ _ _ _ _(float)(a+b)/2+(int)x%(int)y33.若x和n均是整型变量
42、,且x的初值为12,n的初值为5,则计算表达式后x的值为x%=(n%=2)34.若有以下定义,则计算表达式y+=y-=m*=y后 的y值是int m=5,y=2;35.已知字母a的ASCII码为十进制数9 7,且设ch为字符型变量,则表达式ch=a+8-3的值为36.假设m是一个三位数,从左到右用a.b.c表示各位的数字,则从左到右各介数字是bac的三位数的表达式是37.表示“整 数x的绝对值大于5时值为“真”的C语言表达式是习题答案:l.D 2.C 3.A 4.A 5.C 6.A 7.D 8.C 9.A10.B ll.B 12.D 13.C 14.A 15.B 16.D 17.B 18.C1
43、9.C 20.B 21.C 22.D 23.D 24.B 25.D26.0 27.5 28.14 29.abn 5 30.24,0,0,031.6,4,2 32.3.500000 33.0 34.-16 35/V36.(m/10)%10*100+m/100*10+m%10 37.x5|x=0|b=0)&(a0|b=0&b=0)&(a 0&b 0)&(a+b02.设 a、b、C、d、m、n 均为 int 型变量,旦 a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a b)&(n=c d)运算后,n的值为:A、0 B、1 C、2 D、33.已知 x=43,ch=A,y=0;则表达
44、式(x =y&ch b)&(n=c d)后n的值是A、1 B、2 C、3 D、45.若有条件表达式(exp)?a+:b-,则以下表达式中能完全等价于表达式(exp)的是A、(exp=0 B、(exp!=0)(exp=l)D、(exp!=l)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.设有如下定义:int a=l,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a b)&(n=c d)后,n的值为A、1 B、2 C、3 D、08.为表示关系XYZ应使用C语言表达式
45、:A、(X =Y)&(Y =Z)B、(X =Y)and(Y=Z)C.(X Y Z)D.(X Y)&(Y Z)9.为表示关系xNyNz,应使用C语言表达式A、(x =y)&(y =z)B、(x =y)AND(y =z)C、(x =y =z)D、(x =y)&(y =z)10.表示关系X=Y=Z的C语言表达式为.A、(X =Y)&(Y =Z)B、(X =Y)AND(Y =Z)C、(X =Y =Z)D、(X =Y)&(Y =Z)I L判断字符型变量x是 否 是 大 写 字 母 的 正 确 的 表 达 式.A.,A=x=A)&(x=Z)C、(,A,x)D、(x=A)&(x =10或 a =10 or
46、a =0|a =10&a =0 D、a =1016.已知char ch;则判断ch是英文字符的逻辑表达式是17.表示条件:10 x 100或 x b)&!c|l19.当a=3,b=2,c=l时,表达式f=a b c的值是20.C语言提供的三种逻辑运算符是 和21.设y是int型变量,请写出判断y为奇数的关系表达22.在C语言中,逻辑运算符的优先级别是一,23.表示“整数x的绝对值大于5 时值为“真”的C语言表达式是习题答案:l.D 2.C 3.C 4.B 5.B 6.A 7.B 8.A 9.A10.A ll.D 12.D13.A14.D 15.D16.(CH=a)|(ch=K )17.(X10
47、&X100)|X5|x 5)printf(%dn,m);else printf(%dn,m-);)A、7 B、6 C、5 D、42.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是main()int x;scanf(%d,&x);if(x+)5)printf(%d,x);else printf(%dn,x-);)A、7 和 5 B、6 和 3 C、7 和 4 D、6 和 43.若变量都已经说明,则以下程序段输出为()a=10;b=50;c=30;if(a b)a=b;b=c;c=a;printf(a=%db=%dc=%dn,afbfc);A、a=10b=50c=10 B、a=10
48、b=30 c=10C、a=50b=30c=10 D、a=50 b=30 c=504.下面的程序是main()int x=3,y=0,z=0;if(x=y+z)printf(*);else printf(#);)A、有语法错误不能过通过编译 B、输出*C、可能通过编译,但是不能通过连接,因而不能运行D、输出#5.请读程序:main()(int x=l,y=O,a=O,b=O;switch(x)case 1:switch(y)case 0:a+;break;case 1:b+;break;)case 2:a+;b+;break;)printf(a=%d,b=%dn,a,b);)上面程序输出结果是A
49、、a=2,b=l B、a=l,b=lC、a=l,b=O D、a=2,b=06.执行下面语句后的输出为()int i=-1;if(i b c)temp=a B、if(a=b)0)temp=aC、int a=b=c=4 D、int a;scanf(%d,a)9.有如下程序mainO float x=2.0,y;if(x 0.0)y=0.0;else if(x 10.0)y=1.0/x;else y=1.0;printf(%fn,y);)该程序的输出结果是A、0.000000 B、0.250000C、0.500000 D、1.00000010.有如下程序main()int a=2,b=-lfc=2;
50、if(a b)if(b0)c=0;else c+printf(%dnfc);)该程序的输出结果是A、0 B、1 C、2 D、311.若执行以下程序时从健盘上输入9,则输出结果是main()int n;scanf(%d,&n);if(n+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=2013.请阅读以下程序:main()(int a=5,b=0,c=0;if(a=b+c)printf(*n);else printf($n);)以上程序A、有语法错不能通过编译 B、可以通过编译但不能通过连