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

上传人:explodesoak291 文档编号:503005 上传时间:2018-11-29 格式:DOC 页数:5 大小:34.50KB
下载 相关 举报
[计算机类试卷]国家二级(C语言)机试模拟试卷256及答案与解析.doc_第1页
第1页 / 共5页
[计算机类试卷]国家二级(C语言)机试模拟试卷256及答案与解析.doc_第2页
第2页 / 共5页
[计算机类试卷]国家二级(C语言)机试模拟试卷256及答案与解析.doc_第3页
第3页 / 共5页
[计算机类试卷]国家二级(C语言)机试模拟试卷256及答案与解析.doc_第4页
第4页 / 共5页
[计算机类试卷]国家二级(C语言)机试模拟试卷256及答案与解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、国家二级( C语言)机试模拟试卷 256及答案与解析 一、程序填空题( 30分) 1 函数 fun的功能是:计算 直到 。若 x=2 5,函数值为: 1 917915。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的RLANKI C中。 不得增行或删行,也不得更改程序的结构 !#include#includedouble fun(double x)double f, t; int n; f=1 0+x;*found* t= 【 1】 ; n=1; do n+;*found* t*=(一 1 0)*x【 2】; f+=t; *found*

2、 while( 【 3】 =le-6); return f; main()double x, y; x=2 5; y=fun(x); printf(“ nThe result is: n“); printf(“x= -12 6f y= -12 6f n“, x, y); 二、程序修改题( 30分) 2 给定程序 MODll C中函数 fun的功能是:在 p所指字符串中找出 ASC 码值最大的字符,将其放在第一个位置上;并将该字符前的原字符向后顺序移动。 例如,调用 fun函数之前给字符串输入: ABCDeFGH,调用后字符串中的内容为: eABCDFGH。 请改正程序中的错误,使它能得出正确结

3、果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构。 #include void fun(char *p) char max,*q; int i=0; max=pi; while(pi!=0) if(maxp) *q=*(q-1); q-; p0=max; main() char str80; printf(“Enter a string: “); gets(str); printf(“nThe original string: “); puts(str); fun(str); printf(“nThe string after moving: “); puts(str)

4、; printf(“nn“); 三、程序设计题( 40分) 3 假定输人的字符串中只包含字母和 *号。请编写函数 proc(),它的功能是:除了尾部的 *号之外,将字符串中其他 *号全部删除。形参 p已指向字符串中最后一个字母。在编写函数时,不得使用 C语言的字符串函数。 例如,若字符串中的内容为 *a*bc*def*g*,删除后,字符串中的内容应当是 abcdefg*。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试 题程序: #include #include void proc(char*str,

5、char*p) void main() char str81, *t; printf(”Enter a string: n”); gets(str); t: =str 0 while(*t) t+; t; 指针 t指向字符串尾部 while(*t一 =*) t;指针 t指向最后一个字母 proc(str, t); printf(”The string after deleted: n”); puts(str); 国家二级( C语言)机试模拟试卷 256答案与解析 一、程序填空题( 30分) 1 【正确答案】 (1)x (2)n (3)fabs(t) 【试题解析】 第一空: “f=1 0+x;

6、“f的初始化为级数的前两项之和, do while循环从第三项 x2 2开始计算,第一空处是给 t赋初值, t表示级数项, “n+; t*=(-1 0)*x 【 2】 ; “即第一次进入 do循环之后 n的值为 2,故 t的初值应该为 x,第一空处应为 “x“。 第二空:由审题分析可知,后一项乘以 (-1)*x除以 n,故第二空处应为 “n“。 第三空:循环的终止条件是 (xn n!)的绝对值小于 le-6,即只要 (xn n!)大于等于 le-6, do循环就执行,故第三处应为 “labs(t)“, fabs函数的功能是求绝对值。 二、程序修改题( 30分) 2 【正确答案】 q=p+I;

7、while(qp) 【试题解析】 ( 1)在 C语言中语句以分号 “;”结束,在第一个标识下语句“q=p+i”没有用分号结尾,应 改为 “q=p+I;”。 ( 2)根据题意第二标识下是利用循环来将移走的字符前的原字符向后顺序移动,第二标识下 “wihle(qp)”wihle不是 C语言关键字,应改成 “while(qp)”,利用while循环来实现字符移动。 三、程序设计题( 40分) 3 【正确答案】 void proc(char * str, char * p) char *t=str; for(; t=p; t+) if(*t!=*) 把前面不是 *号的字符放到 a数组,通过 t的移动 来实现 *(str+)=*t; for(; *t!=0; t+) *(str+)=*t; 把尾部的 *号接到其后面,当 *t为 0,时结束 *str=0; 题目要求 a数组中存放字符,因此用 0作为结束标志 【试题解析】 题目中要求除了尾部的 *号之外,将字符串中其他 *号全部删除。首先将所有不是 *的字符放在字符串 str中,然后将尾部的 *接在字符的后面,最后为字符串 str加上结束符。

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

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

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