c语言机试.docx
- 文档编号:23883282
- 上传时间:2023-05-21
- 格式:DOCX
- 页数:47
- 大小:26.78KB
c语言机试.docx
《c语言机试.docx》由会员分享,可在线阅读,更多相关《c语言机试.docx(47页珍藏版)》请在冰豆网上搜索。
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 请在程
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言