您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 质量控制/管理 > C习题和答案谭浩强著C程序设计
《C语言程序设计》习题及参考答案第一章程序设计基本概念1.1在TRUBOC环境中用RUN命令运行一个C程序时,所运行的程序的后缀是______。答案:.exe1.2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。答案:.c.obj.exe1.3结构化程序由_____、_____、_____三种基本结构组成。答案:顺序、选择、循环第二章C程序设计的初步知识一、选择题2.1以下选项中正确的整型常量是A)12.B)-20C)1,000D)456答案:B2.2以下选项中正确的实型常量是A)0B)3.1415C)0.329×10(2)(10的2次方)D).871答案:D2.3以下选项中不正确的实型常量是A)2.607E-1B)0.8103e2C)-77.77D)456e-2答案:B2.4以下选项中不合法的用户标识符是A)abc.cB)fileC)MainD)PRINTF答案:A2.5以下选项中不合法的用户标识符是A)_123B)printfC)A$D)Dim答案:C2.6C语言中运算对象必需是整型的运算符是A)%B)/C)!D)**答案:A2.7可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:B2.8若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+7;B)a=7+b+c,a++C)int(12.3%4)D)a=a+7=c+b答案:B2.9以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。答案:B2.10以下叙述中正确的是A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B)C程序由主函数组成。C)C程序由函数组成。D)C程序由函数和过程组成。答案:C2.11TURBOC中int类型变量所占字节数是A)1B)2C)3D)4答案:B2.12不合法的八进制数是A)0B)028C)077D)01答案:B2.13不合法的十六进制数是A)oxffB)0XabcC)0x11D)0x19答案:A二、填空题2.14若k为int整型变量且赋值11。请写出运算k++后表达式的值A)_____和变量的值B)_____。答案:11、122.15若x为double型变量,请写出运算x=3.2,++x后表达式的值A)_____和变量的值B)_____。答案:4.2、4.22.16函数体由符号____开始,用符号____结束。函数体的前面是____部分,其后是____部分。答案:{、}、定义、执行2.17C语言中的标识符可分为____、____、和预定义标识符三类。答案:关键字、用户标识符2.18在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。答案:int、float、double2.19把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。答案:floata1=1.0,a2=1.0;2.20C程序中定义的变量,代表内存中的一个____。答案:存储单元2.21表达式3.5+1/2的计算结果是____。答案:3.52.22对以下数学式,写出三个等价的C语言表达式____、____、____。a×b——c答案:a*b/c、a/c*b、b/c*a2.23表达式s=10应当读做“____”。答案:将10赋给变量s2.24计算机中内存储器的最小存储单位称____,其中能容纳的数是____。答案:位、0或12.25通常一个字节包含____个二进制位。在一个字节中能存放的最大(十进制)整数是____,它的二进制数的形式是____;最小(十进制)整数是____,它的二进制数的形式是____。答案:8、255、11111111、-128、100000002.26当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是____、最小(十进制)整数是____,它的二进制数的形式是____。答案:65535、-32768、10000000000000002.27在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。答案:十、八、十六第三章、顺序结构一、选择题3.1若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100;B)d++;C)c+b;D)d=(c=22)-(b++);答案:C3.2以下选项中不是C语句的是A){inti;i++;printf(%d\\n,i);}B);C)a=5,c=10D){;}答案:C3.3以下合法的C语言赋值语句是A)A=B=58B)k=int(a+b);C)a=58,b=58D)--i;答案:D3.4以下程序的输出结果是A)0B)1C)3D)不确定的值main(){intx=10,y=3;printf(%d\\n,y=x/y);}答案:C3.5若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是A)read(a,b,c);B)scanf(%d%d%d,a,b,c);C)scanf(%D%D%D,&a,&b,&c);D)scanf(%d%d%d,&a,&b,&c);答案:D3.6若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A)10CR22CR33CRB)10.0,22.0,33.0C)10.0CR22.033.0D)1022CR33scanf(%f%f%f,&a,&b,&c);答案:B3.7若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是A)a=a+b,b=a-b,a=a-b;B)t=a,a=b,b=t;C)a=t;t=b;b=a;D)t=b;b=a;a=t;答案:C3.8若变量已正确定义,以下程序段的输出结果是A)输出格式说明与输出项不匹配,输出无定值B)5.17000C)5.168000D)5.169000x=5.16894;printf(%f\\n,(int)(x*1000+0.5)/(float)1000);答案:D3.9若有以下程序段,c3中的值是A)0B)1/2C)0.5D)1intc1=1,c2=2,c3;c3=c1/c2;答案:A3.10若有以下程序段,其输出结果是A)0,0,-10B)0,0,5C)-10,3,-10D)3,3,-10inta=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(%d,%d,%d\\n,a,b,c);答案:B3.11当运行以下程序时,在键盘上从第一列开始输入9876543210CR(此处CR代表Enter),则程序的输出结果是A)a=98,b=765,c=4321B)a=10,b=432,c=8765C)a=98,b=765.000000,c=4321.000000D)a=98,b=765,c=4321.0main(){inta;floatb,c;scanf(%2d%3f%4f,&a,&b,&c);printf(\\na=%d,b=%f,c=%f\\n,a,b,c);}答案:C3.12以下程序的输出结果是A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%dmain(){inta=2,b=5;printf(a=%%d,b=%%d\\n,a,b);}答案:D3.13若int类型占两个字节,则以下程序段的输出是A)-1,-1B)-1,32767C)-1,32768D)-1,65535inta=-1;printf(%d,%u\\n,a,a);答案:D3.14以下程序段的输出是A)*496*B)*496*C)*000496*D)输出格式符不合法intx=496;printf(*%-06d*\\n,x);答案:A3.15以下程序段的输出是A)|3.1415|B)|3.0|C)|3|D)|3.|floata=3.1415;printf(|%6.0f|\\n,a);答案:C3.16以下程序段的输出是A)|2345.67800|B)|12345.6780|C)|12345.67800|D)|12345.678|printf(|%10.5f|\\n,12345.678);答案:C3.17以下程序段的输出是A)*0000057.66*B)*57.66*C)*0000057.67*D)*57.67*floata=57.666;printf(*%010.2f*\\n,a);答案:C3.18若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是A)scanf(%f,c);B)scanf(%8.4f,&c);C)scanf(%6.2f,&c);D)scanf(%8,&c);283.1900CRCR表示Enter键答案:由于印刷错误,本题没有正确答案。改正意见:把选项A改为:scanf(%f,&c);或者把选项D改为:scanf(%8f,&c);则可分别选择A或者D为正确答案。3.19若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(□代表空格)A)3.12□□9.0CRB)a=□□3.12b=□□□9CRC)a=3.12,b=9CRD)a=3.12□□,b=9□□□□CRscanf(a=%f,b=%f,&a,&b);CR表示Enter键答案:C3.20以下程序的输出结果是A)98B)89C)66D)以上三个都不对#includemath.hmain(){doublea=-3.0,b=2;printf(%3.0f%3.0f\\n,pow(b,fabs(a)),pow(fabs(a),b));}答案:B二、填空题3.21若有以下定义,请写出以下程序段中输出语句执行后的输出结果。(1)____(2)____(3)____inti=-200,j=2500;printf((1)%d%d,i,j);printf((2)i=%d,j=%d\\n,i,j);printf((3)i=%d\\nj=%d\\n,i,j);答案:-2002500i=-200,j=2500i=-200j=25003.22变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf(%d,&i);scanf(%d,&j);scanf(%d,&k);当执行第一个输入语句,从键盘输入:12.3CRCR表示Enter键则变量i、j、k的值分别是____、____、____。答案:12、0、03.23复合语句在语法上被认为是____。空语句的形式是____。答案:一条语句、;3.24C语句的最后用____结束。答案:;3.25以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式____、_____、____。intk;floata;doublex;scanf(%d%f%lf,&k,&a,&x);printf(k=%d,a=%f,x=%f\\n,k,a,x);答案:(1)10025.811.89234(2)10025.81CR1.89234(3)100CR25.81CR1.89234CR3.26以下程序段的输出结果是____。intx=0177;printf(x=%3d,x=%6d,x=$%6o,x=%6x,x=%6u\\n,x,x,x,x,x);答案:x=127,x=127,x=177,x=7f,x
本文标题:C习题和答案谭浩强著C程序设计
链接地址:https://www.777doc.com/doc-2907401 .html