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

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

1、国家二级 C+机试(操作题)模拟试卷 158及答案与解析 一、基本操作题 1 给定程序中,函数 fun的功能是:计算形参 x所指数组中 N个数的平均值 (规定所有数均为正数 ),将所指数组中小于平均值的数据移至数组的前部,大于等于平均值的数据移至 x所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10个正数: 47、 30、 32、 40、 6、 17、 45、 15、 48、 26,其平均值为30 500000。 移动后的输出为: 30、 6、 17、 15、 26、 47、 32、 40、 45、 48。 请在程序的中括号处填入正确的内容并把中括号删除

2、,使程序得出正确的结果。 注意:部分源程序在文件 BLANKl C中。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include #include #define N10 double fun(double*x) int i, j; double av, yN; av=0; for(i=0; i #include #include typedef struct aa int data; struct aa*next; NODE; int fun(NODE*h) int sum=0; NODE*p; p=h一 next; *found* while(p一 next) if(p一 d

3、ata 2=0) sum+=p一 data; *found* p=h一 next; return sum; NODE*creatlink(int n) NODE *h, *p, *s; int i; h=p=(NODE*)malloc(sizeof (NODE); for(i=1; idata=rand() 16; s一 next=p一 next; p一 next=s; p=p一 nexL; p一 next=NULL; return h; outlink(NODE*h) NODE*p; p=h一 next; printf(“ n n The LIST: n n HEAD“); while(p)

4、 printf(“一 d“, p一 data); p=p一 next; printf(“ n“); void main() NODE*head; int sum; system(“CLS“); head=creatlink(10); outlink(head); sum=fun(head); printf(“ nSUN= d“, sum); 三、综合应用题 3 编写函数 fun,其功能是:删除一个字符串中指定下标的字符。其中, a指向原字符串,删除指定字符后的字符串存放在 b所指的数组中, n中存放指定的下标。 例如,输入一个字符串 “World”,然后输入 3,则调用该函数后的结果为“Wor

5、d”。 注意:部分源程序给出如下。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: #include #include #include #define LEN 20 void fun(char a, char b, int n) VOid main() char str1LEN, str2LEN; int n; system(“CLS“); printf(“Enter the str2ng: n“); gets(strl); printf(“Enter the position of the string deleted: “);

6、 scarlf(“ d”, &n); fun(str1, str2, n); printf(“The new string is: s n“, str2); 国家二级 C+机试(操作题)模拟试卷 158答案与解析 一、基本操作题 1 【正确答案】 (1)xi N (2)j+或 +j (3)i+或 +i 【试题解析】 填空 1: av代表平均值,本题考查了怎样求平均值,因此本空应该填写 xi N。 填空 2:通过 for循环和 if判断找到 xi中比平均值小的数,并把这些值赋值给yj, 因此本空应该填写 j+或者 +j。 填空 3:通过 while循环语句,把 xi中比平均值大的数放在数组 y的

7、后半部分,因此本空应该填写 i+或者 +i。 二、简单应用题 2 【正确答案】 (1)while(p!: NULL) (2)p=p一 next; 【试题解析】 (1)判断当前指针 p指向的结点是否存在,若存在则对该结点数据域进行判断操作。 (2)判断结束后指针指向下一个结点。 三、综合应用题 3 【正确答案】 void fun(char a, char b, int n) int i, k=0; for(i=0; ai!= 0; i+) if(i!=n) *将不是指定 下标的字符存入数组 b中 * bk+=a: i; bk= 0; *在字符串最后加上结束标识 * 【试题解析】 本题要求删除字符串中指定下标的字符,即把非指定下标的字符保留,所以 if语句条件表达式的内容是 if(i!=n)。字符串最后不要忘记加上字符串结束标识 0。

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

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

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