计算机上机考试的一些大题.docx
- 文档编号:3549711
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:20.11KB
计算机上机考试的一些大题.docx
《计算机上机考试的一些大题.docx》由会员分享,可在线阅读,更多相关《计算机上机考试的一些大题.docx(22页珍藏版)》请在冰豆网上搜索。
计算机上机考试的一些大题
请编写函数fun(),对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII值码升序排列。
例如:
原来的字符串为BdsihAd,则排序后输出为BAdhisd。
注意:
部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
此题的源文件在考生目录下,文件名为:
prog1.c
#include
#include
#include
intfun(char*s,intnum)
{
}
main()
{
FILE*fp;
chars[10];
charb[10]="BdsihAd",c[10]="*a)0!
";
printf("PleaseInputastringincluding7Character:
");
gets(s);
fun(s,7);
printf("\n%s",s);
fp=fopen("out.dat","w");
fun(b,7);
fprintf(fp,"%s",b);
fun(c,7);
fprintf(fp,"%s",c);
fclose(fp);
}
本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:
modi1.c,
第1题分值为:
10分,
下列给定程序中函数fun()的功能是计算1/n!
的值。
例如:
给n输入5,则输出0.008333。
请改正程序中的错误,使它能得到正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
#include
#include
/**********************found***********************/
intfun(intn)
{doubleresult=1.0;
if(n==0)
return1.0;
while(n>1&&n<170)
/**********************found***********************/
result*=n++;
result=1/result;
returnresult;
}
main()
{
intn;
printf("InputN:
");
scanf("%d",&n);
printf("\n1/%d!
=%lf\n",n,fun(n));
}
本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:
modi1.c,
第1题分值为:
10分,
给定程序的功能是:
计算s=1+(1+2)+(1+2+3)+...+(1+2+...+n),期中n通过键盘输入
请改正程序中的错误,使它能计算出正确的结果。
注意不得增行或删行,也不得更改程序的结构!
注意不得增行或删行,也不得更改程序的结构!
程序中有两处错误。
#include"stdio.h"
main()
{
intn,i,j,f,s=0;
printf("请输入n:
\n");
scanf("%d",n);
for(i=1;i<=n;i++)
{
f=0
for(j=1;j<=i;j++)
f=f+j;
s=s+f;
}
printf("s=%d\n",s);
}
请编写一个函数doublefun(intn),求s=1!
+2!
+...+n!
n通过键盘输入,大小n不超过20,如输入3,输出结果应为9,函数的返回值为所求和。
注意:
部分源程序已给出。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
此题的源文件在考生目录下,文件名为:
prog1.c
#include
#include
doublefun(intn)
{
}
main()
{
FILE*wf;
intn,i,k=0;
doubles,bb[10];
printf("请输入n:
\n");
scanf("%d",&n);
s=fun(n);
printf("和为:
%f",s);
printf("\n");
/******************************/
wf=fopen("out.dat","w");
for(i=1;i<=10;i++)
bb[k++]=fun(i);
for(k=0;k<10;k++)
fprintf(wf,"%f",bb[k]);
fclose(wf);
/*****************************/
}
本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:
modi1.c,
第1题分值为:
10分,
下列给定程序中,函数fun()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。
例如:
a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为fdAADf。
请改正程序中的错误,使它能得到正确结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构。
#include
#include
voidfun(char*p,char*q,char*c)
{intk=0;
while(*p||*q)
/**********************found***********************/
{if(*p<=*q)
c[k]=*q;
elsec[k]=*p;
if(*p)p++;
if(*q)q++;
/**********************found***********************/
k++
}
}
main()
{chara[10]="fshADfg",b[10]="sdAEdi",c[80]={'\0'};
fun(a,b,c);
printf("Thestringa:
");puts(a);
printf("Thestringb:
");puts(b);
printf("Theresult:
");puts(c);
}
请编写一个函数fun(),它的功能是:
比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较短的字符串。
若两个字符串长度相等,则返回第1个字符串。
例如,输入abcde
注意:
部分源程序已给出
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
此题的源文件在考生目录下,文件名为:
prog1.c
#include
char*fun(char*s,char*t)
{
}
main()
{
FILE*wf;
chara[20],b[10],*p="nanjing123",*q="nanchang";
inti;
printf("Input1thstring:
");
gets(a);
printf("Input2thstring:
");
gets(b);
printf("%s",fun(a,b));
/******************************/
wf=fopen("out.dat","w");
fprintf(wf,"%s",fun(p,q));
fprintf(wf,"%c",'\n');
fclose(wf);
/*****************************/
}
本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。
不得增行与减行,改正后使程序运行正确存盘即可。
改错题的源文件分为:
modi1.c,
第1题分值为:
10分,
给定程序的功能是:
计算某足球队在联赛中的积分等决定名次的参数。
设已知某队在m场比赛(2≤m≤50)中各场的进球数和失球数(存入组长组xx),则可算出它的积分(胜一场得3分,平一场得1分,负一场得0分)、净胜球数n和总进球数与总失球数之比r。
例如:
若输入“4”和31、11、20、12、12、12、12、12,则应输出
...
Thetotalmark:
8
Thenetscore:
28
Therationofwinvslost:
1.60
请改正程序中的错误,使它能计算出正确的结果。
注意不得增行或删行,也不得更改程序的结构!
#include"conio.h"
#include"stdio.h"
structwinlost
{intwin;intlost;};
structresult
{intt;intn;floatr;};
voidtotal(intm,structwinlostxx[],structresult*final)
{
inti;
final->t=0;
final->n=0;
final->r=0.0;
for(i=0;i {if(xx[i].win>xx[i].lost) /********found**********/ final->t+=2; else /********found**********/ if(xx[i].win=xx[i].lost) final->t+=1; final->n+=xx[i].win; final->r+=xx[i].lost; } i=final->n; final->n=i-final->r; final->r=i/final->r; } voidmain(void) { inti,m; structwinlostaa[50]; structresultlast; printf("\nHowmanysimesofcompetetionclosetheteamtale: "); scanf("%d",&m); printf("\cPleaseenter%dresultsofeachcompetition",m); printf("(winlost): \n"); for(i=0;i scanf("%d%d",&(aa[i].win),&(aa[i].lost)); total(m,aa,&last); printf("\nTheresultofeachcompetition: "); for(i=0;i printf("\nNo.%2d: %2d(win: lost)",i+1,aa[i].win,aa[i].lost); printf("\n\nThetotalmark: %2d",last.t); printf("\nThenetscore: %2d",last.n); printf("\nTherationofwinvslost: %5.2f",last.r); } 请编写函数fun,其功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=16,b=35,调用该函数后,c=5361。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include"stdio.h" voidfun(inta,intb,long*c) { } main() { FILE*wf; inta,b,i; longc; printf("Inputa,b;"); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); wf=fopen("out.dat","w"); for(i=10;i<=90;i++) {fun(i,100-i,&c); fprintf(wf,"%ld",c); } fclose(wf); } 本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。 不得增行与减行,改正后使程序运行正确存盘即可。 改错题的源文件分为: modi1.c, 第1题分值为: 10分, 下列给定程序中,函数fun()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第一个字符放在第0位中)。 例如: 字符串中的数据为ADFESHDI,则输出应当是AFESDI。 请改正程序中的错误,使它能得到正确结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构。 #include #include #include #defineN80 /**********************found***********************/ voidfun(chars,chart[]) { inti,j=0; for(i=0;i /**********************found***********************/ if(i%2=0||s[i]%2! =0) t[j++]=s[i]; t[j]='\0'; } main() { chars[N],t[N]; printf("\nPleaseenterstrings: "); gets(s); fun(s,t); printf("\nTheresultis: %s\n",t); } 请编写函数voidfun(intx,intpp[],int*n),它的功能是: 求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。 例如,若x中的值为30,则有4个数符合要求,它们是1,3,5,15,它们都能被30整除且不是偶数。 注意: 部分源程序已给出 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include #include voidfun(intx,intpp[],int*n) { } main() { FILE*wf; intx,aa[1000],n,i; printf("\nPleaseenteranintegernumber: \n"); scanf("%d",&x); fun(x,aa,&n); for(i=0;i printf("%d",aa[i]); printf("\n"); /******************************/ wf=fopen("out.dat","w"); fun(100,aa,&n); for(i=0;i fprintf(wf,"%d",aa[i]); fclose(wf); /*****************************/ } 本改错题共有1道,改错题源文件在考生目录中,请在******下一行将错误改正。 不得增行与减行,改正后使程序运行正确存盘即可。 改错题的源文件分为: modi1.c, 第1题分值为: 10分, 给定程序的功能是: 计算某足球队在联赛中的积分等决定名次的参数。 设已知某队在m场比赛(2≤m≤50)中各场的进球数和失球数(存入组长组xx),则可算出它的积分(胜一场得3分,平一场得1分,负一场得0分)、净胜球数n和总进球数与总失球数之比r。 例如: 若输入“4”和31、11、20、12、12、12、12、12,则应输出 ... Thetotalmark: 8 Thenetscore: 28 Therationofwinvslost: 1.60 请改正程序中的错误,使它能计算出正确的结果。 注意不得增行或删行,也不得更改程序的结构! #include"conio.h" #include"stdio.h" structwinlost {intwin;intlost;}; structresult {intt;intn;floatr;}; voidtotal(intm,structwinlostxx[],structresult*final) { inti; final->t=0; final->n=0; final->r=0.0; for(i=0;i {if(xx[i].win>xx[i].lost) /********found**********/ final->t+=2; else /********found**********/ if(xx[i].win=xx[i].lost) final->t+=1; final->n+=xx[i].win; final->r+=xx[i].lost; } i=final->n; final->n=i-final->r; final->r=i/final->r; } voidmain(void) { inti,m; structwinlostaa[50]; structresultlast; printf("\nHowmanysimesofcompetetionclosetheteamtale: "); scanf("%d",&m); printf("\cPleaseenter%dresultsofeachcompetition",m); printf("(winlost): \n"); for(i=0;i scanf("%d%d",&(aa[i].win),&(aa[i].lost)); total(m,aa,&last); printf("\nTheresultofeachcompetition: "); for(i=0;i printf("\nNo.%2d: %2d(win: lost)",i+1,aa[i].win,aa[i].lost); printf("\n\nThetotalmark: %2d",last.t); printf("\nThenetscore: %2d",last.n); printf("\nTherationofwinvslost: %5.2f",last.r); } 请编写函数fun,其功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=16,b=35,调用该函数后,c=5361。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include"stdio.h" voidfun(inta,intb,long*c) { } main() { FILE*wf; inta,b,i; longc; printf("Inputa,b;"); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); wf=fopen("out.dat","w"); for(i=10;i<=90;i++) {fun(i,100-i,&c); fprintf(wf,"%ld",c); } fclose(wf); } 请编写函数fun,其功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。 例如,当a=16,b=35,调用该函数后,c=5361。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include"stdio.h" voidfun(inta,intb,long*c) { } main() { FILE*wf; inta,b,i; longc; printf("Inputa,b;"); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); wf=fopen("out.dat","w"); for(i=10;i<=90;i++) {fun(i,100-i,&c); fprintf(wf,"%ld",c); } fclose(wf); } 请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。 二维数组中的数已在主函数中给出。 注意: 部分源程序已给出。 请勿改动主函数main和其他函数中的任何内容,否则得不到成绩后果自负,仅在函数fun的花括号中填入所编写的若干语句。 此题的源文件在考生目录下,文件名为: prog1.c #include #include #defineM3 #defineN4 voidfun(inttt[M][N],intpp[N]) { } main() { FILE*wf
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 上机 考试 一些