第三章 基本数据类型、运算符与表达式《C语言程序设计教程》(清华大学出版社第三版)章节关过卷

2025-04-14
| 2份
| 12页
| 163人阅读
| 2人下载

内容正文:

<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; 原创精品资源学科网独家享有版权,侵权必究! 学科网(北京)股份有限公司 $$

资源预览图

第三章 基本数据类型、运算符与表达式《C语言程序设计教程》(清华大学出版社第三版)章节关过卷
1
第三章 基本数据类型、运算符与表达式《C语言程序设计教程》(清华大学出版社第三版)章节关过卷
2
所属专辑
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。