《798956542_谭浩强c语言程序设计习题集.docx》由会员分享,可在线阅读,更多相关《798956542_谭浩强c语言程序设计习题集.docx(148页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、谭浩强C语言程序设计习题集目录重要次重要重复或欲删除基础第一章C语言概述第二章数据类型、运算符与表达式第三章最简单的C程序设计第四章逻辑运算和判断选取控制第五章循环控制第六章数组第七章函数第八章编译预处理8.1 选择题8.2 填空题8.3 编程题第九章指针8.4 编程题第十章结构体和共用体10.1 选择题10.2 填空题10.3 编程题第十一章位运算11.1 选择题11.2 填空题11.3 编程题第十二章文件12.1 选择题12.2 填空题12.3 编程题第一章C语言概述1.1 选择题* 1.1 个C程序的执行是从A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,
2、到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D)本程序文件的第一个函数开始,到本程序main函数结束参考答案:A参考分析:C语言总是从main函数开始,main函数结束。但是C语言中存在个exit(O) 函数,它可以使得程序在任何时候、任何位置结束程序的运行。如果不考虑exit(O)等函数的 特殊作用,C则总是在main函数结束。* 1.2以下叙述正确的是。A)在C程序中,main函数必须位于程序的最前面B)在C程序的每一行只能写一条语句C)C语言本身没有输入输出语句D)在对个C程序进行编译的过程中,可发现注释中的拼写错误参考答案:C参考分析:C程
3、序对main函数的位置没有任何要求;其书写格式自由,一行可以写多条语 句,一条语句(多关键字语句)可以写在多行;C语言忽略注释,把注释看作是个空格,不会 对注释中的B)必须在系统调用的库函数的后面C)可以任意D)必须在最后参考答案:C* 1.5 个C语言程序是由A)一个主程序和若干个子程序组成B)若干函数组成C)若干过程组成D)若干子程序组成参考答案:B参考分析:通常许多语言程序由主程序和子程序构成,但是C语言是函数式语言,整个程序 由众多函数组成。尽管有时习惯上称main函数为主程序,显然,严格地讲还是B更为符合 C语言的规则。1.2 填空题1.6 C源程序的基本单位是【参考答案:函数1.7
4、 一个C源程序中至少应包括一个【0参考答案:main。函数1.8 在个C源程序中,注释部分两侧的分界符分别为【1和2参考答案:【1/* 2 */1.9 在C语言中,输入操作是由库函数【1】完成的,输出操作是由库函数【2】完成的。参 考答案:【1】scanf 2 printf第二章数据类型、运算符与表达式2.1 选择题*2.1C语言中(以16位PC机为例),各数据类型的存储空间长度的排列顺序为A)char<int<long<=float<double B)char=int<long⁢=float<doubleC)char<int<long=f
5、loat=double D)char=int=long<=float<double参考答案:A分析:在不同的计算机系统中,不同的C语言系统中,其各种数据类型所占据的存储空间是 不同的,但是有一个总的原则,即:char<=short<=int<=long<= float<=double,只有 A 符合16位PC机中的具体环境。*2.2若x、i、j和k都是int型变量,则计算下面表达式后,x的值为。x=(i=4j=16,k=32)A)4B)16C)32D)52参考答案:C参考分析:逗号表达式的计算结果是最后一个表达式的值。k=23是括号 B)8C)5D)2
6、参考答案:B参考分析:逗号表达式的计算结果是最后个表达式的值。b+在所在表达式参与运算时 的值是5,该表达式计算完成后,b进行自增运算,故a+b的值为2+6=8。2.4 下列四组选项中,均不是C语言关键字的选项是。A)define B)getc C)include D)whileIFchar scanf gotype printf casepow参考答案:A 参考分析:是关键字的有:char、case、while.2.5 下列四组选项中,均是C语言关键字的选项是。A)auto B)switchC)signedD)ifenumtypedefunionstructincludecontinuesc
7、anftype参考答案:B参考分析:不是关键字的:include、scanf、type*2.6下面四个选项中,均是不合法的用户标识符的选项是A)AB)floatC)b-aD)23P_0laOgototempdo_AintINT参考答案:C参考分析:合法的有:A、P_0、laO、_A、_123、temp、* *2.7 C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符 。A)必须为字母B)必须为下划线 C)必须为字母或下划线D)可以是字母、数字和下划线中的任一种字符参考答案:C参考分析:教材中只是强调首字符必须为字母,我们应当知道,在语言系统中,下划线和字母 具有同等的一法律效I
8、I *2.8下面四个选项中,均是合法整型常量的选项是。A) 160B)-0xcdfC)-01D)-0x48a-OxflfffOla986,0122e5011Oxe0668Ox参考答案:A参考分析:不合法的B2,C2,C3,D2o解释:A2:-0xfffi十六进制数本身已经包含了符号位, 一般不前面加符号位,但加上符号位也不错误;C3:0668在有些C系统中,进制数中允许出 现8,但是通常不允许使用8; D3:0x显然后面缺少数值,但在TC中是允许的。2.9下面四个 选项中,均是不合法的整型常量的选项是。A)-0flB)-0XcdfC)-018D)-0x48eg-Oxfffif017999-06
9、8001112,4565e203f参考答案:D参考分析:不合法的A1,B3,C1,C3,D。解释:Al:-On十六进制数没有Ox,显然不合法,这里 需要讨论的是常量前面允许不允许加上一号,是否可以负负得正,显然不可以,在C中是自减 运算,它只适用于变量;BLOXcdf X大写也可以! C3:5e2是个实型数。2.10下面四个选 项中,均是不合法的浮点数的选项是。A)160.0.12e3参考答案:参考分析:B)123Q-.18D)-e32e4.2123e4.234.e50.0Ie3B不合法的有A3,B,D1。部分解释:Al,D2:C语言中小数点前面或后面的。可以省略。但是不能只有小数点自身;A3
10、,B3,Dl:e的前后必须有合法数字。l.e2 ,le2合法,.e2 不合法;Bl:123是整型数,不是浮点数。*2.11下面四个选项中,均是合法的浮点数的选项是。A)+le+lB)-.6OC)123eD)-e35e-9.412e-41.2e-.4.8e-403e2-8e5+2e-l5.e-0参考答案;B参考分析:不合法的有A2:阶码不能为小数;A3:浮点数的尾数及阶码不能用八进制数表示;Cl:e后必须有整数,C2:阶码不能为小数;D1:缺少尾数。* 2.12下面四个选项中,均是合法转义符的选项是A)”B),QOl 8?DJWO5017 f,iorn l"* xab xlf参考答案:
11、A参考分析:""后面的数字,c总是按照八或十六进制解释。由于c支持扩展ASCII 字符集,所以,进制数范围在。377,十六进制数范围在00伉*2.13下面四个选项中, 均是不合法的转义符的选项是。A)",B),1011,C)011 D)abcv,*r*ior4xfaxlf参考答案:B参考分析:不合法的有B1,B2,B3,C3,D1,D3;但B3和C3值得讨论,实际上,a,是个转义 字符(07 beep)。C中只有少数字母是转义字符,大多数字母不是。像c就不是,它就是字符c 自身,非转义字母加""也仅表示它本身。C3,也表示自身。本题的命题人显然
12、不 知道a也是转义字符。* 2.14下面正确的字符常量是。A)"c" B)C)W D)""参考答案:C *2.15下面四个选项中,均是不正确的进制或十六进制数的选项是。A)016B)OabcC)010D)0al2Ox8f017-Oxll7ff018Oxa0x16-123参考答案:D参考分析:不正确的有A3:非法进制数;Bl、DI、D2:缺少x; D3是十进制数。2.16下面四个选项中,均是正确的八进制或十六进制数的选项是。A)-10B)0abcC)00100x8f-017-0x11-011OxcOxfl参考答案:C参考分析:不正确的有Al:这是十进制数;
13、D)0al2 -0x123-OxaBl、DI:缺少x 2.17下面四个选项中,均是正确的数值常量或字符常量的选项是。A)0.0B)"a"C)3D)+001Of3.9e-2.50118.9eleiOxFFOO&"参考答案:D0aOxabcd2e250.参考分析:不正确的有A2、C4:不是。x打头;A3:e后不是整数:B1是字符串:B2:2.5 不是整数。2.18 下面不正确的字符串常量是。A)abc B)"12,12" C)"0" D)" "参考答案:A参考分析:与PASCAL不同,B)字符串。ex
14、p(x*x/2)/sqr(2*3.14159)427rB)!6 !.0/2.0*(a*x+(a+x)/(4*a)C)sinx2.5sqrt(pow(sin(x*3.14159/180),2.5)D)x2-e5x*x-exp(5.0)参考答案:C2.20 若有代数式3ae/bc,则不正确的C语言表达式是A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3参考答案:C参考分析:注意表达式的计算顺序2.21 已知各变量的类型说明如下,则不符合C语言语法规定的表达式是。int k,a,b;unsigned long w=5;double x=1.42;A)x%(-3
15、) B)w+=2 C)k=(a=2,b=3,a+b) D)a+=a=(b=4)*(a=3)参考答案:A参考分析:不符合C语法规定的只有A,因为X为实型数。2.22 已知各变量说明如下,则符合C语言语法规定的表达式是。int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;A)a+=a=(b=4)*(a=3) B)a=a*3=2 C)x%(-3) D)y=float(i)参考答案:A参考分析:B)表达式不能出现在赋值号右侧;C)x是实型数,不能进行取余运算:D)应将 float用括号扩起来(强制类型转换)。*2.23以下不正确的叙述是。A)在C程序
16、中,逗号运算符的优先级最低B)在C程序中,APH和aph是两个不同的变量C)若a和b类型相同,在计算表达式a=b后,b的值将放入a中,而b中的值不变D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 参考答案:D参考分析:整型变量可以输入实型数值,实型变量也可以输入整型数值2.24以下正确的叙述是。A)在C程序中,每行只能写一条语句B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数C)在C程序中,无论是整数还是实数,都能被准确无误地表示D)在C程序中,是只能用于整数运算的运算符参考答案:D参考分析:注意它的描述,是只能用于整数运算,而不是
17、整型数运算。* 2.25以下符合C语言语法的有赋值能力的表达式是A)d=9+e+f=d+9B)d=9+e,Qd+9C)d=9+e,e+,d+9D)d=9+e+=d+7参考答案:B参考分析:C不是赋值表达式,是逗号表达式,赋值仅是其中的一部分。严格说来,B也不是 赋值表达式,它是由两个赋值表达式组成的逗号表达式。*2.26已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=W+6-3;后,c2的值为。A)D B)68C)不确定的值D)C参考答案:A参考分析:表达式中的各字符以各自的ASCH码参与运算。* 2.27在C语言中,要求运算数必须是整型(数)的运算符是。A)/B)+C
18、)!=D)%参考答案:D参考分析:理论上卄运算都是针对整型(含字符型)的,尽管现在很多系统提供了对实型变量 的增量运算。* 2.28若以下变量均是整型,且num=sum=7;则计算表达式sUM=num+, sUM+,+num后 sum的值为。A)7B)8 D)10参考答案:A参考分析:注意sum和sUM不是一个变量(区分大小写)。* 2.29在C语言中,int、char和short三种类型数据在 B)均为两个字节C)是任意的D)由所用机器的字长决定参考答案:D参考分析:参考答案很明确地表明了,C语言中各种类型在B)包含2个字符。C)包含3个字符。D)说明不合法,c的值不确定。参考答案:A参考分
19、析:转义字符72,为字符,:,。2.31 若有定义:int a=7; float x=2.5,y=4.7;则表达式 x+a%3*(int)(x+y)%2/4 的值是 A)2.500000B)2.750000C)3.500000D )0.000000参考答案:A参考分析:计算时要注意其结合性和优先级。*2.32 sizeof(float)是。A)个双精度型表达式B)个整型表达式C) 种函数调用D)一个不合法的表达式参考答案:B参考分析:算术表达式的类型由表达式计算结果的类型决定*2.33设变量a是整型,f是实型,i是双精度型,则表达式10+a,+i*f值的数据类型为A)int B)float C
20、)double D)不确定参考答案:C参考分析:实型只要参与运算就自动转换为double型。2.34下面四个选项中,均是非法常量的选项是A)as B)C)-0xl8D)0xabc-Offfl0r 01177、0xa12,456 Oxf"a"参考答案:A参考分析:A3转义字符以十六进制描述时,前面不能加。非法的还有B3*2.35若有代数式则正确的C语言表达式是A) sqrt(fabs(pow(y,x)+loglO(y)B) sqrt(abs(pow(y,x)+loglO(Y)C) sqrt(fabs(pow(x,y)+loglO(y)D) sqrt(abs(pow(x,y)+
21、loglO(y)参考答案:A参考分析:c语言中整型和实型的绝对值函数各自独立,为abs和!hbs;pow为一系统函数 pow(y,x)=>yxo2.36若有代数式|x3+lgx|,则正确的C语言表达式是。A)fabs(x*3+log 10(x)B)abs(pow(x,3)+loglO(x)C)abs(pow(x,3.0)+log 10(x)D)fabs(pow(x,3.0)+log 10(x)参考答案:D参考分析:以上两题均未说明x,y的类型,从表达式的性质可分析隐含为实型,因此应使 用 fabso*2.37在C语言中,char型数据在B)反码C)原码D)ASCI1码 参考答案:D参考分
22、析:计算机系统不能存储字符本身,存储的是字符的ASCII码。*2.38设变量n为float,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位 进行四舍五入的表达式是。A)n=(n* 100+0.5)/I 00.0B)m=n* 100+0.5,n=m/100.0C)n=n*l 00+0.5/100.0D)n=(n/10G+0.5)* 100.0参考答案:B参考分析:m=n* 100+0.5赋值过程中有实型转整型的自动转换。2.39 表达式18/4*sqrt(4.0)/8值的数据类型为A)int B)float C)double D)不确定参考答案:C参考分析:表达式的类型由表达式
23、结果的类型决定。2.40 设C语言中,个int型数据在内存中占2个字节,则unsigned int型数据的取值范围为 。A)0-255B)0-32767C)0-65535D)0-2147483647参考答案:C参考分析:各种数据类型的取值范围是由其字长决定,字长确定的情况下,有符号数与无符 号数的范围应当容易计算得知。2.41 设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型为A)float B)char C)int D)double参考答案:D参考分析:表达式的类型由表达式结果的类型决定。虽然本题各变量没有具体的变量值, 由于参与运算的
24、变量中z变量为double型,表达式计算的结果肯定为double型。2.42 若有以下定义,则能使值为3的表达式是int k=7,x=12;A)x%=k%=5B)x%=k-k%5C)x%=(k-k%5)D)(x%=k)-(k%=5)参考答案:D参考分析:A的值为0,B、C两个表达式相同,值为2,只有D的值为3。2.43 设以下变量均为int类型,则值不等于7的表达式是。A)x=y=6,x+y,x+lB)x=y=6,x+y,y+lC)x=6,x+1,尸6,x+yD)尸 6,y+1 ,x=y,x+1参考答案:C参考分析:经计算可知,只有C的值为12,不为7。2.44 空题2.44 在C语言中(以1
25、6位PC机为例),个char型数据在【2】22.45 在C语言中(以16位PC机为例),个float型数据在【2】82.46 若有以下定义,int m=5,y=2;则计算表达式y+=y-=m*=y后y的值是【 参考答案:-162.47 设C语言中,个int型数据在2】double*2.49 C语言所提供的基本数据类型包括:单精度型、双精度型、【1】、【2】和【3】。参 考答案:字符型整型枚举参考分析:基本类型又称简单类型,若分为四种则为字符、整型、实型和枚举,若分为五 种,则将实型分为单精度型和双精度型两种。*2.50若s是int型变量,则表达式s%2+(s+l)%2的值为【参考答案:1参考分
26、析:无论s是奇数还是偶数表达式的值只能是1。*2.51若a是int型变量,则表达式(a=4*5,a*2) ,a+6的值为1.参考答案:26*2.52若x和a均是整型变量,则计算表达式(1)后的x值为【1,计算表达式(2)后x的值为【2】。(l)x=(a=4,6*2)(2)x=a=4,6*2参考答案:【1!22 42.53 若a、b和c均是int型变量,则计算表达式a=(b=4)+(c=2)后,a的值为【1,b的值 为2, c的值为【3】。参考答案:【1】62 43 22.54 若a是int型变量,且a的初值为6,则计算表达式a+=a-=a2.70假设m是个三位数,从左到右用a、b、c表示各位的
27、数字,则从左到右各个数字 是bac的三位数表达式是【参考答案:m/10% 10* 100+m/100*10+m% 10参考分析:数字各个位的分离可以先整除再取余,也可以先取余再整除。a后a的值为【 参 考答案:一602.55 若a是int型变量,则计算表达式a=25/3%3后a的值为【参考答案:22.56 若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n+后x的值为 1, n的值为2参考答案:【1】102 62.57 若有定义:intb=7;floata=2.5,c=4.7;则表达式 a+(int)(b/3*(int)(a+c)/2)%4 的值为参 考答案:5.52.58
28、若有定义:int a=2,b=3;float x=3.5,y=2.5;则表达式(float)(a+b)/2+(int)x%(int)y 的值为 (参考答案:3.52.59 若有定义:char c=01 (T;则变量c中包含的字符个数为【参考答案:12.60 若有定义:int x=3,y=2;float a=2.5,b=3.5;则表达式(x+y)%2+(int)a/(int)b 的值为工 参 考答案:12.61 若有定义:int x=12,n=5;则计算表达式x%=(n%=2)后x的值为【参考答案:2.62 若有定义:int a,b;表达式a=2,b=5,a+,b+,a+b的值为【参考答案:92
29、.63 C语言中的标识符只能由三种字符组成,它们是1】、【2】和30参考答案:【1】 字符【2】数字 3下划线*2.64已知字母a的ASCII码为十进制数97,且设ch为字符型变量,则表达式ch=W+,8,3 的值为【!0参考答案:f参考分析:表达式计算中取各个字符的ASCII码值进行计算,但ch的值是以计算结果为 码值的字符。2.65 把以下多项式写成只含七次乘法运算,其余皆为加、减运算的表达式为=参考 答案:(5*x+3)*x-4)*x+2)*x+l)*x-6)*x+l)*x+102.66 若 double x=3.0,y=2.0;则表达式 pow(y,fhbs(x)的值为【参考答案:8.
30、02.67 若有定义:int e=l,f=4,g=2;float m=10.5,n=4.0,k;则计算表达式 k=(e+f)/g+ sqrt(double)n)*1.2/g+m 后 k 的值是【! 参考答案:13.72.68 表达式 8/4*(int)2.5/(int)(1.25*(3.7+2.3)值的数据类型为()参考答案:int型*2.69表达式pow(2.8,sqrt(double(x)值的数据类型为【0参考答案:double型第三章最简单的C程序设计3.1选择题3.1 putchar函数可以向终端输出个A)整型变量表达式B)实型变量值C)字符串D)字符或字符型变量值参考答案:D参考分析
31、:putchar函数的作用是输岀个字符,可以是常量或变量。*3.2以下程序的输出结果是。printf("n*sl=%15s*","chinabeijing");printf("n*s2=%-5s*","chi");A)*sl=chinabeijingnaD*B)*sl=chinabeijingnnD*s2=*chi*s2=china*C) *sl=DDchinabeijing*D) * sl=nnnchinabeijing*s2=aachi*s2=chiaa*参考答案:D参考分析:一:数据左齐,右补空格。3.3 p
32、rimf函数中用到格式符5s,其中数字5表示输出的字符串占用5歹。如果字符串长度 大于5,则输出按方式【1】;如果字符串长度小于5,则输出按方式【2】A)从左起输出该字符串,右补空格B)按原字符串长从左向右全部输岀C)右对齐输出该字符串,左补空格D)输出错误信息参考答案:【1B 2 C*3.4已有定义int a=2;和输出语句:printf("%81x",a);以下正确的叙述是A)整型变量的输出格式符只有d 一种B)%x是格式符的一种,它可以适用于任何种类型的数据C)%x是格式符的种,其变量的值按十六进制输出,但81x是错误的D)%81x不是错误的格式符,其中数字8规定了输
33、出字段的宽度参考答案:D参考分析:答案B基本上是正确的,但是x不能正确的输出长整型数据。*3.5以下C程 序正确的运行结果是main()long y=-43456;printf ("y=%-81dn",y);printf ("y=%-081dn",y);printf ("y=%081dn",y);printf ("y=%+81dn",y);y=-43456y=-0043456y=aa-43456 参考答案:Cy=-0043456y=00043456y=+43456A)y=an-43456B)y=-43456y=-n
34、o43456y=-43456y=-0043456y=-0043456y=-43456y=+c-43456C)y=-43456D) y=aa-43456参考分析:0:数据左侧必须充满,给定数据不足时,前面补+:数据前面显示符号位。*3.6以下C程序正确运行的结果是 main()int y=2456;printfi("y=%3on",y);printfX"y=%8on",y);A)y=2456尸2456 y=#2456C)y=2456y=2456尸口口2456参考答案:Dprintfi("y=%#8on",y);B)y=DDa4630y=
35、4630尸#4630D)y=4630y=4630y=口4630参考分析:#要求输出数据的类型特征符号。3.7以下C程序正确的运行结果是main()long y=23456;printfi("y=%31xn",y);printfi("y=%81xn",y);A)y=5baO y=aana5baO y=口x5baO C)y=5baO y=5baO y=Ox5baO 参考答案:AprintfX"y=%#81xn",y);B)y=ana5baOy=5baOy=口x5baOD)y=5baO y=nann5baO y=#5baO分析:长整型数据输
36、出应当加修正字符1,如果不加1仅能输出数据的低两个字节,高字节 数据不能输出。*3.8若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是。A)scanf"%d%lx,%le",&x,&y,&z);B)scanfi("%2d*%d%lf",&x,&y,&z);C)scanfi("%x%*d%o",&x,&y);D)scanf"%x%o%6.2f",&x,&y,&z);参考答案:D参考分析:A)首
37、先读第一个十进制数赋给变量x,读第二个长十六进制数赋给变量y(此时有 自动赋值转换),再读入格式规定的第二和第三个数据间的间隔符号逗号,最后读入第三个 double型数据赋给变量zo B)首先读入2个宽度的十进制数赋给变量x,再读入格式规定的第 一和第二数据间的间隔符号星号,然后读入第二个十进制整数赋给变量y,然后读入第三个double型数据赋给变量z. C)读入第一个十六进制数赋给变量x,然后虚读 个十进制数不赋给任何变量,最后读入个进制数赋给变量y。D)%6.2f不符合格式规定, 即不能规定读入数据的小数点后的数字位数。*3.9已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为
38、10, 20, A和B,当从第 一列开始输入数据时,正确的数据输入方式是。int al,a2;char cl,c2;scanfl("%d%c%d%c",&al,&c 1 ,&a2,&c2);A) 10Aa20B<CR>B) 10nAa20aB<CR>C)10nA20B<CR>D)10A20oB<CR>参考答案:A*3.10 已有定义 int x;float y;且执行 scanfi("%3d%f",&x,&y);语句时,从第一列开始输入数据12345Lg<
39、QR>,则x的值为 ,y的值为 (1) A) 12345B)123C)45D)345(2) A)无定值B)45.0C)678.0D)123.0参考答案:B B参考分析:读取数据格式中规定域宽时,系统仅读取指定宽度的数据。*3.1I已有如下定义和输入语句,若要求al,a2,cl,c2的值分别为10, 20, A和B,当从第 一列开始输入数据时,正确的数据输入方式是。int al,a2;char cl,c2;scanfi("%d%d",&a l,&a2);scanfl("%c%c",&c l,&c2);A) 1020AB
40、<CR>B)10a20<CR>AB<CR>C) ! 20 AB<CR>D)10a20AB<CR>参考答案:D参考分析:A)al 为 1020,a2 为随机值,cl 为 A,c2 为 B.B)al 为 10,a2 为2, cl 为<CR>,c2 为 A。C)al 为 10, a2 为 2, cl、c2 均为3.12 已有程序段和输入数据的形式,程序中输入语句的正确形式应当为。main()int a;float f;printfi("lnput number:");(输入语句)printf("nf
41、=%f,a=%dn",f,a);Input number:4.5nn2<CR>A)scanfi("%d,%f",&a,&f);B)scanf("%f%d",&f,&a);C)scnafi("%d%f",&a,&f);D)scanf("%f1%d",&f,&a);参考答案:D3.13 根据定义和数据的输入方式,输入语句的正确形式为。己有定义:float fl,f2;数据的输入方式:4.523.14A)scanf("%f,%
42、f",&fl,&f2);B)scanf"%f%f",&fl ,&f2);C)scanfi("%3.2f%2.1 f",&fl ,&f2);D)scanfl("%3.2f%2.lf",&fl,&f2);参考答案:B*3.14阅读以下程序,当输入数据的形式为:25, 13, 10<CR>,正确的输出结果为 main() int x,y,z;scanf("%d%d%d",&x,&y,&z); printf(&qu
43、ot;x+y+z=%dn",x+y+z); A)x+y+z=48B)x+y+z=35C)x+z=35 D)不确定的值参考答案:D参考分析:由于提供数据的格式与规定格式不一致,变量y,z不能获取正确的数据,均为随 机值,故三变量之和也是随机数。3.15根据题目中已给出的数据输入和输出形式,程序中输入输出语句的正确 。 main() int x;float y; printf("enter x,y:"); 输入语句 输出语句 ) 输入形式:enter x,y:2 3.4 输出形式:x+y=5.40 A)scanfi("%d,%f",&x,&
44、amp;y);B)scanfl("%d%f",&x,&y);printfi("nx4-y=%4.2f",x+y);printfi("nx+y=%4.2f",x+y);C)scanfl("%d%f",&x,&y); D)scanf("%d%3.1 f",&x,&y);printf("nx+y=%6.1 f",x+y);printf("nx+y=%4.2f",x+y);参考答案:B 3.16以下说法正确的是 A)输入项可以为个实型常量,如scanf("%f",3.5);B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d , b=%d");C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如 scanfi("%4.2f",&f);D)当输入数据时,必须指明变量的地址,如scanf("%f",&f);参考答案:D *3.17根据下面程序及数据的输入和输出形式,程序中输入语句的正确形式应该