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

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

1、国家二级 C语言机试(操作题)模拟试卷 267及答案与解析 一、程序填空题 1 下列给定程序中,函数 fun的功能是:把形参 a所指数组中的最小值放在元素a0中,接着把 a所指数组中的最大值放在 a1元素中;再把 a所指数组元素中的次小值放在 a2中,把 a所指数组元素中的次大值放在 a3,依此类推。 例如,若 a所指数组中的数据最初排列为: 9, 1, 4, 2, 3, 6, 5, 8, 7;则按规则移动后,数据排列为: 1, 9, 2, 8, 3, 7, 4, 6, 5。形参 n中存放 a所指数组中数据的个数。 规定 fun函数中的 max存放当 前所找的最大值, px存放当前所找最大值的

2、下标。 请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #define N 9 void fun(int a, int n) int i, j, max, min, px, pn,; for(i=0; i n 1; i+=2) *found* max=min=【 1】 ; px=pn=i; for(j=i+1; j n; j+) *found* if(max 【 2】 ) max=aj; px=j; ) *found* if(min 【 3】 ) min=

3、aj; pn=j; if(pn!=i) t=ai; ai=rain; apn=t; if(px=i)px=pn; if(px!=i+1) t=ai+1, ai+1=max; apx=t; ) void main() ( int bN=9, 1, 4, 2, 3, 6, 5, 8, 7), i; printf(“ nThe original data: n“); for(i=0; i N; i+) printf(“ 4 d“, bi); printf(“ n“); fun(b, N); printf(“ nThe data aftermoving: n“); for(i=0; i N; i+)

4、printf(“ 4 d“, bi); printf(“ n“); 二、程序修改题 2 下列给定程序中函数 fun的功能是:在字符串的最前端加入 n个 *号,形成新串,并且覆盖原串。字符串的长度最长允许为 79。 请改正程序中的错误,使它能得出正确的结果。 注意:部分源程序在文件 NODI1 C中,不要改动 main函数,不得增行或删行,也不得更改程序的结构 ! 试题程序: #include stdio h #include string h void fun(char s, int n) char a80, *p; int i; *found* s=p; for(i=0; i n; i+)a

5、i=*; do ai=*p; i+; *found* while(*P+) ai=0; strcpy(s, a); main() int n; char s80; printf(“ nEnter a string: “); gets(s); printf(“ nThe string “ s “ n“, s); printf(“ nEnter n(number of*): “); scanf(“ d“, n); fun(s, n); printf(“ nThe string after insert: “ s “ n“, s); 三、程序设计题 3 编写 个函数,其功能是:从传入的 num个字符

6、中找出最长的一个字符串,并通过形参指针 max传回该串地址 (用 *作为结束输入的标识 )。 注意:部分源程序在文件 PROG1 C中。 请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序: 1 #include conio h 2 #include stdio h 3 #include string h 4 #include stdlib h 5 char*fun(char(*a)81, int num, char * max) 6 7 8 9 void main() 10 11 FILE*wf; 12 char ss1081, *ps

7、=NULL; 13 char s381=“abcd“, “deg“, “diegns“), *P=NULL; 14 int i=0, n; 15 system(“CLS“); 16 printf(“输入若干个字符串: “); 17 gets(ssi); 18 puts(ssi); 19 while(!strcmp(ssi, “*“)=0) *用 4个星号作为结束输入的标志 * 20 21 i+; 22 gets(SSi); 23 puts(SSi); 24 25 n=i; 26 ps=fun(ss, n, ps); 27 printf(“ nmax= s n“, ps); 28 * 29 wf

8、=fopen(“out dat“, “w“); 30 P=fun(s, 3, p); 31 fprintf(wf, “ s“, P); 32 fclose(wf); 33 * 34 国家二级 C语言机试(操作题)模拟试卷 267答案与解析 一、程序填空题 1 【正确答案】 (1)ai (2)aj (3)aj 【试题解析】 本题考查:数组的引用; if语句条件表达式,如果表达式的值为真,则执行下面的语句,如果该值为假,则不执行下面的语句。 填空 1: for循环语句循环体中将数组元素 ai赋值给变量 max和变量 min。 填空 2:通过一次 for循环,找到数组中的最大值, if语句的条件表达

9、式是 maxaj。 填空 3:同理,此处 if语句的条件表达式是 min aj。 求最大值或者最小值的题目,一般都是先假设一个元素最大或最小,然后通过 if条件语句将该元素和其他元素进行比较操作来完成。 二、程序修改题 2 【正确答案】 (1)p=s; (2)while(*p+); 【试题解析】 (1)指针 p应指向 s,所以应改为 p=s;。 (2)循环等待,当 while循环执行一次,临时变量 p应该指向字符串的下一位置,所以应改为 while(*p+); 。 三、程序设计题 3 【正确答案】 char *fun(char(*a)81, int num, char *max) int i=0; max=a0; for(i=0; i num; i+) *找出最长的一个字符串 * if(strlen(max) strlen(ai) max=ai; return max; *传回最长字符串的地址 * 【试题解析】 首先应该明白 ss是一个指向一维数组的指针变量, max是指向指针的变量,所以引用变量 时要注意加上 *。本程序使用循环语句遍历字符串数组,使用条件语句判断该字符串是否最长。

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

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

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