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

上传人:livefirmly316 文档编号:1325198 上传时间:2019-10-17 格式:DOC 页数:5 大小:30.50KB
下载 相关 举报
【计算机类职业资格】二级C语言-316及答案解析.doc_第1页
第1页 / 共5页
【计算机类职业资格】二级C语言-316及答案解析.doc_第2页
第2页 / 共5页
【计算机类职业资格】二级C语言-316及答案解析.doc_第3页
第3页 / 共5页
【计算机类职业资格】二级C语言-316及答案解析.doc_第4页
第4页 / 共5页
【计算机类职业资格】二级C语言-316及答案解析.doc_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

1、二级 C 语言-316 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h void fun(char*s,int a,double f) /*found*/ 1fp; char ch; fp=fopen(“file1.txt“,“w“); fprin

2、tf(fp,“%s %d %f/n“,s,a,f); felose(fp); fp=fopen(“file1.txt“,“r“); printf(“/nThe result:/n/n“); ch=fgetc(fp); /*found*/ while(!feof( 2) /*found*/ putchar( 3);ch=fgetc(fp); putchar(“/n“); fclose(fp); main() char a10=“Hello!“;int b=12345; double c=98.76; fun(a,b,c); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.给

3、定程序中函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数 fun 中指定部位的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h void fun(char*s) int i,j; for(i=0,j=0;si!=“/0“;i+) if(si=“0“ /*found*/ sj=“/0“; main() char item80; printf(“/nEnter a string:“);gets(item); printf(“/n/nThe string

4、 is:“%s“/n“,item); fun(item); printf(“/n/nThe string of changing is:“%s“/n“,item); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是:将 M 行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSHWSH。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 给定源程序: #inclu

5、destdio.h #define M 3 #define N 4 void fun(char sN,char*b) int i,j,n=0; for(i=0;iN;i+)/*请填写相应语句完成其功能*/ bn=“/0“; main() char a100,wMN=“W“,“W“,“W“,“W“,“S“,“S“,“S“,“S“,“H“,“H“,“H“,“H“; int i,j; printf(“The matrix:/n“); for(i=0;iM;i+) for(j=0;jN;j+)printf(“%3c“,wij); printf(“/n“); fun(w,a); printf(“The

6、A string:/n“);puts(a); printf(“/n/n“); (分数:40.00)_二级 C 语言-316 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是将形参给定的字符串、整数、浮点数写到文本文件中,再用字符方式从此文本文件中逐个读入并显示在终端屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h void fun(char*s,int a,double f) /*found

7、*/ 1fp; char ch; fp=fopen(“file1.txt“,“w“); fprintf(fp,“%s %d %f/n“,s,a,f); felose(fp); fp=fopen(“file1.txt“,“r“); printf(“/nThe result:/n/n“); ch=fgetc(fp); /*found*/ while(!feof( 2) /*found*/ putchar( 3);ch=fgetc(fp); putchar(“/n“); fclose(fp); main() char a10=“Hello!“;int b=12345; double c=98.76;

8、 fun(a,b,c); (分数:30.00)解析:(1)FILE* (2)fp (3)ch 解析 填空 1:由语句 fopen(“file1.txt“,“r“)可知,fp 应该是文件类型指针,因此本空应该填写 FILE*。 填空 2:feof 函数只能对文件类型数据进行操作,因此本空填写 fp。 填空 3:putchar()代表输入一个字符,从 ch=fgetc(fp)可以看出本题应该填写 ch。二、程序改错题(总题数:1,分数:30.00)2.给定程序中函数 fun 的功能是:依次取出字符串中所有数字字符,形成新的字符串,并取代原字符串。 请改正函数 fun 中指定部位的错误,使它能得出正

9、确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 给定源程序: #includestdio.h void fun(char*s) int i,j; for(i=0,j=0;si!=“/0“;i+) if(si=“0“ /*found*/ sj=“/0“; main() char item80; printf(“/nEnter a string:“);gets(item); printf(“/n/nThe string is:“%s“/n“,item); fun(item); printf(“/n/nThe string of changing is:“%s“/

10、n“,item); (分数:30.00)解析:(1)sj+=si; (2)sj=0; 解析 题目要求依次取出字符串中所有的数字字符,因此将元素 si存入 sj后要使 j 加1,为下次存储做准备。sj=“/0“;是一个语法错误。三、程序设计题(总题数:1,分数:40.00)3.请编写函数 fun,函数的功能是:将 M 行 N 列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 例如,二维数组中的数据为: W W W W S S S S H H H H 则字符串中的内容应是:WSHWSHWSHWSH。 请勿改动主函数 main 和其它函数中的任何内容,仅在函数 fun 的花括号中填入你编写

11、的若干语句。 给定源程序: #includestdio.h #define M 3 #define N 4 void fun(char sN,char*b) int i,j,n=0; for(i=0;iN;i+)/*请填写相应语句完成其功能*/ bn=“/0“; main() char a100,wMN=“W“,“W“,“W“,“W“,“S“,“S“,“S“,“S“,“H“,“H“,“H“,“H“; int i,j; printf(“The matrix:/n“); for(i=0;iM;i+) for(j=0;jN;j+)printf(“%3c“,wij); printf(“/n“); fun(w,a); printf(“The A string:/n“);puts(a); printf(“/n/n“); (分数:40.00)_正确答案:()解析:for(j=0;jM;j+) bn+=sji; 解析 看到程序后,很容易便能想到用循环嵌套的方法,本题中按列的顺序依次放到一个字符串中,所以列标变化慢,行标变化快。注意第 1 个循环条件为 iN(即列),第 2 个循环条件为jM(即行),因为在循环的嵌套中越在内层,循环变化就越快。

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

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

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