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

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

*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(\

}

参考答案:*3.140000,3.142*

分析:不能输出的位会向前一位四舍五入输出。 3.28以下程序的输出结果为( )。

main() {char c='x';

printf(\}

参考答案:c:dec=120, oct=170, hex=78, ASCII=x

*3.29 已有定义int d=-2;执行以下语句后的输出结果是( )。

printf(\printf(\参考答案:*d(1)=-2*d(2)=□-2*d(3)=-2□*

*d(4)=177776*d(5)=□177776*d(6)=177776□* 3.30已有定义int d=-2;执行以下语句后的输出结果是( )。

printf(\printf(\参考答案:*d(1)=-2*d(2)=□-2*d(3)=-2□*

*d(4)=fffe*d(5)=□□fffe*d(6)=fffe□□*

*3.31已有定义float d1=3.5,d2=-3.5;执行以下语句后的输出结果是( )。

printf(\printf(\

参考答案:*d(1)=3.50000e+00*d(2)=3.500e+00*d(3)=□3.500e+00*

*d(4)=-3.50000e+00*d(5)=-3.50000e+00*d(6)=-3.5000e+00□*

参考分析:通过本题应注意%f和%e在规定小数点后位数的区别。%e小数位后面位数含e标志。

3.32 以下程序的输出结果是( )。

main()

{int x=1,y=2;

printf(\printf(\}

参考答案:x=1 y=2 *sum*=3 10 Squared is :100

*3.33 以下程序的输出结果是( )。

#include main()

{int x=10;float pi=3.1416; printf(\printf(\printf(\printf(\printf(\printf(\printf(\printf(\}

参考答案:(1)10

联系客服:779662525#qq.com(#替换为@)