1、以下程序的输出结果是。
printf("\n*s1=%15s*","chinabeijing");
printf("\n*s2=%-5s*","chi");
A)*s1=chinabeijing□□□* B)*s1=chinabeijing□□□*
*s2=**chi* *s2=chi□□*
C) *s1=□□chinabeijing* D) * s1=□□□chinabeijing*
*s2=□□chi* *s2=chi□□*
参考答案  D
参考分析-数据左齐,右补空格。
2、已有定义int a=-2;和输出语句printf("%8lx",a);以下正确的叙述是()
A)整型变量的输出格式符只有%d一种
B)%x是格式符的一种,它可以适用于任何一种类型的数据
C)%x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的
D)%8lx不是错误的格式符,其中数字8规定了输出字段的宽度
参考答案  D
参考分析答案B基本上是正确的,但是%x不能正确的输出长整型数据。
3、printf函数中用到格式符%5s,其中数字5表示输出的字符串占用5列。如果字符串长度大于5,则输出按方式【1】如果字符串长度小于5,则输出按方式【2】。
A)从左起输出该字符串,右补空格B)按原字符串长从左向右全部输出
C)右对齐输出该字符串,左补空格D)输出错误信息
参考答案【1】B 【2】C
4、以下C程序正确的运行结果是。
main()
{ long y=-43456;
printf ("y=%-8ld\n",y);
printf ("y=%-08ld\n",y);
printf ("y=%08ld\n",y);
printf ("y=%+8ld\n",y);
}
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。+数据前面显示符号位
5、以下C程序正确运行的结果是。
main()
{ int y=2456;
printf("y=%3o\n",y);
printf("y=%8o\n",y);
printf("y=%#8o\n",y);
}
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
参考分析#要求输出数据的类型特征符号。
6、以下C程序正确的运行结果是。
main()
{long y=23456;
printf("y=%3lx\n",y);
printf("y=%8lx\n",y);
printf("y=%#8lx\n",y);
}
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仅能输出数据的低两个字节,高字节数据不能输出。
7、若x,y均定义为int型,z定义为double型,以下不合法的scanf函数调用语句是
A)scanf("%d%lx,%le",&x,&y,&z); B)scanf("%2d*%d%lf",&x,&y,&z);
C)scanf("%x%*d%o",&x,&y); D)scanf("%x%o%6.2f",&x,&y,&z);
参考答案  D
参考分析A)首先读第一个十进制数赋给变量x,读第二个长十六进制数赋给变量y(此时有自动赋值转换),再读入格式规定的第二和第三个数据间的间隔符号逗号,最后读入第三个double型数据赋给变量z。B)首先读入2个宽度的十进制数赋给变量x,再读入格式规定的第一和第二数据间的间隔符号星号,然后读入第二个十进制整数赋给变量y然后读入第三个double型数据赋给变量z。C)读入第一个十六进制数赋给变量x,然后虚读一个十进制数不赋给任何变量,最后读入一个八进制数赋给变量y。D) 6.2f不符合格式规定,即不能规定读入数据的小
数点后的数字位数。
8、已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2;char c1,c2; scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A)10A□20B<CR> B)10□A□20□B<CR> C)10□A20B<CR> D)10A20□B<CR>
参考答案  A
9、已有定义int x;float y;且执行scanf("%3d%f",&x,&y);语句时,从第一列开始输入数据12345□678<CR>,则x的值为⑴y的值为⑵。
⑴ A)12345 B)123 C)45 D)345
⑵ A)无定值B)45.0 C)678.0 D)123.0
参考答案  B    B
参考分析读取数据格式中规定域宽时,系统仅读取指定宽度的数据。
10、已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A 和B,当从第一列开始输入数据时,正确的数据输入方式是。int a1,a2;char c1,c2; scanf("%d%d",&a1,&a2); scanf("%c%c",&c1,&c2);
A)1020AB<CR> B)10□20<CR>AB<CR> C)10□□20□□AB<CR> D)10□20AB<CR>
参考答案  D
参考分析A)a1为1020,a2为随机值,c1为A,c2为B。B)a1为10,a2为20c1为<CR>,c2为A。C)a1为10,a2为20,c1、c2均为□。
11、已有程序段和输入数据的形式程序中输入语句的正确形式应当为。main()
{ int a;float f; printf("Input number:"); (输入语句) printf("\nf=%f,a=%d\n",f,a); } Input number:4.5□□2<CR> A)scanf("%d,%f",&a,&f); B)scanf("%f,%d",&f,&a);
C)scnaf("%d%f",&a,&f); D)scanf("%f%d",&f,&a);
参考答案  D
12、根据定义和数据的输入方式,输入语句的正确形式为()。已有定义float f1,f2;数据的输入方式:4.52、3.5
A)scanf("%f,%f",&f1,&f2); B)scanf("%f%f",&f1,&f2);
C)scanf("%3.2f %2.1f",&f1,&f2); D)scanf("%3.2f%2.1f",&f1,&f2);
参考答案  B
13、阅读以下程序,当输入数据的形式为25、13、10<CR>。正确的输出结果为。main() {int x,y,z; scanf("%d%d%d",&x,&y,&z); printf("x+y+z=%d\n",x+y+z);
} A)x+y+z=48 B)x+y+z=35 C)x+z=35 D)不确定的值
参考答案  D
参考分析:由于提供数据的格式与规定格式不一致,变量y,z不能获取正确的数据均为随机值故三变量之和也是随机数。
14、根据题目中已给出的数据输入和输出形式,程序中输入输出语句的正确内容是()。main() {int x;float y; printf("enter x,y:"); 输入语句输出语句} 输入形式:enter x,y:2 3.4;输出形式:x+y=5.40
A)scanf("%d,%f",&x,&y); B)scanf("%d%f",&x,&y); printf("\nx+y=%4.2f",x+y); printf("\nx+y=%4.2f",x+y);
C)scanf("%d%f",&x,&y); D)scanf("%d%3.1f",&x,&y);
printf("\nx+y=%6.1f",x+y); printf("\nx+y=%4.2f",x+y);
参考答案  B
printf函数中用到格式符 5s15、以下说法正确的是。
A)输入项可以为一个实型常量,如scanf("%f",3.5);
B)只有格式控制,没有输入项,也能进行正确输入,如scanf("a=%d , b=%d"); C)当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf("%4.2f",&f);

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。

发表评论