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

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

1、二级 C 语言-232 及答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充函数 proc(),该函数的功能是计算下面公式 S N 的值: (分数:30.00)二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是根据整型形参 n,计算如下公式的值: y=1-1/(22)+1/(33)-1/(44)+(-1)(n+1)/(nn) 例如,n 中的值为 10,则应输出 0.817962。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。

2、试题程序: #includestdlib.h #includeconio.h #includestdio.h double proc(int n) double y=1.0; /*found* int j=1; int i; for(i=2;i=n;i+) j=-1*j;/*found* y+=1/(i*i); return(y); void main() int n=10; system(“CLS“); printf(“/nThe result is%lf/n“,proc(n); (分数:30.00)三、程序设计题(总题数:1,分数:40.00)3.编写一个函数,从传入的 M 个字符中找出最

3、长的一个字符串,并通过形参指针 max 传回该串地址(用*作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestdio.h #includestring.h #includeconio.h char*proc(char(*a)81,int num) void main() char ss1081,*max; int n,i=0; printf(“输入若干个字符串:“); gets(ssi); puts(ssi); while(!strcmp(ssi,“*“)=

4、0) i+; gets(ssi); puts(ssi); n=i; max=proc(ss,n); printf(“/nmax=%s/n“,max); (分数:40.00)_二级 C 语言-232 答案解析(总分:100.00,做题时间:90 分钟)一、程序填空题(总题数:1,分数:30.00)1.请补充函数 proc(),该函数的功能是计算下面公式 S N 的值: (分数:30.00)解析:k=2 s+=(2*k-1)/s1 s解析 由题目中所给公式可知,多项式的第一项为 1。变量 s 中存放多项式的和,其初始值为 1。因此,循环从第二项开始,因此,第一处填“k=2”;变量 s1 中存放各项

5、表达式的值,由公式可知,第二处填“s+=(2*k-1)/s1”;题目中要求将多项式的和返回到主函数当中,因此,第三处填“s”。二、程序改错题(总题数:1,分数:30.00)2.下列给定程序中,函数 proc()的功能是根据整型形参 n,计算如下公式的值: y=1-1/(22)+1/(33)-1/(44)+(-1)(n+1)/(nn) 例如,n 中的值为 10,则应输出 0.817962。 请修改程序中的错误,使它能得到正确结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includeconio.h #includ

6、estdio.h double proc(int n) double y=1.0; /*found* int j=1; int i; for(i=2;i=n;i+) j=-1*j;/*found* y+=1/(i*i); return(y); void main() int n=10; system(“CLS“); printf(“/nThe result is%lf/n“,proc(n); (分数:30.00)解析:错误:int j=1; 正确:double j=1.0; 错误:y+=1/(i*i); 正确:y+=j/(i*i); 解析 由函数 proc()可知,变量 j 的作用是控制每一项

7、符号的变化,并且作为运算的分子,应改为 double 型变量。因此,“int j=1;”应改为“double j=1.0;”。变量 y 中存放多项式的值,多项式中的每一项符号由变量 j 决定。因此,“y+=1/(i*i);”应改为“y+=j/(i*i);”。三、程序设计题(总题数:1,分数:40.00)3.编写一个函数,从传入的 M 个字符中找出最长的一个字符串,并通过形参指针 max 传回该串地址(用*作为结束输入的标志)。 注意:部分源程序给出如下。 请勿改动 main()函数和其他函数中的任何内容,仅在函数 proc()的花括号中填入所编写的若干语句。 试题程序: #includestd

8、io.h #includestring.h #includeconio.h char*proc(char(*a)81,int num) void main() char ss1081,*max; int n,i=0; printf(“输入若干个字符串:“); gets(ssi); puts(ssi); while(!strcmp(ssi,“*“)=0) i+; gets(ssi); puts(ssi); n=i; max=proc(ss,n); printf(“/nmax=%s/n“,max); (分数:40.00)_正确答案:()解析:char*proc(char(*a)81,int M) char*max; int i=0; max=a0; for(i=0;iM;i+) if(strlen(max)strlen(ai)/找出最长的字符串 max=ai; return max;/返回最长字符串的地址 解析 本题首先要定义一个字符指针用于保存最长的字符串,并使其初始值指向第一个字符串;再循环遍历字符串数组,通过 if 语句比较字符串的长度,并把最长的字符串地址赋给字符指针;最后返回最长字符串的地址。

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

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

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