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

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

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

2、 9 void fun(int a, int n) int i, t, P; /*found*/ P=(n 2=0)?n 2: n 2+_1_; for(i=0; i #include char *fun(char *s, char *t) char *P,*r, *a; /*found*/ a=Null; while(*s) P=s ; r=t; while(*r) /*found*/ if(r=P) r+; p+; else break; if(*r=0)a=s; s+; return a; main() char s100, t100, *p; printf(“inPlease ente

3、r string S: ”); scanf(“ s”, s); printf(“inPlease enter substring t: ”); scanf(“ s”, t); P=fun(s, t); if(P)printf(“inThe result is: sn”, P); else printf(“inNot found!n”); 三、程序设计题 3 请编写函数 fun,它的功能是:求出 SS所指字符串中指定字符的个数,并返回此值。 例如,若输入字符串: 123412132,输入字符为: 1,则输出: 3。 注意:部分源程序在文件 PROGl C中。 请勿改动主函数 main和其他函数中

4、的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 #include #include #define M 81 int fun(char *ss, char c) main() char aM, ch; void NONO(); printf(“ nplease enter a string: ”); gets(a); printf(“ nPlease enter a char: ”); ch=getchar(); printf(“ nThe number of the char is: d n”, fun(a, ch); NONO(); void NONO() *本函数用于打开文

5、件,输入测试数据,调用 fun函数,输出数据,关闭文件。* int i; FILE *rf, *wf; char aM, bM, ch; rf=fopen(“in dat”, “r”); wf=fopen(“out dat”, “w”); for(i=0; i10 ; i+) fscanf(rf, “ s”, a); fscanf(rf, “ s”, b); ch=*b; fprintf(wf, “ c= d n”, ch, fun(a, ch); fclose(rf); fclose(wf); 国家二级 C语言机试(操作题)模拟试卷 46答案与解析 一、程序填空题 1 【正确答案】 (1)1

6、 (2)i (3)ap+i 【试题解析】 函数 fun的功能是将形参 a所指数组中的前半部分元素中的值和后半部分元素中的值对换。 第一空: “p=(n 2=0)?n 2: n 2+_1_; ” 和 “ai=ap+_2_; ” “n 2=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交换,故第二空应为

7、 “i”。 第三空: “t=ai; ai=ap+i; ”,故第三处应该是把 ai赋值给 ap+i, ai保存在 t中,故第三空应为 “ap+i。 二、程序修改题 2 【正确答案】 (1)a=NuLL; (2)if(*r=*p) 【试题解析】 函数功能是求得字符串中某子串最后一次出现的地址。 (1)第一个标识下面:语句 “a=Null: ”中的 Null未定义。 NULL代表空值,但程序中写成了 Null。所以,改成 “a=NULL: ”。 (2)程序的主体是二重循环,其中外循环使指针 s逐个指向字符串的字符,直到遇到串结束符退出循环 ,内循环检查指针 p与 r所指字符串是否匹配。因为这里p、 r是指针,如果使用判断表达式 “if(r=p)”,那么比较的是地址,而题目要求比较它们所指的字符。所以,改为: “if(*r=*p)”。 三、程序设计题 3 【正确答案】 int cnt=0; char *p=ss; while(*p) if(*p=c)cnt+; p+; return cnt; 【试题解析】 该程序功能是统计字符串中指定字符的个数。解题思路是在循环过程中,对字符进行判断,如果符合题干要求,对其个数进行统计 。

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

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

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