内容正文:
<C语言程序设计教程>清华大学出版社(第3版)
第3章 基本数据类型、运算符与表达式 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 选择题(共15题,每小题2分,共30分)
1、 下列选项中,为合法标识符的是( )
A.X-D B.2bc C.a_b D.int
2、下列选项中,为合法整型常量的是( )
A.oxf9 B.025 C. 3 C D.018
3、下列选项中,一组都是合法常量的是( )
A.’\x256’ 013 0.25 B.’+’ 2.5e1.2 “”
C.’\\’ 25. e12 D.’\17 ’ .15 0x8
4、下列运算符优先级最高的是( )
A.= B.+ C. << D.&&
5、已知各变量类型说明如下
#define a 5
int b=4;
float x,y;
则以下符合 C语言语法规则的是( )
A.x=a+b B.y=float(a+b) C. a++ D.x%=b
6、设变量均已定义,下列表达式中不正确的是( )
A.-i++ B.n=(a=(b+c)) C. a=b+c=d D.a=x==y
7、下列选项中,能正确定义a,b变量,并将初始值都赋为5的是( )
A.int a=b=5; B. int a=5,b=5; C. a=5,b=5; D.int a,b=5;
8、已知i=2,执行j=i++后,i和j的值分别为( )
A.3 1 B. 3 2 C.2 2 D.2 1
9、 假定x为整型变量,y为实型变量,则表达式x=3,y=2+5/x的值为( )
A.3.0 B. 4.5 C. 4 D.4.0
10、若“int a;float b=12.2;”,则执行“a=(int)b%3;”后,a的值是( ) 原创精品资源学科网独家享有版权,侵权必究!
A.0 B.1 C. 2.2 D. 1.22
11、若有定义int a;char ch;float f1;double f2;并都已正确赋值,执行表达式a+ch+f1+f2后,表达式的结果为什么类型( )
A.int B.char C. float D. double
12、以下程序段输出的结果是( )
int x=0x11; printf(“%d
”,++x);
A.19 B.18 C.17 D.16
13、 若x和y都为int型变量,且x=2,y=5 执行下列语句后输出结果为( )
printf(“%d,%d”,++x,x+y);
A.3,8 B.2,7 C. 2,8 D.3,7
14、 若设x是int型变量,计算表达式(x=5*4,x*2),x+10后,x的值为( )
A.20 B.30 C. 40 D.50
15、 若有语句如下:
printf(“%d,%d,%d,%d”,7%3,-7%3,7%-3,-7%-3);执行语句后结果为( )
A.1,1,1,1 B.-1,1,-1,1 C.1,-1,1,-1 D.-1,-1,-1,-1
2、 填空题(共15空,每空2分,共30分)
1、 C语言中常量分为直接常量和 常量,需要用预处理命令 来定义。
2、 有定义int a和float b;则sizeof(sizeof(a)*sizeof(b)+0.618)的表达式值为 ,sizeof(1.2+5)的值为 ,sizeof 1.2+5的值为 。
3、 若有定义int x=2,y=4,执行表达式(x+=y,y+1,x+y)后,表达式的值为 。
4、 表达式12&13的值是 ,表达式12||13的值是 。
5、写出下列c语言表达式:
x,y,z中有两个小于0,一个大于0:
:
6、字符串"\xae
\"123\128"占 个字节。
7、若有int a=-33;则表达式a>>4的值是 。
8、 写出下列数学表达式对应的c语言表达式
|a3+cd| 原创精品资源学科网独家享有版权,侵权必究!
9、定义无符号短整型变量s并初始化为八进制的67的c语言语句是
3、 程序运行题(共5题,每小题3分,共15分)
1、 下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int a=4,b=9,c=5;
c+=-a++*--b;
printf(“a=%d,%d,%d
”,a,b,c);
return 0;}
2、 下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int i=0;
i--;
printf(“%s”,i>sizeof(i)?”YES”:”NO”);
return 0;}
3、下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ printf(“**\102 \x43 C**
”);
printf(“abc\rn\t123”);
return 0;}
4、下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int a=5,b=3,c;
c=sizeof(a=++b);
printf(“a=%d,b=%d,c=%d
”,a,b,c);
return 0;}
5、下列程序运行的结果是 。原创精品资源学科网独家享有版权,侵权必究!
#include<stdio.h>
int main( )
{ char ch1=-9;
unsigned char ch2=ch1;
unsigned short a=-1;
printf(“a=%u,ch2=%d”,a,ch2);
return 0;}
4、 程序填空题(共5空,每空3分,共15分)
1、 程序的功能是输入两个正整数,输出它们的算术平方数(两数和的平均值)和几何平均数(两数积的平方根)。
#include<stdio.h>
int main()
{ int a,b;
scanf(“%d%d”,&a,&b);
aver1=(a+b)/2.0;
printf(“算术平均数=%.3f
”,aver1);
printf(“算术平均数=%.3f
”,aver1);
return 0;}
2、 一副羽毛球拍42元,从键盘输入购买羽毛球拍的个数(n),求总共花费多少钱。
#include<stdio.h>
void main()
{ int n,money;
printf(“请输入购买羽毛球拍的个数:”);
scanf(“%d
”,&n);
money=n*PRICE;
printf(“购买羽毛球拍%d个,共花费%d元
”, );}原创精品资源学科网独家享有版权,侵权必究!
5、 程序改错题(共10分)
1、从键盘输入年份,输出该年的天数。程序有两处错误,请找出并改正。(找出错误行号2分,该出正确语句3分)
L1 #include<stdio.h>
L2 void main()
L3 { int year,day;
L4 printf("请输入年份");
L5 scanf("%d",year);
L6 day=year%4&&year%100||year%400!=0?366:365;
L7 printf("%d",day); }原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$
<C语言程序设计教程>清华大学出版社(第3版)
第3章 基本数据类型、运算符与表达式 章节过关卷
考试时间:90分钟 满分:100分
姓名 班级 学号
1、 选择题(共15题,每小题2分,共30分)
1、 下列选项中,为合法标识符的是( )
A. X-D B.2bc C.a_b D.int
【答案】C
【解析】标识符由字母、下划线、数字组成,且第一个字符必须是字母或下划线。关键字不能用作标识符。
2、下列选项中,为合法整型常量的是( )
A.oxf9 B.025 C. 3C D.018
【答案】B
【解析】整型常量有十进制、八进制、十六进制三种表现形式,八进制以0打头,十六进制以0x打头,并不能超出其数码范围。
3、下列选项中,一组都是合法常量的是( )
A.’\x256’ 013 0.25 B.’+’ 2.5e1.2 “”
C.’\\’ 25. e12 D.’\17 ’ .15 0x8
【答案】D
【解析】常量包括整型、实型和字符型常量。整型常量有十进制、八进制、十六进制三种表现形式。八进制以0打头,十六进制以0x打头,并不能超出其数码范围。
实型常量有十进制小数形式和十进制指数形式两种表现形式,十进制小数形式由0-9和小数点组成,指数形式一般形式aEn(E可以是小写也可以是大写),其中E的两边必须要有数字,且n必须是整型。
字符型常量必须用单引号括起来,且只能有一个字符。字符型常量有直接字符和转义字符两种形式,转义字符以’\’开头,其中八进制转义字符’\ddd’斜杠后面跟1-3个八进制数码,十六进制转义字符’\xdd’斜杠后面跟1-2个十六进制数码,
4、下列运算符优先级最高的是( )
A.= B.+ C. << D.&&原创精品资源学科网独家享有版权,侵权必究!
【答案】B
【解析】=(赋值运算符14级) +(算术运算符4级) <<(位运算符5级) &&(逻辑运算11级)
5、已知各变量类型说明如下
#define a 5
int b=4;
float x,y;
则以下符合 C语言语法规则的是( )
A. x=a+b B.y=float(a+b) C. a++ D.x%=b
【答案】A
【解析】B选项强制类型转换符y=(float)(a+b);C选项自增自减只能用于变量,a是常量;D选项%运算符只能用于整型。
6、设变量均已定义,下列表达式中不正确的是( )
A.-i++ B.n=(a=(b+c)) C. a=b+c=d D.a=x==y
【答案】C
【解析】赋值运算符的左边只能是变量。
7、下列选项中,能正确定义a,b变量,并将初始值都赋为5的是( )
A.int a=b=5; B. int a=5,b=5; C. a=5,b=5; D.int a,b=5;
【答案】B
【解析】初始化时不能连续赋值。
8、已知i=2,执行j=i++后,i和j的值分别为( )
A.3 1 B. 3 2 C.2 2 D.2 1
【答案】B
【解析】i++是后置运算,先将i的值赋值给j,i的值在加1。
9、 假定x为整型变量,y为实型变量,则表达式x=2,y=2+5/x的值为( )
A.3.0 B. 4.5 C. 4 D.4.0
【答案】D
【解析】5/x都为整数,整除整为整,结果为2,2+2为4赋值给y,y是实型变量,最终结果为4.0。
10、若“int a;float b=12.2;”,则执行“a=(int)b%3;”后,a的值是( ) 原创精品资源学科网独家享有版权,侵权必究!
A.0 B.1 C. 2.2 D. 1.22
【答案】A
【解析】b强制类型取整后,结果为12,12%3结果为0。
11、若有定义int a;char ch;float f1;double f2;并都已正确赋值,执行表达式a+ch+f1+f2后,表达式的结果为什么类型( )
A.int B.char C. float D. double
【答案】D
【解析】当参与运算数据类型不一致时,所占字节数少的会向占字节数大的自动转换。
12、以下程序段输出的结果是( )
int x=0x11; printf(“%d
”,++x);
A.19 B.18 C.17 D.16
【答案】B
【解析】0x11是十六进制数,按权展开转换成十进制数为17,执行++x后,值为18。
13、 若x和y都为int型变量,且x=2,y=5 执行下列语句后输出结果为( )
printf(“%d,%d”,++x,x+y);
A.3,8 B.2,7 C. 2,8 D.3,7
【答案】D
【解析】printf中,计算是从右至左,输出从左至右。先计算x+y的值为7,在计算++x值为3,故输出结果为3,7。
14、 若设x是int型变量,计算表达式(x=5*4,x*2),x+10后,x的值为( )
A.20 B.30 C. 40 D.50
【答案】A
【解析】只有x=5*4中,x被赋值,所以X的值为20。
15、 若有语句如下:
printf(“%d,%d,%d,%d”,7%3,-7%3,7%-3,-7%-3);执行语句后结果为( )
A.1,1,1,1 B.-1,1,-1,1 C.1,-1,1,-1 D.-1,-1,-1,-1
【答案】C
【解析】%运算符中,结果为正为负跟着%运算符左侧数走。
2、 填空题(共15空,每空2分,共30分)
1、 C语言中常量分为直接常量和 常量,需要用预处理命令 来定义。原创精品资源学科网独家享有版权,侵权必究!
【答案】符号 #define
2、 有定义int a和float b;则sizeof(sizeof(a)*sizeof(b)+0.618)的表达式值为 ,sizeof(1.2+5)的值为 ,sizeof 1.2+5的值为 。
【答案】8 8 13
3、 若有定义int x=2,y=4,执行表达式(x+=y,y+1,x+y)后,表达式的值为 。
【答案】10
4、 表达式12&13的值是 ,表达式12||13的值是 。
【答案】12 1
5、写出下列c语言表达式:
x,y,z中有两个小于0,一个大于0:
:
【答案】(x<0+y<0+z<0)==2 m>=10&&m<=90
6、字符串"\xae
\"123\128"占 个字节。
【答案】9
7、若有int a=-33;则表达式a>>4的值是 。
【答案】-3
8、 写出下列数学表达式对应的c语言表达式
|a3+cd|
【答案】-b+sqrt(b*b-4*a*c)/(2*a) fabs(a*a*a+c*d)
9、定义无符号短整型变量s并初始化为八进制的67的c语言语句是
【答案】unsigned short s=067;
3、 程序运行题(共5题,每小题3分,共15分)
1、 下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int a=4,b=9,c=5;
c+=-a++*--b;
printf(“a=%d,%d,%d
”,a,b,c);原创精品资源学科网独家享有版权,侵权必究!
return 0;}
【答案】a=5,8,-27
2、 下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int i=0;
i--;
printf(“%s”,i>sizeof(i)?”YES”:”NO”);
return 0;}
【答案】YES
3、下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ printf(“**\102\x43C**
”);
printf(“abc\rn\t123”);
return 0;}
【答案】**B C C**
n 123
4、下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ int a=5,b=3,c;
c=sizeof(a=++b);
printf(“a=%d,b=%d,c=%d
”,a,b,c);
return 0;}
【答案】a=5,b=3,c=4
5、下列程序运行的结果是 。
#include<stdio.h>
int main( )
{ char ch1=-9;原创精品资源学科网独家享有版权,侵权必究!
unsigned char ch2=ch1;
unsigned short a=-1;
printf(“a=%u,ch2=%d”,a,ch2);
return 0;}
【答案】a=65535,ch2=247
4、 程序填空题(共5空,每空3分,共15分)
1、 程序的功能是输入两个正整数,输出它们的算术平方数(两数和的平均值)和几何平均数(两数积的平方根)。
#include<stdio.h>
int main()
{ int a,b;
scanf(“%d%d”,&a,&b);
aver1=(a+b)/2.0;
printf(“算术平均数=%.3f
”,aver1);
printf(“几何平均数=%.3f
”,aver2);
return 0;}
【答案】(1)#include<math.h> (2)float aver1,aver2; (3)aver2=sqrt(a*b);
2、 一副羽毛球拍42元,从键盘输入购买羽毛球拍的个数(n),求总共花费多少钱。
#include<stdio.h>
void main()
{ int n,money;
printf(“请输入购买羽毛球拍的个数:”);
scanf(“%d
”,&n);
money=n*PRICE;
printf(“购买羽毛球拍%d个,共花费%d元
”, );}
【答案】(1)#define PRICE 42 (2)n,money原创精品资源学科网独家享有版权,侵权必究!
5、 程序改错题(共10分)
1、从键盘输入年份,输出该年的天数。程序有两处错误,请找出并改正。(找出错误行号2分,该出正确语句3分)
L1 #include<stdio.h>
L2 void main()
L3 { int year,day;
L4 printf("请输入年份");
L5 scanf("%d",year);
L6 day=year%4&&year%100||year%400!=0?366:365;
L7 printf("%d",day); }
【答案】(1) L5 scanf("%d",&year);
(2) L6 day=year%4==0&&year%100||year%400==0?366:365;
或者 day=year%4==0&&year%100!=0||year%400==0?366:365; 原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
$$