第二章基本数据类型和运算一、单项选择题1.下列数据中属于“字符串常量”的是(A)。A.”a”B.{ABC}C.’abc\0’D.’a’2.下列数据中属于“字符串常量”的是(B)。A.ABCB.“ABC”C.’abc’D.’a’3.在PC机中,’\n’在内存占用的字节数是(A)。A.1B.2C.3D.44.在PC机中,”a\xff”在内存占用的字节数是(C)。A.5B.6C.3D.45.字符串“ABC”在内存占用的字节数是(B)。A.3B.4C.6D.86.字符串”\’ABCD\’”在内存占用的字节数是(C)。A.4B.6C.7D.87.在C语言中,合法的长整型常数是(A)。A.0LB.4962710C.0.054838743D.2.1869e108.在C语言中,合法的短整型常数是(D)。A.0LB.0821C.40000D.0x2a9.下列数据中不属于“字符常量”的是(C)。A.‘\xff’B.‘\160’C.’070’D.07010.char型常量的内存中存放的是(A)。A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值11.若int类型数据字长为4,其最大值为(B)。A.231B.231-1C.232-1D.232
12.常数的书写格式决定了常数的类型和值,03322是(B)。A.16进制int类型常数B.8进制int类型常数C.10进制int类型常数D.10进制longint类型常数13.“e2”是(D)。A.实型常数100B.值为100的整型常数C.非法标识符D.合法标识符14.要为字符型变量a赋初值,下列语句中哪一个是正确的(A)。A.chara=’3’;B.chara=”3”;C.chara=%;D.chara=*;15.要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C)。A.floatx,y,z=3.14;B.floatx,y,z=3*3.14;C.floatx=3.14,y=3.14,z=3.14;D.floatx=y=z=3.14;16.语句“floatpi=3.1415926535;”将(D)。A.导致编译错误B.说明pi为初值3.1415926535的单精度实型常数C.导致运行时的溢出错误D.说明pi为初值3.141593的单精度实型常数17.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。A.算术运算、赋值运算、关系运算B.算术运算、关系运算、赋值运算C.关系运算、赋值运算、算术运算D.关系运算、算术运算、赋值运算18.关系运算符中优先级最低的运算符是(C)。A.“>=”和“<=”B.“>”和“<”C.“==”和“!=”D.“<=”和“<”19.逻辑运算符中,运算优先级按从高到低依次为(D)。A.&&,!,‖B.‖,&&,!C.&&,‖,!D.!,&&,‖20.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的(A)。A.0为假非0为真B.只有1为真C.-1为假1为真D.0为真非0为假21.表达式x==0&&y!=0‖x!=0&&y==0等效于(A)。A.x*y==0&&x+y!=0B.x*y==0&&(x+y==0)C.x==0‖y==0D.x*y=0‖x+y=022.表达式!x‖a==b等效于(D)。A.!((x‖a)==b)B.!(x‖y)==bC.!(x‖(a==b))D.(!x)‖(a==b)23.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)‖(n=c==d)后,m,n的值是(C)。A.0,0B.0,1C.1,0D.1,124.设整型变量m,n,a,b,c,d均为1,执行(m=a>b)&&(n=c>d)后,m,n的值是(B)。A.0,0B.0,1C.1,0D.1,125.设a为2,执行下列语句后,b的值不为0.5的是(B)。A.b=1.0/aB.b=(float)(1/a)C.b=1/(float)aD.b=1/(a*1.0)26.设a为5,执行下列语句后,b的值不为2的是(C)。A.b=a/2B.b=6-(--a)C.b=a%2D.b=a>3?2:227.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为(C)。A.3,3,2B.3,2,2C.3,2,3D.2,3,228.intb=0,x=1;执行语句if(x++)b=x+1;后,x,b的值依次为(A)。A.2,3B.2,0C.3,0D.3,229.设有语句inta=3;,则执行了语句a+=a-=a*a;后,变量a的值是(D)。A.3B.0C.9D.-1230.设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。A.3B.0C.9D.-1231.inta=4,b=3,c=-2,d=2;逻辑表达式a>0&&b&&c<0&&d>0的值是(A)。A.1B.0C.-1D.出错32.在以下一组运算符中,优先级最高的运算符是(C)。A.<=B.=C.%D.&&33.设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是(C)。A.6B.12C.15D.表达式出错34.设整型变量i,j值均为3,执行了j=i++,j++,++i后,i,j的值是(B)。A.3,3B.5,4C.4,5D.6,635.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(C)。A.1B.2C.2.0D.2.536.sizeof(double)的结果值是(A)。A.8B.4C.2D.出错37.表达式1?(0?3:2):(10?1:0)的值是(B)。A.3B.2C.1D.038.设a=1,b=2,c=3,d=4,则表达式:aA.4B.3C.2D.139.设a为整型变量,不能正确表达数学关系:10A.10C.a>10&&a<15D.!(a<=10)&&!(a>=15)40.inta=0;if(a=1)a+=10;结果的值是(B)。A.0B.11C.10D.出错41.下列表达式中符合C语言语法的赋值表达式是(C)。A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+742.设f是实型变量,下列表达式中不是逗号表达式的是(D)。A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)---赋值表达式43.下列表达式中,不正确的表达式是(B)。A.a=1,b=1B.y=int(x)C.a=b=5D.i++44.intn;floatf=13.8;执行n=((int)f)%3后,n的值是(A)。A.1B.4C.4.333333D.4.645.用十进制数表示表达式“12|012”的运算结果是(C)。A.1B.0C.14D.1246.设有整型变量a=35,表达式(a&15)&&(a|15)的值是(B)。A.0B.1C.15D.3547.设字符型变量a=3,b=6,计算表达式c=(a^b)<<2后c的二进制值是(D)。A.00011100B.00000111C.00000001D.0001010048.设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中值为0的是(D)。A.’a’&&’b’B.a<=bC.a‖b+c&&b-cD.!(a49.设x,t均为int型变量,则执行以下语句后,t的值为(D)x=10;t=x&&x>10;。A.不定值B.10C.1D.050.设x,y,z,t均为int型变量,则执行以下语句后,t的值为(C)。x=y=z=1;t=++x‖++y&&++z;A.不定值B.2C.1D.051.设a是char型变量,其值字符为‘1’,则把其值变成整数1的表达式是(C)。A.(int)aB.int(a)C.a=a-48D.a/(int)a52.设a是int型变量,其值为3,则把其值变成字符‘3’的表达式是(D)。A.(char)aB.a=3C.a=a-48D.a=a+4853.设ch是char型变量,其值为‘A’,则下面表达式的值是(B)。ch=(ch>=’A’&&ch<=’Z’)?(ch+32):chA.AB.aC.ZD.z54.设有整型变量i,j,k,i值为3,j值为6。计算表达式k=i^j<<3;后,k的值是(B)。A.56B.51C.40D.2755.设有无符号短整型变量i,j,k,i值为013,j值为0x13。计算表达式k=~i|j>>3;后,k的值是(D)。A.06B.0177776C.066D.017776656.设有无符号整型变量a值为331,计算表达式a=(a>>4)&~(~0<<4)后,a的值是(A)。A.4B.15C.015D.01757.下列格式符中,哪一个可以用于以8进制形式输出整数(C)。A.%dB.%8dC.%oD.%ld58.下列格式符中,哪一个可以用于以16进制形式输出整数(B)。A.%16dB.%8xC.%d16D.%d59.a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的(B)。A.scanf(”%d,%c”,&a,&c);B.scanf(”%d%c”,a,c);C.scanf(”%d%c”,&a,&c);D.scanf(”d=%d,c=%c”,&a,&c);60.字符变量ch=’A’,int类型变量k=25,语句printf(”%3d,%d3\n”,ch,k);输出(A)。A.65,253B.65253C.65,25D.2561.设a=1234,b=12,c=34执行printf(“|%3d%3d|\n”,a,b,c);的输出是(A)。A.|12341234|B.|1231234|C.|123412-34|D.|2341234|62.使用scanf(“x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是(C)。A.1.25,1.25B.1.251.25C.x=1.25,y=1.25D.x=1.25y=1.2563.要使doublex;longa;获得数据,正确的输入语句是(C)。A.scanf(“%d,%f”,&a,&x);B.scanf(“%f,%1d”,&x,&a);C.scanf(“%1d,%1f”,&a.&x);D.scanf(“%1d,%1f”,a,x);64.要使doublex;longa;的数据能正确的输出,输出语句应是(D)。A.printf(“%d,%f”,a,x);B.printf(“%d,%1f”,a,x);C.scanf(“%1d,%1f”,&a,&x);D.printf(“%1d,%1f”,a,x);65.还是inta=255,b=8;则printf(“%x,%o\n”,a,b);的输出的是(B)。A.255,8B.ff,10C.0xff,010D.输出格式错