二级上级模拟题.docx
- 文档编号:27488296
- 上传时间:2023-07-02
- 格式:DOCX
- 页数:20
- 大小:19.25KB
二级上级模拟题.docx
《二级上级模拟题.docx》由会员分享,可在线阅读,更多相关《二级上级模拟题.docx(20页珍藏版)》请在冰豆网上搜索。
二级上级模拟题
实例:
填空题
给定程序的功能是计算并输出下列级数的前N项之和,直到大于Q为止,Q的值通过形参传入。
S=2+3/2+4/3+……(n+1)/n
例如,若Q的值为50.0,则函数值为50.416687。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
doublefun(doubleq)
{
intn;
doubles;
n=2;
s=2.0;
while(s___1___q)
{
s=s+(double)(n+1)/n;
___2___;
}
printf("n=%d\n",n);
___3___;
}
intmain()
{
printf("%f\n",fun(50));
return0;
}
第一套
填空题。
请补充FUN函数,FUN函数的功能是求10的阶乘。
注意:
部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include
longfun(intn)
{
if(___1___)
return(n*fun(___2___));
return___3___;
}
intmain()
{
printf("10!
=%ld\n",fun(10));
return0;
}
改错题:
87.下列给定程序中,函数fun的功能是:
给一维数组a输入任意4个整数,并按如下的规律输出。
例如输入1、2、3、4,程序运行后将输出以下方阵:
4123
3412
2341
1234
请改正函数fun中的错误,使它能得出正确的结果。
注意:
不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#defineM4
/********found********/
intfun(inta)
{
inti,j,k,m;
printf("Enter4number:
");
for(i=0;i scanf("%d",&a[i]); printf("\n\nTheresult: \n\n"); for(i=M;i>0;i--) { k=a[M-1]; /********found********/ for(j=M-1;j>0;j--) a[j]=a[j+1]; a[0]=k; for(m=0;m printf("%d",a[m]); printf("\n"); } } main() { inta[M]; fun(a); printf("\n\n"); } 编程题: 52.编写一个函数fun,它的功能是: 实现两个字符串的连接(不使用库函数strcat),即把p2所指的字符串连接到p1所指的字符串后。 例如,分别输入下面两个字符串: FirStString-- SecondString 则程序输出: FirstString--SecondString 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include #include voidfun(charp1[],charp2[]) { } main() { chars1[80],s2[40]; printf("Enters1ands2: \n"); scanf("%s%s",s1,s2); printf("s1=%s\n",s1); printf("s2=%s\n",s2); printf("Invokefun(s1,s2): \n"); fun(s1,s2); printf("Afterinvoking: \n"); printf("%s\n",s1); } 第二套 填空题 请在函数FUN的横线上填写若干表达式,使从键盘上输入一个整数N,输出斐波纳契数列。 斐波纳契数列是一种整数数列,其中每数等于前面两数之和,如: 011235813….. 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include intfun(intn); intmain() { inti,n=0; scanf("%d",&n); for(i=0;i printf("%d",fun(i)); return0; } intfun(intn) { if(___1___) return0; elseif(___2___) return1; else return___3___; } 改错题: 89.下列给定程序中,函数fun的功能是: 求整数x的y次方的低3位值。 例如,整数5的6次方为15625,此数的低3位值为625。 请改正函数fun中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include longfun(intx,inty,long*p) { inti; longt=1; /********found********/ for(i=1;i t=t*x; *p=t; /********found********/ t=t/1000; returnt; } main() { longt,r; intx,y; printf("\nInputxandy: "); scanf("%ld%ld",&x,&y); t=fun(x,y,&r); printf("\n\nx=%d,y=%d,r=%ld,last=%ld\n\n",x,y,r,t); } 编程题: 57.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 把指定分数范围内的学生数据放在b所指的数组中,分数范围内的学生人数由函数值返回。 例如,输入的分数是60和69,则应当把分数在60到69的学生数据进行输出,包含60分和69分的学生数据。 主函数中将把60放在low中,把69放在heigh中。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的 若干语句。 #include #defineN16 typedefstruct { charnum[10]; ints; }STREC; intfun(STREC*a,STREC*b,intl,inth) { } main() { STRECs[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85}, {"GA001",96},{"GA007",72},{"GA008",64},{"GA006",87}, {"GA015",85},{"GA013",94},{"GA012",64},{"GA014",91}, {"GA011",90},{"GA017",64},{"GA018",64},{"GA016",72}}; STRECh[N],tt; FILE*out; inti,j,n,low,heigh,t; printf("Enter2integernumberlow&heigh: "); scanf("%d%d",&low,&heigh); if(heigh { t=heigh; heigh=low; low=t; } n=fun(s,h,low,heigh); printf("Thestudent'sdatabetween%d----%d: \n",low,heigh); for(i=0;i printf("%s%4d\n",h[i].num,h[i].s); printf("\n"); out=fopen("out18.dat","w"); fprintf(out,"%d\n",n); n=fun(s,h,80,98); for(i=0;i for(j=i+1;j if(h[i].s>h[j].s) { tt=h[i]; h[i]=h[j]; h[j]=tt; } for(i=0;i fprintf(out,"%4d\n",h[i].s); fprintf(out,"\n"); fclose(out); } 第三套 填空题 请补充函数FUN(CHAR*S),该函数的功能是把字符串中的内容逆置. 例如: 字符串中原有的字符串为abcde,则调用该函数后,串中的内容为edcba. 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include #include #include #defineN81 voidfun(char*s) { inti,n=strlen(s)-1; chart; for(i=0;i { t=s[i]; ___2___; ___3___; } } intmain() { chara[N]; printf("Enterastring: "); gets(a); printf("Theoriginalstringis: "); puts(a); fun(a); printf("\n"); printf("Thestringaftermodified: "); puts(a); return0; } 改错题: 96.下列给定程序中,函数fun的功能是: 求s的值。 设 224262(2k)2 s=——×——×——×…×————— 1x33x55x7(2k-1)x(2k+1) 例如,当k为10时,函数值应为1.533852。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include #include /********found********/ fun(intk) { intn; floats,w,p,q; n=1; s=1.0; while(n<=k) { w=2.0*n; p=w-1.0; q=w+1.0; s=s*w*w/p/q; n++; } /********found********/ returns } main() { clrscr(); printf("%lf\n",fun(10)); } 编程题: 65.请编写函数fun,其功能是: 将两个两位数的正整数a、b合并形成一个整数放在c中。 合并的方式是: 将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的十位和千位上。 例如,当a=45,b=12,调用该函数后,c=2415。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include #include voidfun(inta,intb,long*c) { } main() { inta,b; longc; clrscr(); printf("Inputa,b;"); scanf("%d%d",&a,&b); fun(a,b,&c); printf("Theresultis: %ld\n",c); } 第四套 填空题 请补充函数FUN,它的功能是: 计算并输出N(包括N)以内能被3或7整除的所有自然数的倒数之和。 例如,在主函数中从键盘给N输入30后,输出为: S=1.226323。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include doublefun(intn) { inti; doublesum=0.0; for(i=1;___1___;i++) if(i%3==0___2___i%7==0) sum+=___3___/i; returnsum; } intmain() { intn; doubles; printf("\nInputn: "); scanf("%d",&n); s=fun(n); printf("\n\ns=%f\n",s); return0; } 改错题: 95.下列给定程序中,函数fun的功能是: 计算并输出下列级数的前N项之和SN。 ,直到 SN+1大于q为止,q的值通过形参传入。 234N+1 SN=-+-+-+…+- 123N 例如,若q的值为50.0,则函数值为49.394948。 请改正程序中的错误,使程序能输出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include doublefun(doubleq) { intn;doubles,t; n=2; s=2.0; while(s<=q) { t=s; /********found********/ s=s+(n+1)/n; n++; } printf("n=%d\n",n); /********found********/ returns; } main() {clrscr(); printf("%f\n",fun(50)); } 编程题: 60.请编写函数fun,该函数的功能是: 删去一维数组中所有相同的数,使之只剩一个。 数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 例如,若一维数组中的数据是: 2223445666677899101010。 删除后,数组中的内容应该是: 2345678910。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include #defineN80 intfun(inta[],intn) { } main() { inta[N]={2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,10},i,n=20; printf("Theoriginaldata: \n"); for(i=0;i printf("%3d",a[i]); n=fun(a,n); printf("\n\nThedataafterdeleted: \n"); for(i=0;i printf("%3d",a[i]); printf("\n\n"); } 第五套 填空题 给定程序的功能是求二分之一的圆面积,函数通过形参得到圆的半径,函数返回二分之一的圆面积(注: 圆面积公式为: S=,在程序中定义的变量名要与公式的变量相同)。 例如,输入圆的半径值: 19.527,输出为: S=598.950017。 请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。 试题程序: #include doublefun(doubler) { return3.14159*___1___/2.0; } intmain() { doublex; printf("Enterx: "); scanf("%lf",___2___); printf("s=%lf\n",fun(___3___)); return0; } 编程题: 63.请编写一个函数fun,它的功能是: 计算并输出给定整数n的所有因子(不包括1与自身)之和。 规定n的值不大于1000。 备注: 整数n的因子-n可以整除的数。 例如,若主函数从键盘给n输入的值为856,则输出为sum=763。 注意: 部分源程序给出如下。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。 #include intfun(intn) { } main() { intn,sum; printf("Inputn: "); scanf("%d",&n); sum=fun(n); printf("sum=%d\n",sum); } 改错题: 94.在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中。 下列给定程序中,函数fun的功能是: 计算数组元素中值为正数的平均值(不包括0)。 例如: 数组中元素中的值依次为39,-47,21,2,-8,15,0,则程序的运行结果为l9.250000。 请改正程序中的错误,使它能得出正确的结果。 注意: 不要改动main函数,不得增行或删行,也不得更改程序的结构! 试题程序: #include #include doublefun(intx[]) { /********found********/ intsum=0.0; intc=0,i=0; while(x[i]! =0) { if(x[i]>0) { sum+=x[i]; c++; } i++; } /********found********/ sum\=c; returnsum; } main() { intx[1000]; inti=0; printf("\nPleaseentersomedata(endwith0): "); do { scanf("%d",&x[i]); } while(x[i++]! =0); printf("%lf\n",fun(x)); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 上级 模拟
![提示](https://static.bdocx.com/images/bang_tan.gif)