当前位置:文档之家› 精编版-2016年浙江宁波大学C程序设计考研真题

精编版-2016年浙江宁波大学C程序设计考研真题

2016年浙江宁波大学C程序设计考研真题一、单项选择题:本大题共 30 小题,每小题 3 分,共 90 分。

在每小题列出的四个选项中只有一个是符合题目要求的。

错选、多选或未选均不得分。

1. 关于C语言中的函数,下列说法中错误的是___________A) 函数定义可以分为两个部分,即函数说明部分和函数体B) 主函数可以调用非主函数C) 某个非主函数可以调用其它非主函数D) 程序可以从任何函数开始执行2. C 语言中 while 和 do-while 循环的主要区别是___________A) do-while 的循环体至少无条件执行一次B) while 的循环控制条件比 do-while 的循环控制条件严格C) do-while 里面不允许使用 breakD) do-while 里面不允许使用 continue3. 在 C 语言程序中,以下说法正确的是___________A) 函数的定义可以嵌套,但函数的调用不可以嵌套B) 函数的定义不可以嵌套,但函数的调用可以嵌套C) 函数的定义和函数的调用都不可以嵌套D) 函数的定义和函数的调用都可以嵌套4. 下列字符列中,能作为某个变量的标识符是___________A) ?aB) a=2C) a.3D) a_35. 在以字节存储字符的系统中,字符‘\n ’在内存占用的字节数是___________A) 1B) 2C) 3D) 46. 下面的数字中,合法的长整型常数是___________A) 0LB) 4962710C) 0.054838743D) 2.1869e107. 下面正确表示字符常量的是___________A) "\n"B) '\t'C) "0"D) 658. 输出字符型变量 x 与整型变量 y,下列 printf 语句使用正确的是___________A) printf ("%f%s", x, y);B) printf ("%lf%c", x, y) ;C) printf ("%c%d", x, y);D) scanf ("%f%c", x, y) ;9. 为表示关系 x≥y≥z,应使用 C 语言表达式___________A) (x>=y>=z)B) (x>=y) AND (y>=z)C) (x>=y) && (y>=z)D) (x>=y) & (y>=z)10. C 语言对 if 嵌套语句的规定 else 总是与___________配对。

A) 第一个 ifB) 之前最近的且尚未配对的 ifC) 缩进位置相同的 ifD) 之前最近的 if11. 已知整数变量 a 为 10,b 为 3,则 a&b 的值为___________A) 1B) 0C) 13D) 212. 设有定义:char s[12]={“string”};则 printf(“%d\n”, strlen(s));的输出是___________A) 6B) 7C) 11D) 1213. 设有定义:int a[6]={1,2,3,4,5,6}; 则 a[6]的值为___________A) 4B) 5C) 6D) 已经超出范围14. 若有说明语句“int a[10], *p=a;”,对数组元素的正确引用是___________A) a[p]B) p[a]C) *(p+2)D) p+215. 以下定义数组的语句错误的是___________A) int num[]={1, 2, 3, 4, 5, 6};B) int num[][3]={{1, 2}, 3, 4, 5, 6};C) int num[2][4]={{1, 2}, {3, 4}, {5, 6}};D) int num[][4]={1, 2, 3, 4, 5, 6};16. 若有定义:“int a[2][3];”,则对 a 数组的第 i 行第 j 列元素的正确引用为___________A) *(*(a+i)+j)B) (a+i)[j]C) *(a+i+j)D) *(a+i)+j17. 两个指针变量不可以___________A) 相加B) 相减C) 比较D) 指向同一个地址18. 以下对枚举类型名的定义中,正确的是___________A) enum a ={one, two, three};B) enum a{a1, a2, a3};C) enum a ={‘1’, ‘2’, ‘3’};D) enum a {“one”, “two”, “three” };19. 在下列代码中,正确的 C 代码是___________A) # define MYNAME=“ABC” B) # include string.hC) for (i=0; i<10; i++);D) struct int stu { int name; };20. 假设 var1, var2, var3, var4, var5 是 5 个整形变量,有如下函数调用语句:func(var1, var2+var3, var4, var5);该函数调用语句中,含有的实参个数是___________A) 3B) 4C) 5D) 621. 下列语句中,将 c 定义为文件型指针的是___________A) FILE c;B) FILE *c;C) file c;D) file *c;22. 函数 fseek(pFile,0L,SEEK_CUR)中的 SEEK_CUR 代表的起始点是___________A) 文件开始B) 文件末尾C) 文件当前位置D) 以上都不对23. 设有定义struct {int x, y;} d[2] = {{1,3},{2,7}};那么printf(“%d\n”, d[0].y/d[0].x*d[l].x);的输出是___________A) 0B) 1C) 3D) 624. 关于链表,下面说法正确的是___________A) 链表不能在表头插入元素或者删除元素B) 链表支持随机存取C) 链表中各元素的物理地址连续D) 链表属于动态数据结构25. 若 k 是 int 类型变量,有以下 for 语句:for(k=-1; k=1; k++)printf("OK\n");下面关于语句执行情况的叙述中正确的是___________A) 循环体执行两次B) 循环体执行一次C) 循环体一次也不执行D) 构成无限循环26. 设 a=15; 则执行 a += a -= a *= a 以后,a 的值为___________A) 15B) 30C) 0D) 22527. 设 x, y, tmp 均为整形变量,则以下语句:tmp = x; x = y; y = tmp;的功能是___________A) 按从小到大排列B) 按从大到小排列C) 无确定结果D) 交换 x 与 y 的值28. 下面的程序#include <stdio.h>void main(){int a = 3;switch (--a){case 2: printf("2");case 3: printf("3");}}输出的结果是___________ A) 2B) 23C) 3D) 3229. 下面的程序#include <stdio.h>#define ABC(x) x * xvoid main(){int a = 3;printf("%d\n", ABC(a + 1));}输出的结果是___________ A) 7B) ABCC) 4D) 1630. 下面的程序#include <stdio.h>void main(){int a = 4;int b = a++;int c = a;printf("%d, %d, %d\n", a, b/2, c/2);}输出的结果是___________ A) 5, 2, 2B) 4, 2.5, 2.5C) 4, 2.5, 2D) 5, 2, 2.5二、编程题:本大题共 4 小题,每小题 15 分,共 60 分。

1、这门课程的总评成绩。

【问题描述】你这学期计算机应用基础课程的总评成绩=10%平时+40%上机实验+50%期末卷面考试;成绩由优、良、中、及格、不及格五个等级来表示,其中:总评成绩>=90,优90>总评成绩>=80,良80>总评成绩>=70,中70>总评成绩>=60,及格其他,不及格【输入】输入一个学生的平时成绩、上机实验成绩、期末卷面成绩(整型);【输出】请你输出该学生的成绩等级。

【样例输入】80 90 85【样例输出】良2、根据年龄计算生肖。

【问题描述】在东南亚的很多国家,都有十二生肖的说法。

以中国为例,2000 年为龙年(Dragon),接下来依次是蛇(Snake),马(Horse),羊(Sheep),猴(Monkey),鸡(Cock),狗(Dog),猪(Boar),鼠(Rat),牛(Ox),虎(Tiger),兔(Hare)。

今年是 2015 年,请根据用户输入的年龄,输出他(她)的生肖。

【输入】第一行的数字为测试数据的组数 N,接下来是 N 个人的年龄。

【输出】相应的生肖。

【样例输入】214109【样例输出】SnakeHorse3、各位数字和。

【问题描述】小明今年 4 岁了,正读幼儿园小班呢。

老师为了测试孩子对加法的掌握程度,在黑板上随手写了一些数字,让孩子们把各个位上的数字加一起,看看答案正确与否。

【输入】第一行的数字为测试数据的组数 N,接下来每行有两个数字,前面的数字代表老师写下的整数,后面的数字代表孩子运算的结果。

【输出】如果正确输入 Right, 如果错误输出 Wrong。

【样例输入】2123 67890 20【样例输出】RightWrong4、复数的乘积。

【问题描述】复数可表示成 a+bi,其中 a,b 都是实数, i*i = -1。

现有 N 个复数,请计算它们的乘积。

输入复数的个数 N 及每个复数,输出它们的乘积。

保留两位小数。

复数乘法公式:(a+bi)*(c+di)=(ac-bd)+(bc+ad)i【输入】N 个复数【输出】它们的乘积【样例输入】20.5 11 -0.5【样例输出】1.00 0.75。

相关主题