份二级C语言填空题.docx

上传人:b****5 文档编号:7519492 上传时间:2023-01-24 格式:DOCX 页数:71 大小:87.96KB
下载 相关 举报
份二级C语言填空题.docx_第1页
第1页 / 共71页
份二级C语言填空题.docx_第2页
第2页 / 共71页
份二级C语言填空题.docx_第3页
第3页 / 共71页
份二级C语言填空题.docx_第4页
第4页 / 共71页
份二级C语言填空题.docx_第5页
第5页 / 共71页
点击查看更多>>
下载资源
资源描述

份二级C语言填空题.docx

《份二级C语言填空题.docx》由会员分享,可在线阅读,更多相关《份二级C语言填空题.docx(71页珍藏版)》请在冰豆网上搜索。

份二级C语言填空题.docx

份二级C语言填空题

2013年9月21日二级C语言

“无纸化”考试“填空题”复习资料

填空题复习方法:

1、填空题占“无纸化”考试中的18分,一般情况下有3个空,每个空6分。

经过总结和分析,这些题目可以根据“考点”进行分类,各位考生将下面的题目认真理解并准确记忆,则填空题中的18分一般可以轻松拿下。

2、做填空题,必须注意以下几点:

(1)读题目。

注意关键词和函数返回内容,例如:

“从小到大排序”、“将a的值赋值给b”等,这些提示可以让考生快速的分析出要填入的空。

(2)注意上下行的程序,因为有的答案就来自下一行的代码。

例如:

“交换的格式”就可以从上下行得到。

(3)必须重点分析:

函数调用、函数定义首部和函数返回值,这些部分考试常考。

(4)有的空比较难,因此考生只能死记,这个不要太纠结。

3、下面所列举的题目,对做题没有影响的代码已经省略,考生只用分析剩余代码即可将题目做出。

一、数学公式类题目

该类题目的分析、做题方法:

(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++){

/**********found**********/

for(___1___;j

j=2。

/**********found**********/

if(___2___%j==0)填入:

i。

break;

/**********found**********/

if(___3___>=i)填入:

j。

{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)找最大值:

if(max

找最小值:

if(min>a[i])min=a[i];

61、函数的功能是:

把形参a所指数组中的奇数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把偶数从数组中删除,奇数个数通过函数返回。

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i

/**********found**********/

if(a[i]%2==___1___)填入:

1。

a[i]%2结果为1

{表示a[i]是奇数。

/**********found**********/

a[j]=a[i];___2___;填入:

j++。

这个不多说。

}

/**********found**********/

return___3___;填入:

j。

}

main()

{intb[N]={9,1,4,2,3,6,5,8,7},i,n;

n=fun(b,N);

}

71、函数的功能是:

把形参a所指数组中的偶数按原顺序依次存放到a[0]、a[1]、a[2]、……中,把奇数从数组中删除,偶数个数通过函数返回。

#defineN9

intfun(inta[],intn)

{inti,j;

j=0;

for(i=0;i

/**********found**********/

if(___1___==0){填入:

a[i]%2。

/**********found**********/

___2___=a[i];j++;填入:

a[j]。

}

/**********found**********/

return___3___;填入:

j。

}

main()

{intb[N]={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。

#defineN9

voidfun(inta[],intn)

{inti,t,p;

/**********found**********/

p=(n%2==0)?

n/2:

n/2+___1___;填入:

1。

for(i=0;i

{

t=a[i];

/**********found**********/

a[i]=a[p+___2___];填入:

i。

/**********found**********/

___3___=t;填入:

a[p+i]。

交换,记住交换的

}形式即可做出来。

}

main()

{intb[N]={1,2,3,4,5,6,7,8,9},i;

fun(b,N);

}

99、函数的功能是:

把形参a所指数组中的最小值放在元素a[0]中,

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

当前位置:首页 > 工程科技 > 建筑土木

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1