版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第2章数据类型和运算符 习题及解答一选择题。1.下列是用户自定义标识符的是A)_w1 B)3_xy C)int D)LINE-3答案:A解析: C语言规定用户标识符由英文字母、数字和下划线组成,且第一个字符必须是字母或下划线,由此可见选项B),D)是错的;此外,C语言不允许用户将关键字作为标识符,而选项C)选项项中的int是C语言的关键字。2.C语言中最简单的数据类型包括A)整型、实型、逻辑型 B)整型、实型、字符型C)整型、字符型、逻辑型 D)字符型、实型、逻辑型答案:B解析: 本题考查C语言的数据类型。在C语言中,没有专门的逻辑型数据类型,可以用0和1来表示逻辑值。所以,在本题的选择答案中
2、,不应该包括逻辑型。3下列符号常量定义中正确的是( )。A#define PI 3.14 B#define PI 3.14;Cdefine PI 3.14 Ddefine PI 3.14;答案:A解析:用#define命令行定义PI代表常量,对此程序进行编译时,预处理首先将出现PI的地方用3.14字符串替换。符号常量定义是宏命令,define前必须加#号;如果3.14后加了“;”号,替换时PI会被“ 3.14;”字符串替换,3.14是常量,但“3.14;”就不是常量了,故只有A正确。4.以下选项中不正确的实型常量是A)1.607E-1 B)0.7204e C)-77.77 D)234e-2答案
3、:B解析:实型常量表示时字母E或e前必须有数字,其后数字必需为整数,故B错。5.若变量已正确定义并赋值,以下符合C语言语法的表达式是A)a:=b+1 B)a=b=c+2 C)int 18.5%3 D)a=a+7=c+b答案:B解析: 选项A)中包含一个不合法的运算符“:=”;选项C)应改为(int)18.5%3;选项D)可理解为两个表达式:a+7=c+b和a=a+7,其中第一个是错的,因为C语言规定赋值号的左边只能是单个变量,不能是表达式或常量等。因此,正确答案是选项B),它实际上相当于a=(b=c+2),进而可分解为两个表达式:b=c+2和a=b。6.下列可用于C语言用户标识符的一组是A)v
4、oid, define, WORD B)a3_b3, _123,CarC)For, -abc, IF Case D)2a, DO, sizeof答案:B解析: C语言规定标识符只能由字母、数字和下划线三种字符组成,且第一个字符必须为字母或下划线,排除选项C)和D)。C语言中还规定标识符不能为C语言的关键字,而选项A)中void为关键字,故排除选项A)。7.C语言中运算对象必须是整型的运算符是A)%= B)/ C)= D)<=答案:A解析: C语言规定:取余运算符的运算对象必须是整型,复合运算符“%=”中包含%运算,它的运算对象也必须是整型。8.若变量a,i已正确定义,且i已正确赋值,合法
5、的语句是A)a= =1 B)+i; C)a=a+=5; D)a=int(i);答案:B解析: 选项A是一个表达式,因为缺少分号,所以不是语句;选项C)包含一个不合法的运算符“+=”;选项D)应改为a=(int)i;。9.设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是A)x&&y B)x<=y C)x|+y&&y-z D)!(x<y&&!z|1)答案:D解析: 该题考查逻辑与“&&”和逻辑或“|”以及逻辑非“!”符号的用法。选项A)即3&&4为真,选项B)即3&l
6、t;=4为真,选项C)是一个逻辑或与逻辑与的混合运算,只要执行了逻辑或左半部分,程序将直接停止执行逻辑或右半部分程序,因为x的值为真,此时选项C)变为1&&-1为真。选项D)不用计算,括号内逻辑或右边的值为1,因而括号内的值为1,再进行逻辑非运算得0。10.有以下程序main()int i=1,j=1,k=2;if(j+|k+)&&i+)printf("%d,%d,%dn",i,j,k);执行后输出结果是 A)1,1,2 B)2,2,1 C)2,2,2 D)2,2,3答案:C解析: 该题目的关键是要搞清楚“&&”和“|”两个逻
7、辑运算符的运算功能。运算符“&&”和“|”是双目运算符,要求有两个运算量。且规定逻辑与运算中,只有前面运算量的值为真时,才需要判别后面的值。只要前面为假,就不必判别后面的值。而逻辑或则为只要前为真,就不必判别后面的值;只有前为假,才判别后。本题中j+值为真,不进行k+的运算,所以k的值保持不变。11.设int x=1,y=1;表达式(!x|y-)的值是A)0 B)1 C)2 D)-1答案:B解析:C语言规定的运算优先级由高到低分别是逻辑非、算术运算、逻辑或。所以先计算!x,值是0,然后再计算y-,由于是后缀运算符,所以y在本次运算中的值仍然是1,最后计算0|1,值为1。12.若
8、有说明语句:char c='72';则变量cA)包含1个字符 B)包含2个字符 C)包含3个字符 D)说明不合法,c的值不确定答案:A解析: C语言的字符型常量中,允许用一种特殊形式的字符常量,就是以一个“”开头的字符。其中“ddd”表示用ASCII码(八进制数)表示一个字符,本题中的char c=72即表示占一个字符的变量c的ASCII码值。13.在C语言中,退格符是A)nB)tC)fD)b答案:D解析: C语言的转义字符见下表所示。转义字符转义字符的意义n回车换行t横向跳到下一制表位置v竖向跳格b退格r回车f换页反斜线符“”单引号符14.在C程序中,判逻辑值时,用“非0”表
9、示逻辑值“真”, 又用“0”表示逻辑值“假”。 在求逻辑值时,用()表示逻辑表达式值为“真”, 又用()表示逻辑表达式值为“假”。A)1 0 B)0 1 C)非0 非0 D)1 1答案:A解析: 在C程序中,判断逻辑值时,用非0表示真,用0表示假。逻辑表达式计算时,逻辑表达式值为真是用1表示的,若逻辑表达式的值为假,则用0表示。15.字符型数据在机器中是用ASCII码表示的,字符“5”和“7”在机器中表示为A)10100011和 01110111 B)01000101和01100011C)00110101和00110111 D)01100101和01100111答案:C解析: 为便于表示各种数
10、据类型,机器中采用了BCD码(表示十进制数)、ASCII码(字符型)、汉字机内码等等各种码。数据采用了补码、原码和反码为表示形式。实型数据表示方法有浮点法和定点法等,考生需熟练掌握各种码的含义,并用之来计算、比较。需要提出的是,在机器内部,所有码都是由二进制编码而成的,它都是以二进制存储在机器之中的。字符“5”和“7”的ASCII的值分别为53和55,其二进制形式分别为00110101和00110111。16.若已定义:int a=25,b=14,c=19;以下三目运算符(?:)所构成语句的执行后a<=25&&b-<=2&&c?printf(&quo
11、t;*a=%d,b=%d,c=%dn",a,b,c):printf("#a=%d,b=%d,c=%dn",a,b,c);程序输出的结果是A)*a=25,b=13,c=19 B)*a=26,b=14,c=19C)# a=25,b=13,c=19 D)# a=26,b=14,c=19答案:C解析: 此题综合考查多种运算符的使用;首先计算表达式a<=25 &&b-<=2 &&c的值,很容易看出b-<=2的值为假,因此表达式为假;根据三目运算的特点,由于前面的表达式为假,应执行printf(“#a=%d,b=%d,c=%d
12、n”,a,b,c),应注意a的值依然为25,b的值经过b-运算后改变为13,而c的值仍为19。17.若有定义:int a=7;float x=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是A)2.500000 B)2.750000 C)3.500000 D)0.000000答案:A解析: x+y的值为实型7.200000,经强制类型转化成整型7。a%3的值为1,1*7的值为7,7%2值为1。1/4的值为0,而非0.25,因而为两个整数相除的结果为整数,舍去小数部分。与实型x相加,最终得结果为2.500000。18.有如下程序段int a=14,b=15,x;char
13、 c=A;x=(a&&b)&&(c<B);执行该程序段后,x的值为A)ture B)false C)0 D)1答案:D解析: 在C语言中,逻辑运算符有4个,它们分别是:!(逻辑非)、|(逻辑或)、&&(逻辑与)、(异或)。在位运算里面还有(位与)、|(位或)的运算。本题考查逻辑与运算符的用法,在表达式x=(a&&b)&&(c<B);中,先判断a&&b条件,逻辑与条件的两边都要保证为1,即a和b都成立,当然c<B是成立的,显然,该表达式的值为1。19.在以下一组运算符中,优先级最高的
14、运算符是A)<= B)= C)% D)&&答案:C解析:关系运算符、逻辑与和算术运算符总算术运算符的优先级最高,故选C)。20.以下选项中,与k=n+完全等价的表达式是A)k=n,n=n+1 B)n=n+1,k=n C)k=+n D)k+=n+1答案:A解析: k=n+的意思是先将n的值赋给k,然后n的值再加1,选项A)符合题意;选项C)是先使n的值加1,然后再赋值给k;选项D)等价于k=k+(n+1)。21.以下选项错误的是A)main() B)main() int x,y,z; int x,y,z;x=0;y=x-1; x=0,y=x+1;z=x+y; z=x+y;C
15、)main() D)main() int x; int x,y,z;int y; x=0;y=x+1;x=0,y=x+1; z=x+y,z=x+y;答案:D解析: 在选项A)中的语句没有一条是错误的。选项B)和C)中有一个逗号表达式,选项B)中是x=0,y=x+1;在选项C)中是y=x+1,z=x+y;所以B)和C)中也没有错误。选项D)中的最后一条语句是以逗号结束的,而C语言中不能用逗号作为一个语句的结束标志,每一条语句最后应该是分号,所以D)选项中的程序是错误的。22.以下4个选项中,不能看做一条语句的是A); B)a=5,b=2.5,c=3.6; C)if(a<5); D)if(b
16、!=5)x=2;y=6;答案:D解析: 选项D)为两条语句。23. 下列运算符中优先级最高的是_。A) < B) + C) && D) ! =答案:B24判断char型变量ch是否为大写字母的正确表达式是_。A)'A'<=CH<='Z' B) (CH>='A')& (CH<='Z')C)(CH>='A')&& (CH<='Z') D) ('A'<=ch)AND('Z'>=ch
17、)答案:C25.设int a=12,则执行完语句a+=a-=a*a后,a的值是_。A) 552 B) 264 C) 144 D) -264答案:D26. 设a=5, b=6, c=7, d=8, m=2,n=2, 执行(m=a>b)&&(n=c>b) 后n的值为_。A)1 B)2 C)3 D)4答案:B27. 逻辑运算符两侧运算对象的数据类型_。A)只能是0或1 B)只能是0或非0正数 C)只能是整型或字符型数据 D)可以是任何类型的数据答案:D28.正确表示"当x的取值在1,10或200,210范围内为真,否则为假"的表达式是_。A)(X>
18、;=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)答案:C29. 设x,y和z是int 型变量,且x=3,y=4,z=5,则下面表达式中值为0的是_。A)'x
19、' &&'y' B)x<=y C)x | y+z&&y-z D)!(x<y)&&!z| 1)答案:D30. 已知x=43,ch='A',y=0;则表达式x=y&& ch<'B'&&!y的值是_。A)0 B)语法错 C) 1D) "假"答案:A31.若希望当A的值为奇数时,表达式的值为"真"。A的值为偶数时,表达式的值为"假"。则以下不能满足要求的表达式是_。A)A%2=1 B)!(A
20、%2= =0) C)!(A%2) D)A%2答案:C32. 不合法的常量是_。A) '2' B) '""'(外面是单引号) C) " " D)"003"答案:B33.若有以下定义char s='092' 则该语句_。A)使s的值包含一个字符 B)定义不合法,s的值不确定C)使s的值包含4个字符 D)使s的值包含3个字符答案:B34.下列不正确的字符串常量是_。A) "ABC" B) "W" C) "SDF/3" D) "
21、; "答案:B35. 若变量a是int类型,执行语句:a='A'+1.6;后,正确的叙述是( )。Aa的值是字符C Ba的值是浮点型C不允许字符型和浮点型相加Da的值是字符'A'的ASCII值加上1答案:D36.设有说明:char w;int x;float y;double z;则表达式w*x+z-y 值的数据类型是_。A) int B) float C) double D) char答案:C37.执行下列语句int a=3,b;b=-(-a);后a,b的值分别是_。A) 2和-2 B) 2和-3 C) 3 和-2 D) 3 和-3答案:A38.执行
22、下列语句float f=3.9;int a=4;f=(int)f+a;后f的值是_。A) 7.9 B) 7.000000 C) 7.0 D) 出错答案:B39.执行下列语句int f=3,g,h;g=+f;g=f+;h=+g;后f和h的值是_。A) 5和5 B) 6和5 C) 5和6 D) 4和5答案:A40.下列C语句格式错的是_。A) int a=10; B) int a,b,z; C) a=2:b=3 ; D) z=a+b;答案:C41.下列变量定义中合法的是_。A) int _a=1-.e-1; B) double b=1+5e2.5;C) long x=12.5; D) float
23、2_and=1-e-3;案:C42.以下_符合C语言语法的实型常量。A) 1.3E0.5 B)7E-2 C) 3.14159E D) E5答案:B43. 以下_符合C语言语法的赋值表达式。A) d=8+e+f=d+a B) 8+e=f=d C) d=f=8+e+ D) d=8+e+=d+7答案:C44. 假设整型变量a的值是1,b的值是2,c的值是3,在这种情况下执行下面的语句:u=(a=2)?b+a:c+a; 执行该语句后整型变量u的值为()。 A) 0 B) 3 C) 4 D) 5 答案:C45.若x为int类型,则下面与逻辑表达式!x等价的C语言关系表达式是_。A) x=1 B) x!=
24、1 C) x=0 D) x!=0答案:C46. 设int a=3;下列表达式值等于0的是_。A) a && (a>0) B) !a|a C) a%=a D) a>=a答案:C47. 假定有以下变量定义: int k=7,x=12;则能使值为3的表达式是_。A)x%=(k%=5) B)x%=(k-4%5) C)x%=k-k%5 D)(x%=k)-(k%=5)答案:D48. 设x和y均为int型变量,则语句:x+=y;y=x-y;x-=y;的功能是_。A)把x和y按从大到小排列 B)把x和y按从小到大排列C)无确定结果 D)交换x和y中的值答案:D49.下面能正确表示&
25、quot;整数x的绝对值大于等于0"的C语言表达式是_。A) x0 B) abs(x) 0 C) abs(x)>=0 D) abs(int(x)>=0答案:C50.以下所列的C语言常量中,错误的是_。A) 0xFF B) 1.2e5 C) 1.0/2.0 D) '72'答案:C二填空题。1在C语言中用关键字【1】定义整型类型变量,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量。答案:【1】int解析:C语言中规定用关键字int定义整型变量。2. 3.5+1/2的计算结果是【2】 答案:【2】3.5解析:1/2的值为0,故3.5
26、+1/2的值为3.5。3.设y是int型,请写出y为奇数的关系表达式 【3】 。答案:【3】 (y%2)=1 或 (y%2)!=04.设int a=5,b=6,表达式(a=b-)?+a:-b的值是【4】 。答案:【4】7解析: 此表达式为三目运算符,a的值为6,b的值为6,则整个表达式的值为+a的值,a的值为7。请注意前缀,-和后缀,-的区别。5.以下程序的输出结果是【5】。int a=1234;printf ("%2dn",a);答案:【5】1234解析: 在%与格式符之间插入一个整形数来指这输出宽度,并不影响数据的完整性,当插入的宽度小于实际的宽度时,则实际的宽度输出。
27、6. 以下程序的输出结果是【6】。main()int a=0;a+=(a=8);printf("%dn",a);答案:【6】16解析: 赋值表达式的值就是所赋值变量的值,本题中a+=8相当于a=a+8,对表达式逐步进行求解:a+=(a=8)此时,a的值由于赋值为8,而不是0a+=8a=a+8a=167.在计算机中,字符的比较是对它们的【7】进行比较。答案:ASCII码解析:【7】 C语言中,字符也可以进行比较运算,且是按照ASCII码值进行的。8.在内存中,存储字符x要占用1个字节,存储字符串X要占用【8】个字节。答案:【8】2解析: 计算机存储一个字符用1个字节,存储字符串时,每个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 代办废业合同模板
- 2024包含家具家电的住宅买卖合同
- 危险废物减量化处置合同
- 2024年广告位长期租赁合同
- 2024城市排水管网泄漏监测合同
- 景德镇市2025届高三第一次质检(一检)数学试卷(含答案)
- 2024年城市生活垃圾处理设施建设运营合同
- 稀土材料科学与工程基础知识单选题100道及答案解析
- 2024年工程设计与技术服务配套合同
- 建筑电梯单项施工合同
- 旅游景区消防安全培训
- 2024年税务新政培训
- 电商行业直播带货营销策略方案
- 糖尿病健康知识宣教
- 八上历史全册知识梳理
- 2024年银行考试-招商银行考试近5年真题集锦(频考类试题)带答案
- 中小学-校园文明礼仪-课件
- 期中考试试题(1-4单元)(试题)-2024-2025学年二年级上册数学青岛版
- 《创意改善生活》课件 2024-2025学年湘美版(2024)初中美术七年级上册
- 2024-2025学年 浙教版七年级数学上册期中(第1-4章)培优试卷
- CHT 1027-2012 数字正射影像图质量检验技术规程(正式版)
评论
0/150
提交评论