1、份二级C语言填空题2013年9月21日二级C语言“无纸化”考试“填空题”复习资料填空题复习方法: 1、填空题占“无纸化”考试中的18分,一般情况下有3个空,每个空6分。经过总结和分析,这些题目可以根据“考点”进行分类,各位考生将下面的题目认真理解并准确记忆,则填空题中的18分一般可以轻松拿下。 2、做填空题,必须注意以下几点:(1)读题目。注意关键词和函数返回内容,例如:“从小到大排序”、“将a的值赋值给b”等,这些提示可以让考生快速的分析出要填入的空。(2)注意上下行的程序,因为有的答案就来自下一行的代码。例如:“交换的格式”就可以从上下行得到。(3)必须重点分析:函数调用、函数定义首部和函
2、数返回值,这些部分考试常考。(4)有的空比较难,因此考生只能死记,这个不要太纠结。 3、下面所列举的题目,对做题没有影响的代码已经省略,考生只用分析剩余代码即可将题目做出。一、数学公式类题目 该类题目的分析、做题方法: (1)首先,看公式中的“通项”(注意:一般是公司中的最后一项)。 (2)其次,确定循环变量i的范围,很多时候都是1到n,不过也有2到n的情况,考生要注意。 (3)最后,看返回值。如果返回的是和,则求和变量sum要赋初值为0;返回的是个数,则求个数变量cnt要赋初值为0;返回积,则求积变量要赋初值为1。 注意:输入小括号的时候必须是英文状态下的小括号,如果是中文状态下的小括号,则
3、不能得分。6、计算下列式前n项的和作为函数返回值。 double fun(int n) int i; double s, t;/*found*/ s=_1_; 填入:0。因为s是求和变量。/*found*/ for(i=1; ie)/*found*/ _2_; 填入:i+。循环中必定有i+,不过 一般都是在循环体中的最后,此题比较 特殊,在前面。如果将i+放到s=s+x; 语句后面,则第一个空就只用填i=1。/*found*/ x=(2.0*i-1)/(_3_)*(2.0*i); 填入:2.0*i。此处计算通 s=s+x; 项x的值,通项缺少分母, 根据公式可知应填入2.0*i。 return
4、 s;main() double e=1e-3; printf(nThe result is: %fn,fun(e);29、double fun(int n) int i, k; double s, t; s=0;/*found*/ k=_1_; 填入:1。 for(i=1; i。 s=s+k*x; k=k* (-1); t=2*i;/*found*/ x=_3_/(t*t); 填入:(t+1)。 i+; return s;main() double e=1e-3; printf(nThe result is: %fn,fun(e);最新热门考题1:double fun(double x) d
5、ouble f, t; int n; f = 1.0 + x;/*found*/ t = _1_; 填入:1。 n = 1; do n+;/*found*/ t *= (-1.0)*x/_2_; 填入:n。 f += t; /*found*/ while (_3_ = 1e-6); 填入:fabs(t)。fabs(t)求t的 return f; 绝对值。要求计算绝 对值。main() double x, y; x=2.5; y = fun(x);最新热门考题2:double fun(double x, int n) double f, t; int i;/*found*/ f = _1_; 填
6、入:1。公式中第一项1很特殊, t = -1; 通项中假设n的值为1,则第1项 for (i=1; i= 1e-6); return f;main() double x, y; x=2.5; y = fun(x);最新热门考题4:double fun(double x, int n) double f, t; int i; f = 1.0;/*found*/ t = _1_; 填入:1。/*found*/ for (i=_2_; in; i+) 填入:1。 /*found*/ t *= x/_3_; 填入:i。 f += t; return f;main() double x, y; x=2.
7、5; y = fun(x, 12);二、整数类型题目(题目简单,用对比法进行复习效果最好)该类题目的重点考点: (1)如果返回的是和,则求和变量sum要赋初值为0;返回的是个数,则求个数变量cnt要赋初值为0;返回积,则求积变量要赋初值为1。 (2)一个整数n:n%10的结果为个位,n/10结果为去掉个位。例如:123%10结果为3,123/10结果为12。1、函数的功能:找出100999之间(含100和999)所有整数中各位数字之和为x的整数,符合条件的个数作为函数值返回。fun(int x) int n, s1, s2, s3, t; n=0; t=100;/*found*/ while(
8、t=_1_) 填入999。/*found*/ s1=t%10; s2=(_2_)%10; s3=t/100; 填入:t/10/*found*/ if(s1+s2+s3=_3_) 填入:x printf(%d ,t);答案分析:(1)题目要求找出100999之间的整数,t被赋值为100,因此第一个空填入999。(2)题目要求各位数字之和,s1=t%10得到个位,s2=(t/10)%10;得到十位,s3=t/100得到百位。(3)各位数字之和为x的整数,因此第三个空填入x。 n+; t+; return n;main() int x=-1; printf(nThe result is: %dn,f
9、un(x);2、函数的功能:找出100至x(x=999)所有整数中各位章数字之和为15的整数,符合条件的个数作为函数值返回。fun(int x) int n, s1, s2, s3, t;/*found*/ n=_1_; 填入:0。 t=100;/*found*/ while(tb) ? (bc? b :(ac?c:_1_) : (ac)?_2_ : (bc)?c:_3_); 第一个空填入:b return t; 第二个空填入:a 第三个空填入:b 注意:该题理解起来比较困难,因此建立直接记忆!main() int a1=3, a2=5, a3=4, r; r = fun(a1, a2, a3
10、);关于素数:(1)只能被1和它自身整除的数,最小的素数是2,不是1。 (2)判断变量i是否值素数,只要用i除以2、3、4n-1,如果有任何一个结果为0,则不是素数,否则是素数。最新热门考题3:函数的功能是:统计所有小于等于n(n2)的素数的个数,素数的个数作为函数值返回。int fun(int n) int i,j, count=0; printf(nThe prime number between 3 to %dn, n); for (i=3; i=n; i+) /*found*/ for (_1_; j=i) 填入:j。 count+; printf( count%15? %5d:n%5
11、d,i); return count;main() int n=20, r; r = fun(n);最新热门考题4:用筛选法可得到2n(n10000)之间的所有素数,方法是:首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找到一个非0数,并从数表中删去该数的所有倍数;依次类推,直到所找的小一个数等于n为止。int fun(int n) int a10000, i,j, count=0; for (i=2; i=n; i+) ai = i; i = 2; while (in) /*found*/ for (j=ai*2; j=n; j+=_1_) 填入
12、:i。 aj = 0; i+;/*found*/ while (_2_=0) 填入:ai。 i+; printf(nThe prime number between 2 to %dn, n); for (i=2; i=n; i+)/*found*/ if (ai!=_3_) 填入:0。 count+; printf( count%15?%5d:n%5d,ai); return count;main() int n=20, r; r = fun(n); 最新热门考题5: 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。函数
13、的功能是:根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。/*found*/#define OK(i, t, n) (_1_%t=0) & (i/tn) 填入:i。int fun(int t1, int t2, int t3, int t4, int n) int count, t , maxt=t1; if (maxt t2) maxt = t2; if (maxt t3) maxt = t3; if (maxt t4) maxt = t4; count=1; /* 给count赋初值 */*found*/ for(t=1; t maxt*(n-1); _2_) 填入:i+。 if
14、(OK(t, t1, n) | OK(t, t2, n)| OK(t, t3, n) | OK(t, t4, n) ) count+; /*found*/ return _3_; 填入:count。main() int t1=7, t2=5, t3=6, t4=4, n=10, r; r = fun(t1, t2, t3, t4, n);三、一维数组考题该类题目的重点考点: (1)如果返回的是和,则求和变量sum要赋初值为0;返回的是个数,则求个数变量cnt要赋初值为0;返回积,则求积变量要赋初值为1。 (2)数组的下标从0开始,到长度减1结束。 (3)必考点,谨记两个数组的赋值形式:aj+=
15、ai;或者为:aj=ai;j+; (4)判断数组中元素是否为偶数:ai%2=0 (4)一维数组的排序个数如下:(红色部分常考) for(i=0;in-1;i+) for(j=i+1;jn;j+) if(ai 大于或小于 aj) 其中if表达式中:大于表示从大到小排序,小于表示从小到大排序。 (5)两个数据的交换格式:t=a; a=b; b=t; (6)两个数组元素的交换格式:t=ai; ai=aj; aj=t; (7)找最大值:if(maxai) min=ai;61、函数的功能是:把形参a所指数组中的奇数按原顺序依次存放到a0、a1、a2、中,把偶数从数组中删除,奇数个数通过函数返回。#def
16、ine N 9int fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (ai%2=_1_) 填入:1。ai%2结果为1 表示ai是奇数。/*found*/ aj = ai; _2_; 填入:j+。这个不多说。 /*found*/ return _3_; 填入:j。main() int bN=9,1,4,2,3,6,5,8,7, i, n; n = fun(b, N);71、函数的功能是:把形参a所指数组中的偶数按原顺序依次存放到a0、a1、a2、中,把奇数从数组中删除,偶数个数通过函数返回。#define N 9i
17、nt fun(int a, int n) int i,j; j = 0; for (i=0; in; i+)/*found*/ if (_1_= 0) 填入:ai%2。/*found*/ _2_ = ai; j+; 填入:aj。 /*found*/ return _3_; 填入:j。main() int bN=9,1,4,2,3,6,5,8,7, i, n; n = fun(b, N);64、函数的功能是:将形参a所指数组中的前半部分元素中的值和后半部分元素中的值对换。形参n中存放数组中数据的个数,若n为奇数,则中间的元素不动。例如:a所指数组中的数据依次为:1、2、3、4、6、7、8、9,则调换后为:6、7、8、9、5、1、2、3、4。#define N 9void fun(int a, int n) int i, t, p;/*found*/ p = (n%2=0)?n/2:n/2+_1_; 填入:1。 for (i=0; in/2; i+) t=ai;/*found*/ ai = ap+_2_; 填入:i。/*found*/ _3_ = t; 填入:ap+i。交换,记住交换的 形式即可做出来。main() int bN=1,2,3,4,5,6,7,8,9, i; fun(b, N);99、函数的功能是:把形参a所指数组中的最小值放在元素a0中,
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1