1、第三部分 顺序结构:输入与输出 一、选择题 (1)有以下程序 main() int m,n,p; scanf(“m=%dn=%dp=%d“, printf(“%d%d%dn“,m,n,p); 若想从键盘上输入数据,使变量 m中的值为 123,n中的值为 456,p中的值为 789,则正确的输入是 A)m=123n=456p=789 B)m=123 n=456 p=789 C)m=123,n=456,p=789 D)123 456 789 (2) 有以下程序 main() int m=0256,n=256; printf(“%o %on“,mn,n); 程序运行后的输出结果是 CA) 0256
2、0400 B) 0256 256 C) 256 400 D) 400 400 (3) 有以下程序 main() int a=666,b=888; printf(“%dn“,a,b); 程序运行后的输出结果是 A) 错误信息 B) 666 C) 888 D) 666,888 (4) 有以下程序 main( ) int x=102,y=012; printf(“%2d,%2dn”,x,y); 执行后输出结果是 A) 10,01 B) 02,12 C) 102,10 D) 02,10 (5) 有以下程序 main() int a; char c=10; float f=100.0; double x
3、; a=f/=c*=(x=6.5); printf(“%d %d %3.1f %3.1fn“,a,c,f,x); 程序运行后的输出结果是 A) 1 65 1 6.5 B) 1 65 1.5 6.5 C) 1 65 1.0 6.5 D) 2 65 1.5 6.5 (6) 有定义语句:int x,y;, 若要通过 scanf(“%d,%d“,语句使变量 x得到数值 11,变量 y得到数值 12,下面四组输入形式中,错误的是 A) 11 12,使 i的值为 1、j 的值为 2、k 的值为3,以下选项中正确的输入语句是 A) scanf(“%2d%2d%2d”, B) scanf(“%d %d %d”
4、, C) scanf(“%d,%d,%d”, D) scanf(“i=%d,j=%d,k=%d”, (11) 设有定义:long x=-123456L;,则以下能够正确输出变量 x值的语句是 A)printf(“x=%dn”,x); B) printf(“x=%1dn”,x); C)printf(“x=%8dLn”,x); D)printf(“x=%LDn”,x); (12) 以下程序段的输出结果是 int a=1234; printf(“%2dn“,a); A) 12 B) 34 C) 1234 D) 提示出错、无结果 (13) x、y、z 被定义为 int型变量,若从键盘给 x、y、z 输
5、入数据,正确的输入语句是 A) INPUT x、y、z; B) scanf(“%d%d%d”, C) scanf(“%d%d%d”,x,y,z); D) read(“%d%d%d”, (14) 若变量已正确说明为 float类型,要通过语句 scanf(“%f %f %f ”,给 a赋于 10.0,b赋予 22.0,c赋予 33.0,不正确的输入形式是: A) 10 B) 10.0,22.0,33.0 22 33 C) 10.0 D) 10 22 22.0 33.0 33 (15) 有如下程序 main0 int y=3,x=3,z=1; printf(“%d %dn”,(+x,y+),z+2
6、); 运行该程序的输出结果是 A) 3 4 B) 4 2 C) 4 3 D) 3 3 (16) 下列程序执行后的输出结果是(小数点后只写一位) A) 6 6 6.0 6.0 B) 6 6 6.7 6.7 C) 6 6 6.0 6.7 D) 6 6 6.7 6.0 main() double d; float f; ling l; int i; i=f=1=d=20/3; printf(“%d %ld %f %f n“, i,l,f,d); (17) 以下说法中正确的是 A) #define 和 printf都是 C语句 B) #define 是 C语句,而 printf不是 C) printf
7、 是 C语句,但#define 不是 D) #define 和 printf都不是 C语句 (18) 以下程序的输出结果是 A) 17,021,0x11 B) 17,17,17 B) 17,0x11,021 D) 17,21,11 main( ) int k=17; printf(“%d,%o,%x n“,k,k,k); (19) 以下叙述中正确的是 A) 输入项可以是一个实型常量,如: scakf(“%f“,3.5); B) 只有格式控制,没有输入项,也能正确输入数据到内存,例如: scakf(“a=%d,b=%d“); C) 当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:
8、 scakf(“%4.2f“, D) 当输入数据时,必须指明变量地址,例如: scakf(“%f“, (20) 若有以下定义和语句: int u=010,v=0x10,w=10; printf(“%d,%d,%dn,u,v,w); 则输出结果是: A) 8,16,10 B) 10,10,10 C) 8,8,10 D) 8,10,10 (21) 请读程序片段: int i=65536; printf(“%dn“,i); 上面程序片段的输出结果是 A) 65536 B) 0 C) 有语法错误,无输出结果 D) -1 (22) 若 x和 y都是 int型变量,x=100,y=200,且有下面的程序片
9、段: printf(“%d“,(x,y); 上面程序片段的输出结果是 A) 200 B) 100 C) 100 200 D) 输出格式符不够,输出不确定的值 (23) 请读程序: #include main() int a; float b, c; scanf(“%2d%3f%4f“, printf(“na=%d, b=%f, c=%fn“, a, b, c); 若运行时从键盘上输入 9876543210(表示回车),则上面程序的输出结果是 A) a=98, b=765, c=4321 B) a=10, b=432, c=8765 C) a=98, b=765.000000, c=4321.0
10、00000 D) a=98, b=765.0, c=4321.0 (24)以下程序的输出结果是 【24】 。 # include # include main() int a=1,b=4,c=2; float x=105 , y=4.0 , z; z=(a+b)/c+sqrt(double)y)*1.2/c+x; pritnf(“%fn“,z); A) 14.000000 B) 015.400000 C) 13.700000 D) 14.900000 (25)以下程序的输出结果是 【25】 。 # include main() int a=2,c=5; printf(“a=%d,b=%dn“,
11、a,c); A) a=%2,b=%5 B) a=2,b=5 C) a=%d,b=%d D) a=%d,b=%d (26) 执行下面程序中的输出语句,a 的值是 A) 65 B) 20 C) 15 D) 10 main() int a; printf(“%dn“,(a=3*5,a*4,a+5); 二、填空题: (1)以下程序运行后的输出结果是 【1】 。 main() int x=0210; printf(“%Xn“,x); (2)以下程序运行后的输出结果是 【2】 。 main() char c; int n=100; float f=10; double x; x=f*=n/=(c=50);
12、 printf(“%d %fn“,n,x); (3)以下程序运行时若从键盘输入:10 20 30。输出结果是 . #include main() int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d%d%dn“,i,j,k); (4) 以下程序段的输出结果是 【4】 。 int i=9; printf(“%on“,i); (5) 以下程序运行后的输出结果是 【5】 。 main() int a,b,c; a=25; b=025; c=0x25; printf(“%d %d %dn“,a,b,c); (6) 有以下语句段 int n1=10,n2=20; pr
13、intf(“ 【6】 ”,n1.n2); 要求按以下格式输出 n1和 n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 (7)若有语句 int i=-19,j=i%4; printf(“%dn“,j); 则输出结果是 【7】 。 (8)若有程序 main() int i,j; scanf(“i=%d,j=%d“; printf(“i=%d,j=%dn“,i,j); 要求给 i赋 10,给 j赋 20,则应该从键盘输入 【8】 。 (9) 以下程序的输出结果是【9】 。 main() int a=177; printf(“%on“,a); (10) 以下程序的输出结果是【10】
14、 。 main() int a=0 a+=(a=8); printf(“%dn“,a); (11)以下程序的输出结果是 【11】 main() int a=1, b=2; a=a+b; b=a-b; a=a-b; printf(“%d,%dn”, a, b ); (12)下列程序的输出结果是 16.00,请填空。 main() int a=9, b=2; float x= 【12】 , y=1.1,z; z=a/2+b*x/y+1/2; printf(“%5.2fn”, z ); (13) 以下程序的输出结果是 13 。 main() unsigned short a=65536; int b
15、; printf(“%dn”,b=a); (14) 若想通过以下输入语句使 a=5.0,b=4,c=3,则输入数据的形式应该是 【14】 。 int b,c; float a; scanf(“%f,%d,c=%d“, scanf(“a=%b,b=%d, 答案: 一、选择题 01) A 02) C 03) B 04) C 05) B 06) A 07) D 08) A 09) C 10) C 11) B 12) C 13) B 14) B 15) D 16) A 17) D 18) D 19) D 20) A 21) B 22) A 23) C 24) C 25) D 26) C 二、填空题 (1) 88 (2) 2 20.000000 (3) 10 30 0 (4) 11 (5) 25 21 37 (6) n1=%dnn2=%d (7) -3 (8) i=10,j=20 (9) 261 (10) 16 (11) 2,1 (12) 6.6 (13) 0 (14) 5.0,4,c=3 (15) a=1,b=2