第三章习题参考答案一、单项选择题1、C语言中字符型(char)在内存中的形式存储是()。A)源码B)补码C)反码D)ASCII码2、运算符有优先级,在C语言中关于运算符优先级的正确叙述是()。A)所有单目运算的级别相同B)单目运算高于双目运算C)赋值运算级别最低D)求余运算比乘除运算级别高3、C语言并不是非常严格的算法语言,在以下关于C语言的不严格的叙述中,错误的说法是()。A)任何不同数据类型都不可以通用B)有些不同类型的变量可以在一个表达式中运算C)在赋值表达式中等号(=)左边的变量和右边的值可以是不同类型D)同一个运算符号在不同的场合可以有不同的含义4、以下选项中属于C语言的数据类型是()。A)复数型B)逻辑型C)双精度型D)集合型5、在C语言中,int、char和short三种类型数据所占的内存()。A)均为2个字节B)由用户自己定义C)由所用编译系统决定D)是任意的6、下列常数中不能作为C语言的常量的是()。A)0xa5B)2.5e-2C)3e2D)05827、设int类型的数据长度为2字节,则unsignedint类型数据的取值范围是()。A)0至255B)0至65535C)-256至255D)-32768至327678、在C语言中,数字029是一个()。A)八进制数B)十六进制数C)十进制D)非法数9、下列可以正确表示字符型常数的是()。A)”a”B)'\t’C)”\n”D)29710、以下错误的转义字符是()。A)'\\’B)'\'’C)'\81’D)'\0’11、C语言中整数-8在内存中的存储形式是()。A)1111111111111000B)1000000000000000C)0000000000001000D)111111111111011112、已知inti;floatf;正确的语句是()。A)(intf)%iB)int(f)%iC)int(f%i)D)(int)f%i13、已知:chara;intb;floatc;doubled;执行语句c=a+b+c+d;后,变量c的数据类型是()。A)intB)charC)floatD)double14、已知:inti,a;执行语句“i=(a=2*3,a*5),a+6;后,变量i的值是()。A)6B)12C)30D)3615、已知:inti=5;执行语句i+=++i;i的值是()。A)10B)11C)12D)A,B,C答案都不对16、字符串”\\\22a,0\n”的长度是()。A)8B)7C)6D)517、已知:charc='A';inti=1,j;执行语句j=!c&&i++;则i和j的值是()。A)1,1B)1,0C)2,1D)2,018、已知:intx=1,y=2,z;则执行z=xy?++x:++y;则z的值为()。A)1B)2C)3D)419、为了求出s=10!的值,则变量s的类型应当为()。(10!=3628800)A)intB)unsignedC)longD)以上三种类型均可以20、已知:floatx=1,y;则y=++x*++x的结果为()。A)y=9B)y=6C)y=1D)表达式是错误的21、已知“inta=4,b=5,c;”,则执行表达式“c=a=ab”后变量a的值为()。A)0B)1C)4D)522、已知:charw;intx;floaty;doublez;则表达式为为w*x+z-y的结果的类型是()。A)floatB)charC)intD)double23、选出使变量i的运行结果为4的表达式()。A)inti=0,j=0;B)inti=1,j=0;(i=3,(j++)+i)j=i=((i=3)*2);C)inti=0,j=1;D)inti=1,j=1;(j==1)?(i=1):(i=3);i+=j+=2;24、已知:intx;则使用逗号运算的表达式“(x=4*5,x*5),x+25”的结果为(1),变量x的值为(2)。(1)A)20B)100C)表达式不合法D)45(2)A)20B)100C)125D)4525、执行下面的语句后x的值为()。inta=14,b=15,x;charc='A';x=sizeof(c);A)AB)41HC)0D)126、若定义了intx;则将x强制转化为双精度类型应该写成()。A)(double)xB)x(double)C)double(x)D)(x)double二、填空题1、负数在计算机中是以______形式表示。(补码)2、双精度实数的表示范围是___________,其有效位数是________。(-10308~-10-308,10-308~10308,15~16位)3、一个整型数与一个实型数的运算结果是________型。(实型)4、“=”是________运算符,其结合性是由______。(赋值从右向左)5、表达式的运算对象可以是常量、变量和________。(函数调用)6、已知在ASCII代码中,字母A的序号为65,以下程序的输出结果是________。(65,89)#includestdio.hmain(){charc1='A',c2='Y';printf(%d,%d\n,c1,c2);}三、应用题1、下面程序的输出结果试__________。(109)main(){intx=10,y=10;printf(%d%d\n,x--,--y);}2、分析下面程序执行后的结果。main(){inta=3,b=7;printf(“%d\n”,a+++++b);(11)printf(“%d\n”,b%a);(0)printf(“%d\n”,a/b);(0)printf(“%d\n”,a+b);(12)printf(“%d\n”,a*=b+1);(36)}3、C语言中,怎样区分求负与减法运算?怎样区分取地址运算和按位与运算?答:区别是:-:求负:单目,右结合减法:双目,左结合&:取址:单目,右结合按位与:双目,左结合