欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

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

    • 资源ID:1325615       资源大小:34.50KB        全文页数:7页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级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是一个数组地址而不是一个指针的地址。


    注意事项

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开