份二级C语言填空题.docx
- 文档编号:13907855
- 上传时间:2023-06-19
- 格式:DOCX
- 页数:85
- 大小:88.53KB
份二级C语言填空题.docx
《份二级C语言填空题.docx》由会员分享,可在线阅读,更多相关《份二级C语言填空题.docx(85页珍藏版)》请在冰点文库上搜索。
份二级C语言填空题
2013年9月21日二级C语言
“无纸化”考试“填空题”复习资料
填空题复习方法:
1、填空题占“无纸化”考试中的18分,一般情况下有3个空,每个空6分。
经过总结和分析,这些题目可以根据“考点”进行分类,各位考生将下面的题目认真理解并准确记忆,则填空题中的18分一般可以轻松拿下。
2、做填空题,必须注意以下几点:
(1)读题目。
注意关键词和函数返回内容,例如:
“从小到大排序”、“将a的值赋值给b”等,这些提示可以让考生快速的分析出要填入的空。
(2)注意上下行的程序,因为有的答案就来自下一行的代码。
例如:
“交换的格式”就可以从上下行得到。
(3)必须重点分析:
函数调用、函数定义首部和函数返回值,这些部分考试常考。
(4)有的空比较难,因此考生只能死记,这个不要太纠结。
3、下面所列举的题目,对做题没有影响的代码已经省略,考生只用分析剩余代码即可将题目做出。
4、填空题前面的题号,对应“单机版上机模拟系统”,考生用该软件来练习。
一、数学公式类题目
该类题目的分析、做题方法:
(1)首先,看公式中的“通项”(注意:
一般是公式中的最后一项)。
(2)其次,确定循环变量i的范围,很多时候都是1到n,不过也有2到n的情况,考生要注意。
(3)最后,看返回值。
如果返回的是和,则求和变量sum要赋初值为0;返回的是个数,则求个数变量cnt要赋初值为0;返回积,则求积变量要赋初值为1。
注意:
输入小括号的时候必须是英文状态下的小括号,如果是中文状态下的小括号,则不能得分。
6、计算下列式前n项的和作为函数返回值。
doublefun(intn)
{inti;doubles,t;
/**********found**********/
s=__1__;填入:
0。
因为s是求和变量。
/**********found**********/
for(i=1;i<=__2__;i++)填入:
n。
因为循环的范围
{t=2.0*i;是1到n。
/**********found**********/
s=s+(2.0*i-1)*(2.0*i+1)/__3__;填入:
(t*t)。
此处计算s
}的和,通项中缺少了分母,
returns;根据公式可知应填入(t*t)
}记住不能缺少小括号。
main()
{intn=-1;
printf("\nTheresultis:
%f\n",fun(n));
}
25、给定程序中,函数fun的功能是计算下式
doublefun(doublee)
{inti;doubles,x;
/**********found**********/
s=0;i=__1__;填入:
0。
此处很多考生容易填入1,
x=1.0;和第2个空联系起来,则只能填入0
while(x>e){
/**********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。
returns;
}
main()
{doublee=1e-3;
printf("\nTheresultis:
%f\n",fun(e));
}
29、
doublefun(intn)
{inti,k;doubles,t;
s=0;
/**********found**********/
k=__1__;填入:
1。
for(i=1;i<=n;i++){
/**********found**********/
t=__2__;填入:
2.0*i。
s=s+k*(2*i-1)*(2*i+1)/(t*t);
/**********found**********/
k=k*__3__;填入:
-1。
}
returns;
}
main()
{intn=-1;
printf("\nTheresultis:
%f\n",fun(n));
}
36、给定程序中,函数fun的功能是计算下式
例如:
若形参e的值为1e-3,函数的返回值为0.551690。
doublefun(doublee)
{inti,k;doubles,t,x;
s=0;k=1;i=2;
/**********found**********/
x=__1__/4;填入:
3。
/**********found**********/
while(x__2__e)填入:
>。
{s=s+k*x;
k=k*(-1);
t=2*i;
/**********found**********/
x=__3__/(t*t);填入:
(t+1)。
i++;
}
returns;
}
main()
{doublee=1e-3;
printf("\nTheresultis:
%f\n",fun(e));
}
最新热门考题1:
doublefun(doublex)
{doublef,t;intn;
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的
returnf;绝对值。
要求计算绝
}对值。
main()
{doublex,y;
x=2.5;
y=fun(x);
}
最新热门考题2:
doublefun(doublex,intn)
{doublef,t;inti;
/**********found**********/
f=___1___;填入:
1。
公式中第一项1很特殊,
t=-1;通项中假设n的值为1,则第1项
for(i=1;i {注意: 如果i从2开始,则f=1+x /**********found**********/ t*=(___2___)*x/i;填入: -1.0。 /**********found**********/ f+=___3___;填入: t。 } returnf; } main() {doublex,y; x=2.5; y=fun(x,15); } 最新热门考题3: doublefun(doublex) {doublef,t;intn; /**********found**********/ f=1.0+___1___;填入: x。 因为n=1,并且在循环 t=x;体中先执行n++,因此相关于n n=1;的值从2开始。 do{ n++; /**********found**********/ t*=x/___2___;填入: i。 /**********found**********/ f+=___3___;填入: t。 }while(fabs(t)>=1e-6); returnf; } main() {doublex,y; x=2.5; y=fun(x); } 最新热门考题4: doublefun(doublex,intn) {doublef,t;inti; f=1.0; /**********found**********/ t=___1___;填入: 1。 /**********found**********/ for(i=___2___;i 1。 { /**********found**********/ t*=x/___3___;填入: i。 f+=t; } returnf; } main() {doublex,y; x=2.5; y=fun(x,12); } 二、整数类型题目(题目简单,用对比法进行复习效果最好) 该类题目的重点考点: (1)如果返回的是和,则求和变量sum要赋初值为0;返回的是个数,则求个数变量cnt要赋初值为0;返回积,则求积变量要赋初值为1。 (2)一个整数n: n%10的结果为个位,n/10结果为去掉个位。 例如: 123%10结果为3,123/10结果为12。 1、函数的功能: 找出100~999之间(含100和999)所有整数中各位数字之和为x的整数,符合条件的个数作为函数值返回。 fun(intx) {intn,s1,s2,s3,t; n=0; t=100; /**********found**********/ while(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)题目要求找出100~999之间的整数,t被赋值为100,因此第一个空填入999。 (2)题目要求各位数字之和,s1=t%10得到个位, s2=(t/10)%10;得到十位,s3=t/100得到百位。 (3)各位数字之和为x的整数,因此第三个空填入x。 n++; } t++; } returnn; } main() {intx=-1; printf("\nTheresultis: %d\n",fun(x));↑ } 2、函数的功能: 找出100至x(x<=999)所有整数中各位章数字之和为15的整数,符合条件的个数作为函数值返回。 fun(intx) {intn,s1,s2,s3,t; /**********found**********/ n=__1__;填入: 0。 t=100; /**********found**********/ while(t<=__2__)填入: 999。 {s1=t%10;s2=(t/10)%10;s3=t/100; if(s1+s2+s3==15) {printf("%d",t); n++; } /**********found**********/ __3__;填入: t++。 } returnn; } main() {intx=-1; printf("\nTheresultis: %d\n",fun(x)); } 3、函数的功能是: 将形成n所指变量中,各位上为偶数的数去除,剩余的数按原来从高到低位的顺序组成一个新的数,并通过形成指针n传回所指变量。 例如,输入一个数: 27638496,新的数为: 739。 voidfun(unsignedlong*n) {unsignedlongx=0,i;intt; i=1; while(*n) /**********found**********/ {t=*n%__1__;填入: 10。 /**********found**********/ if(t%2! =__2__)填入: 0。 {x=x+t*i;i=i*10;} *n=*n/10; } /**********found**********/ *n=__3__;填入: x。 } main() {unsignedlongn=-1; fun(&n); } 最新热门考题1: 函数的功能是: 统计长整型n的各个位上出现数字1、2、3的次数,并通过外部(全局)变量c1、c2、c3返回主函数。 intc1,c2,c3; voidfun(longn) {c1=c2=c3=0; while(n){ /**********found**********/ switch(___1___)填入: n%10。 { /**********found**********/ case1: c1++;___2___;填入: break。 如果/**********found**********/不加break则会每一次 都执行cese2,case3。 case2: c2++;___3___;填入: break。 Case3: c3++; } n/=10; } } main() {longn=123114350L; fun(n); } 最新热门考题2: 函数的功能是: 从三个形参a,b,c中找出中间的那个数,作为函数值返回。 例如,当a=3,b=5,c=4时,中间的数为4。 intfun(inta,intb,intc) {intt; /**********found**********/ t=(a>b)? (b>c? b: (a>c? c: ___1___)): ((a>c)? ___2___: ((b>c)? c: ___3___));第一个空填入: b returnt;第二个空填入: a 第三个空填入: b }注意: 该题理解起来比较困难,因此建立直接记忆! main() {inta1=3,a2=5,a3=4,r; r=fun(a1,a2,a3); } 关于素数: (1)只能被1和它自身整除的数,最小的素数是2,不是1。 (2)判断变量i是否值素数,只要用i除以2、3、4……n-1,如果有任何一个结果为0,则不是素数,否则是素数。 最新热门考题3: 函数的功能是: 统计所有小于等于n(n>2)的素数的个数,素数的个数作为函数值返回。 intfun(intn) {inti,j,count=0; printf("\nTheprimenumberbetween3to%d\n",n); for(i=3;i<=n;i++){ /*取出所有小于等于n的数,用i表示*/ /**********found**********/ for(___1___;j j=2。 /**********found**********/ if(___2___%j==0)填入: i。 break; /**********found**********/ if(___3___>=i)填入: j。 /*j>=i说明,i与从2开始小于等于自己的那些数都除了一个遍,最后还是没有等于0的,说明是个素数,因此统计1次*/ {count++;printf(count%15? "%5d": "\n%5d",i);} } returncount; } main() {intn=20,r; r=fun(n); } 最新热门考题4: 用筛选法可得到2~n(n<10000)之间的所有素数,方法是: 首先从素数2开始,将所有2的倍数的数从数表中删去(把数表中相应位置的值置成0);接着从数表中找到一个非0数,并从数表中删去该数的所有倍数;依次类推,直到所找的小一个数等于n为止。 intfun(intn) {inta[10000],i,j,count=0; for(i=2;i<=n;i++)a[i]=i; i=2; while(i /**********found**********/ for(j=a[i]*2;j<=n;j+=___1___)填入: i。 a[j]=0; i++; /**********found**********/ while(___2___==0)填入: a[i]。 i++; } printf("\nTheprimenumberbetween2to%d\n",n); for(i=2;i<=n;i++) /**********found**********/ if(a[i]! =___3___)填入: 0。 {count++;printf(count%15? "%5d": "\n%5d",a[i]);} returncount; } main() {intn=20,r; r=fun(n); } 最新热门考题5: 甲乙丙丁四人同时开始放鞭炮,甲每隔t1秒放一次,乙每隔t2秒放一次,丙每隔t3秒放一次,丁每隔t4秒放一次,每人各放n次。 函数的功能是: 根据形参提供的值,求出总共听到多少次鞭炮声作为函数值返回。 /**********found**********/ #defineOK(i,t,n)((___1___%t==0)&&(i/t 填入: i。 intfun(intt1,intt2,intt3,intt4,intn) {intcount,t,maxt=t1; if(maxt if(maxt if(maxt count=1;/*给count赋初值*/ /**********found**********/ for(t=1;t i++。 { if(OK(t,t1,n)||OK(t,t2,n)||OK(t,t3,n)||OK(t,t4,n)) count++; } /**********found**********/ return___3___;填入: count。 } main() {intt1=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)必考点,谨记两个数组的赋值形式: a[j++]=a[i];或者为: a[j]=a[i];j++; (4)判断数组中元素是否为偶数: a[i]%2==0 (4)一维数组的排序个数如下: (红色部分常考) for(i=0;i for(j=i+1;j if(a[i]大于或小于a[j])其中if表达式中: 大于表示从大到小排序,小于表示从小到大排序。 (5)两个数据的交换格式: t=a;a=b;b=t; (6)两个数组元素的交换格式: t=a[i];a[i]=a[j];a[j]=t; (7)找最大值:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 语言 填空