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

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

1、国家二级 C语言机试(操作题)模拟试卷 186及答案与解析 一、程序填空题 1 给定程序的功能是:从键盘输入若干行文本 (每行不超过 80个字符 ),写到文件myfile4 txt中,用一 1作为字符串输入结束的标志。然后将文件的内容读出显示在屏幕上。文件的读写分别由自定义函数 ReadText和 WriteText实现。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK 1 C中。 不得增行或删行,也不得更改程序的结构 ! #include =#include #include void WriteText(FILE*);

2、void ReadText(FILE*); main() FTLE*fp; if(fp=fopen(“myfile4 txt“, “w“) =NULL) printf(“open fail ! n“); exit(0); ) WriteText(fp); fclose(fP); if(fp=fopen(“myfile4 txt“, “r“)=NULL) printf(“open fail ! n“); exit(0); Readq?ext(fp); fclose(fP); *found* void WriteText(FILE_1_) char str8 1; printf(“ nEnter

3、string with 一 1 to end: n“); gets(str); while(stromp(str, “一 1“)!=0) *found* fputs(_2_, fw); fputs(“ n“, fw); get; s(str); void ReadText(FILE *fr) char str81; printf(“ nRead file and output to screen : n“); fgets(str, 81, fr); while(!feof(fr) *found* printf(“ s“, _3_); fgets(str, 81, fr); 二、程序修改题 2

4、给定程序 MODI1 C中函数 fun的功能是:用冒泡法对 6个字符串按由小到大的顺序进行排序。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! #include #include #define NAXLINE 20 fun(char*pstr6) int i, j; char*p; for(i=0 ; i0) p=*(pstr+i); *found* *(pstr+i) past +j; *(pstr+j) ; main() int i ; char*pstr6, str6NAXLINE; for(i=0 ; i6; i+

5、)pstri= stri ; printf(“ nEnter 6 string(1 string at each lihe): n“); for(i=0; i6 ; i+)scanf (“ s“, pstri); fun(pstr); printf(“The strings after sorting: n“); for(i=0; i6; i+)printf (“ s n“, pstri); 三、程序设计题 3 编写函数 fun,它的功能是计算下列级数和,和值由函数值返回。例如,当 n=10, x=0 3时,函数值为 1 349859。 注意:部分源程序在文件 PROGI C文件中。 请勿改动

6、主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include#includedouble fun(double x, int n)main() void NONO (); printf(“ f n“, fun(0 3, 10); NONO(); void NONO() *本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 * FILE*fp, *wf; int i, n; doub2e s, x; fp=fopen(“in dat“,“r“); wf=fopen(“out dat“, “w“); for(i=0; i 国家二级 C语言机试

7、(操作 题)模拟试卷 186答案与解析 一、程序填空题 1 【正确答案】 (1)*fw (2)str (3)str 【试题解析】 第一空:此处是补充函数参数名,参数类型已知是: FILE文件指针, fputs(“ n“, fw)是将字符 “ n”写入文件,可知 fw是文件指针名,因此第一空处应该是 void WriteText(FILE*fw)。 第二空: while(strcmp(str,“-1“)!=0)循环的结束标志是 str字符串等于 “-1”时循环退出,如果 str不等于 “-1”,执行循环体内容: 用 fputs函数将 str字符串写入文件。 fputs函数的调用形式是: fput

8、s(s, fp),其中 s是指向字符串的指针或字符串数组名, fp是指向将要被写入的文件的文件指针,因此第二处应该是f1)uts(str,fw)。 第三空: while(!fboil(fr)循环的作用是不断读取文件直到到达文件尾,每次最多读 81个,将读到的数据放在 str字符串里,并用 printf输出到屏幕,因此第三处应该是 printf(“ s“, str)。 二、程序修改题 2 【正确答案】 (1)for(j=i+1; j6; j+) (2)*(pstr+i)=*(pstr+j); 【试题解析】 (1)C语言中, for语句形式是: for(表达式 1;表达式 2;表达式 3)循环体语

9、句。 因此第一个标识下, for使用错误,应该为 “for(j=i+1; j6; j+)”。 (2)if语句后的复合语句的功能是把 “*(pstr+i)”中和 “*(pstr+j)”中的地址进行交换,而 “*(pstr+i)=pstr+j; ”中 “pstr+j; ”并不是字符串的地址,所以第二个标识下“*(pstr+i)=pstr+j; ”改 为 “*(pstr+i)=*(pstr+j); ”。 三、程序设计题 3 【正确答案】 double s= 1 0, y=x ; int i ; long k=1; for(i=1 ; i=n ; i+) k=k*i; s +=y k ; y*=x ; return s ; 【试题解析】 (1)根据题干中给出的数列,推出每一项分子是在前一项的基础上乘以 x,分母是每一项的阶乘,它可以在前一项的基础上乘以当前项的项数,即第n项是 n。 (2)在循环中求得每一项,然后对其进行累加求和。

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

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

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