全国计算机等级考试二级C语言上机题库及其答案详解

上传人:hs****ma 文档编号:483539036 上传时间:2023-10-19 格式:DOC 页数:244 大小:1.34MB
返回 下载 相关 举报
全国计算机等级考试二级C语言上机题库及其答案详解_第1页
第1页 / 共244页
全国计算机等级考试二级C语言上机题库及其答案详解_第2页
第2页 / 共244页
全国计算机等级考试二级C语言上机题库及其答案详解_第3页
第3页 / 共244页
全国计算机等级考试二级C语言上机题库及其答案详解_第4页
第4页 / 共244页
全国计算机等级考试二级C语言上机题库及其答案详解_第5页
第5页 / 共244页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言上机题库及其答案详解》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言上机题库及其答案详解(244页珍藏版)》请在金锄头文库上搜索。

1、 全国计算机二级C语言上机考试题第一套 给定程序的功能是:求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值:19.527,输出为:s=598.949991。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include double fun( double r) return 3.14159*【1】/2.0; void main() double x; printf(Enter x: ); scanf(%

2、lf,【2】); printf(s=%lfn,fun(【3】); 【参考答案】 (1)r*r (2)&x (3)x 【考点分析】 本题考查:圆面积计算公式*r*r;scanf( )函数的形式,其一般形式为scanf(格式控制字符串,地址表列);,注意地址是由地址运算符&后跟变量名组成的;printf( )函数的形式,其一般形式为printf(格式控制字符串,输出表列);函数实参调用,函数作为另一个函数调用的实际参数出现。 【解题思路】 填空1:计算圆的面积,公式为:*r。 填空2:scanf( )函数一般形式为scanf(格式控制,地址表列),因此填入&x。 填空3:函数的实际参数是圆的半径x

3、。 下列给定程序中,函数fun的功能是:计算S=f(-n)+f(-n+1)+f(0)+f(1)+f(2)+f(n)的值。 例如,当n为5时,函数值应为10.407143。f(x)函数定义如下: f(x)= 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include #include /*found*/ f(double x) if(x=0.0|x=2.0) return 0.0; else if(x0.0) return(x-1)/(x-2); else return(x+1)

4、/(x-2); double fun(int n) int i; double s=0.0,y; for(i=-n; i=n;i+) y=f(1.0*i); s+=y; /*found*/ return s void main() system(CLS); printf(%fn, fun(5);【参考答案】 (1) 错误:f(double x) 正确:double f(double x) (2) 错误:return s 正确:return s; 【考点分析】 本题考查:函数的定义,其一般形式为类型标识符 函数名(形式参数表列),其中类型标识符指明了本函数的类型,函数的类型实际上是函数返回值的类

5、型。 【解题思路】 该程序的流程是,fun( )程序对f(n)项循环累加,并且采用条件选择语句计算函数f(x)的值。本题的错误在于未定义函数f(double x)的返回值类型。C语言规定,在未显式声明的情况下,函数返回值默认为int型。 编写函数fun,函数的功能是:根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 S=1+1/(1+2)+1/(1+2+3)+1/(1+2+3+n) 例如,若n的值为11时,函数的值为1.833333。 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include

6、 #include #include #include float fun(int n) void main() FILE *wf; int n; float s; system(CLS); printf(nPlease enter N: ); scanf(%d,&n); s=fun(n); printf(The result is:%fn , s); /*/ wf=fopen(out.dat,w); fprintf (wf,%f,fun(11); fclose(wf); /*/【参考答案】 float fun(int n) int i,s1=0; /*定义整型变量s1,表示分母*/ floa

7、t s=0.0; /*定义单精度变量s,表示每一项*/ for(i=1;i=n;i+) s1=s1+i; /*求每一项的分母*/ s=s+1.0/s1;/*求多项式的值*/ return s; 【考点分析】 本题考查:计算给定表达式的值,根据题意判断表达式为1到n累加倒数之和。变量数据类型及强制转换操作。for循环语句,一般情况需要确定循环变量的取值范围。使用return语句完成函数值的返回。 【解题思路】 本题可以通过for循环语句来实现第1项到第n项的变化,然后计算各项的累加和。方法是先根据题目要求定义变量(注意该变量的数据类型),然后对其进行初始化操作,因为该变量用作累加器,所以初始值应

8、为0(或0.0,根据变量数据类型来确定),再通过for循环语句来完成累加过程。 本题中s1用来表示式中每一项的分母,它可以由前一项的分母加项数得到。注意:由于s1定义成一个整型,所以在s=s+1.0/s1中不能把1.0写成1。 【解题宝典】 此类计算表达式值的程序,首先需要根据题意分析表达式的规律,得出通项,然后再完成程序语句。 第二套 请补充main函数,该函数的功能是:计算两个自然数n和m(m10000)之间所有数的和(n和m从键盘输入)。 例如,当n=1,m=100时,sum=5050;当n=100,m=1000时,sum=495550。 注意:部分源程序给出如下。 请勿改动main函数

9、和其他函数中的任何内容,仅在main函数的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include void main() int n,m; long sum; 【1】; system(CLS); printf(nInput n,mn); scanf(%d,%d,&n,&m); while(n=m) 【2】; n+; printf(sum=%【3】n,sum);【参考答案】 (1) sum=0 (2) sum+=n (3) ld 【考点分析】 本题考查:变量初始化,需要注意该变量是累加器还是累乘器:printf( )函数,其一般形式为printf(

10、格式控制符,输出表列)。其中,格式控制符用于指定输出格式,可由格式字符串和非格式字符串两种组成,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等,如%ld表示按十进制长整型输出,非格式字符串在输出时原样照印,在显示中起提示作用。 【解题思路】 填空1:变量sum进行了类型声明,但没有进行初始化,而后面的程序用sum来存放最后的结果,所以要在使用前将sum初始化为0。 填空2:通过while循环将自然数n和m之间的数进行累加,结果存于sum中。 填空3:由于sum为长整型,所以标准输出函数printf( )中的格式控制符为%ld。 下列给定程序

11、中,fun函数的功能是:根据形参m,计算下列公式的值: t=1+1/2+1/3+1/4+1/m 例如,若输入5,则应输出2.283333。 请改正程序中的错误,使它能计算出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: #include #include #include double fun(int m) double t=1.0; int I; for(I=2;I=m;I+) /*found*/ t+=1.0/k; /*found*/ return I; void main() int m; system(CLS); printf(nPlease enter 1integer number: ); scanf(%d,&m); printf(nThe result is %1fn, fun(m);【参考答案】 (1)错误:t+=1.0/k; 正确:t+=1.0/I; (2)错误:return I; 正确:return

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号