C语言考试题库

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

—1—类型一:与*号有关的操作43.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:只删除字符串前导和尾部的*号,串中字母之间的*号都不删除。形参n给出了字符串的长度,形参h给出了字符串中前导*号的个数,形参e给出了字符串中最后*号的个数。在编写函数时,不得使用C语言提供的字符串函数。例如,若字符串中的内容为****A*BC*DEF*G*******,删除后,字符串中的内容则应当是A*BC*DEF*G。inti,j=0;for(i=h;in-e;i++)a[j++]=a[i];a[j]=‘\0’;改错:[1]fun(intx,inty,intz)[2]returnj;填空:[1]N[2]substr[3]045.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串中的前导*号全部移到字符串的尾部。例如,若字符串中的内容为*******A*BC*DEF*G****,移动后,字符串中的内容应当是A*BC*DEF*G**********。在编写函数时,不得使用C语言提供的字符串函数。inti=0,n=0;char*p;p=a;while(*p=='*'){n++;p++;}while(*p){a[i]=*p;i++;p++;}while(n!=0){a[i]='*';i++;n--;}a[i]='\0';改错:[1]s[j++]=s[i];[2]s[j]='\0';填空:[1]structstudent[2]a.name[3]a.score[i]31、假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:使字符串的前导*号不得多于n个;若多于n个,则删除多余的*号;若少于或等于n个,则什么也不做,字符串中间和尾部的*号不删除。例如,若字符串中的内容为*******A*BC*DEF*G****,假设n的值为4,删除后,字符串中的内容则应当是****A*BC*DEF*G****;若n的值为8,则字符串中的内容仍为*******A*BC*DEF*G****。n的值在主函数中输入。在编写函数时,不得使用C语言提供的字符串函数。编程:inti=0,k=0;char*p,*t;p=t=a;while(*t=='*'){k++;t++;}if(kn){while(*p){a[i]=*(p+k-n);i++;p++;}a[i]='\0';}填空:[1][M][2]N[3]'\0'改错:[1]t=1.0;[2]while(t=eps)[3]return(s*2);18套:.假定输入的字符串中只包含字母和*号。请编写函数fun,它的功能是:将字符串尾部的*号全部删除,前面和中间的*号不删除。编程:while(*a!='\0')a++;a--;while(*a=='*')a--;*(a+1)='\0';填空:Ni-1改错:改为:a2=k/10;改为:returni;类型二:套用公式计算型37.请编写函数fun,其功能是:计算并输出下列多项式值:例如,若主函数从键盘给n输入50后,则输出为S=1.960784。s=1+1/(1+2)+1/(1+2+3)+..1/(1+2+3...+50)inti;doubles=0.0,s1=0.0;for(i=1;i=n;i++){s1=s1+i;s=s+1.0/s1;}returns;改错:[1]if(t==0)[2]*zero=count;填空:[1]n%10[2]break[3]break40.请编写函数fun,其功能是:计算并输出下列多项式值:Sn=1+1/1!+1/2!+1/3!+1/4!+…+1/n!例如,若主函数从键盘给n输入15,则输出为s=2.718282。注意:n的值要求大于1但不大于100。doublet,sn=1.0;inti,j;for(i=1;in;i++){t=1.0;for(j=1;j=i;j++)t*=j;sn+=1.0/t;}returnsn;改错:[1]for(i=1;i=3;i++)填空:[2]if((k=1&&k=6)&&(i!=0&&j!=0)||k==0)[1]x[2]n[3]fabs(t)—2—9、请编写函数fun,其功能是:计算并输出下列多项式值:Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n)例如,若主函数从键盘给n输入8后,则输出为S=0.662872。inti;doublesum=0.0;if(n1&&n=100){for(i=1;i=n;i++)sum+=1.0/(2*i-1)-1.0/(2*i);}returnsum;填空[1]a[i][2]0[3]0改错[1]sum=j=0;[2]if(sum%4==2)11、请编写函数fun,其功能是:计算并输出下列多项式值:Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n)例如,若主函数从键盘给n输入8后,则输出为S=0.662872。编程:inti;doublesum=0.0;if(n1&&n=100){for(i=1;i=n;i++)sum+=1.0/(2*i-1)-1.0/(2*i);}returnsum;填空[1]a[i][2]0[3]0改错[1]sum=j=0;[2]if(sum%4==2)13、请编写函数fun,其功能是:计算并输出S=1+(1+2^0.5)+(1+2^0.5+3^0.5)+……+(1+2^0.5+3^0.5+……+n^0.5)例如,若主函数从键盘给n输入20后,则输出为s=534.188884。编程inti;doubles=0.0,s1=0.0;for(i=1;i=n;i++){s1=s1+pow(i,0.5);s=s+s1;}returns;填空:[1]a[2]a[3]b改错[1]c=c+32;[2]c=c+5;32、请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。编程:inti,j=0;doubles=0;for(i=3;i=n;i++){for(j=2;j=i;j++)if(i%j==0)break;if(j==i)s=s+sqrt(i);}returns;填空[1]i[2]t++[3]count改错[1]intfun(inta,intb,intc)[2]return3;[3]elsereturn1;30、请编写函数fun,其功能是:计算并输出给定10个数的方差:101'101kkxx例如,给定的10个数为95.0,89.0,76.0,65.0,88.0,72.0,85.0,81.0,90.0,56.0,则输出为S=11.730729。编程:doublex1=0.0,s=0.0;inti;for(i=0;i10;i++)x1=x1+x[i];x1=x1/10;for(i=0;i10;i++)s=s+(x[i]-x1)*(x[i]-x1);returnsqrt(s/10);填空:[1]x[2]n[3]t改错:[1]k=i;[2]b=k%10;[3]c=k/10;21套:请编写函数fun,其功能是:计算并输出下列多项式值:Sn=(1-1/2)+(1/3-1/4)+...+(1/(2n-1)1/2n)例如,若主函数从键盘给n输入8后,则输出为S=0.662872。编程:inti;doublesum=0.0;if(n1&&n=100){for(i=1;i=n;i++)sum+=1.0/(2*i-1)-1.0/(2*i);}returnsum;填空:[1]j=2[2]i[3]j改错:改为:if(*r=='\0')改为:if(sum%4==2)5.01012')(101KKXXS—3—23套:请编写函数fun,其功能是:计算并输出当x0.97时下列多项式的值,直到|Sn-S(n-1)|0.000001为止。Sn=1+0.5x+0.5(0.5-1)/2!x(2)+...+0.5(0.5-1)(0.5-2).....(0.5-n+1)/n!x(n)例如,若主函数从键盘给x输入0.21后,则输出为s=1.100000。doubles1=1.0,p=1.0,sum=0.0,s0,t=1.0;intn=1;do{s0=s1;sum+=s0;t*=n;p*=(0.5-n+1)*x;s1=p/t;n++;}while(fabs(s1-s0)1e-6);returnsum;填空:[1]x[2]n[3]fabs(t)改错:[1]改为:for(i=1;i=y;i++)[2]改为:t=t%1000;类型三:调整一个数的个、十、百、千位2、请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的千位和十位上。例如,当a=45,b=12,调用该函数后c=1524。*c=(b/10)*1000+(a%10)*100+(b%10)*10+a/10;填空:[1]sturctstudent[2]a.name[3]a.score[i]改错:[1]if(p==n)return-1;[2]a[i]=a[i+1];6、请编写函数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;}填空:[1]STYPE[2]FILE[3]fp改错:[1]for(i=0;isl;i++)[2]t[2*sl]='\0';26、请编写函数fun,其功能是:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如,当a=45,b=12,调用该函数后c=2514。本题的关键在于如何表示出个、十、百、千位数。对于一个两位的整数,用10对它求余得到个位数上的数,将它除10得到十位数上的数。*c=(b%10)*1000+(a%10)*100+(b/10)*10+a/10;}填空:[1]fp[2]fclose(fp)[3]fname改错:[1]for(i=j+1;in;i++)[2]p=i;类型四:与下标或ASCII码有关—4—38.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。inti,j=0;for(i=0;s[i]!='\0';i++)if(i%2==0&&s[i]%2==0)t[j++]=s[i];t[j]='\0';改错:[1]while(ij)[2]*c=‘\0'填空:[1]j[2]k[3]p49编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如,若原来的字符串为CEAedca,则排序后输出为CedcEAa。inti,j,t;for(i=1;inum-2;i++)for(j=i+1;jnum-1;j++)if(s[i]s[j]){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]150.请编写函数fun,其功能是:将s所指字符串中除了下标为偶数、同时ASCII值也为偶数的字符外,其余的全都删除;串中剩余字符所形成的一个新串放在t所指的数组中。例如,若s所指字符串中的内容为ABCDEFGl23456,其中字符A的ASCII码值为奇数,因此应当删除;其中字符B的ASCII码值为偶数,但在数组中的

1 / 9
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功