[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc

上传人:孙刚 文档编号:498213 上传时间:2018-11-28 格式:DOC 页数:6 大小:30.50KB
下载 相关 举报
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc_第1页
第1页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc_第2页
第2页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc_第3页
第3页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc_第4页
第4页 / 共6页
[计算机类试卷]国家二级C语言机试(操作题)模拟试卷280及答案与解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、国家二级 C语言机试(操作题)模拟试卷 280及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:在形参 ss所指字符串数组中,将所有串长超过 k的字符串中后面的字符删除,只保留前面的 k个字符。 ss所指字符串数组中共有 N个字符串,且串长小于 M。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h #define N 5 #define M 10 *found* void fun(char(*ss)

2、【 1】 , int k) int i=0; *found* while(i 【 2】 ) *found* SSik=【 3】 ; i+; ) main() char xNM=“Create“, “Modify“, “Sort“, “skip“, “Delete“); int i; printf(“ nThe original string n n“); for(i=0; i N; i+)puts(xi); printf(“ n“), fun(x, 4); printf(“ nThe string after deleted: n n“); for(i=0; i N; i+) puts(xi)

3、; printf(“ n“); 二、程序修改题 2 下列给定程序的功能是:建立一个带头结 点的单向链表,并用随机函数为各结点数据域赋值。函数 fun的作用是求出单向链表结点 (不包括头结点 )数据域中的最大值,并且作为函数值返回。 请改正函数 fun中的错误,使它能得出正确的结果。 注意:部分源程序在文件 MODI1 C中,不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include conio h #include stdlib h typedef struct aa int data; struct aa * next;

4、NODE; fun(NODE * h) int max= 1; NODE*P; *found* P=h; while(P) if(P data max) max=P data; *found* P=h next; return max; outresult(int s, FILE*pf) fprintf(pf, “ nThe max in link : d n“, s); NODE*creatlink(int n, int m) NODE * h, *p, *s ; int i; h=P=(NODE*)malloc(sizeof(NODE); h data=9999; for(i=1; i =

5、n; i+) s=(NODE*)malloc(sizeof(NODE); s data=rand() m; s next=p next; p next=s; p=p next; p next=NULL; return h; outlink(NODE*h, FILE*Pf) NODE*P; p=h next; fprintf(pf, “ n The LIST: n nHEAD“); while(P) fprintf(pf, “ d“, P data); P=P next; ) fprintf(pf, “ n“); main() NODE*head; int m; system(“CLS“); h

6、ead=creatlink(12, 100); outlink(head, stdout); m=fun(head); printf(“ nThe RESULT: n“); outresult(m, stdout); 三、程序设计题 3 编写函数 fun,其功能是:计算 n门课程的平均分,结果作为函数值返回。 例如,若有 5门课程的成绩是: 90 5, 72, 80, 61 5, 55,则函数的值为71 80。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include stdio h float

7、fun(float*a, int n) void main() float Score30=90 5, 72, 80, 61 5, 55, aver; aver=fun(score, 5); printf(“ nAveracje score is: 5 2 f n“, aver), 国家二级 C语言机试(操作题)模拟试卷 280答案与解析 一、程序填空题 1 【正确答案】 (1)M (2)N (3) 0 【试题解 析】 填空 1:根据 main函数中的函数调用语句,确定函数定义时的形式参数,所以填入 M。 填空 2: while循环语句需要对所有字符串进行操作,因此循环条件是 i N。 填空

8、3:字符串结尾加入字符串结束标识 0。 二、程序修改题 2 【正确答案】 (1)p=h next; (2)p=p next; 【试题解析】 (1)因为链表的头结点没有数据域,所以对指针 p进行初始化时,要将 p指向头结点的下一个结点。 (2)通过指针 p的移动遍历链表,因此此处应改为 p=p next;。 三、程序设计题 3 【正确答案】 float fun(float*a, int n) float av=0 0; int i; for(i=0; i n; i+) *求分数的总和 * av=av+ai; return (av n); *返回平均值 * 【试题解析】 本题考查:如何通过指针来实

9、现计算平均分。 本题较简单,只需用一个循环语句就可完成数组元素的求和,再将和除以课程数即可。需要注意的是本题对指针的操作,当指针变量指向一个数组时,用该指针变量引用数组元素,引 用方式与数组的引用方式相同。例如,本题中 a指向了score,所以通过 a引用 score中的元素时可以用下标法,也可以用指针运算法,ai和 *(a+i)具有相同的作用。下标运算实际上是从当前地址开始往后取出地址中的第几个元素,当前地址下标为 0。例如,若有 int cc10, *p=cc+5;,即 p指向了 cc的第 5个元素,则 p0的作用与 cc5相同; p3的作用是取出从当前地址 (即p所指地址 )开始往后的第 3个元素,它与 cc8相同; p 2的作用是取出从当前地址开始往前的第 2个元素,它与 cc3相 同,但不提倡使用 “负 ”的下标。 计算平均分方法。 掌握以下语句。 for(i=0; i n; i+) *求分数的总和 * av=av+ai; return(av n); *返回平均值 *

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试资料 > 职业资格

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1