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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

【计算机类职业资格】国家二级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。

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