计算机二级C语言上机试题答案模板_第1页
计算机二级C语言上机试题答案模板_第2页
计算机二级C语言上机试题答案模板_第3页
计算机二级C语言上机试题答案模板_第4页
计算机二级C语言上机试题答案模板_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

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

文档简介

1、类型一:调整一个数的个、十、百、千位1.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的百位和个位上。例如,当a=45,b=12,调用该函数后c=4152。*c=(a/10)*1000+(b/10)*100+(a%10)*10+(b%10);填空:STYPE FILE Fp改错:for( i=0; i=sl; i +) 把s后字母改为小写Lt2*sl = 0;2.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和

2、个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1524。*c=(b/10)*1000+(a%10)*100+(b%10)*10+(a/10);填空:*fw str str改错:void fun(long s,long *t)sl=sl*10;3.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2514。*c=(b%10)*1000+(a

3、%10)*100+(b/10)*10+(a/10);填空:fp fclose(fp) fname改错:for ( i=j+1; iscorei a改错:char *fun(char (*sq)M)return sp;7.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的百位和个位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1425。*c=(b/10)*1000+(a/10)*100+(b%10)*10+(a%10);填空:0 x t+改错:int i,s1; s后面是

4、小写的Lti = ssl-i-1;8.请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的千位和十位上,b数的十位和个位数依次放在c数的个位和百位上。例如,当a=45,b=12,调用该函数后c=4251。*c=(a/10)*1000+(b%10)*100+(a%10)*10+(b/10);填空:1 s i*10改错:int fun(int n,int xxM)printf(%d ,xxij);类型二:与*号有关的操作9.请编写函数fun,它的功能是:将字符串中的前导*号全部删除,中间和尾部的*号不删除。删除前导*号in

5、t j=0; char *p = a ; while(*p = *) p+ ; while(*p) aj+ = *p ; p+; aj=0 ;填空:N tij tji改错:#define FU(m,n) (m)/(n)return(value);10.请编写函数fun,它的功能是:除了尾部的*号之外,将字符串中其他*号全部删除。形参p已指向字符串中最后的一个字母。除尾部*号,其余*删除char *q=a; int j=0; while(*q & qp) if(*q != *) aj+ = *q ; q+ ; while(*p) aj+=*p+; aj=0;填空:tN i=0;i amid)11

6、.请编写函数fun,它的功能是:除了字符串前导和尾部的*号之外,将串中其他*号全部删除。只删除中间*号int j=0; char *q=a; while(*q & q h) aj+ = *q+ ; while(*h & *p & h 0.001)12.请编写函数fun,它的功能是:删除字符串中所有的*号。删除串中所有*号int j =0 ; char *p=a; while(*p) if(*p != *) aj+=*p ; p+ ; aj=0;填空:1 j+ j改错:t=a;a=b;b=t;return(b);13.请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删

7、除。删除串尾*号 char *p = a ; while(*p) p+ ; p- ; while(*p = *) p- ; p+ ; *p = 0 ;填空:N I -1改错:a2=k/10;return i;14.请编写函数fun,它的功能是:除了字符串前导的*号之外,将串中其他*号全部删除。除前导*外其他删除* int i=0,k; while(ai=*) i+; k=i; while(ai!=0) if(ai != *) ak+=ai; i+; ak=0;填空:N k ssi改错:int k=0;while( *p | *q )15.请编写函数fun,它的功能是:只删除字符串前导和尾部的*

8、号,串中字母之间的*号都不删除。删除前导和尾部* char *p=a ; int j=0,len=0; while(*p) p+; len+; while(jlen-h-e) aj=ah+j; j+; aj=0;填空:N substr 0改错:fun(int x,int y, int z)return j;16.请编写函数fun,它的功能是:使字符串中尾部的*号不得多于n个 串尾部*号不多于n个 char *p=a ; int j=0; while(*p) p+; p-; while(*p = *) p-; p+; while(jn) i=n;j=k; for(; aj !=0 ; j+) a

9、i+=aj;ai = 0; 填空:M N 0改错:t=1;return(2*s);18.请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。串前*移至串尾 char *p,*q; int n=0; p=a; while(*p=*) n+; p+; q=a; while(*p) *q=*p; p+;q+; for(;n0;n-) *q+=*; *q=0; 填空:a scorei改错:sj+=si;sj=0;19.编写一个函数,从传入的num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。int i,k=0,maxlen

10、; maxlen=strlen(ak); for(i=1;i maxlen) maxlen = strlen(ai) ; k = i ; *max=ak;填空:N i i+1改错:aai=m%k;printf(%d,aai-1); 类型三:与下标或ASCII码有关20.请编写一个函数fun,它的功能是:将ss所指字符串中所有下标为奇数位置上的字母转换为大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写 int i ; for(i = 1 ; i = a & ssitj+1)21.请编写个函数void fun(char *ss),其功能是:将字符串ss中所有下标为奇数位置上的字母转换为

11、大写(若该位置上不是字母,则不转换)。下标奇数位置子母改大写 char *p = ss ; int i = 0 ; while(*p) if(i % 2) & (*p = a & *p = z) *p -= 32 ; p+ ; i+ ; return ss ;填空:NULL n head,ch改错:for (i = 0,t = 0; pi ; i+)ct= 0;22.请编写函数fun,其功能是:将s所指字符串中下标为偶数的字符删除,串中剩余字符形成的新串放在t所指数组中。下标为偶数字符删除 int i, j = 0 ; for(i=1; istrlen(s); i+=2) tj+=si ; t

12、j = 0 ;填空:data next head改错:while(*r)*a = *r; a+; r+;23.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。除首尾外其余ASCII码降序 char ch ; int i, j ; for(i = 1 ; i 6 ; i+) for(j = i + 1 ; j 6 ; j+) if(*(s + i) *(s + j) ch = *(s + j) ; *(s + j) = *(s +i) ; *(s + i) = ch ; 填空:ssi n+j 1改错:if(* p = )*(p-1) = toupp

13、er( *( p - 1 ) );24.请编写函数fun,其功能是:将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 ASCII码值为偶数删除 int i, j = 0 ; for(i = 0 ; i strlen(s); i+) if(si % 2) tj+ = si ; tj = 0 ;填空:STU stdi.num stdi改错:r+; p+;if(*r=0)25.请编写函数fun,其功能是:将s所指字符串中ASCII值为奇数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。ASCII值为奇数删除 int i, j = 0 ; for(i

14、= 0 ; i strlen(s); i+) if(si % 2=0) tj+ = si ; tj = 0 ;填空:si k 0改错:while(*w)if( *r = *p )26.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除除下标偶数同时ASCII码值偶数之外其余全部删除 int i, j = 0 ; for(i = 0 ; i strlen(s) ; i += 2) if(si % 2 = 0) tj+ = si ; tj = 0 ;填空:*n next head改错:a = NULL;if(*r=*p)27.请编写函数fu

15、n,其功能是:将s所指字符串中除了下标为奇数、同时ASCII值也为奇数的字符之外,其余的所有字符都删除除下标奇数同时ASCII码也为奇数外其余字符删除 int i, j = 0 ; for(i = 1 ; i strlen(s) ; i += 2) if(si % 2) tj+ = si ; tj = 0 ;填空:0 i+ 2.0*i改错:void fun (char *s, char *t)t2*d=0;28.请编写函数fun,其功能是:将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。将下标为偶数同时ASCII码为奇数删除 int i,

16、 j = 0 ; for(i = 0 ; i strlen(s) ; i+) if(!(i % 2) =0 & (si % 2) tj+ = si ; tj = 0 ;填空:j k p改错:while(ij)if (*a)类型四:数组和矩阵操作29.请编写函数fun,该函数的功能是:移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(p小于等于n-1)的数组元素平移到数组的最后。下标0-p移到数组最后 int i, j = 0, bN ; for(i = p + 1 ; i n ; i+) bj+ = wi ; for(i = 0 ; i = p ; i+) bj+ = wi ; f

17、or(i = 0 ; i next q p-next改错:while(*s)s+;30.请编写函数fun,该函数的功能是:删去一维数组中所有相同的数,使之只剩一个。删除一维数组相同的数 int i, j = 1, k = a0 ; for(i = 1 ; i n ; i+) if(k != ai) aj+=ai ; k = ai ; aj = 0 ; return j ;填空:FILE * fclose(fp) fp改错:t=(STU *)calloc(sizeof(STU),m);tk=bj;31.请编写一个函数fun,它的功能是:找出一维整型数组元素中最大的值和它所在的下标,最大的值和它所

18、在的下标通过形参传回。找出一维数组最大值及其下标 int i ; *max=a0;*d = 0 ; for(i = 1; i n; i+)if(*max ai) *max = ai; *d = i ; 填空:1 2*i (-1)改错:k+;if (m = k )32请编写一个函数int fun(int *s,int t,int *k),用来求出数组的最大元素在数组中的下标并存放在k所指的存储单元中。求数组最大元素及下标 int i, pos = 0, max = *s ; for(i = 1 ; i t ; i+) if(max *(s + i) max = *(s + i) ; pos =

19、i ; *k = pos ;填空:n+ 0 s+改错:t+=sk;*ave=ave;33.请编写函数fun(intaN,int n),该函数的功能是:使数组左下半三角元素中的值乘以n。左下三角元素乘n int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j 0)else if(k=0)34.请编写函数fun(int aN,int n),该函数的功能是:使数组右上半三角元素中的值乘以m。右上三角元素同乘m int i, j; for(i = 0 ; i N ; i+) for(j = i ; j N ; j+) aij *= m ;填空:*av i xj改错:

20、float fun(int n)for (i=2; i=n; i+)35请编写函数fun(int aN),该函数的功能是:使数组左下半三角元素中的值全部置成0。左下三角元素置0 int i, j; for(i = 0 ; i N ; i+) for(j = 0 ; j = i; j+) aij = 0 ;填空:*std PERSON std改错:int k,q,i;pti = strki ;36请编一个函数求出二维数组每列中最小元素,并依次放入pp所指一维数组中。二维数组每列最小元素 int i,j, min, k ; for(i = 0 ; i N ; i+) min = tt0i ; k

21、= 0 ; for(j = 1 ; j ttji) min=ttji ; k = j ; ppi = ttki ; 填空:*std stdi.age 改错:void fun ( int*a, int*b )t=*b;*b=*a;*a=t;37.请编写一个函数fun,它的功能是:求出个2M整型二维数组中最大元素的值,并将此值返回调用函数。求二维数组中最大元素的值 int i, j, max=a00; for(i=0; i2; i+) for(j=0; jM; j+) if(max 2*i+1改错:double fun (int n)s = s + (double)a / b;38

22、.编写程序,实现矩阵(3行3列)的转置(即行列互换)。矩阵转置 int i,j,arr33 ; memcpy(arr, array, 9*sizeof(int) ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 3 ; j+) arrayij = arrji ;填空:N break n改错:sum=0;scanf(%d,&aij);39.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按列的顺序依次放到一维数组中。按列顺序33 44 55 33 44 55 int i,j,np=0; for(i = 0 ; i nn ; i+) for(j = 0 ;

23、 j mm ; j+) bnp = sji ; np = i * mm + j + 1; *n=np;填空:NODE * next r改错:if(i%2 | si%2=0)tj=0;40.请编写函数fun,该函数的功能是:将M行N列的二维数组中的数据,按行的顺序依次放到一维数组中。按行顺序33 33 33 33 44 44 44 44 int i, j, k ; for(i = 0 ; i mm ; i+) for(j = 0 ; j next p-next 改错:p=h-next;p=p-next;41.请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一

24、个字符串中。按列顺序wshwshwsh int i,j,n=0; for(i=0; i N;i+) for(j = 0 ; j M ; j+) bn = sji ; n = i * M + j + 1; bn=0;填空:FILE * fp ch改错:sj+=si;sj=0;.42请编写函数fun,函数的功能是:求出数组周边元素的平均值并作为函数值返回给主函数中的s。数组周边元素的平均值 int i, j, n=0; double sum=0; for ( i =0; iN; i+ ) sum+=w0i+wN-1i; n+=2; for ( i =1; iN - 1; i+ ) sum +=wi

25、0+wiN-1; n+=2; return sum/n;填空:s/N j+ -1改错:# include upfst(char *p)43请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。二维数组周边元素之和 int tot = 0, i, j ; for(i = 0 ; i N ; i+) tot += a0i ; tot += aM-1i ; for(i = 1 ; i M - 1 ; i+) tot += ai0 ; tot += aiN-1 ; return tot ;填空:xi/N j+ i+改错:numk=0;switch(*s)44.请编写函数fun,该函数

26、的功能是:实现B=A+A,即把矩阵A加上矩阵A的转置,存放在矩阵B中。B=A+A int c33 ; int i, j ; for(i = 0 ; i 3 ; i+) for(j = 0 ; j 3 ; j+) cij = aji ; bij = aij + cij ; 填空:& 0 sj改错:for(i=2; i=m; i+)y+=1./(i*i);类型五:学生分数操作45.请编写一个函数fun,它的功能是:计算n门课程的平均分,计算结果作为函数值返回。例如:若有5门课程的成绩是:90.5,72,80,61.5,55,则函数的值为71.80。n门课程平均分71.8 int i; float

27、ave=0.0; for(i=0; inext; double av=0.0; int n = 0 ; while(p!=NULL) av = av + p-s ; p=p-next; n+; av /= n ; return av ; 填空:char ch=9 0改错:bk=*p;bk+= ;47.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。请编写函数fun,它的功能是:求出该学生的平均分放在记录的ave成员中。8门课程平均分78.875int i ; for(i = 0 ; i ave = a-ave + a-si ; a-ave /= N ;填空:

28、ai aj aj改错:switch(g)case 1: case 2:return 1;48.请编写函数fun,该函数的功能是:找出成绩最高的学生记录。找出成绩最高学生纪录(规定只有一个最高分) int i, max = a0.s, j = 0; for(i = 1 ; i N ; i+) if(max ai.s) j = i ; max = ai.s ; *s = aj ;填空:stdi.year stdi n改错:IsPrime ( int n )if(!( n%i ))49.请编写函数fun,它的功能是:把低于平均分的学生数据放在b所指的数组中。低于平均分的学生数据 int i ; do

29、uble ave = 0.0 ; *n = 0 ; for(i = 0 ; i N ; i+) ave = ave + ai.s ; ave /= N ; for(i = 0 ; i N ; i+)if(ai.s ave) b*n=ai ; (*n)+; return ave ; 填空:*a 2 i+1改错:sum=0.0;if(i+1)%5=0)50.请编写函数fun,它的功能是:把分数最高的学生数据放在b所指的数组中,注意:分数最高的学生可能不只一个,函数返回分数最高的学生的人数。把分数最高学生数据放在b所指数组中,分数最高的学生可能不只一个 int i, max = a0.s, n=0;

30、 for(i = 1; i N; i+) if(max ai.s) max = ai.s ; for(i = 0; i N; i+) if(max=ai.s) bn+ = ai ; return n; 填空:1 i t改错:float k;if(*as; STREC *p; p=h-next; while(p) if(p-smax ) max=p-s; p=p-next; return max;填空:fp = fp改错:n=strlen(aa) ;ch=aai;52请编写函数fun,它的功能是:将低于平均分的人数作为函数值返回,将低于平均分的分数放在below所指的数组中。低于平均分的人作为函

31、数值返回 float av=0.0 ; int i, j=0 ; for(i=0; im; i+) av += scorei ; av /= m; for(i=0; iscorei) belowj+=scorei; return j;填空:j 0 i+改错:for(i=2; i=m; i+)y-=1.0/(i*i);53.请编写函数fun,它的功能是:把高于等于平均分的学生数据放在b所指的数组中,高于等于平均分的学生人数通过形参n传回,平均分通过函数值返回。高于等于平均分的学生数据 double t=0 ; int i ; *n = 0 ; for(i = 0 ; i N ; i+) t =

32、t + ai.s ; t = t / N ; for(i = 0 ; i t) b(*n)+ = ai ; return t ;填空:-sno -name &t改错:double fun(double a, double x0)if( fabs(x1-x0)0.00001 )54.请编写函数fun,它的功能是:把分数最低的学生数据放在b所指的数组中,注意:分数最低的学生可能不止一个,函数返回分数最低的学生的人数。 分数最低学生数据放在b所指数组 int i, j = 0, min=a0.s ; for(i = 0 ; i ai.s) j = 0 ; bj+ = ai ; min = ai.s

33、; else if(min = ai.s) bj+ = ai ; return j ;填空:struct student a.scorei改错:if(p=n) return -1;ai=ai+1;55.请编写函数fun,该函数的功能是:找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。找出成绩最低学生纪录 int i, min = a0.s, j = 0; for(i = 1 ; i ai.s) j = i ; min = ai.s ; *s = aj ;填空:0 xi/N j+改错:double fun(int m)for( i = 100;i = m;i += 100 )56请编写函数

温馨提示

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

评论

0/150

提交评论