资源描述:
《资料_2010二级C语言上机南开100题.doc》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、上机考试试题100道1:第1题m个人的成绩存放在score数组中,请编写函数fun,它的功能是:将低于平均分的人作为函数值返回,将低于平均分的分数放在below所指定的函数中。答案:intfun(intscore[],intm,intbelow[]){inti,k=0,aver=0;for(i=0;i<m;i++)aver+=score[i];aver/=m;for(i=0;i<m;i++)if(score[i]<aver){below[k]=score[i];k++;}returnk;}2:第2题请编写函数fun,它的功能是:求出1到1000之内能北7或者1
2、1整除,但不能同时北7和11整除的所有整数,并将他们放在a所指的数组中,通过n返回这些数的个数。答案:voidfun(int*a,int*n){inti,j=0;for(i=2;i<1000;i++)if((i%7==0
3、
4、i%11==0)&&i%77!=0)a[j++]=i;*n=j;}3:第3题请编写函数voidfun(intx,intpp[],int*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。答案:voidfun(intx,intpp[],int*n){inti=1,j=0;k
5、=0,*t=pp;for(i=0;i<=x;i++)if(i%2!=0){t[j]=I;j++;}for(i=0;i<j;i++)if(x%t[i]==0){pp[k]=t[i];k++;}*n=k;}4:第4题请编写一个函数voidfun(char*tt,intpp[]),统计在tt字符中"a"到"z"26各字母各自出现的次数,并依次放在pp所指的数组中。答案:voidfun(char*tt,intpp[]){inti;for(i=0;i<26;i++)pp[i]=0;while(*tt){switch(*tt){case‘a’:pp[0]++;break;
6、case‘b’:pp[1]++;break;case‘c’:pp[2]++;break;case‘d’:pp[3]++;break;case‘e’:pp[4]++;break;case‘f’:pp[5]++;break;case‘g’:pp[6]++;break;case‘h’:pp[7]++;break;case‘i’:pp[8]++;break;case‘j’:pp[9]++;break;case‘k’:pp[10]++;break;case‘l’:pp[11]++;break;case‘m’:pp[12]++;break;case‘n’:pp[12]++
7、;break;case‘o’:pp[14]++;break;case‘p’:pp[15]++;break;case‘q’:pp[16]++;break;case‘r’:pp[17]++;break;case‘s’:pp[18]++;break;case‘t’:pp[19]++;break;case‘u’:pp[20]++;break;case‘v’:pp[21]++;break;case‘w’:pp[22]++;break;case‘x’:pp[23]++;break;case‘y’:pp[24]++;break;case‘z’:pp[25]++;break;
8、}tt++;}}5:第5题请编写一个函数voidfun(intm,intk,intxx[]),该函数的功能是:将大于整数m且紧靠m的k各素数存入xx所指的数组中。答案:voidfun(intm,intk,intxx[]){intg=0,I,j,flag=1;for(i=m+1;i<m*m;i++){for(j=0;j<I;j++){if(i%j!=0)flag=1;else{flag=0;break;}}if(flag==1&&j>=i){if(k>=0){xx[g++]=i;k--;}elsebreak;}}}6:第6题请编写一个函数voidfun(char
9、a[],char[],intn),其功能是:删除以各字符串中指定下标的字符。其中,a指向原字符串,删除后的字符串存放在b所指的数组中,n中存放指定的下标。答案:voidfun(chara[],charb[],intn){intI,j=0;for(i=0;i<LEN;i++)if(i!=n){b[j]=a[i];j++;}b[j]=‘ ’;}7:第7题请编写一个函数intfun(int*s,intt,int*k),用来求除数组的最大元素在数组中的下标并存放在k所指的储存单元中。答案:voidfun(int*s,intt,int*k){intI,max;max=
10、s[0];for(i=0;i<t;i+