C语言-数据类型习题及答案_第1页
C语言-数据类型习题及答案_第2页
C语言-数据类型习题及答案_第3页
C语言-数据类型习题及答案_第4页
C语言-数据类型习题及答案_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第二章数据类型,运算符与表达式选择题1不合法的字符常量是(B)。A)tB)“A”C)aD)x322、合法的字符常量是(D)。A)084B)84C)abD)x432(B)是C语言提供的合法的数据类型关键字。A)FloatB)signedC)integerD)Char3在以下各组标识符中,合法的标识符是(4)。1)A)B01B)table_1C)0_tD)k%2)A)Fast_B)voidC)pblD)<book>3)A)xy_B)longdoubleC)*pD)CHAR(4)A)sjB)IntC)_xyD)w_y234属于合法的C语言长整型常量的是(B)。A)5876273B)0LC

2、)2E10D)(long)58762735下面选项中,不是合法整型常量的是(B)。A)160B)0xcdgC)01D)0x48a6判断intx=0xaffbc;x的结果是(B)(turboc版本)A)赋值非法B)溢出C)为affbD)为ffbc7下面选项中,均是合法浮点数的是(B)。A)1e1B).60A)5e9.4B)12e4A)03e2B)8e5C)123eD)e3C)1.2e.4D).8e4C)2e1D)5.e08在C语言中,要求参加运算的数必须是整数的运算符是(C)。A)/B)*C)%D)=9在C语言中,字符型数据在内存中以(D)形式存放。A)原码B)BCD码C)反码D)ASCII码1

3、0下列语句中,符合语法的赋值语句是(C)。A)a=7+b+c=a+7;B)a=7+b+=a+7;C)a=(7+b,bHF,a+7);D)a=7+b,c=a+7;11(B)是非法的C语言转义字符。A)bB)0xfC)037D)12对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中(B),是正确的。A)语法错误B)f为5.0C)f为0.013与代数式(x*y)/(u*v)不等价的C语言表达式是(A)。A)x*y/u*vB)x*y/u/vC)x*y/(u*v)D)x/(u*v)*y14在C语言中,数字029是一个(D)。A)八进制数B)十六进制数C)十进制数D)非法数15

4、C语言中(TurboC环境)整数8在内存中的存储形式为(A)C)00000000000100016对于charcx=039;语句,正确的是(A)。A)不合法B)cx的ASCII值是33C)cx的值为四个字符D)cx的值为三个字符17.若intk=7,x=12;则能使值为3的表达式是(D)。A)=(x%=(k%=5)B)x%=(kk%5)C)x%=kk%5D)(x%=k)(k%=5)18 .为了计算s=10!(即10的阶乘(24320),则s变量应定义为(D)。A)intB)unsignedC)longD)以上三种类型均可19 .以下所列的C语言常量中,错误的是(B)。A)0xFF0.5C)2L

5、D)'72'20 .假定x和y为double型,则表达式x=2,y=x+3/2的值是(D)。A)3.500000B)3C)2.00000021 .以下合法的赋值语句是(A)。A)x=y=100B)dC)x+yD)c=int(a+b)22 .以下选项中不属于C语言的类型是(D)。A) signedshortintB)unsignedlongintB) unsignedintD)longshort23 .设以下变量均为int类型,则值不等于7的表达式是(C)。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+

6、1,x=y,x+1)24 .在16位C编译系统上,若定义longa;,则能给a赋40000的正确语句是(D)。A)a=20000+20000;B)a=4000*10;C)30000+10000;D)a=4000L*10L;二.填空题1 .在C语言中(以16位PC机为例),一个char数据在内存中所占字节数为d,其数值范围为-128127;一个int数据在内存中所占字节数为2,其数值范围为-3276832767;一个long数据在内存中所占字节数为二4,其数值范围为-21474836482147483647;一个float数据在内存中所占字节数为4,其数值范围为。2 .C语言的标识符只能由大小写

7、字母,数字和下划线三种字符组成,而且第一个字符必须为字母或下画线。引号界定单个字符,而字符串常量使用一对双引号来界定若干个字符的序列。4 .设x,i,j,k者B是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为_32。5 .设x=2.5,a=7,y=4.7,贝Ux+a%3*(int)(x+y)%2/4为。6 .设a=2,b=3,x=3.5,y=2.5,贝U(float)(a+b)/2+(int)x%(int)y为。7 .已知:chara='a',b='b则表达式ci=a+b+c的值为38。8 .已知inta=12,n=5;则:表达式运算后a的值各为

8、0。a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a9 .设inta;floatf;doublei;则表达式10+'a'倘的数据类型是double。10 .若a为int型变量,则表达式(a=4*5,a*2),a+6的值为26。11 .假设所有变量均为整型,则表达式(a=2,b=5,a+,b+,a+b)的值为_9。12 .已知a,b,c是一个十进制数的百位,十位,个位,则该数的表达式是a*100+b*10+c。13,表达式y+=x+的值是。14 .定义:intm=5,n=3;则表达式m/=n+4的值是0,表达式m=(m=1,n=2,n-m)的值是表达

9、式m+=m-=(m=1)*(n=2)的值是-2。15 .表达式5%(-3)的值是2.表达式-5%(-3)的值是-2。16 .若a是int变量,则执行表达式a=25/3%3后,a的值是2。三.判断题1 .在C程序中对用到的所有数据都必须指定其数据类型。2 .一个变量在内存中占据一定的存储单元。3 .一个实型变量的值肯定是精确的。【X】4 .对几个变量在定义时赋初值可以写成:inta=b=c=3;【X】5 .自增运算符(+)或自减运算符(-)只能用于变量,不能用于常量或表达式。6 .在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()7 .%运算符要求运算数必须是整数。【V18 .若a是

10、实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。【X】9 .C语言不允许混合类型数据间进行运算。【X】四.简答题1 .为什么C语言的字符型可以进行数值运算?2 .简述和“阴)区别。3 .程序:intm=12;m=15;为什么整型变量m的值在运算后不是当初的12,而是15?五.程序阅读题1 .写出以下程序运行的结果。main()charc1='a',c2='b',c3Wc;c5=4=116';printf("a%cb%cn”,c1,c2,c3);printf(b%c%c”,c4,c5);2 .写出以下程序运行的结果。main()

11、inti,j,m,n;i=8;j=10;m=+i;n=j+;printf("%d,%d,%d,%d”,i,j,m,n);输出结果:9,11,9,10六编程题1 .假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。2 .已知intx=10,y=12;写出将x和y的值互相交换的表达式。第3章最简单的C程序设计一顺序程序设计、单项选择题1.不是C语言提供的合法关键字是O2.A)switchB)cherC语言提供的合法关键字是C)caseOD)default3.A)nextB)string下列不属于C语言中关键字的是C)docaseo

12、D)struct4.A)longB)print卜列不止确的标识符是C)defaultoD)typedef5.A)-a1B)ai下列C语言用户标识符中合法的是C)a2_ioD)xA)*yB)sumC)intD)%5f6.卜面四个选项中,合法的标识符是o7.A)autoB)define下列C语言用户标识符中合法的是C)6aoD)c8.A)3axB)x以下选项中合法的用户标识符是C)caseoD)-e29.10.11.A)longB)_2TestC)3Dmax下列四组选项中,正确的C语言标识符是。A)%xB)a+bC)a123,请选出可用作C语言用户标识符的一组标识符A)voidB)a3_b3C)F

13、ordefine_123-abcWORDsumCase,下列四组字符串中都可以用作C语言程序中的标识符的是D)123D)2aDOsizeofo12.A)print_3doodbaBcB)C)str_1Cpppowwhile.卜列C语言标识符中合法的变量名是<Iamone_halfstart$it3pai13.A)2e3B)you1-12题解析:参照讲义中知识点C语言中的简单数据类型包括C)*yD)float-标识符与关键字,o14.A)整型、实型、逻辑型B)整型、C)整型、字符型、逻辑型D)整型、13题解析:C语言中没有逻辑型变量,下列可以正确表示字符型常量的是。实型、逻辑型、实型、字符

14、型字符型15.A)'t'B)"a"C),卜.列常数是止确的C语n”D)297言字符常量。16.A)"x"B)e3C)"COMPUTER,在卜列常量中,属于字符型常量的是。D)'#'17.A)AB)'a',以下选项中合法的字符常量是_C)"A"D)bA)“B”C)'68'D)E18.下面字符常量表示错误的是A)'a'B),?'C)'n'D)n19.已定义c为字符型变量,则下列语句中正确的是A)c='97'B)

15、c="97"C)c='a'D)c="a"14-19题解析:字符型常量是由单引号括起来的单个字符,另外C语言还规定了一些转义字符的表示形式例如't表示制表符,n表示回车等,参照教材上20.已知ch是字符型变量,不正确的赋值语句是P40的转义字符表。A)ch='a+b'21.C语言中字符型A)原码B)ch='0'C)ch='7'+'9'D)ch=5+9;(char)数据在内存中的存储形式是B)补码C)反码D)ASCII码22.在C语言中,字符型数据所占的内存空间是A)2个

16、字节B)4字节C)1字节D)由用户自定义20-22题解析:字符常量具有数值含义,其值即ASCII码对应的数值,范围为0-127chara;intb;floatc;doubled;则表达式a*b+d-c的结果类型为A)floatB)charC)intD)double25.右后以下类型说明语句:charw;intx;floaty;double(int)(x+y-z*w)的结果为C典型。A)floatB)charC)intD)double24-25解析:参照数据类型转换知识点。26.C语言中运算对象必须是整型的运算符是A)%=B)/C)=oD)=27.在C语言程序中,表达式8/5的结果是_A)1.6

17、B)1C)3oD)028.设x为int型变量,则执行语句x=10;x+=x;A)10B)20C)40后,x的值为D)3030.如果inta=1,b=2,c=3,d=4;则条件表达式A)1B)2C.)3"a>b?a:(c<d?c:d)D)431.在C语言程序中,表达式5%2的结果是o24.若有以下类型说明语句:C)1A)2.5B)2D)3"的值是z;则表达式w-x*y/z的结果为D类型,表达式32.如果inta=3,b=4;则条件表达式"a<b?a:b"的值是A)3B)4C)0D)134.C语言中,关系表达式和逻辑表达式的值是A)0B)0

18、或1C)134解析:C语言中没有逻辑型数据,逻辑假用辑真。35.设a,b和c都是int型变量,且a=3,b=4,c=5,OD)'或'F,0表示,逻辑真用1表示。反之,0表示逻辑假,非0表示逻A)'a'&&'b'B)a<=bC)a|b+c&&b-c则下面表达式中,值为0的表达式是D)!(a<b)&&!c|1)35解析:注意运算符的优先级别。36.设x、v、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后x的值A)4B)16C)3236解析:(y=4,z=16,k=

19、32)是D)52个逗号表达式,逗号表达式的值是指最后一个表达式的值。37.下面,表达式的值为4.A)11/3B)11.0/3C)(float)11/3D)(int)(11.0/3+0.5)38.有:inta=2,b=10,c=3,d=4,m=2,n=1;执行(m=a>b)&&(n=c>d)后n的值为A)0B)1C)2D)没有结果38解析:&&运算有一种称为短路的情况,即当&&左边的表达式值为0时,已经能够确定整个表达式的值为0,此时将不再计算&&右边表达式的值。因此本题n=c>d没有运算,所以n的值不变。39.已

20、知intx=5,y=5,z=5;执行语句x%=y+z;后,x的值是A)0B)1C)5D)640.已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2='A'+'6'-'3'后,c2中的值为A)68B)DC)错误D)d41.下列关于C语言的叙述错误的是。A)大写字母和小写字母的意义相同B)不同类型的变量可以在一个表达式中C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个符号在不同的场合可以有不同的含义42.有:intw=11,x=12,y=3,m;执行下面语句后m的结果是。m=(w<x)?w:x;m=(

21、m<y)?m:y;A)1B)2C)3D)以上结果都不对44.设整型变量m,n,a,b,c,d均为0,则执行"(m=a=b)|(n=c=d)后,m,n的值是。A)0,0B)0,1C)1,0D)1,145 .。B)b=(float)(1/a)C)b=1/(float)aD)b=1/(a*1.0)46 .执行语句"x=(a=3,b=a-)”后,x,a,b的值依次为。A)3,3,2B)3,2,2C)3,2,3D)2,3,246解析:自减运算符用于复合语句的时候,如果运算符在变量后面,则变量先参与执行语句,然后值再自减,所以b的值为3,a的值为2。(a=3,b=a-)为逗号表达

22、式,其值为最后一个表达式的值,所以x被赋值为3。47.若已定义x和y为double类型,则表达式“x=1,y=x+3/2的值是。A)1B)2C)2.047解析:“x=1,y=x+3/2为逗号表达式。3/2值为1而非。y为doube类型,所以其值为而不是2。48.表达式“?(0?3:2)(10?1:0)的值是()。A)3B)2C)1D)049.若“intn;floatf=13.8;则执行:'n=(int)f)%3后;n的值是。A)150.设intx=0,y=1;表达式(x|y)的值是。A)0B)1C)2D)-152 .设x为int型变量,则执行语句x=10;x*=x;后,x的值为。A)1

23、0B)20C)100D)053 .若有语句inta=1,b;doubley=2.3;b=(int)y;则b的值为?A)3B)254 .已知intx;chary;则下面错误的scanf函数调用语句为。A)scanf("%d,%d,&x,&y);B)scanf("%d,%C,x,y)C)scanf("d%d,&x,&y)D)scanf("d,%d,&x,&y)56 .在C语言的库函数中,可以输出char型变量x值的语句是。A)getchar(x);B)fputc(x)C)putchar(x)D)puts(x)5

24、7 .设x、y均为整型变量,且x=10y=3,则语句printf("%d,%d,关,+y);的输出结果是。A)10,3B)9,3C)9,4D)10,457解析:自加(或自减)运算符用于复合语句的时候,如果运算符在变量前面,则变量的值先自加然后用自加(或自减)后的值执行语句。如果运算符在变量后面,则变量先参与执行语句,然后值再自加(或自减)。58 .以下说法正确的是。A) 'x'+101是一个错误的表达式B) C语言不允许类型的混合运算C)强制类型转换时,类型说明符必须加括号D)(int)x+y和(int)(x+y)是完全等价的表达式59 .表达式sizeof(doub

25、le)是。A)函数调用B)double型表达式C)int型表达式D)非法表达式62 .以下运算符中优先级最高的运算符是:A)&&B)+C)?D)!=(或自减),、阅读程序,写出运行结果1.#include<stdio.h>main()printf("a_bctdret_fn");printf("gh_tij_bb_k");注:“工表一个空格。运行结果为:efghi_k2.#include<stdio.h>main()charc1='a',c2='b',c3='c';p

26、rintf("a%cb%cc%c",c1,c2,c3);运行结果为:aabbcc3.#include<stdio.h>main()intz,x=6,y=5;charw='c';z=x+y+w;printf("%d,%d,%d",x,y,z);运行结果为:6,5,1104.#include<stdio.h>main()inti=128;floatx=234.89;printf(n"");printf("%5d,%8.2fn",i,x);printf("%2d,%4.1

27、fn",i,x);运行结果为:7.#include<stdio.h>main()inta=1,b=2;a=a+b;b=a-b;a=a-b;printf(“a=%d,b=%nd”,a,b);运行结果为:a=2,b=19.#include<stdio.h>main()intz,x=2,y=4;charw=c;z=x+y;printf("%d,%d,%d,%c",x,y,z,w);运行结果为:2,4,6,c5.#include<stdio.h>voidmain(void)intx=15,y=5;floatf=1234.567f,b=1

28、2345;printf("%f%10f%10.2f%.2f%-10.2fn",f,f,f,f,f);printf("x+y=%dn",x+y);printf("b=%8f",b);运行结果为:x+y=206.#include<stdio.h>main()inti=8,j=9;intx,y,z,w;x=i-;y=i;z=+j;w=j;printf(“%d,%d,%d,%d”,x,y,z,w);运行结果为:8,7,10,108.#include<stdio.h>main()intx=10;inty=79;print

29、f("%5d,%5d,%5d",!x,x|y,x&&y);注:“_代表一个空格”运行结果为:0,1,110.#include<stdio.h>main()charc='a'printf("%c,%dn",c,c);运行结果为:a,9711.#include<stdio.h>main()charc1,c2;c1=getchar();printf(“%c,%n”d,c1,c1);c2=c1+32;printf(“%c,%n”d,c2,c2);若敲进A,则运行结果为A,65a,9712.#include&

30、lt;stdio.h>main()intz,x=7,y=4;charw=c;z=x>y&&y+3<7|w;printf("n%d,%d,%d",x,y,z);运行结果为:7,4,113.#include<stdio.h>main()inti=10,j=10;intx,y,z,w;x=i-;y=i;z=+j;w=j;printf("%d,%d,%d,%d",x,y,z,w);运行结果为:10,9,11,1115.#include<stdio.h>main()intx,b0,b1,b2;printf("Pleaseenteranintegerx:");scanf("%d",&x);b2=x/100;b1=(x-b2*100)/10;b0=x%10;printf("bit0=%d,bit1=%d,bit2=%dn",b0,b1,b2);若输入352,运行结果为:bit0=2,bit1=5,bit2=314.#include<stdio.h>main()i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论