谭浩强C语言程序设计习题集(3)

2019-04-14 20:10

参考答案:m/10*100+m/100*10+m

参考分析:数字各个位的分离可以先整除再取余,也可以先取余再整除。

第三章 最简单的C程序设计

3.1 选择题

3.1 putchar函数可以向终端输出一个 。

A)整型变量表达式 B)实型变量值

C)字符串 D)字符或字符型变量值 参考答案:D

参考分析:putchar函数的作用是输出一个字符,可以是常量或变量。 *3.2以下程序的输出结果是 。

printf(\ printf(\

A)*s1=chinabeijing□□□* B)*s1=chinabeijing□□□*

*s2=**chi* *s2=chi□□*

C) *s1=□□chinabeijing* D) * s1=□□□chinabeijing*

*s2=□□chi* *s2=chi□□* 参考答案:D

参考分析:-:数据左齐,右补空格。

3.3 printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式 【1】 ;如果字符串长度小于5,则输出按方式 【2】 。

A)从左起输出该字符串,右补空格 B)按原字符串长从左向右全部输出 C)右对齐输出该字符串,左补空格 D)输出错误信息 参考答案:【1】B 【2】C

*3.4已有定义int a=-2;和输出语句:printf(\以下正确的叙述是 。

A)整型变量的输出格式符只有%d一种

B)%x是格式符的一种,它可以适用于任何一种类型的数据

C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度 参考答案:D

参考分析:答案B基本上是正确的,但是%x不能正确的输出长整型数据。 *3.5以下C程序正确的运行结果是 。

main()

{ long y=-43456;

printf (\printf (\printf (\printf (\}

A)y=□□-43456 B)y=-43456 y=-□□43456 y=-43456 y=-0043456 y=-0043456 y=-43456 y=+□-43456 C)y=-43456 D) y=□□-43456 y=-43456 y=-0043456 y=-0043456 y=00043456

y=□□-43456 y=+43456 参考答案:C

参考分析:0:数据左侧必须充满,给定数据不足时,前面补0。

+:数据前面显示符号位。

*3.6以下C程序正确运行的结果是 。

main()

{ int y=2456;

printf(\printf(\printf(\}

A)y=□□□2456 B)y=□□□4630 y=□□□□□□□□2456 y=□□□□□□□□4630

y=########2456 y=########4630 C)y=2456 D)y=4630 y=□□□□2456 y=□□□□4630 y=□□□02456 y=□□□04630 参考答案:D

参考分析:#要求输出数据的类型特征符号。 3.7以下C程序正确的运行结果是 。

main()

{long y=23456;

printf(\lx\\n\printf(\lx\\n\printf(\lx\\n\}

A)y=5ba0 B)y=□□□5ba0 y=□□□□5ba0 y=□□□□□□□□5ba0 y=□□0x5ba0 y=□□0x5ba0 C)y=5ba0 D)y=5ba0

y=5ba0 y=□□□□5ba0 y=0x5ba0 y=####5ba0 参考答案:A

分析:长整型数据输出应当加修正字符l,如果不加l仅能输出数据的低两个字节,高字节数据不能输出。

*3.8 若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是 。

A)scanf(\B)scanf(\C)scanf(\

D)scanf(\参考答案:D 参考分析:A)首先读第一个十进制数赋给变量x,读第二个长十六进制数赋给变量y(此时有自动赋值转换),再读入格式规定的第二和第三个数据间的间隔符号逗号,最后读入第三个double型数据赋给变量z。B)首先读入2个宽度的十进制数赋给变量x,再读入格式规定的第一和第二数据间的间隔符号星号,然后读入第二个十进制整数赋给变量y,然后读入第三个double型数据赋给变量z。C)读入第一个十六进制数赋给变量x,然后虚读一个十进制数不赋给任何变量,最后读入一个八进制数赋给变量y。D)%6.2f不符合格

式规定,即不能规定读入数据的小数点后的数字位数。

*3.9 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 。 int a1,a2;char c1,c2;

scanf(\

A)10A□20B B)10□A□20□B C)10□A20B D)10A20□B 参考答案:A

*3.10 已有定义int x;float y;且执行scanf(\语句时,从第一列开始输入数据12345□678,则x的值为 ⑴ ,y的值为 ⑵ 。

⑴ A)12345 B)123 C)45 D)345 ⑵ A)无定值 B)45.0 C)678.0 D)123.0 参考答案:B B

参考分析:读取数据格式中规定域宽时,系统仅读取指定宽度的数据。

**3.11 已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是 。 int a1,a2;char c1,c2;

scanf(\scanf(\

A)1020AB B)10□20AB C)10□□20□□AB D)10□20AB 参考答案:D 参考分析:A)a1为1020,a2为随机值,c1为A,c2为B。B)a1为10,a2为20,c1为,c2为A。C)a1为10,a2为20,c1、c2均为□。

3.12 已有程序段和输入数据的形式,程序中输入语句的正确形式应当为 。

main()

{ int a;float f;

printf(\(输入语句)

printf(\}

Input number:4.5□□2

A)scanf(\ B)scanf(\C)scnaf(\ D)scanf(\参考答案:D

3.13 根据定义和数据的输入方式,输入语句的正确形式为 。

已有定义:float f1,f2; 数据的输入方式:4.52 3.5

A)scanf(\ B)scanf(\

C)scanf(\ %2.1f\ D)scanf(\参考答案:B

*3.14 阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为 。

main() {int x,y,z;

scanf(\printf(\

}

A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定的值 参考答案:D

参考分析:由于提供数据的格式与规定格式不一致,变量y,z不能获取正确的数据,均为随机值,故三变量之和也是随机数。

3.15 根据题目中已给出的数据输入和输出形式,程序中输入输出语句的正确内容是 。

main()

{int x;float y;

printf(\输入语句 输出语句 }

输入形式:enter x,y:2 3.4 输出形式:x+y=5.40

A)scanf(\ B)scanf(\ printf(\ printf(\C)scanf(\ D)scanf(\ printf(\ printf(\参考答案:B

3.16 以下说法正确的是 。

A)输入项可以为一个实型常量,如scanf(\

B)只有格式控制,没有输入项,也能进行正确输入,如scanf(\C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(\

D)当输入数据时,必须指明变量的地址,如scanf(\参考答案:D

*3.17 根据下面程序及数据的输入和输出形式,程序中输入语句的正确形式应该为 。

main()

{char ch1,ch2,ch3; 输入语句

printf(\}

输入形式:A□B□C 输出形式:A□B

A)scanf(\B)scanf(\C)scanf(\D)scanf(\参考答案:A

参考分析:字符控制格式中有无空格对数据的读取有影响,B)ch1读取A,ch2和ch3为随机字符。C)三个变量分别为A、B、C。D)ch3为随机字符。

3.18 有输入语句:scanf(\为使变量a的值为1,b为3,c为2,从键盘输入数据的正确形式应当是 。

A)132 B)1,3,2

C)a=1□b=3□c=2 D)a=1,b=3,c=2

参考答案:D

3.19 以下能正确地定义整型变量a,b和c并为其赋初值5的语句是 。

A)int a=b=c=5; B)int a,b,c=5; C)int a=5,b=5,c=5; D)a=b=c=5; 参考答案:C

*3.20已知ch是字符型变量,下面不正确的赋值语句是 。 A)ch='a+b'; B)ch='\\0'; C)ch='7'+'9'; D)ch=5+9 参考答案:A

参考分析:B)为转义字符。C)为7和9两个字符ASCII码值之和的字符。D)为码值为14的字符(控制字符)。

3.21 已知ch是字符型变量,下面正确的赋值语句是 。

A)ch='123'; B)ch='\\xff'; C)ch='\\08'; D)ch=\参考答案:B

3.22 若有以下定义,则正确的赋值语句是 。

int a,b;float x;

A)a=1,b=2, B)b++; C)a=b=5 D)b=int(x); 参考答案:B

参考分析:这里强调的是赋值语句,请注意赋值表达式与赋值语句的区别。 3.23设x、y均为float型变量,则以下不合法的赋值语句为________。 A) ++x; B)y=(x%2)/10; C)x*=y+8 D)x=y=0 参考答案:B

*3.24 设x、y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x、y和z的值是 。

A)x=10 B)x=10 C)x=10 D)x=10 y=15 y=10 y=10 y=5 z=10 z=10 z=15 z=10 参考答案:A

3.25 设有说明:double y=0.5,z=1.5;int x=10;则能够正确使用C语言库函数的赋值语句是 。

A)z=exp(y)+fabs(x); B)y=log10(y)+pow(y); C)z=sqrt(y-z);

D)x=(int)(atan2((double)x,y)+exp(y-0.2)); 参考答案:D

参考分析:本题有些偏,其他选项错误的原因为A)fabs(x),x不是double型。B)pow(y)其格式原型为double pow(double y,double x)。C)y-z为负数。 3.2 填空题

*3.26以下程序的输出结果为( )。

main() {short i; i=-4;

printf(\}

参考答案:i:dec=-4, oct=177774, hex=fffc, unsigned=65532 *3.27 以下程序的输出结果为( )。

main()

{printf(\


谭浩强C语言程序设计习题集(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:第一章 线性规划

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: