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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言-350 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:46、30、32、40、6、17、45、15、48、26,平均值为 30.500000。 移动后的输出为:46、32、40、45、48、30、6、17、15、26。 请在程序的下划线处填入正确的内

2、容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdlib.h #includestdio.h #define N 10 double fun(double *x) int i,j;double s,av,yN; s=0; for(i=0; iN;i+)s=s+xi; /*found*/ av= 1; for(i=j=0;iN;i+) if(xiav) /*found*/ y 2=xi;xi=-1; for(i=0; iN: i+) /*found*/ if(xi!= 3) yj+=xi; for(i=0;iN;i+

3、)xi=yi; return av; main() int i;double xN; for(i=0; iN; i+) xi=rand()%50; printf(“%4.0f“,xi); printf(“/n“); printf(“/nThe average is:%f/n“,funIx); printf(“/nThe result:/n“,fun(x); for(i=0;iN;i+) printf(“%5.0f“,xi); printf(“/n“); (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成

4、大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to takethe examination”,则应输出“I Am A Student To Take The Examination”。 请改正程序中的错误,使程序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include ctype.h #include string.h #includestdio.h /*found*/ void upfst(char p) int k=0; for(;*p;p+) if(k) if(*

5、p=“) k=0; else if(*p!=“) k=1; *p=toupper(*p); main() char chrstr81; printf(“/nPlease enter an English text line:“); gets(chrstr); printf(“/n/nBefore changing:/n%s“,chrstr); upfst(chrstr); printf(“/nAfter changing:/n%s/n“,chrstr); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 NN 的二维数组,并在主函数中赋值。请编写函数 fun

6、,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a 数组中的值为: 0 1 2 7 9 1 9 7 4 5 2 3 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后 s 的值应为 3.375。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int wN) void main() int aNN=0,1,

7、2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i,j; double s; system(“CLS“); printf(“*The array*/n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“%4d“,aij); printf(“/n“); s=fun(a); printf(“*THE RESULT*/n“); printf(“The sum is:%1f/n“,s); (分数:40.00)_二级 C 语言-350 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数

8、:30.00)1.给定程序中,函数 fun 的功能是:计算形参 x 所指数组中 N 个数的平均值(规定所有数均为正数),将所指数组中大于平均值的数据移至数组的前部,小于等于平均值的数据移至 x 所指数组的后部,平均值作为函数值返回,在主函数中输出平均值和移动后的数据。 例如,有 10 个正数:46、30、32、40、6、17、45、15、48、26,平均值为 30.500000。 移动后的输出为:46、32、40、45、48、30、6、17、15、26。 请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #

9、includestdlib.h #includestdio.h #define N 10 double fun(double *x) int i,j;double s,av,yN; s=0; for(i=0; iN;i+)s=s+xi; /*found*/ av= 1; for(i=j=0;iN;i+) if(xiav) /*found*/ y 2=xi;xi=-1; for(i=0; iN: i+) /*found*/ if(xi!= 3) yj+=xi; for(i=0;iN;i+)xi=yi; return av; main() int i;double xN; for(i=0; iN;

10、 i+) xi=rand()%50; printf(“%4.0f“,xi); printf(“/n“); printf(“/nThe average is:%f/n“,funIx); printf(“/nThe result:/n“,fun(x); for(i=0;iN;i+) printf(“%5.0f“,xi); printf(“/n“); (分数:30.00)解析:(1)s/N (2)j+ (3)-1 解析 填空 1:由原程序可知,av 代表的是平均值,而平均值的求法是所有数的总和除以数的个数,因而本空应该填写 s/N。 填空 2:y 数组代表暂时存放 x 数组,if(xiav)表达的是

11、当 x 数组中的数大于平均值时,应该把这些大于平均值的数放在 y 数组的前半部分,因而此空应该填 yj+。 填空 3:此空表明当 xi不等于什么时,xi中的数要赋值给 y 数组,由题意可知此空只能填写-1。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序的功能是:读入一个英文文本行,将其中每个单词的第一个字母改成大写,然后输出此文本行(这里的“单词”是指由空格隔开的字符串)。例如,若输入“I am a student to takethe examination”,则应输出“I Am A Student To Take The Examination”。 请改正程序中的错误,使程

12、序能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include ctype.h #include string.h #includestdio.h /*found*/ void upfst(char p) int k=0; for(;*p;p+) if(k) if(*p=“) k=0; else if(*p!=“) k=1; *p=toupper(*p); main() char chrstr81; printf(“/nPlease enter an English text line:“); gets(chrstr); printf

13、(“/n/nBefore changing:/n%s“,chrstr); upfst(chrstr); printf(“/nAfter changing:/n%s/n“,chrstr); (分数:30.00)解析:void upfst( char *p)解析 主函数中 fun 函数的调用方式说明函数 fun 的参数应为指针类型。三、程序设计题(总题数:1,分数:40.00)3.下列程序定义了 NN 的二维数组,并在主函数中赋值。请编写函数 fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的 s。例如,若 a 数组中的值为: 0 1 2 7 9 1 9 7 4 5 2 3

14、 8 3 1 4 5 6 8 2 5 9 1 4 1 则返回主程序后 s 的值应为 3.375。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includeconio.h #includestdlib.h #define N 5 double fun (int wN) void main() int aNN=0,1,2,7,9,1,9,7,4,5,2,3,8,3,1,4,5,6,8,2,5,9,1,4,1; int i,j; double s; system(“C

15、LS“); printf(“*The array*/n“); for(i=0;iN;i+) for(j=0;jN;j+) printf(“%4d“,aij); printf(“/n“); s=fun(a); printf(“*THE RESULT*/n“); printf(“The sum is:%1f/n“,s); (分数:40.00)_正确答案:()解析:double fun (int wN) int i,j,k=0; double av=0.0; for(i=0;iN;i+) for(j=0;jN;j+) if(i=0|i=N-1|j=0|j=N-1) /*只要下标中有一个为 0 或 N-1,则它一定是周边元素*/ av=av+wij; /*将周边元素求和*/ k+; return av/k; /*求周边元素的平均值*/ 解析 本题要求计算二维数组周边元素的平均值,for 循环语句控制循环过程,if 条件语句根据数组元素的下标判断该元素是否为二维数组的周边元素。 本题采用逐一判断的方式,周边元素的规律为下标中有一个是 0 或 N-1,所以只要下标中有一个为 0 或 N-1,那么它一定是周边元素。计算周边元素个数的方式是当给 av 累加一个值时,k 也加 1。

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