c语言机试.docx

上传人:b****0 文档编号:9889387 上传时间:2023-05-21 格式:DOCX 页数:47 大小:26.78KB
下载 相关 举报
c语言机试.docx_第1页
第1页 / 共47页
c语言机试.docx_第2页
第2页 / 共47页
c语言机试.docx_第3页
第3页 / 共47页
c语言机试.docx_第4页
第4页 / 共47页
c语言机试.docx_第5页
第5页 / 共47页
c语言机试.docx_第6页
第6页 / 共47页
c语言机试.docx_第7页
第7页 / 共47页
c语言机试.docx_第8页
第8页 / 共47页
c语言机试.docx_第9页
第9页 / 共47页
c语言机试.docx_第10页
第10页 / 共47页
c语言机试.docx_第11页
第11页 / 共47页
c语言机试.docx_第12页
第12页 / 共47页
c语言机试.docx_第13页
第13页 / 共47页
c语言机试.docx_第14页
第14页 / 共47页
c语言机试.docx_第15页
第15页 / 共47页
c语言机试.docx_第16页
第16页 / 共47页
c语言机试.docx_第17页
第17页 / 共47页
c语言机试.docx_第18页
第18页 / 共47页
c语言机试.docx_第19页
第19页 / 共47页
c语言机试.docx_第20页
第20页 / 共47页
亲,该文档总共47页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

c语言机试.docx

《c语言机试.docx》由会员分享,可在线阅读,更多相关《c语言机试.docx(47页珍藏版)》请在冰点文库上搜索。

c语言机试.docx

c语言机试

1.给定程序的功能是:

在x数组中放入n个采样值,计算并输出方差值。

N(XK-X')^2NXK

S=∑─────,其中X'=∑─

K=1NK=1N

例如n=8,输入:

193.199、195.673、195.757、196.051、196.092、196.596、196.579、196.763时,结果应为:

1.135901。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank15.c中。

不得增行或删行,也不得更改程序的结构!

#include

floatfun(floatx[],intn)

{intj;floatxa=0.0,s;

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

for(j=0;j

xa+=x[j]/n;

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

s=;

for(j=0;j

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

s+=(x[j]-xa)*(x[j]-xa)/___3___;

returns;

}

main()

{floatx[100]={193.199,195.673,195.757,196.051,196.092,196.596,196.579,196.763};

printf("%f\n",fun(x,8));

}

答案;第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[s=0;]

实际操作结果:

内容为[s=;]

第3处内容填写有误

第[3]处操作错误

题面要求操作:

内容为[s+=(x[j]-xa)*(x[j]-xa)/n;]

实际操作结果:

内容为[s+=(x[j]-xa)*(x[j]-xa)/___3___;]

2.在考生文件夹下的给定程序modi57.c中,函数fun的功能是:

将字符串tt中的小写字母改为对应的大写字母,其它字符不变。

例如,若输入"Ab,cD",则输出"AB,CD"。

请改正程序中的错误,使它能得出正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

#include

#include

char*fun(chartt[])

{

inti;

for(i=0;tt[i];i++)

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

if(('a'<=tt[i])&&(tt[i]<='z'))

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

tt[i]=+32;

return(tt);

}

main()

{

inti;

chartt[81];

system("cls");

printf("\nPleaseenterastring:

");

gets(tt);

printf("\nTheresultstringis:

\n%s",fun(tt));

}

答案;第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[tt[i]-=32;]

实际操作结果:

内容为[tt[i]=+32;]

3.请编写一个函数,用来删除字符串中的所有空格。

例如,输入"asdafaaz67",则输出为"asdafaaz67"。

注意:

部分源程序存在考生文件夹下的文件prog174.c中。

请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#include

#include

intfun(char*str)

{

 

}

main()

{

charstr[81];

intn;

system("cls");

printf("Inputastring:

");

gets(str);

puts(str);

fun(str);

printf("***str:

%s\n",str);

NONO();

}

NONO()

{

/*请在此函数内打开文件,输入调试数据,调用fun函数,

输出数据,关闭文件。

*/

charstr[81];

intn=0;

FILE*rf,*wf;

inti;

rf=fopen("b0803.in","r");

wf=fopen("b0803.out","w");

while(n<10){

fgets(str,80,rf);

for(i=0;*(str+i);i++);

fun(str);

fprintf(wf,"%s",str);

n++;

}

fclose(rf);

fclose(wf);

}

答案;本题的考核点是字符数组、循环语句。

解题思路:

通过for循环语句以及if语句,判断当前位置上的字符是否为空格(空格的ASCII码值为32),若是空格,再判断下一个字符是否为空格,若下一个字符不是空格,则将当前位置上的字符赋给上一个字符位置上;若下一个字符还是空格,则继续判断该字符的下一个字符,直至其下一个字符为非空格时重复上述赋值操作,最终以字符串结束标志"\0"结束循环。

intfun(char*str)

{inti,j;

for(i=0;*(str+i);i++)

if(*(str+i)==32)/*判断当前位置上的字符是否为空格(空格的ASCII码值为32)*/

{for(j=i+1;*(str+j);j++)

*(str+j-1)=*(str+j);/*删除空格*/

*(str+j-1)=0;/*以字符串结束标志"\0"结束循环*/

i=0;

}

}

4.给定程序的功能是计算scroe中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。

例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank30.c中。

不得增行或删行,也不得更改程序的结构!

答案;第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[if(score[i]

实际操作结果:

内容为[if(score[i]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[n=fun(score,9,below);]

实际操作结果:

内容为[n=fun(score,9,___2___);]

第3处内容填写有误

第[3]处操作错误

题面要求操作:

内容为[for(i=0;i

实际操作结果:

内容为[for(i=0;i

题目;#include

#include

intfun(intscore[],intm,intbelow[])

{

inti,j=0;

floataver=0.0;

for(i=0;i

aver/=(float)m;

for(i=0;i

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

if(score[i]

returnj;

}

main()

{inti,n,below[9];

intscore[9]={10,20,30,40,50,60,70,80,90};

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

n=fun(score,9,___2___);

printf("\nBelowtheaveragescoreare:

");

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

for(i=0;i

}

5.在考生文件夹下的给定程序modi80.c中,函数fun的功能是:

计算正整数num的各位上的数字之积,例如,若输入:

252,则输出应该是:

20。

若输入:

202,则输出应该是:

0。

请改正程序中的错误,使它能得出正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

#include

longfun(longnum)

{

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

longk;

do

{k*=num%10;

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

num\=10;

}while(num);

return(k);

}

main()

{longn;

system("cls");

printf("\Pleaseenteranumber:

");scanf("%ld",&n);

printf("\n%ld\n",fun(n));

}

答案;第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[longk=1;]

实际操作结果:

内容为[longk;]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[num/=10;]

实际操作结果:

内容为[num\=10;]

6.给定程序的功能是计算scroe中m个人的平均成绩aver,将低于aver的成绩放在below中,通过函数名返回人数。

例如,当score={10,20,30,40,50,60,70,80,90},m=9时,函数返回的人数应该是4,below={10,20,30,40}。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank30.c中。

不得增行或删行,也不得更改程序的结构!

#include

#include

intfun(intscore[],intm,intbelow[])

{

inti,j=0;

floataver=0.0;

for(i=0;i

aver/=(float)m;

for(i=0;i

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

if(score[i]

returnj;

}

main()

{inti,n,below[9];

intscore[9]={10,20,30,40,50,60,70,80,90};

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

n=fun(score,9,___2___);

printf("\nBelowtheaveragescoreare:

");

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

for(i=0;i

}

答案:

第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[if(score[i]

实际操作结果:

内容为[if(score[i]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[n=fun(score,9,below);]

实际操作结果:

内容为[n=fun(score,9,___2___);]

第3处内容填写有误

第[3]处操作错误

题面要求操作:

内容为[for(i=0;i

实际操作结果:

内容为[for(i=0;i

7.在考生文件夹下的给定程序modi80.c中,函数fun的功能是:

计算正整数num的各位上的数字之积,例如,若输入:

252,则输出应该是:

20。

若输入:

202,则输出应该是:

0。

请改正程序中的错误,使它能得出正确结果。

注意:

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include

#include

#include

longfun(longnum)

{

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

longk;

do

{k*=num%10;

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

num\=10;

}while(num);

return(k);

}

main()

{longn;

system("cls");

printf("\Pleaseenteranumber:

");scanf("%ld",&n);

printf("\n%ld\n",fun(n));

}

答案:

第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[longk=1;]

实际操作结果:

内容为[longk;]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[num/=10;]

实际操作结果:

内容为[num\=10;]

8.给定程序的功能是:

根据整型形参n,计算如下公式的值。

111

A1=1,A2=───,A3=───,……,An=────

1+A11+A21+An-1

例如,若n=10,则应输出:

0.618056。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank22.c中。

不得增行或删行,也不得更改程序的结构!

#include

floatfun(intn)

{

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

floatA=___1___;inti;

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

for(i=1;i<=___2___;i++)

A=1.0/(1+A);

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

___3___;

}

main()

{intn;

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("A%d=%f\n",n,fun(n));

}#include

floatfun(intn)

{

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

floatA=___1___;inti;

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

for(i=1;i<=___2___;i++)

A=1.0/(1+A);

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

___3___;

}

main()

{intn;

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("A%d=%f\n",n,fun(n));

}#include

floatfun(intn)

{

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

floatA=___1___;inti;

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

for(i=1;i<=___2___;i++)

A=1.0/(1+A);

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

___3___;

}

main()

{intn;

printf("\nPleaseentern:

");

scanf("%d",&n);

printf("A%d=%f\n",n,fun(n));

}

答案:

第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[floatA=1;inti;]

实际操作结果:

内容为[floatA=___1___;inti;]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[for(i=1;i<=n;i++)]

实际操作结果:

内容为[for(i=1;i<=___2___;i++)]

第3处内容填写有误

第[3]处操作错误

题面要求操作:

内容为[returnA;]

实际操作结果:

内容为[___3___;]

9.函数fun的功能是:

将两个两位数的正整数a、b合并形成一个整数放在c中。

合并的方式是:

将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。

例如,当a=45,b=12。

调用该函数后,c=2415。

注意:

部分源程序存在考生文件夹下的文件prog92.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

#include

#include

#include

intfun(inta,intb)

{

 

}

main()

{inta,b;longc;

system("cls");

printf("Inputa,b:

");

scanf("%d%d",&a,&b);

c=fun(a,b);

printf("Theresultis:

%ld\n",c);

NONO();

}

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*rf,*wf;

inti,a,b;longc;

rf=fopen("in6.dat","r");

wf=fopen("bd04.dat","w");

for(i=0;i<10;i++){

fscanf(rf,"%d,%d",&a,&b);

c=fun(a,b);

fprintf(wf,"a=%d,b=%d,c=%ld\n",a,b,c);

}

fclose(rf);

fclose(wf);

}

答案:

本题的考核点是求取整数相应位上的数值的算法。

解题思路:

可用整除和求余的运算求取整数各位上的数值。

方法是整除相应位上的位权值,再对其求余,余数即为相应位上的数值。

本评析仅供参考。

voidfun(inta,intb,long*c)

{

inta_up,a_low,b_up,b_low;

a_up=a/10;/*求正整数a的十位数*/

a_low=a%10;/*求正整数a的个位数*/

b_up=b/10;/*求正整数b的十位数*/

b_low=b%10;/*求正整数b的个位数*/

*c=b_low*1000+a_up*100+b_up*10+a_low;/*将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上*/

}

10.给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注:

圆面积公式为:

S=πr2,在程序中定义的变量名要与公式的变量相同)。

例如输入圆的半径值:

19.527输出为:

s=598.950017。

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:

源程序存放在考生文件夹下的blank13.c中。

不得增行或删行,也不得更改程序的结构!

#include

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

floatfun(float___1___)

{

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

return3.14159*___2___/2.0;

}

main()

{floatx;

printf("Enterx:

");

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

scanf("%f",___3___);

printf("s=%f\n",fun(x));

}

答案:

第1处内容填写有误

第[1]处操作错误

题面要求操作:

内容为[floatfun(floatr)]

实际操作结果:

内容为[floatfun(float___1___)]

第2处内容填写有误

第[2]处操作错误

题面要求操作:

内容为[return3.14159*r*r/2.0;]

实际操作结果:

内容为[return3.14159*___2___/2.0;]

第3处内容填写有误

第[3]处操作错误

题面要求操作:

内容为[scanf("%f",&x);]

实际操作结果:

内容为[scanf("%f",___3___);]

11.给定程序的功能是分别统计字符串中大写字母和小写字母的个数。

例如,给字符串ss输入:

AaaaBBb123CCccccd,

则输出结果应为:

upper=5,lower=9

请在程

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2