ImageVerifierCode 换一换
格式:DOC , 页数:7 ,大小:34.50KB ,
资源ID:1325615      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1325615.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】二级C语言机试-100及答案解析.doc)为本站会员(towelfact221)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

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

1、二级 C 语言机试-100 及答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.从键盘输入一组小写字母,保存在字符数组 str 中。请补充函数 fun(),该函数的功能是:把字符数组str 中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入“acegikm”,输出“aCeGiKm”。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。试题程序:#include stdio.h#define N 80void fun (char s)in

2、t i=0;while ( 【1】 )if (i%2!=0)si-= 【2】 ;【3】 ;main ()char str N;clrscr ();printf(“/n Input a string:/n“);gets (str);printf(“/n* original string */n“);puts (str);fun (str);printf (“In* new string */n“);puts (str);(分数:30.00)填空项 1:_二、改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:对 N 名学生的学习成绩,按从高到低的顺序找出前叫 m1

3、0)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构试题程序:#include conio.h#include string.h#include stdio.h#include alloc.h#define N 10typedef struct sschar num10;int s;STU;STU *funSTU a, int m)STU bN ,*t;int i, j,k;/*found*/*t=calloc (m, slzeof (STU

4、);for(i=0;iN;i+) bi=ai;for(k=0; km; k+)for (i=j=0;iN;i+)if (bi.sbj.s) j=i;/*found*/tk.num=b j.num;tk.s=bj s;bj.s=0;return t;outresult(STU a,FILE *pf)int i;for (i=0; iN; i+)fprintf(pf, “No=%s Mark-%d/n “,a i .num, ai.s);fprintf(pf, “/n/n “);main ( )STU aN= “A01 “,81, “A02 “,89,“A03 “,66, “A04 “,87, “

5、A05 “,77,“A06 “,90, “A07 “,79, “A08 “,61,“A09 “,80, “Al0 “,71;STU *pOrder;int i, m;clrscr ();printf (“*THE RESULT* /n“);outresult (a, stdout);printf (“/nGive the number of the studentswho have better score: “);scanf (“%d“, while (m10)printf(“lnGive the number of thestudents who have better score: “)

6、;scanf (“%d“, %m);pOrder=fun (a,m);printf(“* THE RESULT*kn“);printf(“The top :/n“);for (i=0; im; i+)printf(“%s %d/n“,pOrderi.num,p0rder i. s);free (pOrder);(分数:30.00)填空项 1:_三、编程题(总题数:1,分数:40.00)3.编写一个函数,从传入的 num 个字符中找出最长的一个字符串,并通过形参指针 max 传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下请勿改动主函数 main 和其他函数中的任何内容,仅在函数

7、 fun 的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.h#includestring.hfun(char (*a) 81, int num, char *max)main ()char ssl0 81,*ps;int n, i=0;clrscr();prlntf(“输入若干个字符串“);gets(ssi);puts(ssi);while(!strcmp(ssi, “*“)=0)/*用*作为结束输入的标志*/i+;gets(ssi);puts(ssi);n=i;ps=fun(ss,n,print(“/nmax=%s/n“,ps);(分数:4

8、0.00)_二级 C 语言机试-100 答案解析(总分:100.00,做题时间:90 分钟)一、填空题(总题数:1,分数:30.00)1.从键盘输入一组小写字母,保存在字符数组 str 中。请补充函数 fun(),该函数的功能是:把字符数组str 中字符下标为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。例如,输入“acegikm”,输出“aCeGiKm”。注意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun()的横线上填入所编写的若干表达式或语句。试题程序:#include stdio.h#define N 80void fun (char

9、 s)int i=0;while ( 【1】 )if (i%2!=0)si-= 【2】 ;【3】 ;main ()char str N;clrscr ();printf(“/n Input a string:/n“);gets (str);printf(“/n* original string */n“);puts (str);fun (str);printf (“In* new string */n“);puts (str);(分数:30.00)填空项 1:_ (正确答案:1 si!= /0或 si 2 32 或a-A 3 i+)解析:解析 填空 1:while 循环的条件是当前参加判断的字

10、符不为/0,即还没有到字符串的最后一个字符。填空 2:将小写字母转换为对应的大写字母的力法是,将字母的 ASCII 码减去 32。a-A的结果就是 32。填空 3:通过 i+依次访问字符串 s 中的各个字符。二、改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 fun()的功能是:对 N 名学生的学习成绩,按从高到低的顺序找出前叫 m10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。请改正程序中的错误,使它能得出正确的结果。注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构试题程序:#include conio.h

11、#include string.h#include stdio.h#include alloc.h#define N 10typedef struct sschar num10;int s;STU;STU *funSTU a, int m)STU bN ,*t;int i, j,k;/*found*/*t=calloc (m, slzeof (STU);for(i=0;iN;i+) bi=ai;for(k=0; km; k+)for (i=j=0;iN;i+)if (bi.sbj.s) j=i;/*found*/tk.num=b j.num;tk.s=bj s;bj.s=0;return t;

12、outresult(STU a,FILE *pf)int i;for (i=0; iN; i+)fprintf(pf, “No=%s Mark-%d/n “,a i .num, ai.s);fprintf(pf, “/n/n “);main ( )STU aN= “A01 “,81, “A02 “,89,“A03 “,66, “A04 “,87, “A05 “,77,“A06 “,90, “A07 “,79, “A08 “,61,“A09 “,80, “Al0 “,71;STU *pOrder;int i, m;clrscr ();printf (“*THE RESULT* /n“);outr

13、esult (a, stdout);printf (“/nGive the number of the studentswho have better score: “);scanf (“%d“, while (m10)printf(“lnGive the number of thestudents who have better score: “);scanf (“%d“, %m);pOrder=fun (a,m);printf(“* THE RESULT*kn“);printf(“The top :/n“);for (i=0; im; i+)printf(“%s %d/n“,pOrderi

14、.num,p0rder i. s);free (pOrder);(分数:30.00)填空项 1:_ (正确答案:错误: *t=calloc(m,sizcof(STU); 正确: t=calloc(m,sizeof(STU); (2) 错误: tk.num=bj.num; 正确: tk=bj;)解析:解析 calloc 也用于分配内存空间。调用形式:(类型说明符*)calloc(n,size),功能:在内存动态存储区中分配 n 块长度为“size”字节的连续区域。函数的返回值为该区域的首地址。(类型说明符*)用于强制类型转换。calloc 函数与 malloc 函数的区别仅在于一次可以分配 n

15、块区域。例如: ps=(struet stu*)calloc(2,sizeof(struct stu);,其中的 sizeof(struct stu)是求 stu 的结构长度。因此该语句的意思是:按 stu 的长度分配两块连续区域,强制转换为 stu 类型,并把其首地址赋予指针变量 ps。在本例中我们可别考虑那么复杂厂,根据定义类型 STUbN,*t;就可以看出*t=calloc(m,sizeof(STU);中的错误,tk.num=bj.num;的错误旨在考查对结构体概念的掌握和灵活应用程度。三、编程题(总题数:1,分数:40.00)3.编写一个函数,从传入的 num 个字符中找出最长的一个字

16、符串,并通过形参指针 max 传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。试题程序:#includeconio.h#includestdio.h#includestring.hfun(char (*a) 81, int num, char *max)main ()char ssl0 81,*ps;int n, i=0;clrscr();prlntf(“输入若干个字符串“);gets(ssi);puts(ssi);while(!strcmp(ssi, “*“)=0)/*用*作为

17、结束输入的标志*/i+;gets(ssi);puts(ssi);n=i;ps=fun(ss,n,print(“/nmax=%s/n“,ps);(分数:40.00)_正确答案:(fun(char (*a)81, int num, char *max)int i=0;max=a0;for (i=0; inum; i+) /*找出最长的一个字符串*/if(strlen(max)strlen(ai)max=ai;return max; /*传回最长字符串地址*/)解析:解析 做本题之前,我们先应该明白 ss 是一个指向一维数组的指针变量,max 是指向指针变量的指针变量。所以引用时要注意加上*。我们不可能只用 max,因为 ss0是一个数组地址而不是一个指针的地址。

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