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

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

1、国家二级 C语言机试(操作题)模拟试卷 385及答案与解析 一、程序填空题 1 函数 fun的功能是:将形参 a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参 n中存放数组中数据的个数,若 n为奇数,则中间的元素不动。 例如:若 a所指数组中的数据依次为: 1、 2、 3、 4、 5、 6、 7、 8、 9,则调换后为: 6、 7、 8、 9、 5、 1、 2、 3、 4。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANK1 C中。不得增行或删行, 也不得更改程序的结构 ! 1 #include stdio h

2、2 #define N 9 3 void fun(int a, int n) 4 int i, t, p; 5 *found* 6 p=(n 2=0)?n 2: n 2+_1_; 7 for(i=0; i n 2; i+) 8 9 t=ai; 10 *found* 11 ai=ap+_2_; 12 *found* 13 _3_=t; 14 15 16 main() 17 int bN=1, 2, 3, 4, 5, 6, 7, 8, 9, i; 18 printf( nThe original data: n); 19 for (i=0; i N; i+) printf( 4d, bi); 20

3、 printf( n); 21 fun(b, N); 22 printf( nThe data after moving: n); 23 for (i=0; i N; i+)printf( 4d, bi); 24 printf( n); 25 二、程序修改题 2 给定程序 MODI1 C中函数 fun的功能是:根据整型形参 m,计算如下公式的值。 例如,若 m=2000,则应输出:0 000160。 请改正程序中的语法错误,使它能计算出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构 !1 #include stdio h 2 *foundv 3 fun(int

4、 m)4 double y=0, d; 5 int i; 6 *found* 7 for(i=100, i =m, i+=100)8 d=(double)i*(double)i; 9 y+=1 0 d; 10 11 return(y); 12 13 main()14 int n=2000; 15 printf( nThe result is 1f n, fun(n); 16 三、程序设计题 3 请编写函数 fun,函数 的功能是:将放在字符串数组中的 M个字符串 (每串的长度不超过 N),按顺序合并组成一个新的字符串。 例如,字符串数组中的 M个字符串为 AAAA BBBBBBB CC 则合并

5、后的字符串的内容应是: AAAABBBBBBBCC。 提示: strcat(a, b)的功能是将字符串 b复制到字符串 a的串尾上,成为一个新串。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 1 #include stdio h 2 #include string h 3 #define M 3 4 #define N 20 5 void fun(char aMN, char *b) 6 7 8 9 main() 10 char wMN=AAAA, BBBBBBB, CC, a100; 11 in

6、t i; void NONO(); 12 printf(The string: n); 13 for(i=0 ; i M; i+)puts(wi); 14 printf( n); 15 fun(w, a); 16 printf(The A string: n); 17 printf( s, a); printf( n n); 18 NONO(); 19 20 void NONO() 21 *请在此函数内打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。 * 22 FILE *rf, *wf ; 23 char wMN, a100; int i; 24 rf=fopen(in dat

7、, r); 25 wf=fopen(out dat, w); 26 for(i=0; i 10; i+) 27 fscanf(rf, s s s, w 0, w1, w 2); 28 fun(w, a); 29 fprintf(wf, s n, a); 30 31 fclose(rf); fclose(wf); 32 国家二级 C语言机试(操作 题)模拟试卷 385答案与解析 一、程序填空题 1 【正确答案】 (1)1 (2)i (3)ap+i 【试题解析】 函数 fun的功能是将形参 a所指数组中的前半部分元素中的值和后半部分元素中的值对换。 第一空: “p=(n 2=0)?n 2: n 2

8、+_1_; ”和 “ai=ap+_2_; ” “n2=0”判断是否是偶数, ai和 ap+_2_交换,如果 n是偶数, a0和 an 2交换,如果 n是奇数,那么 a0和 an 2+1交换,依此类推,故 n为 偶数时 ai和ai+n 2交换, n为奇数时 ai和 ai+n 2+1交换。因此如果 n是奇数的话, p应该等于 n 2+1,故第一空处应为 “1”。 第二空:由上分析可知, ai和 ai+p交换,故第二空应为 “i”。 第三空: “t=ai; ai=ap+i; ”,故第三处应该是把 ai赋值给 ap+i, ai保存在 t中,故第三空应为 “ap+i”。 二、程序修改题 2 【正确答案】

9、 (1)double fun(int m) (2)for(i=100; i =m; i+=100) 【试题解析】 函数为累计相加,计算公式的值。 (1)第一个标识下的 fun函数的定义,根据题干中给出的公式中的分数部分,可知应该具有 double类型返回值。所以应将 “fun(int m)”改为 “double fun(int m)”。 (2)第二个标识下的 for循环过程是实现对公式的求解, C语句中 for循环中的多个循环条件表达式是以分号为分隔符,所以第二个标识下 “for(i=100,i=m,i+=100)” 改为 “for(i=100; i =m; i+=100)”。 三、程序设计题

10、 3 【正确答案】 1 int i, j, k=0; 2 for(i=0 ; i M ; i+) 3 for(j=0 ; j N; j+) 4 i f(*(*(a+i)+j) 5 如果不指向行的尾 6 bk=*(*(a+i)+j); 7 将行中的值赋值给数组 b 8 k+; 数组下标加 1 9 else如果指向尾,则跳出这一行 10 break; 11 bk= 0; 数组加尾符 【试题解析 】 (1)二维字符数组第 i行 j列元素 aij,就是指针形式的“*(*(a+i)+j)”。因此,如果字符 “*(*(a+i)+j)”是串的结束符,则说明该字符串已经结束。 (2)当一维字符数组存放完字符串中各字符后,必须在一维字符数组的尾字符处加一个结束符 “ 0”,才能把字符数组变成字符串。否则,字符数组就只能是非字符串的一般字符数组。

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

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

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