C的题库.docx
- 文档编号:10905980
- 上传时间:2023-02-23
- 格式:DOCX
- 页数:13
- 大小:24.84KB
C的题库.docx
《C的题库.docx》由会员分享,可在线阅读,更多相关《C的题库.docx(13页珍藏版)》请在冰豆网上搜索。
C的题库
类型一删除*号与空格问题
13.编写函数fun,它的功能是:
使字符串中尾部的*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和前面的*号不删除。
inti=0,k=0;char*p,*t;
p=t=a;
while(*t)t++;
t--;
while(*t==’*’){k++;t--;}
t++;
if(k>n)
{while(*p&&p a[i]='\0';} 改错: [1]intfun(intn)[2]if(n==1) 填空: [1]a[i]%2[2]a[j][3]j 18.请编写一个函数,用来删除字符串中的所有空格。 例如,输入asdafaaz67,则输出为asdafaaz67。 char*p=str; for(;*str;str++) if(*str! ='')*p++=*str; *p='\0'; 改错: [1]t-=1.0/i;[2]returnt; 填空: [1]0[2]||[3]1 21.请编写函数fun,它的功能是: 除了尾部的*号之外,将字符串中其他*号全部删除。 char*t=a; for(;t<=p;t++) if(*t! ='*')*(a++)=*t; for(;*t! ='\0';t++)*(a++)=*t; *a='\0'; 改错: [1]intfun(inta[],intm) [2]elseif(m>a[mid]) 填空: [1]t[N][N][2]i=0;i 29.请编写函数fun,它的功能是: 删除字符串中所有的*号。 例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是ABCDEFG。 inti,j=0; for(i=0;a[i]! ='\0';i++) if(a[i]! ='*')a[j++]=a[i]; a[j]='\0'; 改错: [1]t=a;a=b;b=t;[2]return(b); 填空: [1]1[2]j++[3]j 38.请编写函数fun,它的功能是: 除了字符串前导和尾部的*号之外,将串中其他*号全部删除。 例如,若字符串中的内容为****A*BC*DEF*G********,删除后,字符串中的内容则应当是****ABCDEFC********。 inti=0;char*q=a; while(q while(q {if(*q! ='*'){a[i]=*q;i++;} q++;} while(*q){a[i]=*q;i++;q++;} a[i]='\0'; 改错: [1]doubler;[2]while(fabs(n-m)>0.001) 填空: [1]sum=0[2]t[i][i][3]1 39.请编写函数fun,它的功能是: 将字符串中的前导*号全部删除,中间和尾部的*号不删除。 例如,若字符串中的内容为*******A*BC*DEF*G****,删除后,字符串中的内容则应当是A*BC*DEF*G****。 char*p=a; while(*p=='*')p++; for(;*p! ='\0';p++,a++)*a=*p; *a='\0'; 改错: [1]#defineFU(m,n)(m)/(n) [2]return(value); 填空: [1][N][2]t[i][j][3]t[j][i] 类型二公式计算问题 4.编写函数fun,它的功能是: 利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。 Xn+1=cos(Xn) 程序将输出结果Root=0.739085。 floatx0,x1=0; do{x0=x1; x1=cos(x0);}while(fabs(x0-x1)>1e-006); returnx1; 改错: [1]while((high>=2)&&(n<10)) [2]yes=0;break; 填空: [1]i++[2]m[3]m 14.请编写函数fun,它的功能是: 求Fibonacci数列中大于t的最小的一个数,结果由函数返回。 其中Fibonacci数列F(n)定义为: F(0)=0,F (1)=1,F(n)=F(n-1)+F(n-2) 例如: 当t=1000时,函数值为1597。 inti,s=0; for(i=0;s<=t;i++) s=f(i); returns; 改错: [1]s=s+(double)(n+1)/n;[2]returnt; 填空: [1]N[2]N-1[3]0 30.请编写函数fun,它的功能是计算: s=(ln (1)+ln (2)+1n(3)+…+ln(m))/0.5。 s作为函数值返回。 例如,若m的值为20,则fun函数值为6.506583。 doublei;doubler,s;doublelog(doublei); for(i=1;i<=m;i++)r=r+log(i); return(sqrt(r)); 改错: [1]doublef(doublex)[2]returns; 填空: [1]0[2]j--[3]j 35.编写函数fun,函数的功能是: 根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。 s=1+1/(1+2)+1/(1+2+3)+.......+1/(1+2+3+4+......+n),例如: 若n的值为11时,函数的值为1.833333。 inti,sum=1; floats=1; for(i=2;i<=n;i++) {sum=sum+i; s=s+1.0/sum;} 改错: [1]doublesum=0.0;[2]sum/=c; 填空: [1]'\0'[2]0[3]s[i] 类型三下标或ASCII码问题 2.请编写函数fun,其功能是: 将s所指字符串中ASCII值为偶数的字符删除,串中剩余字符形成一个新串放在t所指的数组中。 inti=0; for(;*s! ='\0';s++) if(*s%2==1)t[i++]=*s; t[i]='\0'; 改错: [1]r++;p++;[2]if(*r=='\0') 填空: [1]STU[2]std[i].num[3]std[i] 3.编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。 例如,若原来的字符串为CEAedca,则排序后输出为CedcEAa。 inti,j,t; for(i=1;i for(j=i+1;j if(s[i] {t=s[i];s[i]=s[j];s[j]=t;} 改错: [1]if(*p=='')[2]*(p-1)=toupper(*(p-1)); 填空: [1]ss[i][2]n+j[3]1 10.请编写函数fun,其功能是: 将s所指字符串中下标为偶数同时ASCII值为奇数的字符删除,s中剩余的字符形成的新串放在t所指的数组中。 inti,j=0,n=strlen(s); for(i=0;i if(i%2==0&&s[i]%2! =0); else{t[j]=s[i];j++;} t[j]='\0'; 改错: [1]while(i 填空: [1]j[2]k[3]p 类型四数组和矩阵问题 8.请编写函数fun,函数的功能是求出二维数组周边元素之和,作为函数值返回。 二维数组中的值在主函数中赋予。 例如: 若二维数组中的值为 13579 29994 69998 13570,则函数值为61。 intsum=0,i; for(i=0;i for(i=1;i returnsum; 改错: [1]num[k]=0;[2]switch(*s) 填空: [1]x[i]/N[2]j++[3]i++ 12.下列程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N]),该函数的功能是: 使数组左下半三角元素中的值全部置成0。 inti,j; for(i=0;i for(j=0;j<=i;j++) a[i][j]=0; 改错: [1]intk,q,i;[2]pt[i]=str[k][i]; 填空: [1]std[][2]PERSON[3]std 17.请编写函数fun,该函数的功能是: 实现B=A+A’,即把矩阵A加上矩阵A的转置,存放在矩阵B中。 计算结果在main函数中输出。 inti,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[i][j]=a[i][j]+a[j][i]; 改错: [1]for(i=2;i<=m;i++)[2]y+=1.0/(i*i); 填空: [1]&&[2]'\0'[3]s[j] 20.下列程序定义了NXN的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N],intn),该函数的功能是: 使数组右上半三角元素中的值乘以m。 inti,j; for(i=0;i for(j=N-1;j>=i;j--) a[i][j]*=m; 改错: [1]floatfun(intn)[2]for(i=2;i<=n;i++ 填空: [1]*av[2]I[3]x[j] 23.请编写函数fun,该函数的功能是: 将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。 则字符串中的内容应是WSHWSHWSH。 inti,j,k=0; for(i=0;i for(j=0;j b[k]='\0'; 改错: [1]s[j++]=s[i];[2]s[j]=‘\0’; 填空: [1]FILE*[2]fp[3]ch 26.下列程序定义了N×N的二维数组,并在主函数中赋值。 请编写函数fun,函数的功能是: 求出数组周边元素的平均值并作为函数值返回给主函数中的s。 inti,t=0; doubles=0; for(i=0;i {s+=w[i][0]+w[i][N-1];t+=2;} for(i=1;i {s+=w[0][i]+w[N-1][i];t+=2;} s=s/t; returns; 改错: [1]#include“stdio.h”[2]upfst(char*p) 填空: [1]s/N[2]j++[3]-1 28.编写程序,实现矩阵(3行3列)的转置(即行列互换)。 inti,j,t; for(i=0;i<2;i++) for(j=i+1;j<3;j++) {t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;} 改错: [1]sum=0[2]scanf("%d",&a[i][j]); 填空: [1]N[2]break[3]n 42.程序定义了N×N的二维数组,并在主函数中自动赋值。 请编写函数fun(inta[][N],intn),该函数的功能是: 使数组左下半三角元素中的值乘以n。 inti,j; for(i=0;i for(j=0;j<=i;j++)a[i][j]*=n; 改错: [1]if(k>0)[2]elseif(k==0) 填空: [1]STU[2]score[i][3]&std 43.请编写函数fun,该函数的功能是: 删去一维数组中所有相同的数,使之只剩一个。 数组中的数已按由小到大的顺序排列,函数返回删除后数组中数据的个数。 inti,j=1; for(i=1;i if(a[j-1]! =a[i])a[j++]=a[i]; returnj; 改错: [1]t=(STU*)malloc(sizeof(STU)); [2]t[k]=b[j]; 填空: [1]FILE*[2]floes(fp)[3]fp 48.请编一个函数voidfun(inttt[M][N],intpp[N]),tt指向一个M行N列的二维数组,求出二维数组每列中最小元素,并依次放入pp所指一维数组中。 inti,j; for(i=0;i {pp=tt[0][i]; for(j=0;j if(tt[j][i] 改错: [1]voidfun(int*a,int*b) [2]t=*b;*b=*a;*a=t; 填空: [1]std[0][2]std[i].age[3]max.name 50.编写一个函数fun,它的功能是: 求出—个2×M整型二维数组中最大元素的值,并将此值返回调用函数。 inti,j,max=a[0][0]; for(i=0;i<2;i++) for(j=0;j if(max returnmax; 改错: [1]voidfun(char*s,char*t) [2]t[2*d]='\0'; 填空: [1]a[i]%2[2]a[j][3]j 6.编写函数fun,功能是查找x在s所指数组中下标的位置作为函数值返回,若x不存在,则返回-1。 inti,t=0; for(i=0;i {if(s[i]==x){t=i;break;} elset=-1;} 改错: [1]returnt; [2]for(i=0;i [3]x[i+1]=findmid(a,b,c); 填空: [1]i%5[2]\n[3]a[i] 类型五分数计算、结构体问题 15.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 函数返回指定学号的学生数据,指定的学号在主函数中输入。 若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回(用于字符串比较的函数是strcmp)。 inti; STRUCstr={"\0",-1}; for(i=0;i if(strcmp(a[i].num,b)==0)str=a[i]; returnstr; 改错: [1]n=*p-'0';[2]n=n*8+*p-'0'; 填空: [1]n/2[2]a[n-1-i];[3]a[n-1-1] 32.N名学生的成绩已在主函数中放入一个带头节点的链表结构中,h指向链表的头节点。 请编写函数fun,它的功能是: 求出平均分,由函数值返回。 例如,若学生的成绩是85,76,69,85,91,72,64,87;则平均分应当是78.625。 doubleav=0.0; STRUC*p=h->next; while(p! =NULL) {av=av+p->s; p=p->next;} returnav/N; 改错: [1]b[k]=*p;[2]b[k++]=''; 填空: [1]char[2]ch<='9'[3]'0' 33.某学生的记录由学号、8门课程成绩和平均分组成,学号和8门课程的成绩已在主函数中给出。 请编写函数fun,它的功能是: 求出该学生的平均分放在记录的ave成员中。 请自己定义正确的形参。 例如,若学生的成绩是85.5,76,69.5,85,91,72,64.5,87.5,则他的平均分应当是78.875。 inti; p->ave=0.0; for(i=0;i p->ave=p->ave+p->s[i]; p->ave=p->ave/N; 改错: [1]switch(g)[2]case1: case2: return1; 填空: [1]a[i][2]a[j][3]a[j] 44.请编写函数fun,该函数的功能是: 统计各年龄段的人数。 N个年龄通过调用随机函数获得,并放在主函数的age数组中;要求函数把0至9岁年龄段的人数放在d[0]中,把10至19岁年龄段的人数放在d[1]中,把20至29岁年龄段的人数放在d[2]中,其余依此类推,把100岁(含100)以上年龄的人数都放在d[10]中。 结果在主函数中输出。 inti,j; for(j=0;j for(i=0;i if(a[i]>=100)b[10]++; elseb[a[i]/10]++; 改错: [1]p=s;[2]while(*p++); 填空: [1]filename[2]SEEK_END[3]&n 45.已知学生的记录由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。 请编写函数fun,该函数的功能是: 找出成绩最低的学生记录,通过形参返回主函数(规定只有一个最低分)。 intk,i; (*s).s=a[0].s; for(i=0;i if(a[i].s<(*s).s){(*s).s=a[i].s;k=i;} strcpy((*s).num,a[k].num); 改错: [1]intfun(intm) [2]for(i=100;i<=m;i+=100) 填空: [1]0[2]x[i]/N[3]j++ 46.学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是: 把分数最高的学生数据放在h所指的数组中,注意: 分数最高的学生可能不只一个,函数返回分数最高的学生的人数。 inti,j=0,max=a[0].s;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 题库
![提示](https://static.bdocx.com/images/bang_tan.gif)