2015年9月份全国计算机等级考试二级C语言题库及详细解答.docx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《2015年9月份全国计算机等级考试二级C语言题库及详细解答.docx》由会员分享,可在线阅读,更多相关《2015年9月份全国计算机等级考试二级C语言题库及详细解答.docx(441页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2013年9月份全国计算机等级考试二级C语言试题题库(无纸化考试专用)(说明:无纸化考试选择题40分,程序题60分。学会这些题,保证二级高空飘过!)第一套给定程序的功能是:求二分之一圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:2,在程序中定义的变量名要与公式的变量一样)。 例如,输入圆的半径值:19.527,输出为:s=598.949991。 留意:局部源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在横线上填入所编写的若干表达式或语句。 试题程序: #include double fun( double r) return 3.14159*【
2、1】/2.0;void main()double x;printf(Enter x: );scanf(%lf,【2】);printf(s=%lfn,fun(【3】);【参考答案】 (1)r*r (2)&x (3)x 【考点分析】 本题考察:圆面积计算公式*r*r;scanf( )函数的形式,其一般形式为scanf(格式限制字符串,地址表列);,留意地址是由地址运算符&后跟变量名组成的;printf( )函数的形式,其一般形式为printf(格式限制字符串,输出表列);函数实参调用,函数作为另一个函数调用的实际参数出现。 【解题思路】 填空1:计算圆的面积,公式为:*r。 填空2:scanf(
3、)函数一般形式为scanf(格式限制,地址表列),因此填入&x。 填空3:函数的实际参数是圆的半径x。 下列给定程序中,函数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;
4、else if(x0.0) return(x-1)/(x-2); else return(x+1)/(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 svoid 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函数和其他函数
6、中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序: #include #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 fu
7、n(int n) int i,s1=0; /*定义整型变量s1,表示分母*/ float 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=
9、1000时,sum=495550。 留意:局部源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在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 【考点分析】 本题考察:变量初始化,需要
10、留意该变量是累加器还是累乘器:printf( )函数,其一般形式为printf(格式限制符,输出表列)。其中,格式限制符用于指定输出格式,可由格式字符串和非格式字符串两种组成,格式字符串是以%开头的字符串,在%后面跟有各种格式字符,以说明输出数据的类型、形式、长度、小数位数等,如%ld表示按十进制长整型输出,非格式字符串在输出时原样照印,在显示中起提示作用。 【解题思路】 填空1:变量sum进展了类型声明,但没有进展初始化,而后面的程序用sum来存放最终的结果,所以要在运用前将sum初始化为0。 填空2:通过while循环将自然数n和m之间的数进展累加,结果存于sum中。 填空3:由于sum为
11、长整型,所以标准输出函数printf( )中的格式限制符为%ld。 下列给定程序中,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
12、()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 t; 【考点分析】 本题考察:for循环语句的循环条件,这类题目的一般解法是依据题意确定循环变量的取值范围;函数返回值,其一般形式为return 表达式;,该语句的功能是计算表达式的值,并返回给主调函数。 【解题思路】 (1)该题目考察分母成等差数列递
13、增的一个数学公式,我们先看循环条件for(I=2;I=m;I+),i从2开场递增到m,所以t的值应当是由1.0/i的值逐步循环叠加后的结果,而不是t+=1.0/k;。 (2)return I;考察对程序的解读实力,当循环完毕后(由输入m的值确定),函数返回当前t的值。 请编写一个函数 void fun(char *tt,int pp),统计在tt字符串中a到z26个字母各自出现的次数,并依次放在pp所指数组中。 例如,当输入字符串abcdefghabcdeabc后,程序的输出结果应当是:3 3 3 2 2 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
14、留意:局部源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 试题程序:#include #include #include void fun(char *tt,int pp )void main( ) FILE *wf; char aa1000; int bb26, k; system(CLS); printf(nPlease enter a char string : ) ; scanf(%s,aa); fun(aa,bb); for (k=0 ;k26 ; k+) printf(%d ,bbk) ; printf(n );/*/
15、wf=fopen(out.dat,w); fun (abcdefgabcdeabc,bb) ; for (k=0 ;k26 ; k+) fprintf(wf,%d ,bbk) ; fclose(wf);/*/【参考答案】 void fun(char*tt,int pp) int i; for(i=0;i=a&*tt=z) pp*tt-a+; /*将tt字符串中a到z26个字母各自出现的次数,依次放在pp数组中,任一个小写字母减去a后所得结果正好是它对应的下标*/ 【考点分析】 本题考察:统计小写字母在指定字符串中出现次数。for循环语句,需要留意循环变量的取值范围。if条件语句要留意条件表达式
16、的断定。 【解题思路】 第1个循环的作用是初始化数组pp,未经赋值变量的量为一个不确定数字。由于它要将a到z26个字母的个数依次放到数组pp中,即a的个数存于pp0中,b的个数存于pp1中,c的个数存于pp2中,依此类推,而a-a的值正好为0,b-a的值为1,c- a 的值为2,依此类推。任一个小写字母减去a后所得结果正好是它对应的下标,所以就有了pp*tt-a+,但*tt必需是小写字母,即if( )不应省略。 。第三套给定程序的功能是:推断字符ch是否与串str中的某个字符一样,若一样什么也不做,若不同则插在串的最终。 留意:局部源程序给出如下。 请勿改动函数main和其他函数中的任何内容,
17、仅在横线上填入所编写的若干表达式或语句。 试题程序: #include #include void fun (char *str,char ch) while (*str &*str !=ch) str+; if(*str【 !=】ch) str0=ch; 【str1】=0; void main()char s81,c; system(CLS); printf(nPlease enter a string : );gets(s); printf(n Please enter the character to search : ); c=getchar(); fun(【s,c 】); print
18、f(nThe result is %sn,s);【参考答案】 (1) != (2) str1或*(str+1) (3) s,c 【考点分析】 本题考察:if语句,一般驾驭条件表达式的断定。函数的调用,其一般形式为函数名(实际参数表)。 【解题思路】 填空1:依据题意若一样什么也不做,则应填入!=。 填空2:若不同则插在串的最终,那么0就在字符串的倒数第二了。 填空3:函数传递的参数为输入的两个字符串,则填入s,c。 下列给定程序中,函数fun的功能是:分别统计字符串中大写字母和小写字母的个数。例如,给字符串s输入:AaaaBBb123CCccccd,则应输出结果:upper=5,lower=9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2015 月份 全国 计算机等级考试 二级 语言 题库 详细 解答
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内