参考答案: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
*3.10 已有定义int x;float y;且执行scanf(\语句时,从第一列开始输入数据12345□678
⑴ 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
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
C)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(\