二级C语言上机题题库大全_第1页
二级C语言上机题题库大全_第2页
二级C语言上机题题库大全_第3页
二级C语言上机题题库大全_第4页
已阅读5页,还剩282页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

L9HGN-J9NZ6-NZ2ZR-ZH2BHM1套上机考试试题1.填空题.下列给定程序中,函数firn。的作用是:将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Ab,cD”,则输出“ab,cd”。试题程序:#include<stdio.h>#include<string.h>#include<conio.h>char1fun(chartt[])(inti;for(i=0;tt[i];i++)(if{(tt[i]>='A')&&(tt[i]<= 2))tt[i]+=32;)return(tt);}main()(chartt[81];printf("\nPleaseenterastring:n);gets(tt);printf("\nTheresultstringis:\n%sn,fun(3));).函数fim()的功能是:将ss所指字符串中所有下标为奇数位置的字母转换为大写(若该位置上不是字母,则不转换)。例如,若输入abc4Efjg,则应输出aBc4EFg。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*ss)(inti;for(i=0;ss[i]!=,\0,;i++)if(i%2==l&&ss[i]>=,a,&&ss[i]<='z1)}main()(2*wf;chartt[81],s[10]="abc4Efg"3printf("\nPleaseenteranstringwithin80characters:\nn);gets(tt);printf(n\n\nAfterchanging,thestring\n%sn,tt);fun(tt);printf("\nbecomes\n%s\nn,tt);wf=fopen("out.datn,nwn);fun(s);fprintf(wf,n%sM,s);fclose(wf);.改错题下列给定程序中,函数fim()的功能是逐个比较a,b两个字符串对应位置中的字符,把ASCII值小或相等的字符依次存放到c数组中,形成一个新的字符串。例如:a中的字符串为fshADfg,b中的字符串为sdAEdi,则c中的字符串应为ftiAADf。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<stdio.h>#include<string.h>voidfun(char*p,char*q,char*c){intk=0;while(*pII*q){if(*p<=*q)c[k]=*q;elsec[k]=*p;if(*p) p++;if(*q)q++;k++main(){chara[10]="fshADfg",b[10]=nsdAEdiMrc[80]={*\0*};fun(a,b,c);printf("Thestringa:M);puts(a);printf("Thestringb:w);puts(b);printf("Theresult:");puts(c);.编程题请编写函数ftm,其功能是将两个两位数的正整数a、b合并形成•个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数个位和十位上,b数的十位和个位数依次放在c数的百位和千位上。例如,当a=16,b=35,调用该函数后,c=5361。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数firn的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>voidfun(inta,intb,long*c)(main()(inta,b;longc;clrscr();printf("Inputa,b;n);scanf(w%d%dn,&a,&b);fun(a,b,&c);printf("Theresultis:%ld\nn,c);第2套上机考试试题1.填空题.卜.列给定程序中,函数fim()的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。试题程序:#include<stdio.h>#defineSIZE20fun(double*s,double*w){intk,i;doublesum;for(k=2,i=0;i<SIZE;i++){s[i]=k;k+=2;}sum=0.0;for(k=0,i=0;i<SIZE;i++){sum+=s[i];if((i+1)15==0){w[k]=sum/5;sum=0;k++;})2k;)main(){doublea[SIZE],b[SIZE/5];inti,k;k=fun(a,b);printf("Theoriginaldata:\nM);for(i=0;i<SIZE;i++){if(i%5==0)printf("\nn);printf("%4.0f"ra[i]);)printf("\n\nTheresult:\n");for(i=0;i<k;i++)printf(n%6.2f",3);printf("\n\n");.函数firn。的功能是:求出一个2XM整型二维数组中最大元素的值,并将此值返回调用函数。试题程序:#defineM4#include<stdio.h>fun(int1)(intI,j,max=2;for(i=0;i<2;i++)for(j=0;j<M;j++)if(max3a[i][j])max=a[i][j];returnmax;

main()(FILE*wf;intarr[2][M]={5,8,3,45,76,-4,12,82};printf("max=%d\n",fun(arr));wf=fopen("out.dat","w");fprintf(wf,"%dwrfun(arr));fclose(wf);}.改错题下列给定程序中,函数fiin()的功能是根据整型形参m,计算如下公式的值。y=l-l/(2X2)+1/(3X3)-l/(4X4)+-+(-l)(m+1)/(mXm)例如:m中的值为5,则应输出0.838611。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<conio.h>#include<stdio.h>doublefun(intm){doubley=l.0;/**********************found***********************/intj=l;inti;for(i=2;i<=m;i++)(j=-l*j;/★★********************founci****************★******/y+=l/(i*i);}return(y);}main()(intn=5;clrscr();printf(n\nTheresultis%lf\nn,fun(n));).编程题请编一个函数void tt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最大元素,并依次放入pp所指的一维数组中。二维数组中的数已在主函数中给出。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include#include#define#define<conio#include#include#define#define<conio.h><stdio.h>voidfun(int(34tt[M][N],intpp[N])}main()(intt[M][N]={{68,32,54,12},{14,24,88,58),{42,22,44,56)};intp[N],1,j,k;clrscr();printf("Theriginaldatais:\n");for(i=0;i<M;i++)(for(j=0;j<N;j++)printf("%6d",t[i][j]);printf(n\nn);|fun(t,p);printf(w\nTheresultis:\n");for(k=0;k<N;k++)printf(M%4d'\p[k]);printf(n\nM);}第3套上机考试试题1.填空题1.下列给定程序中,函数fiin()的功能是:将s所指字符串中的字母转换为按字母序列的后续字母(但Z转化为A,z转化为a),其他字符不变。试题程序:#include<stdio.h>#include<ctype.h>#include<conio.h>voidfun(char*s){while(1){if(*s>='A,&&*s<=,Z'||*s>=,a'&&*s<=,z,){if(*s=='Z,) *s='A';elseif(*s==*z1)*s=1a*;else*s+=2;)3;})main(){chars[80];printf("\nEnterastringwithlength<80:\n\nM);gets(s);printf("\nThestring:\n\n");puts(s);fun(s);printf("\n\nTheCords:\n\nn);puts(s);}2.函数fiin()的功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全部删除,串中剩余字符所形成的一个新申放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG123456,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的下标为奇数,因此也应当删除;而字符2的ASCII码值为偶数,所在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后t所指的数组中的内容应是246。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[])(int1,j=0;for(i=0;s[i]!=1;i++)if(i%2==02s[i]%2==0)t[j++]«s[i];3)main()(FILE*wf;chars[100],t[100];printf("\nPleaseenterstringS:scanf(n%snfs);fun(s,t);printf("\nTheresultis:%s\nn,t);wf=fopen(nout.dat",nwn);fun("ABCDEFG123456nrt);fprintf(wf,n%sM,t);fclose(wf);}.改错题下列给定程序中,函数firn的功能是按以下递归公式求函数值。Fun(n)={一(1)x2例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>fun(intn);(intc;/★★★★★★★★★★★★★★★★★★★★★★^QUJ-J^J*******************,)if(n=l)c=15;elsec=fun(n-1)*2;return(c);main()(intn;printf("Entern:n);scanf("%d",&n);printf("Theresult:%d\n\n"zfun(n));.编程题请编写函数对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCH值码升序排列。例如:原来的字符串为BdsihAd,则排序后输出为BAdhisd。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<ctype.h>#include<conio.h>intfun(char*srintnum)(|main()(chars[10];clrscr();printf("输入7个字符的字符串:“);gets(s);fun(s,7);printf(n\n%s",s);第4套上机考试试题1.填空题.卜,列给定程序中函数fiin()的功能是:将长整型数中每一位上为奇数的数依次取出,构成一个新数放在t中。高位仍在高位,低位仍在低位。例如当s中的数为87653142时,t中的数为7531.试题程序:#include<stdio.h>#include<conio.h>voidfun(longs,long*t){intd;longsl=l;*t=0;while(s>0){d=s110;if(d%2!=0){*t=d*sl+*t;sl*=2;)s/=3;))main(){longs,t;clrscr();printf(n\nPleaseenters:n);scanf("%ldn,&s);fun(s,&t);printf("Theresultis:%ld\n",t);.函数fUnO的功能是:将s所指字符串中除了下标为偶数、同时ASCII码值为奇数的字符之外,其余的所有字符都删除,中中剩余字符所形成的一个新审放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFG12345,其中字符B的ASCII码值为偶数,所在元素的下标为奇数,因此必须删除:而字符A的ASCII码值为奇数,所在数组中的下标为偶数,因此不应当删除,其他依次类推。最后t所指的数组中的内容应是ACEG。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>voidfun(char*s,chart[])(int1,j=0;for(i=0;s[i]!=1;i++)(if(i%2==0&&s[i]%220)t[j++]=s[i];)3main()(FILE*wf;chars[100]rt[100];printf("\nPleaseenterstringS:")scanf("%s",s);fun(s,t);printf(w\nTheresultis:%s\nn,t);wf=fopen(wout.dat","w");fun("ABCDEFG12345",t);fprintf(wf,"%sM,t);fclose(wf);.改错题下列给定程序中函数fim()的功能是计算1/n!的值。例如:给n输入5,则输出0.008333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<stdio.h>#include<conio.h>/★★★*★★★********★★*****found***********************/intfun(intn){doubleresult=1.0;if(n==0)return1.0;while(n>l&&n<170)/★★★★★★★★★★★*★***★★**★★found***********************/result*=n++;result=l/result;returnresult;main()(intn;printf("InputN:M);scanf(n%dn,&n);printf(n\nl/%d!=%lf\n"rnrfun(n));}.编程题编写函数fijn(),它的功能是求n以内(不包括n)同时能被5与11整除的所有自然数之和的平方根s,并作为函数值返回。例如:n为1000时,函数值应为s=96.979379。注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数firn的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<math.h>#include<stdio.h>doublefun(intn)(}main()(clrscr();printf(Ms=%f\n",fun(lOOO));}第5套上机考试试题.填空题1.卜.列给定的程序中,fun()函数的功能是:将p所指字符串中每个单词的最后一个字母改成大写(这里的“单词”是指有空格隔开的字符串).例如,若输入:Iamastudenttotaketheexamination则应输出:IaMAstudenTtOtakEthEexaminatioN试题程序:#include<conio.h>#include<ctype.h>#include<stdio.h>#include<string.h>voidfun(char*p)(intk=0;for(;*p;p++)if(k)(if(*p=='»)(;)=toupper(*(p-1));}}elsek=l;}main(){charchrstr[64];intd;printf(n\nPleaseenteranEnglishsentencewithin63letters:M;gets(chrstr);d=strlen(chrstr);chrstr[d]=1 ;chrstr[d+1]=0;printf(n\nBoforechanging:\n%sn,chrstr);;printf(n\nAfterchanging:\n%snzchrstr);}.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,函数fim()的功能是:把分数最高的学生数据放在h所指的数组中。注意:分数高的学生可能不只一个,函数返回分数最高学生的人数。试题程序:#include<stdio.h>#define1 16typedef2{charnum[10];ints;}STRUC;intfun(STRUC*a,STRUC*b)(inti,j=0,max=a[0].s;for(i=0;i<N;i++)if(max<a[i].s)max=a[i].s;for(i=0;i<N;i++)if(max==a[i].s)b[j3]=a[i];returnj;)main()(STRUCs[N]={{MGA005n,85},{MGA003n,76}r{MGA002",69}r{"GA004",85},{"GA001M,91},{”GA007”,72},{"GA008",64},{“GA006”,87},{"GA015M,85},{"GA013",91},{MGA012"z64},{"GA014",91),{"GA011",66},{"GA017",64},{MGA018n,64},{“GA016",72}};STRUCh[N];inti,n;FILE*out;n=fun(s,h);printf("The%dhighestscore:\n",n);for(i=0;i<n;i++)printf(M%s%4d\nn,h[i].num,h[i].s);printf("\nM);out=fopen(Mout45.dat","w");fprintf(out,w%d\n",n);for(i=0;i<n;i++)fprintf(out,"%4d\nn,h[i].s);fclose(out);.改错题下列给定程序中函数ftm()的功能是计算正整数num的各位上的数字之平方和。例如:输入352,则输出应该是38;若输入328,则输出应该是77。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>longfun(longnum)(/**********************founcj***********************/longk=l;do(k+=(num%10)*(num%10);num/=10;}while(num)return(k);)main()(longn;clrscr();printf(n\Pleaseenteranumber:n);scanf("%ld"r&n);printf("\n%ld\n"rfun(n));}.编程题请编写函数它的功能是求Fibonacci数列中小于t的最大的一个数,结果由函数返回。其中Fibonacci数列F(n)的定义为F(0)=0,F(l)=l

F(n)=F(n-l)+F(n-2)例如:t=1000时,函数值为987a注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include <math.h>#include<stdio.h>intfun(intt)(|main()(intn;clrscr();n=1000;printf(nn=%d,f=%d\nM,nzfun(n));

第6套上机考试试题1.填空题1.下列给定程序中,函数fi)n()的功1.下列给定程序中,函数fi)n()的功能是:试题程序:#include#include#include#include#include#defineN<conio.h><string.h><stdio.h>80intfun(char*s,char*t){intn;char*p,*r;n=0;while(*s){P=s;r=t;while(*r)if(*r==*p){r++;elsebreak;if(*r==2)n++;3returnn;main(){chara[N],b[N];intm;printf("XnPleaseenterstringa:n);gets(a);printf("XnPleaseentersubstringb:n);gets(b);m=fun(a,b);printf(n\nTheresultis:m=%d\nnzm);.函数ftm()的功能是用来删除字符串中的所有空格。例如:输入asdafaaz67,则输出为asdafhaz67。试题程序:#include<stdio.h>#include<ctype.h>#include<conio.h>intfun(char*str)(inti,j=0;for(i=0;str[i]!=1;i++)if(str[i]!=,')str[j++]=2;=>\0';}main()(FILE*wf;

charstr[81],*s="asdafaaz67";printf("Inputastring:n);gets(str);puts(str);fun(str);printf("***str:%s\nn,str);wf=fopen("out.datn,nwn);fun(s);fprintf(wf,n%s",s);fclose(wf);}.改错题下列给定程序中,函数fim()的功能是将字符串s中位于偶数位置的字符或ASCII码为奇数的字符放入字符串t中(规定第一个字符放在第0位中)。例如:字符串中的数据为ADFESHDL则输出应当是AFESDI。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include#include#include#define/★★★★★★★<conio#include#include#include#define/★★★★★★★<conio.h><stdio.h><string.h>N80*****found***********************voidfun(chars,chart[])(inti,j=0;for(i=0;i<strlen(s);i++)/★★***★**★★★*★★★★★★★*★★found***********************/if(i%2=0||s[i]%2!=0)

t[j++]=s[i];t[j]=,\0»;}main()(chars[N],t[N];clrscr();printf("\nPleaseenterstrings:n);gets(s);fun(s,t);printf("\nTheresultis:%s\nn,t);).编程题请编写一个函数firn。,它的功能是计算并输出给定整数n的所有因子(不包括1与自身)的平方和(规定n的值不大于100)。例如:主函数从键盘给输入n的值为56,则输出为sum=l113。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>longfun(intn)main()(intn;longsum;printf("Inputn:M);scanf&n);sum=fun(n);printf(nsum=%ld\nnzsum);第7套上机考试试题1.填空题.下列给定程序中,函数fiin()的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。例如变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。试题程序:#include<conio.h>#include<stdio.h>intfun(int*x,inty)(1t;t=*x;*x=y;return(t) 2}main(){inta=3rb=8;printf("%d%d\nnza,b);b=fun(3,b);printf(w%d%d\n”,a,b);.某学生的记录由学号、8门课成绩和平均分组成,学号和8门课的成绩已在主函数中给出。函数fun()的功能是:求出该学生的平均分放在记录的ave成员中。请自己定义正确的形参。例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.8750试题程序:#include<stdio.h>#defineN8typedefstruct{charnum[10];doubles[N];doubleave;}STRUC;voidfun()(inti;p->ave=1;for(i=0;i<N;i++)p->ave=p->ave+p->s[i];p->ave=2;}main()(FILE*wf;STRUCs={"GAO05”,85.5,76,69.5,85,91,72,64.5,87.5};inti;fun(3);printf("The%s*sstudentdata:\n",s.num);for(i=0;i<N;i++)printf(M%4.If\nM,s.s[i]);printf(n\nave=%7.3f\n",s.ave);wf=fopen("out.dat",nwn);fprintf(wf,"ave=%7.3fn,s.ave);fclose(wf);|.改错题下列给定程序中,函数fiin()的功能是找出100〜n(不大于1000)之间百位数字加十位数字等了个位数字的所有整数,把这些整数放在s所指的数组中,个数作为函数值返网。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<stdio.h>#defineN100intfun(int*s,intn)(inti,j,k,a,b,c;j=0;for(i=100;i<n;i++)(/**********************founcl***********************/k=n;a=k%10;k/=10;b=k%10;c=k/10;if(a==b+c)/**********************founcl***********************/s[j]=i;}returnj;main()(inta[N],n,num=0,i;do{printf(M\nEntern(<=1000):n);scanf(n%d",&n);

while(n>1000);num=fun(a,n);printf(n\n\nTheresult:\nM);for(i=0;i<num;i++)printf("%5d'\a[i]);printf(n\n\nn);.编程题程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N],intn),该函数的功能是使数组左卜半三角元素中的值加l:no例如:若n的值为3,a数组中的值为a=254169537则返回主程序后a数组中的值应为5544998610注意:部分源程序给出如下。请勿改动上函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include试题程序:#include#include#include#define<stdio.h><conio.h><stdlib.h>N5fun(inta[][N],intn)main()(inta[N][N],n,i,j;clrscr();printf(n*****Thearray*****\n");for(i=0;i<N;i++) /*产生一个随机5*5矩阵★/(for(j=0;j<N;j+4-)(3[i][j]=rand()%10;printf(,,%4d,,za[i][j]);}printf(n\n");}don=rand()%10; /*产生一个小于5的随机数n*/while(n>=5);printf("n=%4d\n"rn);fun(a,n);printf(W*****THERESULT*****\n");for(i=0;i<N;i++)for(j=0;j<N;j++)printf(w%4dn,a[i][j]);printf(n\nn);第8套上机考试试题1.填空题.下列给定程序中fim()函数的功能是:将n个无序整数从小到大排序。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>fun(intnrint*a){inti,j,prt;for(j=O;j<1;j++){P=j;for(i=2;i<n;i++)if(a[p]>a[i])p=i;if(p!=j){t=a[j];a[j]=a[p];a[p]=t;}|putarr(intn,int*z){inti;for(i=l;i<=n;i++,3){printf(n%4d",*z);if(!(i%10))printf(n\nM);}printf(n\nn);}main(){intaa[20]={9,3,0,4,l,2,5,6,8,10,7),n=ll;printf(n\n\nBeforesorting%dnumbers:\n",n);putarr(n,aa);fun(n,aa);printf(n\nAftersorting%dnumbers:\nn,n);putarr(n,aa);}.函数fim()的功能是:求出ss所指字符串中指定字符的个数,并返口|此值。例如,若输入字符串123412132,输入字符1,则输出3.试题程序:#include<conio.h>#include<stdio.h>]M81intfun(char*ss,charc)(inti=0;for(;*ss2 1\0*;ss++)if(*ss==c)i++;return3;main()(FILE*wf;chara[M],ch;printf("\nPleaseenterastring:H;gets(a);printf(n\nPleaseenterachar:");ch=getchar();printf(n\nThenumberofthecharis:%d\nM,fun(a,ch));wfopen(Mout.dat","w");fprintf(wf,"%dn,fun("123412132",1I1));fclose(wf);).改错题下列给定程序中,函数fiin()的功能是求出数组中最小数和次最小数,并把最小数和a[0]中的数时调,次最小数和a[l]中的数对调。请改正程序中的错误,使它能得到正确结果.注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<conio.h>#include<stdio.h>#defineN20voidfun(int*a,intn)(inti,m,t,k;i**********************found***********************/for(i=0;i<n;i++)(m=i;for(k=i;k<n;k++)if(a[k]<a[m])/**********************found***********************/k=m;t=a[i];a[i]=a[m];a[m]=t;}main(){intx,b[N]={ll,5,12,0,3,6,9,7,10,8}rn=10,i;clrscr();for(i=0;i<n;i++)printf(n%d\b[i]);printf(n\nM);fun(b,n);for(i=0;i<n;i++)printf(M%d",b[i]);printf(n\nM);.编程题m个人的成绩存放在score数组中,请编写函数它的功能是将高于平均分的人数作为函数值返回,将高于平均分的分数放在up所指的数组中。例如,当score数组中的数据为24,35,88,76,90,54,59,66,96时,函数返回的人数应该是5,up中的数据应为88,76,90,66,96.注意:部分源程序给出如下.请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>intfun(intscore[]tintm,intup[])(}main()(inti,n,up[9];intscore[9]={24,35,88,76,90,54,59,66,96);clrscr();n=fun(score,9,up);printf(n\nuptotheaveragescoreare:");for(i=0;i<n;i++)printf(w%dMrup[i]);第9套上机考试试题1.填空题1.N个有序整数数列已放在维数组中,给定下列程序中,函数fim()的功能是:利用折半查找算法查找整数m在数组中的位置。若找到,则返回其下标值;反之,则返回-1.折半查找的基木算法是:每次查找前先确定数组中待查的范围:low和high(low<high),然后把m与中间位置(mid)中元素的值进行比较。如果m的值大于中间位置元素中的值,则下次的查找范围放在中间位置之后的元素中;反之,下次查找范围落在中间位置之前的元素中。直到low>high,查找结束。试题程序:#include<stdio.h>#defineN10intfun(inta[]zintm){intlow=0,high=N-lrmid;while(low<=high){mid=1;if(m<a[mid])high=2;elseif(m>a[mid])low=mid+l;elsereturn(mid);}3(-1);}main(){inti,a[N]={-3,4,7,9,13,24,67,89,100,180},k,m;printf(”a数组中的数据如下:”);for(i=0;i<N;i++)printf(n%d",a[i]);printf(MEnterm:");scanf(**%dw,&m);k=fun(a,m);if(k>=0)printf("m=%d,index=%d\n",m,k);elseprintf(nNotbefound!\nn);}.函数firn。的功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0至iJp(pWnJ)的数组元素平移到数组的最后。例如,一维数组中的原始内容为1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,p的值为3。移动后,一维数组中的内容应为5,6,7,8,9,10,1L12,13,14,15,1,2,3,4。试题程序:#include<stdio.h>#defineN80voidfun(int*w,intp,intn)(intfor(i=0;i<=1;i++){t=2;for(j=l;j<n;j++)w[j-l]=w[j];w[j-l]=t;)}main()(FILE*wf;inta[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15},b[N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};inti,p,n=15;printf("Theoriginaldata:\nM);for(i=0;i<n;i++)printf("%3dn,a[i]);printf(n\n\nEnterp:n);scanf("%d"r3);fun(a,p,n);printf("\nThedataaftermoving:\n");for(i=0;i<n;i++)printf(0%3d"za[i]);printf("\n\n");wf=fopen(nout,”w”);fun(b,3,n);for(i=0;i<n;i++)fprintf(wfrn%3dn,b[i]);fclose(wf);|.改错题下列给定程序中,函数fim()的功能是计算并输出high以内的素数之和。high由主函数传给fun()函数。若high的值为100,则函数的值为1060。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include#include#include#include#include<conio.h><stdio.h><math.h>intfun(inthigh)(intsum=Ozn=0,jfyes;while(high>=2)yes=1;for(j=2;j<=high/2;j++)ifhigh%j==0(yes=0;break;}/★★★★★★★★★★★★★★★★★★★★★★^,qUj-j^I***********************/if(yes==0)(sum+=high;n++;)high--;}returnsum;)main()(clrscr();printf("%d\nn,fun(100));).编程题请编写函数voidftin(intx,intpp[],int*n),它的功能是求出能整除x且不是奇数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。例如,若x中的值为24,则有6个数符合要求,它们是2,4,6,8,12,24。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(intx,intpp[]rint*n)(main()(intx,aa[1000],n,i;clrscr();printf(n\nPleaseenteranintegernumber:\n");

scanf("%dM,&x);fun(x,aar&n);for(i=0;i<n;i++)printf("%d",aa[i]);printf(n\nn);第10套上机考试试题1.填空题.下列给定程序中,函数fiin()的功能是:根据形参m的值(2近m近9),在m行m列的二维数组中存放如下所示的数据,由main。函数输出。例如,若输入2,则输出12TOC\o"1-5"\h\z输入4,则输出123 4246 8369 12481216试题程序:#include<conio.h>#include<stdio.h>]M10inta[M][M]={0};voidfun(int(*a)[M],intm){intj,k;for(j=0;j<m;j++)for(k=0;k<m;k++)a[j][k]=2;}main(){inti,j,n;printf(MEntern\nM);scanf(M%dM,&n);fun(a,n);for(i=0;i<n;i++){for(j=0;j<n;j++)printf(n%4d",a[i][j]);printf(w3H);.函数fUn()的功能是:移动字符串中的内容,移动的规则是把第1到第m个字符,平移到字符串的最后,把第m+l到最后的字符移到字符串的前部。例如,字符串中原有的内容为ABCDEFGHIJK,m的值为3,移动后,字符串中的内容应该是DEFGHIJKABC。试题程序:#include<stdio.h>#include<string.h>#defineN80voidfun(charw,intm)voidfun(charw,intm)int1,j;chart;for(i=l;i<=m;i++){t=w[0];for(j=l;w[j]!=»\0»;j++)w[j-l]=1;=t;}}main()(*wf;chara[N]="ABCDEFGHIJKn;intm;printf("Theoriginsstring:\n");puts(a);printf("\n\nEnterm:n);scanf(n%d",&m);fun(a,m);printf(n\nThestringaftermoving:\nM);puts(a);printf("\n\n");wf=fopen("out.datn,nwn);fun(b,3);fprintf(wf,"%sM,b);fclose(wf);|2.改错题下列给定程序中,函数fim()的功能是:读入一个字符串(长度<20),将该字符串中的所有字符按ASCII码降序排序后输出。例如:输入dafhc,则应输出hfdca。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<conio.h>#include<stdio.h>/**********************founcl***********************/intfun(chart[])(charc;inti,j;for(i=0;i<strlen(t)-l;i++)for(j=i+l;j<strlen(t);j++)if(t[i]<t[j])(c=t[j];/**********************found***********************/t[j]=t[i++];t(i]=c;))main()(chars[81];

clrscr();printf(n\nPleaseenteracharacterstring:n);gets(s);printf(w\n\nBeforesorting:\n%s",s);fun(s);printf(w\nAftersortingdecendingly:\n%s"fs);3.编程题请编写一个函数voidfiin(intm,intk,intxx[]),该函数的功能是将大于整数m且紧靠m的k个非素数存入所指的数组中。例如,若输入15,5,则应输出16,18,20,21,22,注意:部分源程序给出如下.请勿改动主函数main和北他函数中的任何内容,仅在函数firn的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>voidfun(intm,intk,intxx[])(main()(intm,n,zz[1000];clrscr();printf("XnPleaseentertwointegers:scanf("%d%d",&m,&n);fun(m,n,zz);for(m=0;m<n;m++)printf(n%dM,zz[m]);printf(n\nw);第11套上机考试试题1.填空题.已知一个数列从0项开始的前3项:0,0,1,以后的各项都是其相邻的前3项之和。下列给定的程序中,函数fiinO的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为23.197745。试题程序:#include<conio.h>#include<stdio.h>#include<1>doublefun(intn){doublesum,sO,si,s2,s;intk;sum=l,0;if(n<=2)sum=0.0;s0=0.0;sl=0.0;s2=l.0;for(k=4;k<=n;k++){s=s0+sl+s2;sum+=sqrt(s);s0=sl;sl=s2;2;return3;)main(){intn;printf("InputN=M);scanf(M%dnr&n);printf(w%f\n",fun(n));}.函数ftm()的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到•个字符串中。例如,若二维数组中的数据为:WWWWSSSSHHHH则字符串中的内容应是WSHWSHWSHWSH。试题程序:#include<stdio.h>#defineM3#defineN4voidfun(char(*s)[N],char1)(inti,j,k=0;for(i=0;i<N;i++)for(j=0;j<M;j++)b[k++]=2;b[k]=,\0»;}main()(FILE*wf;chara[100],w[M][N]={{ ,'W,'W,‘S''S' •H1}};inti,j;printf("Thematrix:\nn);for(i=0;i<M;i++){for(j=0;j<N;j++)printf(n%3c",w[i][j]);printf("3");}fun(w,a);printf("TheAstring:\n");puts(a);printf("\n\n");wf=fopen("out.dat”,"w");fprintf(wf,n%sM,a);fclose(wf);.改错题在主函数中从键盘输入若干个数放入数组中,用0结束输入并放在最后一个元素中.下列给定程序中,函数ftm()的功能是计算数组元素中值为负数的平均值(不包括0)。例如:数组中元素的值依次为43,-47,-21,53,-8,12,0,则程序的运行结果为-25.333333。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<conio.h>#include<stdio.h>doublefun(intx[])(doublesum=0.0;intc=0,i=0;/**********************found**********************while(x[i]==0)(if(x[i]<0)(sum=sum+x[i];C++;)i++;)/★★********************fOunci***********************/sum=sum\c;returnsum;}main()(intx[1000];inti=0;clrscr();printf(n\nPleaseentersomedata(endwith0):");do(scanf("%dnr&x[i]);}while(x[i++]!=0);printf(n%f\nnzfun(x));).编程题请编写一个函数imftm(int*s,intt,int*k),用来求出数组的最小元素在数组中的下标并存放在k所指的存储单元中。例如,输入如下整数:234345753134436458100321135760则输出结果为6,100。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>intfun(int*szintt,int*k)(main()inta[10]={234,345,753,134,436,458,100,321,135,760},k;clrscr();fun(a,10,&k);printf(n%dr%d\n”,k,a[k]);第12套上机考试试题1.填空题1.卜列给定程序中,函数fim()的功能是:从N个字符串中找出最长的那个串,并将其地址作为函数值返网。各字符串在主函数中输入,并放入一个字符串数组中.试题程序:#include<string.h>#include<stdio.h>#defineN5#defineM81fun(char(*sq)[M]){inti;char*sp;;for(i=0;i<N;i++)if(strlen(sp)<strlen(3))sp=sq[i];returnsp;}main(){charstr[N][M],*longest;inti;printf("Enter%dlines:\n”,N);for(i=0;i<N;i++)gets(str[i]);printf(n\nThe%dstring:\n”,N);for(i=0;i<N;i++)puts(str[i]);longest=fun(str);printf(n\nThelongeststring:\nn);puts(longest);)2.下列程序定义了NXN的二维数组,并在主函数中自动赋值。函数fUn的功能是:使数字右上半三角元素中的值乘以m。例如,若m的值为2,a数组中的值为a=l927则返回主程序后a数组的值应为218214试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5voidfun(inta[][N],intm)(inti,j;for(i=0;i<N;i++)for(1;j<N;j++)a[i][j]=2*m;main(){FILE*wf;inta[N][N],m,i,j;intb[N][N]={1,9,0,5,1,2,7,3,4,2,9};printf("*****Thearray*****\nn);for(i=0;i<N;i++){for(j=0;j<N;j++){a[i][j]=rand()%20;printf(M%4dM,a[i][j]);}printf(n\nn);)3m=rand()%10;while(m>=3);printf("m=%4d\nnrm);fun(a,m);printf("THERESULT\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf(n%4d",a[i][j]);printf(n\n");)wf=fopen("out.dat",nwn);fun(b,2);for(i=0;i<N;i++){for(j=0;j<N;j++)fprintf(wfzn%4d"rb[i][j]);fprintf(wf,n\nn);}fclose(wf);}2.改错题下列给定程序中,函数fim()的功能是:依次取出字符串中所有的字母,形成新的字符串,并取代原字符串。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。试题程序:#include<stdio.h>#include<conio.h>voidfun(char*s)(inti,j;for(i=0,j=0;s[i]!='\0f;i++)found***********************/if((s[i]>= ,a,&&s[i]<= ))s[j++]=s[i];/**★*★*★********★★★**★★found***********************/s[j]="\0n;}main()(charitem[80];clrscr();printf(w\nEnterastring:n);gets(item);printf(n\n\nThestringis:\%s\nn,item);fun(item);printf(n\n\nThestringofchangingis:\%s\nn,item);)3.编程题下列程序定义了NXN的二维数组,并在主函数中自动赋值。请编写函数fun(inta[][N]),该函数的功能是使数组右上半三角元素中的值全部置成0。例如a数组中的值为a=456179326,则返回主程序后a数组中的值应为000100320注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数ftm的花括号中填入所编写的若干语句。试题程序:#include<conio.h>#include<stdio.h>#include<stdlib.h>#defineN5intfun(inta[][N])(main()(inta[N][N],i,j;clrscr();printf("*****Thearray*****\n");for(i=0;i<N;i++) /*产生一个随机的5*5矩阵*/{for(j=0;j<N;j++){a[i][j]=rand()%10;printf(,,%4dMza[i][j]);}printf("\n");}fun(a);printf("THERESULT\n");for(i=0;i<N;i++){for(j=0;j<N;j++)printf("%4du,a[i][j]);printf("\n");}

第第13套上机考试试题1.填空题.下列给定程序中,函数firn。的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(mW10)名学生来,并将这些学生数据存放在♦个动态分配的连续存储区中,此存储区的首地址作为函数值返回。试题程序:#include#include#include#include#include#include#defineN<conio.h><string.h><stdio.h><malloc.h>10typedefstructss{charnum[10];ints;}STU;1*fun(STUa[],intm){STUb[N],*t;inti,j,k;t=calloc(m,2);for(i=0;i<N;i++)b[i]=a[i];for(k=0;k<m;k++){for(i=j=0;i<N;i++)if(b[i].s>b[j].s)3t[k]=b[j];t[k].s=b[j].s;b[j].s=0;)returnt;outresult(STUa[],FILE*pf){inti;for(i=0;i<N;i++)fprintf(pf,fprintf(pf,main(){STUa[N]={{nNo=%sMark=%d\nn,a[i].num,a[i].fprintf(pf,fprintf(pf,main(){STUa[N]={{"AOI",81},{"A02",89},{*'A03”,66},{“A04”,87},{"A05",77),{“A06”,90},{"AO7",79},{“A08”,61},{"A09",80},{nA10”,71}};STU*pOrder;inti,m;printf(n*****THERESULT…**\n");outresult(a,stdout);printf("\nGivethenumberofthestudentswhohavebetterscore:n);scanf(n%dn,&m);while(m>10){printf(n\nGivethenumberofthestudentswhohavebetterscore:n);scanf("%dn,&m);pOrder=fun(a,m);printf("*****THERESULT*****\n");printf("Thetop:\nn);for(i=0;i<m;i++)printf("%s%d\n'\pOrder[i].num,pOrder[i].s);free(pOrder);}.函数ftm()的功能是从传入的num个字符中找出最长的•个字符串,并通过形参指针max传回该串地址(用0000作为结束输入的标志)。试题程序:#include<conio.h>#include<stdio.h>#include<string.h>char*fun(char(*a)[81],intnum,char1)(inti=0;max=2;for(i=0;i<num;i++)if(strlen(max)<strlen(a[i]))max=a[i];returnmax;)main()(FILE*wf;charss[10][81]r*ps=nn;chars[3][81]={"abed","deg",Mdiegns"),*p=nH;intn,i=0;printf("输入若干个字符串:”);gets(ss[i]);puts(ss[i]);while(3==0)(i++;gets(ss[i]);puts(ss[i]);}n=i;ps=fun(ss,n,ps);printf("\nmax=%s\n,',ps);wf=fopen("out.dat",;p=fun(s,3,p);fprintf(wf,M%s*',p);fclose(wf);.改错题卜.列给定的程序中,函数fun()的功能是:用选择法对数组中的n个元素按从大到小的顺序进行排序。请改正程序中的错误,使它能得到正确结果。注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.试题程序:#include<stdio.h>#defineN20voidfun(inta[],intn)(inti,j,t,p;/★★★★★★★★★★★*★***★★**★★found***********************/for(j=0;j<n-l;j++);(P=j;for(i=j;i<n;i++)if(a[i]>a[p])P=i;t=a[p];a[p]=a[j];*********************found**********************a[p]=t;}}main()(inta[N]={ll,32r-5r2,14},i,m=5;printf("排序前的数据:");for(i=0;ion;i++)printf(H%dH,a[i]);printf(n\nM);fun(a,m);printf("排序后的顺序:");for(i=0;i<m;i++)printf("%da[i]);printf("\n");).编程题下列程序定义了NXN的二维数组,并在主函数中赋值。请编写函数fun(),函数的功能是求出数组周边元素的平方和并作为函数值返回给主函数中的s。例如:若a数组中的值为TOC\o"1-5"\h\za=0 1 2 7 91 11 21 5 52 21 6 11 19 7 9 10 254 14 1则返回主程序后s的值应为310。注意:部分源程序给出如下。请勿改动主函数main和其他函数中的任何内容,仅在函数fim的花括号中填入所编写的若干语句。试题程序:#include<stdio.h>#include<conio.h>#include<stdlib.h>#defineN5intfun(intw[][N])(main()(inta[N][N]={0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1};inti,j;ints;clrscr();printf("*****Thea

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论