练习3-1答案
一、选择题
1.在C语言库函数中,可以输出double型变量x值的函数是(D)。
A.getchar B.scanf C.putchar D.printf 2.执行语句:printf("The program\'s name is c:\\");后输出是(D)。
A.The program's name is c:
B.The program's name is c:\
C.The program's name is c:\\
D.The program's name is c:\
3.以下程序的输出结果是(D)。(注:□表示空格)
main()
{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□□*
4.选择程序的运行结果,①是(B)、②是(B)、③是(D)、④是(C)。
#include<stdio.h>
main()
{int a=-10,b=-3;
printf("%d\n",a%b);/*输出①*/
printf("%d\n",a/b*b);/*输出②*/
printf("%d\n",-a%b);/*输出③*/
printf("%d\n",a-=b+++1);/*输出④*/
}
①A.-2B.-1C.0D.1
②A.-10B.-9C.-8D.0
③A.-2B.-1C.0D.1
④A.-10B.-9C.-8D.-7 5.以下C程序正确的运行结果是(D)。(注:□表示空格)
main()
{int y=2456;
printf("y=%3o\n",y);
printf("y=%8o\n",y);
printf("y=%#8o\n",y);
}
A.y=□□□2456B.y=□□□4630
y=□□□□□□□□2456y=□□□□□□□□4630
y=>####2456y=>####4630
C.y=2456D.y=4630
y=□□□□2456y=□□□□4630
y=□□□02456y=□□□04630
二、填空题
6.以下程序的输出结果为(i:dec=-4,otc=177774,hex=fffc,unsigned=65532)。
main()
{short i;
i=-4;
printf("\ni:dec=%d,otc=%o,hex=%x,unsigned=%u\n",i,i,i,i);
}
7.以下程序的输出结果为(c:dec=120,oct=170,hex=78,ASCII=x)。
main()
{char c='x';
printf("c:dec=%d,oct=%o,hex=%x,ASCII=%c\n",c,c,c,c);
}
8.已有定义int d=-2;,执行以下语句后的输出结果是:
(*d(1)=-2*d(2)=□-2*d(3)=-2□*
*d(4)=177776*d(5)=□177776*d(6)=177776□*
*d(4)=fffe*d(5)=□□fffe*d(6)=ffffe□□*)。(注:□表示空格)
printf("*d(1)=%d*d(2)=%3d*d(3)=%-3d*\n",d,d,d,d);
printf("*d(4)=%o*d(5)=%7o*d(6)=%-7o*\n",d,d,d,d);
printf("*d(4)=%x*d(5)=%6x*d(6)=%-6x*\n",d,d,d,d);
9.以下程序的输出结果是:
(a=374a=0374
a=fc a=0xfc)。
#include<stdio.h>
main()
{int a=252;
printf("a=%o a=%#o\n",a,a);
printf("a=%x a=%#x\n",a,a);
}
练习3-2答案
选择题
1.已知:int x,y,z,w;,为使以下语句的输出为:1234+123+12+1,正确的输入形式应当为(C)。
scanf("%4d-%3d-%2d-%1d",&x,&y,&z,&w);
printf("%4d+%3d+%2d+%1d\n",x,y,z,w);
A.1234123121B.1234123121C.1234-123-12-1D.1234+123+12+1 2.已知:int x;float y;,所用的scanf调用语句格式为:
scanf("x=%d,y=%f",&x,&y);
为了将数据10和66.6分别赋给x和y,正确的输入应当使(A)。
A.x=10,y=66.6<;回车>B.10,66.6<;回车>
C.10<;回车>66.6<;回车>D.x=10<;回车>y=66.6<;回车>
3.已知:int x,y;double z;,以下语句中错误的函数调用是(D)。
A.scanf("%d,%x,%1e",&x,&y,&z);B.scanf("%2d*%d%1f",&x,&y,&z);
C.scanf("%x%*d%o",&x,&y);D.scanf("%x%o%6.2f",&x,&y,&z); 4.已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是(AC)。(注:□表示空格,<CR>表示回车)
int a1,a2;char c1,c2;
scanf("%d%c%d%c",&a1,&c1,&a2,&c2);
A.10A□20B<CR>B.10□A□20B<CR>
C.10A20B<CR>D.10A20□B<CR>
5.已有定义int x;float y;,且执行scanf("%3d%f",&x,&y);语句时,输入数据12345□678<CR>,则x的值为(①B),y的值为(②B)。(注:□表示空格)
①A.12345B.123C.45D.345
②A.无定义B.45.000000C.678.000000D.123.000000 6.阅读以下程序,当输入数据的形式为:25,13,10<CR>,正确的输出结果为(D)。
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=48B.x+y+z=35C.x+z=35D.不确定值7.根据题目中已经给出的数据的输入和输出形式,程序中输入输出语句的正确内容是(B)。
main()
{int x;
float y;
printf("enter x,y:");
输入语句
输出语句
}
输入形式:enter x,y:2<CR>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
printf("\nx+y=%6.1f",x+y);printf("\nx+y=%4.2f",x+y);

发表评论