【计算机类职业资格】二级C语言机试-169及答案解析.doc

上传人:fuellot230 文档编号:1325673 上传时间:2019-10-17 格式:DOC 页数:6 大小:31.50KB
下载 相关 举报
【计算机类职业资格】二级C语言机试-169及答案解析.doc_第1页
第1页 / 共6页
【计算机类职业资格】二级C语言机试-169及答案解析.doc_第2页
第2页 / 共6页
【计算机类职业资格】二级C语言机试-169及答案解析.doc_第3页
第3页 / 共6页
【计算机类职业资格】二级C语言机试-169及答案解析.doc_第4页
第4页 / 共6页
【计算机类职业资格】二级C语言机试-169及答案解析.doc_第5页
第5页 / 共6页
点击查看更多>>
资源描述

1、二级 C 语言机试-169 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:输出方程组“A+B=56,A+2B=72”的一组正整数解。本题的结果是:A=40,B=16。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。试题程序:#includestdio. hmain()int i, j;clrscr ();for(i=0;i100; i+)for (j=0; j100; j+)if( 【1】 )printf (“A=%

2、2d,B=%2d“, 【2】 );(分数:30.00)填空项 1:_二、改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:用冒泡法对 6 个字符串按由小到大的顺序进行排序。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构试题程序:#include conio.h#include stdio.h#define MAXLINE 20/*found*/fun(char *pstr6)int i, j;char *p;for(i=0;i5;i+)for(j=i+l;j6;j+)/*found*/if(str

3、cmp(*(pstr+i),pstr+j)0)p=*(pstr+i);/*found*/* (pstr+i) -pstr+j;* (pstr+j)=p;main ( )int i;char *pstr6,str6MAXLINE;clrscr();for(i=0;i6;i+) pstri=stri;printf(“/nEnter 6 string(1 string at eachline):/n “);for(i=0;i6;i+) scanf(“%s“,pstri);fun(pstr);printf(“The strings after sorting:/n “);for(i=0;i6;i+)

4、printf(“%s/n “,pstri);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)3.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun(),该函数的功能是;找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includestdio.h#includestring.h#includeconio.h#define N 10typed

5、ef struct ss /*定义结构体*/char num10;int s;STU;fun(STU a, STU *s)main ( )STU aN= “A01“,81, “A02“,89,“A03“,66, “A04“,87, “A05“,77,“A06“,90, “A07“,79, “A08“,61,“A09“,80, “A10“,71,m;int i;clrscr ();printf(“*The original data*“);for (i=0; iN; i+)printf(“No=%s Mark=%d/n“, ai.hum,ai.s);fun (a, printf (“*THE R

6、ESULT*/n“);printf(“The top :%s, %d/n“,m.num, m.s);(分数:40.00)_二级 C 语言机试-169 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.请补充 main 函数,该函数的功能是:输出方程组“A+B=56,A+2B=72”的一组正整数解。本题的结果是:A=40,B=16。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在 main 函数的横线上填入所编写的若干表达式或语句。试题程序:#includestdio. hmain()int i, j;clrscr

7、();for(i=0;i100; i+)for (j=0; j100; j+)if( 【1】 )printf (“A=%2d,B=%2d“, 【2】 );(分数:30.00)填空项 1:_ (正确答案:1 i+j=56char *p;for(i=0;i5;i+)for(j=i+l;j6;j+)/*found*/if(strcmp(*(pstr+i),pstr+j)0)p=*(pstr+i);/*found*/* (pstr+i) -pstr+j;* (pstr+j)=p;main ( )int i;char *pstr6,str6MAXLINE;clrscr();for(i=0;i6;i+)

8、pstri=stri;printf(“/nEnter 6 string(1 string at eachline):/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);(分数:30.00)填空项 1:_ (正确答案:错误: fun(char *pstr6) 正确: void fun(char *pstr6)(2) 错误: if(strcmp(*(pstr+i),pstr+j)0 正确: if(st

9、rcmp(*(pstr+i),*(pstr+j)0(3) 错误: *(pstr+i)=pstr+j; 正确: *(pstr+i)=*(pstr+j);)解析:解析 冒泡法对字符串排序的方法是将相邻两个字符比较,将小的调到前面。令 x 等于字符串的第 i 位字符,若该字符的前一位字符大于 x,则将该字符与 x 互换位置。从字符山中的第 2 位字符到字符串的最后一们字符重复以上过秆,即可完成排序。可用循环语句实现。三、编程题(总题数:1,分数:40.00)3.已知学生的记录由学号和学习成绩构成,N 名学生的数据已存入 a 结构体数组中。请编写函数 fun(),该函数的功能是;找出成绩最高的学生记录

10、,通过形参返回主函数(规定只有一个最高分)。已给函数的首部,请完成该函数。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includestdio.h#includestring.h#includeconio.h#define N 10typedef struct ss /*定义结构体*/char num10;int s;STU;fun(STU a, STU *s)main ( )STU aN= “A01“,81, “A02“,89,“A03“,66, “A04“,87, “A05“,77,“A06“,9

11、0, “A07“,79, “A08“,61,“A09“,80, “A10“,71,m;int i;clrscr ();printf(“*The original data*“);for (i=0; iN; i+)printf(“No=%s Mark=%d/n“, ai.hum,ai.s);fun (a, printf (“*THE RESULT*/n“);printf(“The top :%s, %d/n“,m.num, m.s);(分数:40.00)_正确答案:(fun(STU a, STU *s)int i;*s=a0;for (i=0; iN; i+) /*找出成绩最高的学生记录*/if (s-sa i.s)*s=a i;)解析:解析 本题的流程是这样的,先使 s 指向第 1 个学生,我们的题干目的是找出分数最高的学生,所以 if 语句的条件是 s-sai.s。此外,在做本题时,我们应该熟练掌握“指向运算符”和“成员运算符”的相关知识。题中“s-s”也可换成“(*s).s”。

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

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

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