高级程序设计期末习题.docx
《高级程序设计期末习题.docx》由会员分享,可在线阅读,更多相关《高级程序设计期末习题.docx(39页珍藏版)》请在冰豆网上搜索。
高级程序设计期末习题
1.输入用单个字母表示的成绩信息,转换为百分制分数。
说明:
输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65.
#include
main()
{
intscore;
chargrade;
scanf("%c",&grade);
switch(grade)
case'A':
printf("95\n");break;
case'B':
printf("85\n");break;
case'C':
printf("75\n");break;
case'D':
printf("65\n");break;
}
printf("\n");
return0;
2.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。
(1)当x小于5时,y=0
(2)当x大于5且小于等于10时,y=sin(x)
(3)当x大于10时,y=cos(x)+sin(x)
#include"math.h"
floaty,x;
scanf("%f",&x);
if(x<5)
y=0;
printf("%.2f\n",y);
elseif(x>5&&x<=10)
printf("%.2f\n",y=sin(x));
elseif(x>10)
printf("%.2f\n",y=cos(x)+sin(x));
elseprintf(“Nonumber\n”);
3.根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。
(1)当x小于6时,y等于(1+x)
(2)当x大于等于6且小于10时,y等于(x-2)的平方加1
(3)当x大于等于10时,y等于sin(x)+2x
if(x<6)
printf("%.2f\n",y=1+x);
elseif(x>=6&&x<10)
printf("%.2f\n",y=(x-2)*(x-2)+1);
elseif(x>=10)
printf("%.2f\n",y=sin(x)+1);
4.从键盘输入三个整数,找处其最大和最小的数,并输出。
inta,b,c,max,min;
scanf("%d,%d,%d",&a,&b,&c);
max=a;
min=a;
if(a>b)
{min=b;
if(b>c)
min=c;
elseif(c>a)
max=c;}
elseif(b>a)
max=b;
if(c>b)
max=c;
if(cmin=c;}printf("max=%d,min=%d",max,min);}5.输入一个3位的正整数,判定该正整数是否为一个回文数。(所谓回文数是指正读和反读都相同的数,例如131)。#includemain(){intx;printf("请输入一个三位数\n");scanf("%d",&x);if(x/100==x%10)printf("该数为回文数\n");elseprintf("该数不是回文数\n");}6.从键盘输入三个整数a、b、c,输出其中最大的数。#includemain(){inta,b,c,max;printf("输入三个整数\n");scanf("%d,%d,%d",&a,&b,&c);max=a;if(b>a&&b>c)max=b;if(c>a&&c>b)max=c;printf("Thebigestnumis:%d\n",max);}7.从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。#includeintmain(){chartmp;scanf("%c",&tmp);if(tmp>=65&&tmp<=90){tmp=tmp+32;printf("%c",tmp);return0;}if(tmp>=97&&tmp<=122){tmp=tmp-32;printf("%c",tmp);return0;}}8.从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点后两位。例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。#includemain(){floata;intb;printf("inputanum\n");scanf("%f",&a);b=a*100+0.5;a=b/100.0;printf("thenumis:%.2f\n",a);}9.从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推#includemain(){inta,up,down;scanf("%d",&a);up=a/100*100;down=a/100*100+99;printf("up=%d,down=%d\n",up,down);}10.从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推#includevoidmain(){floata,up,down,i;printf("请输入三位小数\n");scanf("%f",&a);for(i=0;i<1;i=i+0.1)if(i<=a&&(i+0.1)>=a){down=i;up=i+0.1-0.001;}printf("下边界%.3f,上边界%.3f\n",down,up);}11.根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。(1)当x小于1时,y等于2+cos(x)(2)当x大于等于1且x小于2时,y等于x的平方加上sin(x)(3)当x大于等于2时,y等于(x-2)的平方根;要求:按格式输出x和y的值,要求小数点后保留2位。#include#include"math.h"main(){floaty,x;scanf("%f",&x);if(x<1){printf("%.2f\n",y=2+cos(x));}elseif(x>=1&&x<2){printf("%.2f\n",y=x*x+sin(x));}elseif(x>=2){printf("%.2f\n",y=sqrt(x-2));}}12.从键盘输入国际货币表示的商品价格,请转换为人民币。要求:仅仅考虑美元($)和欧元€,汇率分别6和8。例如输入$100,输出600,输入E100,输出800#includemain(){chara;intb;scanf("%c%d",&a,&b);switch(a){case'E':printf("¥%d\n",8*b);break;case'$':printf("¥%d\n",6*b);break;}}13.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No#include#includemain(){inti,a,k;printf("Pleaseinputanum:\n");scanf("%d",&a);k=(int)sqrt(a);for(i=2;i<=k;i++)if(a%i==0){break;}if(i>k){printf("YES\n");}else{printf("NO\n");}}14.输出公元1000至今的所有闰年的数量#includemain(){intyear,i;for(i=1000;i<=2014;i++){if(i%4==0&&i%100!=0)printf("%d\n",i);if(i%400==0)printf("%d\n",i);}}15.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。#includemain(){inti,n,j=1;doublesum=0.0;printf("Pleaseinputanum:\n");scanf("%d",&n);for(i=1;i<=n;i++){sum+=1.0/i*j;j=-j;}printf("sum=%lf\n",sum);}16.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。#includemain(){inta,i,s=0;scanf("%d",&a);for(i=1;i{if(a%i==0)s+=i;}if(a==s)printf("YES\n");elseprintf("No\n");}17.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。#includemain(){inti;floats=0.0,a=2.0,b=1.0,k=0.0,j=1.0;for(i=1;i<=10;i++){s+=a/b*j;j=-j;k=a;a=b+a;b=k;}printf("S=%f\n",s);}18.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta[5],s=0,i;a[0]=0;a[1]=1;for(i=2;i<=4;i++){a[i]=a[i-1]+a[i-2];}for(i=0;i<=4;i++){s+=a[i];}printf("S=%d\n",s);}19.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#includemain(){inta,b,c,s=0,i;for(i=100;i<1000;i++){a=i%10;b=i/100;c=i/10-b*10;if(i==a*a*a+b*b*b+c*c*c)s+=i;}printf("S=%d\n",s);}20.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出21.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){doublesum=0;intn,i,j=0;scanf("%d",&n);for(i=1;i<=n;i++){j+=i;sum+=1.0/j;}printf("%lf\n",sum);}22.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解#includemain(){intx,y,z,count=0;for(x=1;x<10;++x){for(y=1;y<10;++y){for(z=0;z<10;++z){if(x*10+y+y*10+z==102){printf("%d%d%d\n",x,y,z);count++;}}}}if(!count){printf("无解\n");}}23.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includemain(){intx,y,z,count=0;for(x=1;x<10;++x){for(y=1;y<10;++y){for(z=0;z<10;++z){if(x*10+x+y*10+z==124){printf("%d%d%d\n",x,y,z);count++;}}}}if(!count){printf("无解\n");}}24.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。#includemain(){floatsum=0.0,j=1.0,k=2.0,m;inti,n;for(i=1;i<=10;i++){sum+=j/k;m=k;k=j+k;j=m;}printf("%f\n",sum);}25.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includeastrcat(char*t,char*s);voidmain(){chars1[40],s2[40],*s,*t;t=s1;s=s2;printf("Inputstring1:\n");gets(s1);printf("Inputstring2:\n");gets(s2);astrcat(s1,s2);printf("Thestringis:%s\n",s1);}astrcat(char*t,char*s){inti,j=0,n,m;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}t[m+j]='\0';}}26.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t);voidmain(){char*t,s1[40];t=s1;printf("Inputthestring:\n");gets(t);clear(s1);printf("Thestringis:%s\n",s1);}voidclear(char*t){intn,i,j=0;n=strlen(t);for(i=0;i{if(t[i]>='a'&&t[i]<='z'||t[i]>='A'&&t[i]<='Z'){t[j]=t[i];j++;}}t[j]='\0';}27.已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#include#includevoidinsert(int*p,intd){inti,j,n=6;for(i=0;i<6;i++){printf("%d.",p[i]);}printf("\n");for(i=0;i<6;i++){if(d{j=i;break;}}for(i=5;i>=j;i--){p[i+1]=p[i];}p[i+1]=d;for(i=0;i<=n;i++)printf("%d.",p[i]);printf("\n");}main(){int*p,s1[7]={1,2,4,6,12,14},d;p=s1;printf("Inputanum:\n");scanf("%d",&d);insert(s1,d);return0;}28.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。#includevoidmremove(double*p,doubled){inti,j=0;for(i=0;i<6;i++){printf("%lf\n",p[i]);}for(i=0;i<6;i++){if(d==p[i]){j=i;break;}elseif(d!=p[i]){j=7;break;}}if(j!=7){for(i=j;i<6;i++)p[i-1]=p[i];p[5]='\0';for(i=0;i<5;i++)printf("%lf\n",p[i]);}elseprintf("此数不存在\n");}main(){double*p,d,s1[10]={3,23,-7,8,9,10};printf("Inputanum\n");scanf("%lf",&d);p=s1;mremove(s1,d);return0;}29.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数;否则,提示此数不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始数据和删除后的数据。#include#includevoiddel(char*p,charc);main(){char*p;charc;chars1[]="English";p=s1;scanf("%c",&c);del(p,c);return0;}voiddel(char*p,charc){intn,i,j=0;n=strlen(p);printf("%s\n",p);for(i=0;i{if(p[i]==c){j=1;for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
printf("max=%d,min=%d",max,min);
5.输入一个3位的正整数,判定该正整数是否为一个回文数。
(所谓回文数是指正读和反读都相同的数,例如131)。
intx;
printf("请输入一个三位数\n");
scanf("%d",&x);
if(x/100==x%10)
printf("该数为回文数\n");
else
printf("该数不是回文数\n");
6.从键盘输入三个整数a、b、c,输出其中最大的数。
inta,b,c,max;
printf("输入三个整数\n");
if(b>a&&b>c)
if(c>a&&c>b)
printf("Thebigestnumis:
%d\n",max);
7.从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。
intmain()
chartmp;
scanf("%c",&tmp);
if(tmp>=65&&tmp<=90)
tmp=tmp+32;
printf("%c",tmp);
if(tmp>=97&&tmp<=122)
tmp=tmp-32;
8.从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点后两位。
例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。
floata;
intb;
printf("inputanum\n");
scanf("%f",&a);
b=a*100+0.5;
a=b/100.0;
printf("thenumis:
%.2f\n",a);
9.从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推
inta,up,down;
scanf("%d",&a);
up=a/100*100;
down=a/100*100+99;
printf("up=%d,down=%d\n",up,down);
10.从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推
voidmain()
floata,up,down,i;
printf("请输入三位小数\n");
for(i=0;i<1;i=i+0.1)
if(i<=a&&(i+0.1)>=a)
down=i;
up=i+0.1-0.001;
printf("下边界%.3f,上边界%.3f\n",down,up);
11.根据下面的函数关系,对输入的每个x值,计算出相应的y值并输出结果。
(1)当x小于1时,y等于2+cos(x)
(2)当x大于等于1且x小于2时,y等于x的平方加上sin(x)
(3)当x大于等于2时,y等于(x-2)的平方根;
要求:
按格式输出x和y的值,要求小数点后保留2位。
if(x<1)
printf("%.2f\n",y=2+cos(x));
elseif(x>=1&&x<2)
printf("%.2f\n",y=x*x+sin(x));
elseif(x>=2)
printf("%.2f\n",y=sqrt(x-2));
12.从键盘输入国际货币表示的商品价格,请转换为人民币。
仅仅考虑美元($)和欧元€,汇率分别6和8。
例如输入$100,输出600,输入E100,输出800
chara;
scanf("%c%d",&a,&b);
switch(a)
case'E':
printf("¥%d\n",8*b);break;
case'$':
printf("¥%d\n",6*b);break;
13.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No
inti,a,k;
printf("Pleaseinputanum:
\n");
k=(int)sqrt(a);
for(i=2;i<=k;i++)
if(a%i==0)
break;
if(i>k)
printf("YES\n");
printf("NO\n");
14.输出公元1000至今的所有闰年的数量
intyear,i;
for(i=1000;i<=2014;i++)
if(i%4==0&&i%100!
=0)
printf("%d\n",i);
if(i%400==0)
15.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。
inti,n,j=1;
doublesum=0.0;
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=1.0/i*j;
j=-j;
printf("sum=%lf\n",sum);
16.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。
完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。
inta,i,s=0;
for(i=1;i{if(a%i==0)s+=i;}if(a==s)printf("YES\n");elseprintf("No\n");}17.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。#includemain(){inti;floats=0.0,a=2.0,b=1.0,k=0.0,j=1.0;for(i=1;i<=10;i++){s+=a/b*j;j=-j;k=a;a=b+a;b=k;}printf("S=%f\n",s);}18.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。#includemain(){inta[5],s=0,i;a[0]=0;a[1]=1;for(i=2;i<=4;i++){a[i]=a[i-1]+a[i-2];}for(i=0;i<=4;i++){s+=a[i];}printf("S=%d\n",s);}19.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).#includemain(){inta,b,c,s=0,i;for(i=100;i<1000;i++){a=i%10;b=i/100;c=i/10-b*10;if(i==a*a*a+b*b*b+c*c*c)s+=i;}printf("S=%d\n",s);}20.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出21.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位#includevoidmain(){doublesum=0;intn,i,j=0;scanf("%d",&n);for(i=1;i<=n;i++){j+=i;sum+=1.0/j;}printf("%lf\n",sum);}22.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解#includemain(){intx,y,z,count=0;for(x=1;x<10;++x){for(y=1;y<10;++y){for(z=0;z<10;++z){if(x*10+y+y*10+z==102){printf("%d%d%d\n",x,y,z);count++;}}}}if(!count){printf("无解\n");}}23.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有解,否则输出无解#includemain(){intx,y,z,count=0;for(x=1;x<10;++x){for(y=1;y<10;++y){for(z=0;z<10;++z){if(x*10+x+y*10+z==124){printf("%d%d%d\n",x,y,z);count++;}}}}if(!count){printf("无解\n");}}24.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。#includemain(){floatsum=0.0,j=1.0,k=2.0,m;inti,n;for(i=1;i<=10;i++){sum+=j/k;m=k;k=j+k;j=m;}printf("%f\n",sum);}25.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includeastrcat(char*t,char*s);voidmain(){chars1[40],s2[40],*s,*t;t=s1;s=s2;printf("Inputstring1:\n");gets(s1);printf("Inputstring2:\n");gets(s2);astrcat(s1,s2);printf("Thestringis:%s\n",s1);}astrcat(char*t,char*s){inti,j=0,n,m;m=strlen(t);n=strlen(s);for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}t[m+j]='\0';}}26.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t);voidmain(){char*t,s1[40];t=s1;printf("Inputthestring:\n");gets(t);clear(s1);printf("Thestringis:%s\n",s1);}voidclear(char*t){intn,i,j=0;n=strlen(t);for(i=0;i{if(t[i]>='a'&&t[i]<='z'||t[i]>='A'&&t[i]<='Z'){t[j]=t[i];j++;}}t[j]='\0';}27.已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#include#includevoidinsert(int*p,intd){inti,j,n=6;for(i=0;i<6;i++){printf("%d.",p[i]);}printf("\n");for(i=0;i<6;i++){if(d{j=i;break;}}for(i=5;i>=j;i--){p[i+1]=p[i];}p[i+1]=d;for(i=0;i<=n;i++)printf("%d.",p[i]);printf("\n");}main(){int*p,s1[7]={1,2,4,6,12,14},d;p=s1;printf("Inputanum:\n");scanf("%d",&d);insert(s1,d);return0;}28.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。#includevoidmremove(double*p,doubled){inti,j=0;for(i=0;i<6;i++){printf("%lf\n",p[i]);}for(i=0;i<6;i++){if(d==p[i]){j=i;break;}elseif(d!=p[i]){j=7;break;}}if(j!=7){for(i=j;i<6;i++)p[i-1]=p[i];p[5]='\0';for(i=0;i<5;i++)printf("%lf\n",p[i]);}elseprintf("此数不存在\n");}main(){double*p,d,s1[10]={3,23,-7,8,9,10};printf("Inputanum\n");scanf("%lf",&d);p=s1;mremove(s1,d);return0;}29.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数;否则,提示此数不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始数据和删除后的数据。#include#includevoiddel(char*p,charc);main(){char*p;charc;chars1[]="English";p=s1;scanf("%c",&c);del(p,c);return0;}voiddel(char*p,charc){intn,i,j=0;n=strlen(p);printf("%s\n",p);for(i=0;i{if(p[i]==c){j=1;for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
s+=i;
if(a==s)
printf("No\n");
17.计算分数序列:
2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。
inti;
floats=0.0,a=2.0,b=1.0,k=0.0,j=1.0;
for(i=1;i<=10;i++)
s+=a/b*j;
k=a;
a=b+a;
b=k;
printf("S=%f\n",s);
18.计算Fibonacci数列中前5项的和。
提示:
Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1,F(n)=F(n-1)+F(n-2)。
inta[5],s=0,i;
a[0]=0;
a[1]=1;
for(i=2;i<=4;i++)
a[i]=a[i-1]+a[i-2];
for(i=0;i<=4;i++)
s+=a[i];
printf("S=%d\n",s);
19.计算全部水仙花数的和(提示:
“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:
153).
inta,b,c,s=0,i;
for(i=100;i<1000;i++)
a=i%10;
b=i/100;
c=i/10-b*10;
if(i==a*a*a+b*b*b+c*c*c)
20.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出
21.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位
doublesum=0;
intn,i,j=0;
j+=i;
sum+=1.0/j;
printf("%lf\n",sum);
22.由x,y二个数字组成二位数xy和yz,且xy+yz=102。
如果有解,输出所有解,否则输出无解
intx,y,z,count=0;
for(x=1;x<10;++x)
for(y=1;y<10;++y)
for(z=0;z<10;++z)
if(x*10+y+y*10+z==102)
printf("%d%d%d\n",x,y,z);
count++;
if(!
count)
printf("无解\n");
23.由x,y二个数字组成二位数xx和yz,且xy+yz=124。
if(x*10+x+y*10+z==124)
24.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。
floatsum=0.0,j=1.0,k=2.0,m;
inti,n;
sum+=j/k;
m=k;
k=j+k;
j=m;
printf("%f\n",sum);
25.编写函数astrcat(char*t,char*s)将字符串s中的全部大写字符连接到字符串t的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
astrcat(char*t,char*s);
chars1[40],s2[40],*s,*t;
t=s1;
s=s2;
printf("Inputstring1:
gets(s1);
printf("Inputstring2:
gets(s2);
astrcat(s1,s2);
printf("Thestringis:
%s\n",s1);
astrcat(char*t,char*s)
inti,j=0,n,m;
m=strlen(t);
n=strlen(s);
for(i=0;i{if(s[i]>='A'&&s[i]<='Z'){t[m+j]=s[i];j++;}t[m+j]='\0';}}26.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。#include#includevoidclear(char*t);voidmain(){char*t,s1[40];t=s1;printf("Inputthestring:\n");gets(t);clear(s1);printf("Thestringis:%s\n",s1);}voidclear(char*t){intn,i,j=0;n=strlen(t);for(i=0;i{if(t[i]>='a'&&t[i]<='z'||t[i]>='A'&&t[i]<='Z'){t[j]=t[i];j++;}}t[j]='\0';}27.已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#include#includevoidinsert(int*p,intd){inti,j,n=6;for(i=0;i<6;i++){printf("%d.",p[i]);}printf("\n");for(i=0;i<6;i++){if(d{j=i;break;}}for(i=5;i>=j;i--){p[i+1]=p[i];}p[i+1]=d;for(i=0;i<=n;i++)printf("%d.",p[i]);printf("\n");}main(){int*p,s1[7]={1,2,4,6,12,14},d;p=s1;printf("Inputanum:\n");scanf("%d",&d);insert(s1,d);return0;}28.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。#includevoidmremove(double*p,doubled){inti,j=0;for(i=0;i<6;i++){printf("%lf\n",p[i]);}for(i=0;i<6;i++){if(d==p[i]){j=i;break;}elseif(d!=p[i]){j=7;break;}}if(j!=7){for(i=j;i<6;i++)p[i-1]=p[i];p[5]='\0';for(i=0;i<5;i++)printf("%lf\n",p[i]);}elseprintf("此数不存在\n");}main(){double*p,d,s1[10]={3,23,-7,8,9,10};printf("Inputanum\n");scanf("%lf",&d);p=s1;mremove(s1,d);return0;}29.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数;否则,提示此数不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始数据和删除后的数据。#include#includevoiddel(char*p,charc);main(){char*p;charc;chars1[]="English";p=s1;scanf("%c",&c);del(p,c);return0;}voiddel(char*p,charc){intn,i,j=0;n=strlen(p);printf("%s\n",p);for(i=0;i{if(p[i]==c){j=1;for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
if(s[i]>='A'&&s[i]<='Z')
t[m+j]=s[i];
j++;
t[m+j]='\0';
26.编写函数clear(char*t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。
voidclear(char*t);
char*t,s1[40];
printf("Inputthestring:
gets(t);
clear(s1);
voidclear(char*t)
n=strlen(t);
for(i=0;i{if(t[i]>='a'&&t[i]<='z'||t[i]>='A'&&t[i]<='Z'){t[j]=t[i];j++;}}t[j]='\0';}27.已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。#include#includevoidinsert(int*p,intd){inti,j,n=6;for(i=0;i<6;i++){printf("%d.",p[i]);}printf("\n");for(i=0;i<6;i++){if(d{j=i;break;}}for(i=5;i>=j;i--){p[i+1]=p[i];}p[i+1]=d;for(i=0;i<=n;i++)printf("%d.",p[i]);printf("\n");}main(){int*p,s1[7]={1,2,4,6,12,14},d;p=s1;printf("Inputanum:\n");scanf("%d",&d);insert(s1,d);return0;}28.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。#includevoidmremove(double*p,doubled){inti,j=0;for(i=0;i<6;i++){printf("%lf\n",p[i]);}for(i=0;i<6;i++){if(d==p[i]){j=i;break;}elseif(d!=p[i]){j=7;break;}}if(j!=7){for(i=j;i<6;i++)p[i-1]=p[i];p[5]='\0';for(i=0;i<5;i++)printf("%lf\n",p[i]);}elseprintf("此数不存在\n");}main(){double*p,d,s1[10]={3,23,-7,8,9,10};printf("Inputanum\n");scanf("%lf",&d);p=s1;mremove(s1,d);return0;}29.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数;否则,提示此数不存在。要求:编制函数del(char*p,charc)实现数据的清理工作,并输出原始数据和删除后的数据。#include#includevoiddel(char*p,charc);main(){char*p;charc;chars1[]="English";p=s1;scanf("%c",&c);del(p,c);return0;}voiddel(char*p,charc){intn,i,j=0;n=strlen(p);printf("%s\n",p);for(i=0;i{if(p[i]==c){j=1;for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
if(t[i]>='a'&&t[i]<='z'||t[i]>='A'&&t[i]<='Z')
t[j]=t[i];
t[j]='\0';
27.已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。
要求输出原始数组和插入之后的数组。
要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。
例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。
voidinsert(int*p,intd)
inti,j,n=6;
for(i=0;i<6;i++)
printf("%d.",p[i]);
if(d
j=i;
for(i=5;i>=j;i--)
p[i+1]=p[i];
p[i+1]=d;
for(i=0;i<=n;i++)
int*p,s1[7]={1,2,4,6,12,14},d;
p=s1;
printf("Inputanum:
scanf("%d",&d);
insert(s1,d);
28.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。
若存在,则删除此数;否则,提示此数不存在。
编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。
voidmremove(double*p,doubled)
inti,j=0;
printf("%lf\n",p[i]);
if(d==p[i])
elseif(d!
=p[i])
j=7;
if(j!
=7)
for(i=j;i<6;i++)
p[i-1]=p[i];
p[5]='\0';
for(i=0;i<5;i++)
printf("此数不存在\n");
double*p,d,s1[10]={3,23,-7,8,9,10};
printf("Inputanum\n");
scanf("%lf",&d);
mremove(s1,d);
29.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。
编制函数del(char*p,charc)实现数据的清理工作,并输出原始数据和删除后的数据。
voiddel(char*p,charc);
char*p;
charc;
chars1[]="English";
scanf("%c",&c);
del(p,c);
voiddel(char*p,charc)
n=strlen(p);
printf("%s\n",p);
for(i=0;i{if(p[i]==c){j=1;for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
if(p[i]==c)
j=1;
for(i=i;i{p[i]=p[i+1];}printf("%s\n",p);}}if(j==0)printf("不存在\n");}30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。#include#includevoidmstrcat(char*t,char*s);voidmain(){char*t,*s,s2[40],s1[40];t=s1;s=s2;printf("Inputthestring1:\n");gets(t);printf("Inputthestring2:\n");gets(s);mstrcat(s1,s2);printf("Thestringis:%s\n",s1);}voidmstrcat(char*t,char*s){intn,m,i,j=0;n=strlen(t);m=strlen(s);for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
p[i]=p[i+1];
if(j==0)
printf("不存在\n");
30.编写函数mstrcat(char*t,char*s)将字符串s中的全部英文字符连接到字符串t的尾部。
voidmstrcat(char*t,char*s);
char*t,*s,s2[40],s1[40];
printf("Inputthestring1:
printf("Inputthestring2:
gets(s);
mstrcat(s1,s2);
voidmstrcat(char*t,char*s)
intn,m,i,j=0;
m=strlen(s);
for(i=0;i{if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z'){t[n+j]=s[i];j++;}}t[n+j]='\0';}31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。#includeitoa(char*p,intn){inti=0,j;charc;while(n!=0){p[i]=n%10+'0';i++;n/=10;}p[i]='\0';j=--i;while(j-i{c=p[j-i];p[j-i]=p[i];p[i]=c;i--;}}voidmain(){char*p,s1[10];intn;p=s1;scanf("%d",&n);itoa(p,n);printf("%s\n",s1);}32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。#include#includevoidmstrcpy(char*t,char*s,intm){intn,i,a=0;n=strlen(t);for(i=m-1;i<100;i++){t[n+a]=s[i];a++;}printf("%s\n",t);}main(){cha
if(s[i]>='a'&&s[i]<='z'||s[i]>='A'&&s[i]<='Z')
t[n+j]=s[i];
t[n+j]='\0';
31.编写函数itoa(intn,char*p)实现将整数n转换为字符串存储到p中。
要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。
itoa(char*p,intn)
inti=0,j;
while(n!
p[i]=n%10+'0';
i++;
n/=10;
p[i]='\0';
j=--i;
while(j-i
c=p[j-i];
p[j-i]=p[i];
p[i]=c;
i--;
char*p,s1[10];
intn;
itoa(p,n);
printf("%s\n",s1);
32.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。
要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。
voidmstrcpy(char*t,char*s,intm)
intn,i,a=0;
for(i=m-1;i<100;i++)
t[n+a]=s[i];
a++;
printf("%s\n",t);
cha
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1