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

    【计算机类职业资格】国家二级C语言程序设计机试(程序设计题)模拟试卷2及答案解析.doc

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

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

    【计算机类职业资格】国家二级C语言程序设计机试(程序设计题)模拟试卷2及答案解析.doc

    1、国家二级 C语言程序设计机试(程序设计题)模拟试卷 2及答案解析(总分:8.00,做题时间:90 分钟)一、程序设计题(总题数:4,分数:8.00)1.请编函数 fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用 strlen函数求字符串的长度。例如,在键盘输入字符串 2345210,函数返回长整型数 2345210。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数 fun指定的部位填入所编写的若干语句。 试题程序:#ineludestdioh#includestringhvoid NONO();long fun(char*s)main()char 810;l

    2、ong r;printf(“请输入一个长度不超过 9个字符的数字字符串:”);gets(s);r=fun(s);prinff(“r=ldn”,r);NONO();void NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*FILE*fp,*wf;int i;long r;char s10,*P;fp=fopen(“indat”,”r”);wf=fopen(“outdat”,“W”);for(i=0;i10;i+) fgets(s,10,fp); P=strchr(s,n); if(P)*P=0; r=fun(s); fprinff(wf,“Idn”,r);fclose

    3、(fp);felose(wf);(分数:2.00)_2.假定输入的字符串中只包含字母和*号。请编写函数 fun,其功能是:除了尾部的*号之外,将字符中的其他*号全部删除。形参 P已指向字符串中最后的一个字母。在编写函数时,不得使用 C语言提供的字符串函数。 例如,字符串中的内容为*A*BC*DEF*G*,删除后,字符串中的内容应当是ABCDEFG* 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#ncludestdiohvoid fun(char*a,char*P)main() char S81,*t; void NONO()

    4、; printf(“Enter a string:n”); gets(S); t=S; while(*t)t+; t 一一; while(*t=*)t一一; fun(s,t); prinff(“The string after deleted:n”); puts(s); NONO();void NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。* FILE*in,* out; int i;char S81,*t; in=fopen(“indat”,“r”); out=fopen(“outdat”,“w”); for(i=0;i10;i+) fscanf(in,“s”,S

    5、); t=s: while(* t)t+; t 一一: while(*t=*)t 一一; fun(s,t); fprinLf(out,“sn”,s); fclose(in); felose(out);(分数:2.00)_3.编写函数 void fun(char*tt,int PP),统计在 tt所指的字符串中a到z26 个小写字母各自出现的次数,并依次放在 pp所指的数组中。 例如,当输入字符串“abcdefgabcdeabc”后,程序的输出结果应该是: 3 3 3 2 2 11 0000000000000000000 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花

    6、括号中填入你编写的若干语句。 试题程序:#ineludestdioh#includestringhvoid fun(char*tt,int PP)main()char aa1000;int bb26,k;void NONO();prinff(“nPlease enter a char string:”);8c 肌 f(“s”,aa);fun(aa,bb);for(k=0;k26;k+) prinff(“d”,bbk);prinff(“n”);NONO();void NONO()*本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。* char aa1000; int bb2

    7、6,k,i; FILE*rf,*wf; rf=fopen(“indat”,“r”); wf=fopen(“outdat”。“W”); flor(i=0;i10;i+) fscanf(rf,“s”,aa); fun(aa,bb);for(k=0;k26;k+) fprinff(wf,“d”,bbk); fprinff(wf,“n”); felose(rf); fclose(wf);(分数:2.00)_4.下列程序定义了 NN的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),该函数的功能是:将数组左下半三角元素中的值全部置 0。例如 a数组中的值为: 1 9 7 2 3 8 4

    8、 5 6 则返回主程序后 a数组中的值应为: 0 9 7 0 0 8 0 0 0 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includeconioh#includestdioh#includestdlib.hdefine N 5void fun(int aN)void main()FILE*wf; int aNN,i,j; int bNN=t 1,9,7,2,4,2,3,8,1,2,4,5,6,7,5,4,0,6,8,0,2,7,1,6,4; system(“CLS”); prinff(“*The array*n”); f

    9、or(i=0;iN;i+)*产生一个随机的 5*5矩阵* for(j=0;jN;j+) aij=rand()10; printf(“4d”,aij); prinff(“n”); fun(a); printf(“THE RESULTn”); for(i=0;iN;i+) for(j=0;jN;j+) printf(“4d”,aij); prinff(“n”); *wf=fopen(“outdat”,“w”);fun(b);for(i=0;iN;i+) for(j=0;jN;j+) fprinff(wf,”4d”,bij); fprintf(wf,“n”); felose(wf);*(分数:2.0

    10、0)_国家二级 C语言程序设计机试(程序设计题)模拟试卷 2答案解析(总分:8.00,做题时间:90 分钟)一、程序设计题(总题数:4,分数:8.00)1.请编函数 fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用 strlen函数求字符串的长度。例如,在键盘输入字符串 2345210,函数返回长整型数 2345210。 注意:请勿改动主函数main和其他函数中的任何内容,仅在函数 fun指定的部位填入所编写的若干语句。 试题程序:#ineludestdioh#includestringhvoid NONO();long fun(char*s)main()char 810

    11、;long r;printf(“请输入一个长度不超过 9个字符的数字字符串:”);gets(s);r=fun(s);prinff(“r=ldn”,r);NONO();void NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。*FILE*fp,*wf;int i;long r;char s10,*P;fp=fopen(“indat”,”r”);wf=fopen(“outdat”,“W”);for(i=0;i10;i+) fgets(s,10,fp); P=strchr(s,n); if(P)*P=0; r=fun(s); fprinff(wf,“Idn”,r);fclo

    12、se(fp);felose(wf);(分数:2.00)_正确答案:(正确答案:long fun(char*s) int i,sum=0,len; len=strlen(s); for(i=0;i解析:解析:要把一个数字字符转为相应的数字,只要用它的 ASC码减去 48即可。要把数字字符串转为相应的数字,则要从左到右依次取出字符转为相应数字,乘 10再加上下一位数字。2.假定输入的字符串中只包含字母和*号。请编写函数 fun,其功能是:除了尾部的*号之外,将字符中的其他*号全部删除。形参 P已指向字符串中最后的一个字母。在编写函数时,不得使用 C语言提供的字符串函数。 例如,字符串中的内容为*A

    13、*BC*DEF*G*,删除后,字符串中的内容应当是ABCDEFG* 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#ncludestdiohvoid fun(char*a,char*P)main() char S81,*t; void NONO(); printf(“Enter a string:n”); gets(S); t=S; while(*t)t+; t 一一; while(*t=*)t一一; fun(s,t); prinff(“The string after deleted:n”); puts(s); NONO()

    14、;void NONO()*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。* FILE*in,* out; int i;char S81,*t; in=fopen(“indat”,“r”); out=fopen(“outdat”,“w”); for(i=0;i10;i+) fscanf(in,“s”,S); t=s: while(* t)t+; t 一一: while(*t=*)t 一一; fun(s,t); fprinLf(out,“sn”,s); fclose(in); felose(out);(分数:2.00)_正确答案:(正确答案:void fun(char*a,char*

    15、p) char * t=a; for(;t=p;t+) if(*t!=*) *(a+)=*t; for(;*t!=0;t+) *(a+)=*t; * a=0; *在字符串最后加上字符串结束标识* )解析:解析:本题考查:删除字符串中非尾部*号,删除的主要思想就是把不删除的字符保留起来。本题用两个循环语句来实现。第 1个循环的作用是将指针 p所指字母以前所有非*号的字符保留下来,即删除指针 p以前所有的*号。第 2个循环的作用是将指针 p以后的所有*号保留下来。最后在新串的结尾加上结束符。3.编写函数 void fun(char*tt,int PP),统计在 tt所指的字符串中a到z26 个小写

    16、字母各自出现的次数,并依次放在 pp所指的数组中。 例如,当输入字符串“abcdefgabcdeabc”后,程序的输出结果应该是: 3 3 3 2 2 11 0000000000000000000 注意:请勿改动主函数 main和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。 试题程序:#ineludestdioh#includestringhvoid fun(char*tt,int PP)main()char aa1000;int bb26,k;void NONO();prinff(“nPlease enter a char string:”);8c 肌 f(“s”,

    17、aa);fun(aa,bb);for(k=0;k26;k+) prinff(“d”,bbk);prinff(“n”);NONO();void NONO()*本函数用于打开文件,输入测试数据,调用 fun函数,输出数据,关闭文件。* char aa1000; int bb26,k,i; FILE*rf,*wf; rf=fopen(“indat”,“r”); wf=fopen(“outdat”。“W”); flor(i=0;i10;i+) fscanf(rf,“s”,aa); fun(aa,bb);for(k=0;k26;k+) fprinff(wf,“d”,bbk); fprinff(wf,“n

    18、”); felose(rf); fclose(wf);(分数:2.00)_正确答案:(正确答案:void fun(char*tt,int pp) int i: for(i=0;i26;i+) ppi=0;宰初始化 pp数组各元素为 0* flor(;* tt!=0;tt+) if(*tt=a&*tt=z) pp*tt 一a+; )解析:解析:本题考查:for 循环语句,注意循环变量取值范围以及循环体语句作用;数组元素初始化和赋值操作;if 语句条件表达式,需注意条件表达式的逻辑运算;字符串结束标识0。 要求统计在 tt所指字符串中 az共 26个小写母各自出现的次数,并依次放在 pp所指数组中

    19、。首先使用 for循环语句初始化 pp数组中分别用来统计 26个字母的个数,再使用循环判断语句对 tt所指字符串中的字符进行逐一比较操作,同时存入相对应的 pp数组中。4.下列程序定义了 NN的二维数组,并在主函数中自动赋值。请编写函数 fun(int aN),该函数的功能是:将数组左下半三角元素中的值全部置 0。例如 a数组中的值为: 1 9 7 2 3 8 4 5 6 则返回主程序后 a数组中的值应为: 0 9 7 0 0 8 0 0 0 注意:请勿改动 main函数和其他函数中的任何内容,仅在函数 fun的花括号中填入你编写的若干语句。试题程序:#includeconioh#includ

    20、estdioh#includestdlib.hdefine N 5void fun(int aN)void main()FILE*wf; int aNN,i,j; int bNN=t 1,9,7,2,4,2,3,8,1,2,4,5,6,7,5,4,0,6,8,0,2,7,1,6,4; system(“CLS”); prinff(“*The array*n”); for(i=0;iN;i+)*产生一个随机的 5*5矩阵* for(j=0;jN;j+) aij=rand()10; printf(“4d”,aij); prinff(“n”); fun(a); printf(“THE RESULTn”

    21、); for(i=0;iN;i+) for(j=0;jN;j+) printf(“4d”,aij); prinff(“n”); *wf=fopen(“outdat”,“w”);fun(b);for(i=0;iN;i+) for(j=0;jN;j+) fprinff(wf,”4d”,bij); fprintf(wf,“n”); felose(wf);*(分数:2.00)_正确答案:(正确答案:void fun(int aN) int i,j; for(i=0;iN;i+) for(j=0;j=i;j+) aij=0;*将数组左下半三角元素中的值全部置 0,* )解析:解析:本题考查:for 循环语句,使用嵌套循环语句遍历二维数组的各个元素;二维数组元素的引用。对于 NN二维数组,如何表示其左下半三角元素,可以通过以下语句实现: for(i=0;i=i;j+) 外层循环用来控制矩阵的行下标,内层循环控制矩阵的列下标。注意列下标的取值范围,因为要表示下三角元素,所以 j的范围是 0i。


    注意事项

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




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

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

    收起
    展开