内容正文:
<C语言程序设计教程>清华大学出版社(第3版)
第四章 基本输入输出和顺序程序设计 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 选择题(共15题,每小题2分,共30分)
1、 下列程序段执行后的输出结果是 :
unsigned short a=65535;
printf(“a=%%hd”,a);
A.a=-1 B.a=65535 C.a=%hd D.a=1
2、下列程序段执行后的输出结果是 :
unsigned int x=032;
printf(“%d”,++x);
A.32 B.26 C.33 D.27
3、下列描述中,正确的是 :
A.%O是以八进制形式输入输出一个无符号整型数据。
B.%u是以十进制形式输入输出一个无符号整型数据。
C.%05d的0是指在左对齐时,当数据实际宽度小于5,则在空位补0。
D.%f输出时,默认保留六位小数,第七位不进行四舍五入。
4、下列语句执行后的输出结果是 :
printf(“%d,%u”,-1,-1);
A.-1,65535 B.65535,-1 C.-1,4294967295 D. 4294967295,-1
5、若有以下定义,则输出结果是 :
float f=0.045987856;
printf(“f=%12f,f=%-12f
”,f,f);
printf(“f=%12.3E,f=%-12.3E
”,f,f);
A.
B. f= 0.045987,f=0.045987
f= 4.598E-002,f=4.598E-002
B.f= 0.045988,f=0.045988
f= 4.599E-002,f=4.599E-002
C.f= 0.045988,f=0.045988
f= 4.599E-2,f=4.599E-2
D.f= 0.045988,f=0.045988
f= 4.599e-002,f=4.599e-002
6、以下不是用来输出整型的格式控制符的是 :
A.%c B.%X C.%o D. %u
7、 若有以下定义,则输出结果是 :
char ch=’A’;
printf(“%c,%d
”,ch,ch+1);
printf(“%04c,%-04d”,ch,ch+1);
A.
B. A,66
000A,0066
C. A,B
000A,B
D. A,B
000A,000B
D.A,66
000A,66
8、 若有以下语句,则输出结果是 :
int a=65535;
printf(“a=%x,%X
”,a,a) ;
printf(“a=%6x,%#6X
”,a,a);原创精品资源学科网独家享有版权,侵权必究!
A.a=FFFF,FFFF
a= FFFF,FFFF
B.a=ffff,FFFF
a=ffff ,FFFF
C.a=ffff,FFFF
a= ffff,0xFFFF
D.a=ffff,FFFF
a=ffff ,0xFFFF
9、
10、 若有以下语句,则输出结果是 :
int a=-3;
printf(“a=%x,a=%o”,a,a);
A.a=fffffffd,a=37777777775
a=fffd,a=177775
C. a=FFFFFFFD,a=37777777775
D. a=FFFd,a=177775
11、
12、 若有以下语句,则输出结果是 :
int a,b;
scanf(“%3d%2d”,&a,&b);
printf(“%d,%d”,a,b);
从键盘输入数据:123456<回车>
A.123,456 B.a=123,b=45 C.123,45 D.a=123,b=456
13、 若有以下语句,则从c,c1的值为 :
char c,c1;
scanf(“%3c%3c”,&c,&c1);
从键盘输入数据:ABC<空格>DBGE
A. A,B B.A,<空格> C.A,D D. 数据输入错误
14、 若要给a赋值为12,给b赋值为’A’,则正确的输入方法是 :
int a; char b;
scanf(“a=%d,b=%c”,&a,&b);
A.12 A B.a=12 b=A C.12,A D. a=12,b=A
15、 若有以下程序段,则输出结果为 :
int a,b;
scanf(“%d%d
”,&a,&b);
printf(“%d
”,a*b);
从键盘输入数据:12a45
A.值无法确定 B.2 C.12 D.540
16、 若有以下定义:int a,b; float f;下列语句中,正确的是 :
A.sacnf(“%d,%d,%f
”,a,b,f);
B.scanf(“%d,%d,%f
”&a,&b,&f);
C.scanf(“%d,%d,%f
”,&a,&b,&f);
D.scanf(“%2d,%2d,%.2f
”,&a,&b,&f);
17、 在执行下面程序段时,正确的输出结果是 :
int a,b;char c;
scanf(“%d%2c%3d”,&a,&c,&b);
printf(“%d,%c,%d”,a,c,b);
从键盘输入数据:15<空格>12458
A. 值无法确定 B.15,<空格>,245 C.15,1,458 D. 15,<空格>,124
2、 填空题(共15空,每空2分,共30分)
1、 格式控制符是以 打头。
2、 若要从键盘输入一个字符赋值给ch1,可用语句 和语句 来实现。原创精品资源学科网独家享有版权,侵权必究!
3、 以下语句 printf(“123\\N%%%s”,”ABCD”);的输出结果是 。
4、 算法的基本结构分为 、 、 。
5、 若有以下定义:int a=-1;执行printf(“%O
”,a);输出结果: 。
6、 格式控制符中,是大写的有 。
7、 若有语句:int a,b,c;scanf(“%d%d%d
”,&a,&b,&c);,输入值时可以使用 、
Tab键、 把数据分隔开。
8、 已有定义float f1=12.4567;用十进制小数形式输出,保留2为小数,正确的输出语句是
。
9、一个有效的算法应该具有以下特点: 、确定性、可行性、零个或多个输入、 。
10、用非格式化的方式输出字符串“ABCD”的值,语句为 。
3、 程序运行题(共5题,每小题3分,共15分)
1、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ char a,b;
int c=50;
a=getchar();
b=getchar();
putchar(a);
printf(“%c\t%c
”,b,c);
}
从键盘输入AbCd<回车>
2、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ unsigned a=32767,b;
b=a>>2;
printf(“a=%#x,b=%#x
”,~a,b);
}
3、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ int x=017;
float f1=12.5687958;
printf(“x=%05o,%-05X
”,x,x);
printf(“f1=%#.0f,%#.2E
”,f1,f1);
}
4、下列程序运行的结果是 。
#include<stdio.h>
void main( ) 原创精品资源学科网独家享有版权,侵权必究!
{ float f1,f2;
scanf(“%2f%*2f%2f”,&f1,&f2);
printf(“f1=%f,f2=%f
”,f1,f2);
}
从键盘输入2345684212<回车>
5、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ int a=0x23;
printf(“%#6.3x\t%06.3x”,a,a);
printf(“%-8s***%.3”,”&”,” &”);
}
4、 程序填空题(共5空,每空3分,共15分)
1、 程序功能是输入一个四位数的正整数,输出组成该数的各个数字中的最大数,例如输入8562,则输出max=9。
#include<stdio.h>
void main( )
{ int n,n1,n2,n3,n4,max;
n1=n%10;
n4=n/1000;
max= ?n1:n2;
max=max>n3?max:n3;
printf(“max=%d”,max);
}
5、 程序改错题(共10分)
1、 从键盘输入圆柱底面圆的半径r和圆柱的高h(半径和高均为整数),求圆柱的体积,输出体积保留3位小数。程序有两处错误,请找出并改正。(找出错误行号2分,该出正确语句3分)
L1 #include<stdio.h>
L2 #define PI 3.14
L3 void main( )
L4 { int r,h; float tj;
L5 scanf(“%f,%f”,&r,&h);
L6 tj=PI*r*r*h;
L7 printf(“圆柱的体积为:tj=%f”,tj);
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$<C语言程序设计教程>清华大学出版社(第3版)
第四章 基本输入输出和顺序程序设计 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 选择题(共15题,每小题2分,共30分)
1、 下列程序段执行后的输出结果是 :
unsigned short a=65535;
printf(“a=%%hd”,a);
A.a=-1 B.a=65535 C.a=%hd D.a=1
【答案】C
【解析】两个%%,输出一个%,不会当成格式控制符,故选C。
2、下列程序段执行后的输出结果是 :
unsigned int x=032;
printf(“%d”,++x);
A.32 B.26 C.33 D.27
【答案】D
【解析】%d,以十进制有符号数进行输出,八进制32转换成十进制为26,输出时先进行前置加1,故选D。
3、下列描述中,正确的是 :
A.%O是以八进制形式输入输出一个无符号整型数据。
B.%u是以十进制形式输入输出一个无符号整型数据。
C.%05d的0是指在左对齐时,当数据实际宽度小于5,则在空位补0。
D.%f输出时,默认保留六位小数,第七位不进行四舍五入。
【答案】B
【解析】A选项%O为大写,故错误;C选项%05d的0是指在右对齐时,当数据实际宽度小于5,则在左边空位补0,故错误。D选项%f输出时,默认保留六位小数,第七位进行四舍五入。
4、下列语句执行后的输出结果是 :
printf(“%d,%u”,-1,-1);
A.-1,65535 B.65535,-1 C.-1,4294967295 D. 4294967295,-1
【答案】C
【解析】%d以十进制形式输出一个有符号整型数据,%u是以十进制形式输出一个无符号整型数据,默认为四个字节,考虑有符号和无符号数的范围,故选C。
5、若有以下定义,则输出结果是 :
float f=0.045987856;
printf(“f=%12f,f=%-12f
”,f,f);
printf(“f=%12.3E,f=%-12.3E
”,f,f);
A.
学科网(北京)股份有限公司
B. f= 0.045987,f=0.045987
f= 4.598E-002,f=4.598E-002
B.f= 0.045988,f=0.045988
f= 4.599E-002,f=4.599E-002原创精品资源学科网独家享有版权,侵权必究!
C.f= 0.045988,f=0.045988
f= 4.599E-2,f=4.599E-2
D.f= 0.045988,f=0.045988
f= 4.599e-002,f=4.599e-002
【答案】B
【解析】%f是以十进制小数形式输出一个实数,%E是以十进制指数形式输出一个实数,都默认保留六位小数,后面一位进行四舍五入,用%E输出要注意阶码标志占一位,符号占一位,尾数占3位;辅助格式控制符“-”表示输出数据左对齐,默认右对齐;辅助格式控制符“.precision”,规定输出实数时,小数部分的位数,故选B。
6、以下不是用来输出整型的格式控制符的是 :
A.%c B.%X C.%o D. %u
【答案】A
【解析】%c输出一个字符型数据,故选A。
7、 若有以下定义,则输出结果是 :
char ch=’A’;
printf(“%c,%d
”,ch,ch+1);
printf(“%04c,%-04d”,ch,ch+1);
A.
B. A,66
000A,0066
C. A,B
000A,B
D. A,B
000A,000B
D.A,66
000A,66
【答案】D
【解析】%c是输出一个字符型数据;%d以十进制形式输出一个整型数据,用%d输出一个字符时,输出字符所对应的ASCII码,%04c中0是指在右对齐时,当数据实际宽度小于4,则在左边空位补0,%-04c中,-是指输出数据左对齐。故选D。
8、 若有以下语句,则输出结果是 :
int a=65535;
printf(“a=%x,%X
”,a,a);
printf(“a=%6x,%#6X
”,a,a);
A.a=FFFF,FFFF
a= FFFF,FFFF
B.a=ffff,FFFF
a=ffff ,FFFF
C.a=ffff,FFFF
a= ffff,0xFFFF
D.a=ffff,FFFF
a=ffff ,0xFFFF
【答案】C
【解析】格式控制符%x或%X是十六进制形式输出一个无符号整型数据,注意当格式控制符x是小写时,输出时十六进制的数码也是小写,x是大写时,输出时十六进制的数码也是大写;%#6X,#和X、o搭配时,表示输出十六进制和八进制前缀。故选C。
9、 若有以下语句,则输出结果是 :
int a=-3;
printf(“a=%x,a=%o”,a,a);
A.a=fffffffd,a=37777777775
C. a=fffd,a=177775
C. a=FFFFFFFD,a=37777777775
D. a=FFFd,a=177775
10、
【答案】A
【解析】格式控制符%x或%X是十六进制形式输出一个无符号整型数据, 格式控制符%o是八进制形式输出一个无符号整型数据,默认输出占四个字节,又因为-3超出了无符号的范围,-3加四个字节的模4294967296,得到结果4294967293。故选A
11、 若有以下语句,则输出结果是 :
int a,b;
scanf(“%3d%2d”,&a,&b);
printf(“%d,%d”,a,b); 原创精品资源学科网独家享有版权,侵权必究!
从键盘输入数据:123456<回车>
A.123,456 B.a=123,b=45 C.123,45 D.a=123,b=456
【答案】C
【解析】scanf中,%3d是指定输入数据列宽为3,所以将123赋值给a,将45赋值给b,故选C。
12、 若有以下语句,则从c,c1的值为 :
char c,c1;
scanf(“%3c%3c”,&c,&c1);
从键盘输入数据:ABC<空格>DBGE
A. A,B B.A,<空格> C.A,D D. 数据输入错误
【答案】B
【解析】scanf中,%3c是指定输入数据列宽为3,char占一个字节,且空格、回车等作为有效字符读入。所以将读取的字符ABC中A赋值给c,<空格>DB中将<空格>赋值给c1。故选B。
13、 若要给a赋值为12,给b赋值为’A’,则正确的输入方法是 :
int a; char b;
scanf(“a=%d,b=%c”,&a,&b);
A.12 A B.a=12 b=A C.12,A D. a=12,b=A
【答案】D
【解析】scanf中,出现的常规字符原样输入,包括转义字符如’
’等,题,题目中a=,b=均为常规字符,故选D
14、 若有以下程序段,则输出结果为 :
int a,b;
scanf(“%d%d
”,&a,&b);
printf(“%d
”,a*b);
从键盘输入数据:12a45
A.值无法确定 B.2 C.12 D.540
【答案】A
【解析】%d是读入十进制整型数据,将12读入赋值给变量a,在次读入时遇到非法字符a后读入结束,b的值无法预测。故选A。
15、 若有以下定义:int a,b; float f;下列语句中,正确的是 :
A.sacnf(“%d,%d,%f
”,a,b,f);
B.scanf(“%d,%d,%f
”&a,&b,&f);
C.scanf(“%d,%d,%f
”,&a,&b,&f);
D.scanf(“%2d,%2d,%.2f
”,&a,&b,&f);
【答案】C
【解析】A选项,a,b,f变量没有取地址;B选项,后双引号和&间,应用逗号(,)分隔,产生语法错误;D选项,输入中,不能指定读入小数精度。故选C。
16、 在执行下面程序段时,正确的输出结果是 :
int a,b;char c;
scanf(“%d%2c%3d”,&a,&c,&b);
printf(“%d,%c,%d”,a,c,b);
从键盘输入数据:15<空格>12458
A. 值无法确定 B.15,<空格>,245 C.15,1,458 D. 15,<空格>,124 原创精品资源学科网独家享有版权,侵权必究!
【答案】B
【解析】scanf中,%2c、%3d是指定输入数据列宽,char占一个字节,且空格、回车等作为有效字符读入。所以将读取15赋值给a,<空格>1中将<空格>赋值给c,读取245赋值给b,故选B。
2、 填空题(共15空,每空2分,共30分)
1、 格式控制符是以 打头。
【答案】%
2、 若要从键盘输入一个字符赋值给ch1,可用语句 和语句 来实现。
【答案】ch1=getchar(); scanf(“%c”,&ch1); (两条语句可交换顺序)
3、 以下语句 printf(“123\\N%%%s”,”ABCD”);的输出结果是 。
【答案】123\N%ABCD
4、 算法的基本结构分为 、 、 。
【答案】顺序结构 选择(分支)结构 循环结构 (顺序可改变)
5、 若有以下定义:int a=-1;执行printf(“%O
”,a);输出结果: 。
【答案】O
6、 格式控制符中,是大写的有 。
【答案】%X、%E、%G
7、 若有语句:int a,b,c;scanf(“%d%d%d
”,&a,&b,&c);,输入值时可以使用 、
Tab键、 把数据分隔开。
【答案】空格 回车(顺序可改变)
8、 已有定义float f1=12.4567;用十进制小数形式输出,保留2为小数,正确的输出语句是
。
【答案】printf(“%.2f
”,f1);
9、 一个有效的算法应该具有以下特点: 、确定性、可行性、零个或多个输入、 。
【答案】有穷性 一个或多个输出
10、 用非格式化的方式输出字符串“ABCD”的值,语句为 。
【答案】puts(“ABCD”);
3、 程序运行题(共5题,每小题3分,共15分)
1、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ char a,b;
int c=50;
a=getchar();
b=getchar();
putchar(a);
printf(“%c\t%c
”,b,c);
}
从键盘输入AbCd<回车>
【答案】Ab 2原创精品资源学科网独家享有版权,侵权必究!
2、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ unsigned a=32767,b;
b=a>>2;
printf(“a=%#x,b=%#x
”,~a,b);
}
【答案】a=0xffff8000,b=0x1fff
3、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ int x=017;
float f1=12.5687958;
printf(“x=%05o,%-05X
”,x,x);
printf(“f1=%#.0f,%#.2E
”,f1,f1);
}
【答案】x=00017,F
f1=13.,1.26E+001
4、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ float f1,f2;
scanf(“%2f%*2f%2f”,&f1,&f2);
printf(“f1=%f,f2=%f
”,f1,f2);
}
从键盘输入2345684212<回车>
【答案】f1=23.000000,f2=68.000000
5、下列程序运行的结果是 。
#include<stdio.h>
void main( )
{ int a=0x23;
printf(“%#6.3x\t%06.3x”,a,a);
printf(“%-8s***%.3”,”&”,” &”);
}
【答案】 0x023 023
& ***
4、 程序填空题(共5空,每空3分,共15分)
1、 程序功能是输入一个四位数的正整数,输出组成该数的各个数字中的最大数,例如输入8562,则输出max=9。
#include<stdio.h>
void main( )
{ int n,n1,n2,n3,n4,max;
原创精品资源学科网独家享有版权,侵权必究!
n1=n%10;
n4=n/1000;
max= ?n1:n2;
max=max>n3?max:n3;
printf(“max=%d”,max);
}
【答案】 1.scanf(“%4u”,&n); 2.n2=n/10%10;或n2=n%100/10;
3. n3=n/100%10;或n3=n%1000/100; 4.n1>n2
5.max=max>n4?max:n4;
5、 程序改错题(共10分)
1、 从键盘输入圆柱底面圆的半径r和圆柱的高h(半径和高均为整数),求圆柱的体积,输出体积保留3位小数。程序有两处错误,请找出并改正。(找出错误行号2分,该出正确语句3分)
L1 #include<stdio.h>
L2 #define PI 3.14
L3 void main( )
L4 { int r,h; float tj;
L5 scanf(“%f,%f”,&r,&h);
L6 tj=PI*r*r*h;
L7 printf(“圆柱的体积为:tj=%f”,tj);
【答案】L5 scanf(“%d,%d”,&r,&h);
L7 printf(“圆柱的体积为:tj=%.3f”,tj);原创精品资源学科网独家享有版权,侵权必究!
原创精品资源学科网独家享有版权,侵权必究!
$$