您好,欢迎访问三七文档
第二章课堂习题一.选择题1、不是合法的字符常量是。A)‘\t’B)“A”C)‘a’D)’\x32’2、合法的字符常量是。A)‘\084’B)‘\84’C)‘ab’D)’\x43’3、是C语言提供的合法的数据类型关键字。A)FloatB)signedC)integerD)Char4、在以下各组标识符中,合法的标识符是。(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_y235、在C语言中,要求参加运算的数必需是整数的运算符是。A)/B)*C)%D)=6、在C语言中,字符型数据在内存中以形式存放。A)原码B)BCD码C)反码D)ASCII码7、下列语句中,符合语法的赋值语句是。A)a=7+b+c=a+7;B)a=7+b++=a+7;C)a=(7+b,b++,a+7);D)a=7+b,c=a+7;8、对于语句:f=(3.0,4.0,5.0),(2.0,1.0,0.0);的判断中,是正确的。A)语法错误B)f为5.0C)f为0.0D)f为2.09、与代数式(x*y)/(u*v)不等价的C语言表达式是。A)x*y/u*vB)x*y/u/vC)x*y/(u*v)D)x/(u*v)*y10、在C语言中,数字029是一个。A)八进制数B)十六进制数C)十进制数D)非法数11、C语言中整数-8在内存中的存储形式为。A)1111111111111000B)100000000001000C)000000000001000D)111111111111011112、对于charcx=’\039’;语句,正确的是。A)不合法B)cx的ASCII值是33C)cx的值为四个字符D)cx的值为三个字符13、若intk=7,x=12;则能使值为3的表达式是。A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)14、为了计算s=10!(即10的阶乘),则s变量应定义为。A)intB)unsignedC)longD)以上三种类型均可15、假定x和y为double型,则表达式x=2,y=x+3/2的值是。A)3.500000B)3C)2.000000D)3.00000016、以下合法的赋值语句是。A)x=y=100B)d――C)x+yD)c=int(a+b)17、下选项中不属于C语言的类型是。A)signedshortintB)unsignedlongintB)unsignedintD)longshort18、设以下变量均为int类型,则值不等于7的表达式是。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+1,x=y,x+1)19.下列程序的输出结果是。main(){intx=023;printf(“%d”,--x);}A)17B)18C)23D)2420.执行下列程序片段时输出结果是。intx=13,y=5;printf(“%d”,x%=(y/=2));A)3B)2C)1D)021.执行下列程序片段时输出结果是。intx=5,y;y=2+(x+=x++,x+8,++x);printf(“%d”,y);A)13B)14C)15D)16二.填空题1.设x,i,j,k都是int型变量,表达式x=(i=4,j=16,k=32)计算后,x的值为32。2.已知inta=12,n=5;则:通过下列表达式运算,a的值变为0,n的值变为0。a+=aa-=2a*=2+3a/=a+an%=(n%=2)a+=a-=a*=a3.设inta;floatf;doublei;则表达式10+’a’+i*f值的数据类型是double。4.假设所有变量均为整型,则表达式(a=2,b=5,a++,b++,a+b)的值为9。5.定义:doublex=3.5,y=3.2;则表达式(int)x*0.5的值是1.5,表达式y+=x++的值是6.7。6.定义:intm=5,n=3;则表达式m/=n+4的值是0,表达式m=(m=1,n=2,n-m)的值是1,表达式m+=m-=(m=1)*(n=2)的值是8。7.若a是int变量,则执行表达式a=25/3%3后,a的值是2。8.在C语言中,一个char数据在内存中所占字节数为1;一个int数据在内存中所占字节数为2,一个long数据在内存中所占字节数为4,一个float数据在内存中所占字节数为4。9.字符常量使用一对单引号界定单个字符,而字符串常量使用一对双引号来界定若干个字符的序列。三.判断题1.在C程序中对用到的所有数据都必须指定其数据类型。【对】2.一个变量在内存中占据一定的存储单元。【对】3.一个实型变量的值肯定是精确的。【错】4.对几个变量在定义时赋初值可以写成:inta=b=c=3;【错】5.自增运算符(++)或自减运算符(--)只能用于变量,不能用于常量或表达式。【对】6.在C程序的表达式中,为了明确表达式的运算次序,常使用括号“()”。【对】7.%运算符要求运算数必须是整数。【对】8.若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。【对】9.在C程序中,逗号运算符的优先级最低。【对】10.C语言不允许混合类型数据间进行运算。【错】四.编程题1.假设m是一个三位数,则写出将m的个位,十位,百位反序而成的三位数(例如:123反序为321)的C语言表达式。2.已知intx=10,y=12;写出将x和y的值互相交换的表达式。1.#includestdio.hmain(){printf(请输入一个三位数:\n);inta,b,n1,n2,n3;scanf(%d,&a);n1=a/100;n2=a%100/10;n3=a%100%10;b=n3*100+n2*10+n1;printf(%d,b);}2.#includestdio.hmain(){intx=10,y=12;intz;z=x;x=y;y=z;printf(x=%d,y=%d,x,y);}
本文标题:C语言练习题及答案
链接地址:https://www.777doc.com/doc-4502146 .html