2023年加强版程序设计答案版_第1页
2023年加强版程序设计答案版_第2页
2023年加强版程序设计答案版_第3页
2023年加强版程序设计答案版_第4页
2023年加强版程序设计答案版_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

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

文档简介

1.1题目:请编写函数fun,该函数的功能是:将放在字符串数组中的M个字符串(每串的长度不超过N),按顺序合并组成一个新的字符串。例如:若字符串数组中的M个字符串为{AAAA",“BBBBBB","CC"则合并后的字符串内容应该是“AAABBBBBBCC"注意:请勿改动main函数和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语可。inti,j,k=0;for(i=0;i<M;i++)for(j=0;a[i][j]!=’\0’;j++)b[k++]=a[i][j];b[k]=’\0’;1.2题目:题目:请编写fun函数程序,从键盘输入某一年,判断该年是否为闰年。闰年的条件是:(1)能被4整除但不能被100整除。(2)能被400整除。符合任何一个条件就是闰年。输入年份为整型if((year%4==0&&year%100!=0)||year%400==0)return1;elsereturn0;1.3题目:(待议)题目:编写函数fun;其功能是:根据以下公式求的值,结果由函数值带回。m与n为两个正整数且规定m>n.如“样张”。P=m!/n!(m-n)!)例如:m=12,n=8时,运营结果为495000000注意请勿改动主函数main和其他函数中的任何内容。仅在函数fun的花括号中填入你编写的若干语句。(参考百度)floatp;p=1.0*jc(m)/jc(n)/jc(m-n);

returnp;2.1功能:对长度为8个字符的字符串,将8个字符按降序排列。例如:本来的字符串为CEAedcab,排序后输出为edcbaECAinti,j;chart;for(i=0;i<mum;i++)for(j=i+1;j<num;j++)if(s[i]<s[j]){t=s[i];s[i]=s[j];s[j]=t;}2.2编写程序,实现矩阵(3行、3列)的转置(即行列互换)。例如,若输入下面的矩阵:100200300400500600700800900则程序输出:100400300200500800300600900inti,j,t;for(i=0;i<3;i++)for(j=i+1;j<3;j++){t=array[i][j];array[i][j]=array[j][i];array[j][i]=t;}3.1题目:编写函数fun,其功能是:将a、b两个两位正整数合并成一个新的整数放在c中。合并的方式是:将a中的十位和个位数依次放在变量c的千位和十位上,b中的十位和个位数依次放在变量c的个位和百位上。例如:当a=45,b=12,调用该函数后c=4251注意:请勿改动主函数main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。*c=b/10+(a%10)*10+(b%10)*100+(a/10)*1000;3.2题目:编写函数fun,其功能是:求出1~100之间能被7或11整除,但不能同时被7和11整除的所有整数,并将其放在a所指的数组中,通过n返回这些数的个数。注意:请勿改动主函教main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。inti,j=0;for(i=1;i<=100;i++)if((i%7==0||i%11==0)&&i%77!=0)a[j++]=i;*n=j;4.1题目:编写通数fun,其功能是;将s所指字符串中ASCII值为奇数的字符删除,剩余字符形成的新串放在t所指数组中。例如:若s所指字符串中的内容为:“ABCDEFG12345",其中字符的ASCII码值为奇数字符1的ASCII码值也为奇数,都应当删除,其它依此类推。最后t所指的数组中的内容应是:“BDF24"inti,j=0;for(i=0;i<strlen(s);i++)if(s[i]%2==0)t[j++]=s[i];t[j]=0;4,2请编写一个函数,用来删除字符串中的所有空格。例如,输入asdafaaz67 .则输出为i=0;char*p=str;while(*p){if(*p!=’'){str[i]=*p;i++;}p++;}str[i]='\0';5,1(待议)题目:请编fun函数写程序,从键盘输入百分制成绩,规定输出等级制成绩A、B、C、D。

90~100分为A,80~89分为B,60~79分为C,1~59分为D。不考虑小数,输入为整数,输出为字符。(参考百度)charfun(intn){charp;if(n==9||n==10)p=’A’;elseif(n==8)p=’B’;elseif(n==6||n==7)p=’C’;elsep=’D’;return(p);}5,2题目:请编写函数fun,其功能是:将一个数字字符串转换为一个整数不得调用c语言提供的将字符串转换为整数的函数)。例如:若输入字符串“一1234",则函数把它转换为整数值一1234。注意:请勿改动主函教main和其它函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。longn=0;intflag=1;if(*p=='-'){p++;flag=-1;}elseif(*p==’+’)p++;while(*p!=’\0’){n=n*10+*p-‘0’;p++;}returnn*flag;6,1请编写函数fun,函数的功能是:移动一维数组中的内容,若数组中有n个整数,规定把下标从0~p(含p,p小于等于n-1)的数组元素平移到数组的最后。例如,一维数组中的原始内容:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后,一维数组中的内容应为:5,6,7,8,9,10,1,2,3,4。inti,j,t;for(i=p+1;i<n;i++)for(j=i;j>i-p-1;j--){t=w[j];w[j]=w[j-1];w[j-1]=t;}6,2功能:编写函数求3!+6!+9!+12!+15!+18!+21!inti,j;floatt,s=0;for(i=3;i<=n;i=i+3){t=1;for(j=1:j<=i;j++)t=t*j;s=s+t;}return(s);7,1请编写函数fun,其功能是计算并输出如下多项式的值。

Sn=1+1/1!

+1/2!

+1/3!

+1/4!

+..+1/n!

例如,若主函数从键盘给n

输入15,则输出为S=2.718282。doublet,sn=1.0;inti,j;for(i=1;1<=n;i++){t=1.0;for(j=1;j<=i;j++)t*=j;sn+=1.0/t;}returnsn;7,2已知学生的数据由学号和学习成绩构成,N名学生的数据已存入a结构体数组中。请编写函数fun,该函数的功能是:找出成绩最高的学生记录,通过形参返回主函数(规定只有一个最高分)。已给出函数的首部请完毕该函数。inti;*s=a[0];for(i=0;i<N;i++)if(s->s<a[i].s)*s=a[i];8.1功能,求1到w之间的奇数之和。(w是大于等于100小于等于1000的整数)intsum=0;inti;for(i=1;i<=w;++i){if(i%2!=0)sum+=i;}returnsum;8.2功能:找出一批正整教中的最大的偶数。inti,amax=-1;for(i=0;i<n;i++)if(a[i]%2==0)if(a[i]>amax)amax=a[i];returnamax;9.1(仿佛没法输出,关键字匹配100%,9分)在键盘上输入一个3行3列矩阵的各个元素的值(值为整数),然后输出主对角线元素的积,并在fun()函数中输出。intsum;inti,j;sum=1;for(i=0;i<3;i++)sum=sum*a[i][j];returnsum;9.2请编写函数fun,其功能是:找出一维整形数组元素中最大的值及其所在的下标,并通过形参传回。数组元素中的值已在主函数中赋予。主函数中x是数组名,n是x中的数据个数,max存放最大值,index存放最大值所在元素的下标,inti;*max=a[0];*d=0;for(i=0;i<n;i++)if(*max<a[i]){*max=a[i];*d=i;}10,1题目:编写的数fun,其功能是:从字符串中删除指定的字符。同字母的大、小写按不同字符解决。例如:若程序执行时输入字符串为"turbocandborlandc++*从键盘上输入字符n,则输出为"turbocadborladc++"假如输入的字符在字符串中不存在,则字符串照原样输出。inti=0;char*p;p=s;while(*p){if(*p!=c){s[i]=*p;i++;}p++;}s[i]=’\0’;10,2功能:编写函数fun,求任一整数m的n次方。longintx=1;inti:for(i=1;i<=n;i++)x=x*m;returnx;11.1题目:请编函数fun,其功能是将一个数字字符串转换成与其面值相同的长整型整数。可调用strlen函数求字符串的长度。例如:在键盘输入字符串’2345210’,函数返回长整型数2345210。longfun(char*s)inti;sum=0,len;len=strlen(s);for(i=0;i<len;i++){sum=sum*10+*s-48;s++;}returnsum;11.2题目:请编写函数fun,该函数的功能是:记录各年龄段的人数。N个年龄通过调用随机函数获得,并放入主函数的age数组中。规定函数把0~9岁年龄段的人数放在d[0]中,把10~19岁年龄段的人数放在d[1]中,把20~29岁年龄段的人数放在d[2]中,依此类推,把100岁(含100岁)以上年龄的人数都放在d[10]中。结果在主函数中输出.inti,n=0,fg=1;char*p=str;while(*P){n++;p++;}for(i=0;i<n/2;i++)if(str[i]==str[n-1-i])else{fg=0;break;}returnfg;12.1请编写函数fun,该函数的功能是:求出二维数组周边元素之和,作为函数值返回。二维数组中的值在主函数中赋予。inti,j,s=0;for(i=0;i<M;i++)s=s+a[i][0]+a[i][N-1];for(j=0;j<N-1;j++)s=s+a[0][j]+a[M-1][j];returns;12.2功能:对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII制降序排列。例如:本来的字符串为CEAede,排序后输出为CadEAa.charch;inti,j;for(i=I;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;}}13.1有一函数:如样张所示。请编fun函数,x,y均为整型,输入x值,输出y值。inty;if(x<0)y=x*x+x-6;elseif(x>=0&&x<=10)y=x*x-5*x+6;elsey=x*x-x-1;returny;13.2求Sn=a+aa+aaa+……+aa…a之值,其中,a代表1到9中的一个数字。例如:a代表2,则求2+22+222+2222+22222(此时n=5),a和n的值由键盘键入。intt=a,i,s;for(i=1,s=0;i<=n;i++){t=t*10+a;s=s+t;}returns;14.1功能:将两个两位数的正整数a、b合并形成一个整数放在c中。合并的方式是:将a数的十位和个位数依次放在c数的个位和百位上,b数的十位和个位数依次放在c数的十位和千位上。例如:当a=45,b=12,调用该函数后,c=2514。*c=a/10+(a%10)*100+(b/10)*10+(b%10)*1000;14.2功能:编写函数fun其功能是:根据整型形参m,计算如下公式的值:y=1+1/3+1/5+1/7+…+1/(2m+1)例如:若m=9,则应输出:2.133256doubley=0;inti;for(i=0;i<=m;i++){y+=1.0/(2*i+1);}return(y);15.1题目:请编写函数fun,对长度为7个字符的字符串,除首、尾字符外,将其余5个字符按ASCII码降序排列。例如:本来的字符串为"CEAedca",排序后输出为"CedcEAa"。charch;inti,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;}}15.2功能:对某一正数的值保存2位小数,并对第三位进行四舍五入。inti;i=(int)(h*1000)%10;if(i>=5)return(int)(h*100+1)/100.0;elsereturn(int)(h*100)/100.0;16.1请编写一个函数intfun(int*s,intt,int*k),用来求出数组的最大元素在数组中的下标并存放在k所指向的存储单元中。例如:输入如下整数:876675896101301401980431451777则输出结果为6,980。inti;*k=0;for(i=0;i<t;i++)if(s[*k]<s[i])*k=i;returns[*k];16.2功能:从键盘输入一个大于3的整教,调用函数fun判断其是否素数,然后在main函数中输出相应的结论信息。例如:7是素数,8不是素数。请编写fun区擞。素数是仅能被1和自身整除的数inti;for(i=2;i<n;i++)if(n%i==0)return0;return1;17.1题目:规定输入的字符串中只包含字母和*号。请编写函数fun,其功能是:使字符串中尾部的*号不多于n个,若多于n个,则删除多余的*号!若少于或等于n个则不做任何操作,字符串中间和前面的*号不删除。例如:字符串中的内容为“****A*BC*DEF*******,若n的值为4,删除后,字符串中的内容应为"****A*BC*DEF*G****;若n的值为7,则字符串中的内容仍为“****A*BC*DEF*G*******”。n的值在主函数中输入。编写函数时,不得使用C语言提供的字符串函数。inti=0,k=0;char*p,*t;p=t=a;while(*t)t++;t--;while(*t=='*'){k++;t--;}if(k>n){while(*p&&p<t+n+1){a[i]=*p;i++;p++;}a[i]='\0';}17.2题目:用函数求一个n阶方阵右下三角元素的和(涉及副对角线上的元素)。inti,j,k=0;for(i=0;i<N;i++)for(j=N-1-i;j<N;j++)k=k+a[i][j];return(k);18.1功能:用do-while语句求1~100的累计和inti=1,sum=0;do{sum=sum+i;i++;}while(i<=n);returnsum;18.2功能:用辗转相除法求两个整数的最大公约数。intr,t;if(n<m){t=n;n=m;m=t;}r=n%m;while(r!=

温馨提示

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

评论

0/150

提交评论