2017武汉科技大学考研真题B卷-855-C语言程序设计.doc
第 1 页 共 4 页姓名:报考专业:准考证号码:密封线内不要写题2017 年全国硕士研究生招生考试初试自命题试题科目名称:C 语言程序设计(A 卷B 卷)科目代码:855考试时间:3 小时 满分 150 分可使用的常用工具:无 计算器 直尺 圆规(请在使用工具前打)注意:所有答题内容必须写在答题纸上,写在试题或草稿纸上的一律无效;考完后试题随答题纸交回。一、选择题(共 10 小题,每小题 2 分,共 20 分)1. 下列说法中错误的是( )。A主函数可以分为两个部分:主函数说明部分和主函数体B主函数可以调用任何非主函数的其它函数C任何非主函数可以调用其它任何非主函数D程序可以从任何非主函数开始执行2. 求整数 1 至 10 的和并存入变量 s,下列语句中错误的是( )。A. s=0; for(i=1;ivoid main() int k=5,n=0;do switch(k) case 1: case 3: n+=1; k-; break;default: n=0; k-;case 2: case 4: n+=2; k-; break;printf(“%d“,n);while(k0for(i=0;iint fun(int a) int b=2; static int c=2;b+; c-; return a+b+c;void main() int k,a=2;for(k=0;k /运行时输入:-5 -6 1 7 5 8 2 -4 -3 0void arrange(int p,int n) int i=0,j=n-1,t;while(i0) i+;while(ivoid fun(int *pa,int *pb) ; scanf(“%d“,while( ) if(k0) a+; else b+; ; ;void main() int x,y; ; printf(“x=%d y=%dn“,x,y); 2程序的功能:将数组中的前半部分元素与后半部分元素对换。若 n 为奇数,则中间的元素不动。例如,若 a 数组中的数据为:1,2,3,4,5,6,7,8,9,则调换后为:6,7,8,9,5,1,2,3,4。数组的元素由键盘输入。#includevoid fun( ) int i,t,p;p= ;for(i=0;inext; ;while(p) ; p-next=head; ; p=s; 四、程序设计(4 小题,前 2 题各 10 分,后 2 题各 15 分,共 50 分)1. 水仙花数是各位上数字的立方和等于自身的三位数。例如,153 就是水仙花数,因为 153=1*1*1+5*5*5+3*3*3。设计程序输出所有的水仙花数,每个水仙花数输出占一行,输出格式形为:153=1*1*1+5*5*5+3*3*32. 从键盘输入若干整数(0 表示结束) ,计算所有整数的和。请分别用递归和非递归的方法设计函数 int f()完成上述任务。3. 有 2 个带头结点的单链表,链表中每个结点的数据结构描述如下,各结点的数据域递减有序。typedef struct Node int data; struct Node *next; *LinkList;请设计函数 Merge 将两个链表 La 和 Lb 合并,La 和 Lb 仍然保留,生成新的链表 Lc,Lc 各结点的数据域递增有序,并返回 Lc 的结点数。要求,单链表中均无数据域相同的结点,设计的程序运行效率尽量高。int Merge(LinkList La,LinkList Lb,LinkList Lc)4. 假如有 n 个打印作业排队等待打印,每个作业都有自己的优先级(用正整数来表示,整数值大的优先级高) 。打印机每次会从打印队列中取出排在前面的打印作业,如果在剩下的打印队列中没有比它优先级高的,则打印该作业,否则不会打印该作业,而是将该作业重新添加到打印队列尾部。请设计函数 Print 统计 n 个打印作业中指定打印作业 m 是第几个打印的。int Print(int list,int n,int m)/list 用来存放队列中每个打印作业的优先级,n 表示等待打印的作业数/m 为指定的打印作业序号,函数返回值为作业 m 的打印序号。