C语言程序设计期中考试解析.docx
- 文档编号:12870935
- 上传时间:2023-04-22
- 格式:DOCX
- 页数:9
- 大小:18.09KB
C语言程序设计期中考试解析.docx
《C语言程序设计期中考试解析.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期中考试解析.docx(9页珍藏版)》请在冰豆网上搜索。
C语言程序设计期中考试解析
C语言程序设计期中考试
考试说明:
1、本试卷包含五大题,共31题,满分100分,考试时间120分钟。
2、考试形式为闭卷,禁止查阅任何资料或运行代码。
3、本次考试接收答卷时间为2014年6月8日至2014年6月29日,答题直接在文档中作答,将答卷发到助教的QQ邮箱即可。
请自觉遵守规则,限定答题时间。
一、填空题(20分
本大题共10题。
请将答案填入空格中。
每题2分,第1—5题每题2个空格,每个空格1分,第6—10题每题1个空格,每个空格2分,每个空格填对得分,填错或不填得0分。
1、C语言程序中,定义符号常量的格式如下,在横线上填入缺少的指令。
__________namereplacement-list
声明一个变量,要使其值不能被修改,则使用的限定符是__________。
2、定义整型变量octint并将其赋值为八进制表达下的37,其代码为__________;定义整型变量hexint并将其赋值为十六进制表达下的8c,其代码为__________。
(两空格均通过加前缀实现,不得转化成十进制表达再赋值
3、枚举常量用关键词__________定义。
在没有显式说明的情况下,该类型中第一个枚举名的值为_____。
4、定义静态变量或函数,使用关键词__________。
如果一个变量在程序中使用频率较高,为将该变量放在机器的寄存器中以提高程序运行效率,定义该变量时使用关键词__________。
5、在不进行显式初始化的情况下,静态变量将被初始化为__________,寄存器变量将被初始化为__________。
(两空格均填入初始化成什么值或“没有定义”
6、程序中,变量x、y都已声明且赋值,变量max已声明,现将max的值设为x和y中的较大值,要求不使用if语句或if-else语句,而使用运算符?
:
实现,其代码为____________________。
7—10题,假设在32位操作系统上运行,使用指定的位运算符完成运算,填入代码。
7、输入两个整数,要求不使用&,返回按位与运算的结果。
例如:
bitAnd(6,5=4。
允许使用的运算符:
~|。
最多允许使用的运算符数量:
8。
intbitAnd(intx,inty
{
return____________________;
}
8、输入两个整数,要求不使用|,返回按位或运算的结果。
例如:
bitOr(6,5=7。
允许使用的运算符:
~&。
最多允许使用的运算符数量:
8。
intbitOr(intx,inty
{
return____________________;
}
9、一个不带参数的函数,返回-1。
允许使用的运算符:
~&^|+<<>>。
最多允许使用的运算符数量:
2。
intminusOne(void
{
return____________________;
}
10、一个不带参数的函数,返回带符号整数的最大正数。
允许使用的运算符:
~&^|+<<>>。
最多允许使用的运算符数量:
4。
inttmax(void
{
return____________________;
}
本大题共8题。
每道题的四个选项中只有一个是正确的。
第11—16题每题1分,第17—18题每题2分,均为选对得分,不选、错选或多选得0分。
11、下列关于变量的说法中错误的是____________________。
(
A、变量名必须以字母开头
B、变量名中可以包含数字
C、变量名长度无限制
D、X和x是相同的变量名
12、下列运算符中,优先级最高的是__________。
(
A、二元加法运算符
B、移位运算符
C、判断相等运算符
D、赋值运算符
13、下列运算符中,优先级最低的是__________。
(
A、取反运算符
B、位运算符与
C、位运算符或
D、位运算符异或
14、在嵌套if语句中,else语句与____________________匹配。
(
A、之前的第一个if
B、之前的最后一个if
C、最近的前一个没有else配对的if
D、之前最远的没有else配对的if
15、关于定义函数,下列说法中正确的是____________________。
(
A、同一个文件中可以定义两个名称相同、参数类型不同的函数
B、同一个文件中可以定义两个名称相同、参数个数不同的函数
C、同一个文件中可以定义两个名称相同、返回值类型不同的函数
D、同一个文件中不能定义两个相同名称的函数
16、定义函数时,如果省略返回值类型,默认返回值类型是__________。
(
A、char
B、int
C、double
D、void
17、阅读下列程序代码片段:
switch(i{
case0:
printf("TodayisSunday\n";break;
case1:
printf("TodayisMonday\n";break;
case2:
printf("TodayisTuesday\n";
case3:
printf("TodayisWednesday\n";break;
case4:
printf("TodayisThursday\n";break;
case5:
printf("TodayisFriday\n";break;
case6:
printf("TodayisSaturday\n";
default:
printf("Invalidnumber\n";
}
下列说法中正确的是____________________。
(
A、输入的i为1时,会输出两句
B、输入的i为2时,会输出两句
C、输入的i为3时,会输出两句
D、只要输入的i为0到6的整数,就不会显示Invalidnumber一句
18、下列各项代码中不会出现编译错误的是__________。
(
A、inti=1;
B、intsum(intx,inty{returnx+y;}
C、printf("HelloWorld!
\n";
D、intsizeof=0;
本大题共5题。
每道题的五个选项中至少有一个是正确的。
每题2分,全部选对得分,不选、错选、少选或多选得0分。
19、下列各项中,是C语言关键词的有__________。
(
A、byte
B、do
C、integer
D、sign
E、type
20、下列各运算符中,是二元运算符的有__________。
(
A、%
B、!
C、<<
D、^
E、?
:
21、关于函数返回值,下列说法中错误的是____________________。
(
A、非void类型函数返回函数值的格式是returnexpression;
B、void类型函数中不能有return语句
C、可以在函数中定义函数
D、函数中声明的自动变量只能在该函数中使用,不能被其他函数使用
E、函数中执行到return语句则终止执行该函数,不会继续执行函数中剩余语句
22、关于外部变量,下列说法中正确的是____________________。
(
A、外部变量定义在函数外
B、通过同一个名字对外部变量的所有引用都是引用同一个对象
C、外部变量较内部变量具有更大的作用域和更长的生存期
D、在定义外部变量前使用该变量,需通过extern声明,声明变量不分配存储单元
E、一个文件中定义了外部变量,其他文件可以通过extern声明访问该外部变量
23、关于静态声明,下列说法中正确的是____________________。
(
A、外部的静态声明只能用于变量
B、静态声明可以达到隐藏外部对象的目的
C、静态声明的外部变量只有其所在的源文件中的函数可以访问
D、静态声明的内部变量一直存在并占据存储空间
E、函数中静态声明的内部变量作用域不仅限于该函数
四、问答题(34分
本大题共5题,根据题目要求作答。
阅读代码题必须同时回答输出值和理由,只回答输出值不说明理由不得分。
24、循环包括while循环、do-while循环和for循环。
其中,do-while循环和另外两种循环的主要区别是什么?
三种循环分别在什么情况下适用?
(10分
25、阐述关键词break和continue的作用。
(6分
26、阅读下列程序代码,写出两段程序的输出值,并说明理由(行号已标出。
(6分
代码一
1voidmain(
2{
3inta=0;
4if(a!
=0&&a++>0
5printf("1:
a=%d\n",a;
6else
7printf("2:
a=%d\n",a;
8}
代码二
1voidmain(
2{
3inta=0;
4if(a!
=0&a++>0
5printf("1:
a=%d\n",a;
6else
7printf("2:
a=%d\n",a;
8}
27、阅读下列程序代码,写出该程序的输出值,并说明理由(行号已标出。
(8分
1voidmain(
2{
3inta=1,b=2;
4intc=a--;
5intd=b+++--c;
6b=(d+=2-++a;
7printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d;
8}
28、在一台右移运算符(>>对有符号数进行算术右移(即在左端补符号位的计算机上,定义有符号整型变量a,则a/4和a>>2是否等价?
说明理由(如果不等价,除了说明理由,还需要举反例。
(4分
五、编程题(26分
本大题共3题。
根据题目要求写出程序代码。
29、使用递归的方式,写一个计算斐波那契数的函数。
函数框架如下:
intfibonacci(inti
{
//Yourcodehere.
}
要求:
只需要考虑i为非负整数的情况,当i为0时返回0,当i为1时返回1,当i大于1时使用递归。
(8分
30、写一个完整的程序,实现判断闰年功能,输入年份后打印该年份是否为闰年(打印完需要换行。
例如输入年份2008,则打印:
2008isaleapyear,输入年份1900,则打印:
1900isnotaleapyear。
只需要考虑年份为正整数的情况,不需要考虑容错问题。
要求:
main函数中调用isleap函数,将年份作为参数传给该函数,该函数无返回值。
应避免编译时出现警告。
(8分
31、写一个完整的程序,实现下列功能:
运行程序时,每次输入一个整数,如果输入的不是0,则继续输入,如果输入的是0,则计算当前输入的所有整数的和并打印(打印完需要换行),然后终止程序。
不需要考虑容错问题。
(10分)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 期中考试 解析