文档库

最新最全的文档下载
当前位置:文档库 > c语言

c语言

第一大题

13.根据下面的函数关系,对输入的每个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

main()

{

float x,y;

printf("请输入x:");

scanf("%f",&x);

if(x<1)

y=cos(x)+2;

else if(x<2)

y=x*x+sin(x);

else

y=sqrt(x-2);

printf("%.2f",y);

}

14. 从键盘读入一个实数,对其进行四舍五入处理,要求精确到到小数点后两位。例如输入12.345,其结果为12.35;输入12.341,其结果为12.34。

#include

main()

{

float x;

printf("请输入一个小数:");

scanf("%f",&x);

printf("%.2f\n",x);

}

15.从键盘输入任意一个字母,如果其为大写字母,则转为小写字母;如果其为小写字母,请转换为大写字母;其他情况保持不变,计算并输出。

#include

main()

{

printf("请输入一个字母:");

char x;

scanf("%c",&x);

if(x>='a'&&x<='z')

printf("%c ",x-32);

else if(x>='A'&&x<='Z')

printf("%c ",x+32);

else

printf("%c ",x);

}

16. 从键盘输入三个整数a、b、c,输出其中最大的数。

#include

main()

{

int a,b,c;

printf("请输入三个整数:");

scanf("%d%d%d",&a,&b,&c);

if(a

a=b;

if(a

a=c;

printf("最大的数是%d\n",a);

}

17. 输入用单个字母表示的成绩信息,转换为百分制分数。说明:输入A,输出95;输入B,输出85;输入C,输出75;输入D,输出65;输入E,输出65. #include

main()

{

printf("请输入一个字母: ");

char x;

scanf("%c",&x);

if(x=='A')

printf("95 ");

else if(x=='B')

printf("85 ");

else if(x=='C')

printf("75 ");

else if(x=='D')

printf("65 ");

else if(x=='E')

printf("65 ");

else

printf("错误");

}

18. 输入一个3位的正整数,判定该正整数是否为一个回文数。(所谓回文数是指正读和反读都相同的数,例如131)。

#include

main()

{

printf("请输入一个三位数:");

int x,a,b;

scanf("%d",&x);

a=x/100;

b=x%10;

if(a==b)

printf("%d是一个回文数",x);

else

printf("%d不是一个回文数",x);

}

19. 从键盘输入国际货币表示的商品价格,请转换为人民币。要求:仅仅考虑美元($)和欧元€,汇率分别6和8。例如输入$100,输出600,输入E100,输出800 #include

main()

{

printf("请输入商品价格:");

float x,y;

char a;

scanf("%c%f",&a,&x);

if(a=='$')

{

y=x*6;

printf("人民币为%f\n",y);

}

else if(a=='E')

{

y=x*8;

printf("人民币为%f\n",y);

}

else

{

printf("错误\n");

}

}

20. 从键盘输入三个整数,找处其最大和最小的数,并输出。

#include

main()

{

printf("请输入三个整数:");

int a,b,c,x,t;

scanf("%d%d%d",&a,&b,&c);

x=a;

if(a

x=b;

if(x

x=c;

t=a;

if(a>b)

t=b;

if(a>c)

t=c;

printf("最大值是%d,最小值是%d.\n",x,t);

}

21. 根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于6时,y等于(1+x)

(2)当x大于等于6且小于10时,y等于(x-2)的平方加1

(3)当x大于等于10时,y等于sin(x)+2x

#include

#include

main()

{

printf("请输入x:");

float x,y;

scanf("%f",&x);

if(x<6)

y=x+1;

else if(x<10)

y=(x-2)*(x-2)+1;

else

y=sin(x)+2*x;

printf("%.2f\n",y);

}

22. 根据下面的函数关系,输入X,计算Y,要求输出结果保留两位小数。(1)当x小于5时,y=0

(2)当x大于5且小于等于10时,y=sin(x)

(3)当x大于10时,y=cos(x)+sin(x)

#include

#include

main()

{

printf("请输入x:");

float x,y;

scanf("%f",&x);

if(x<5)

y=0;

else if(x<=10)

y=sin(x);

else if(x>10)

y=cos(x)+sin(x);

printf("%.2f\n",y);

}

42. 从键盘输入一个三位整数,计算其上下边界,例如123,其下边界为100,上边界为199,依此类推

#include

main()

{

printf("请输入一个三位整数:");

int x,a,b;

scanf("%d",&x);

a=x/100;

a=a*100;

b=a+99;

printf("上边界是%d,下边界是%d",b,a);

}

43. 从键盘输入一个三位纯小数,计算其上下边界,例如0.123,其下边界为0.100,上边界为0.199,依此类推

#include

main()

{

printf("请输入一个三位纯小数:");

float x,a,b;

scanf("%f",&x);

a=int(x/0.1);

a=a*0.1;

b=a+0.099;

printf("上边界是%.3f,下边界是%.3f",b,a);

}

第二大题

23.计算1-1/2+1/3-1/4+…+1/n的和,在主函数输入n,计算输出结果。

#include

void main()

{

float y;

int x,n,j2;

y=0;

j=1;

scanf("%f",&n);

for(x=1;x<=n;x++)

{

y=y+j*1/x;

j=-j;

printf("%f\n",y);

}

24.从键盘输入一个自然数,判定其是否为完数,如果是,输出Yes,否则输出No。完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。

#include

void main()

{

printf("请输入一个整数:");

int a,b,i;

b=1;

scanf("%d",&a);

for(i=2;i

{

if(a%i==0)

{

b=b+i;

}

}

if(b==a)

printf("Yes\n");

else

printf("NO\n");

}

25.计算1/2,2/3,3/5,5/8,8/13,13/21,……的前10项和,并输出结果。

注意前一项并不满足规律。

#include

void main()

{

float m,x,y,a,b,i,q,p;

a=1;

x=2;

b=2;

y=3;

m=a/b;

for(i=1;i<=2;i++)

{

m=m+x/y;

q=x;

x=x+a;

a=q;

p=y;

y=y+b;

b=p;

printf("%f\n",m);

}

26.计算分数序列:2/1,-3/2,5/3,-8/5,13/8,-21/13,…,的前10项之和并输出。

#include

#include

void main()

{

float y,n,i,m,q,w,a,b;

y=2;

n=3;

m=2;

q=2;

w=1;

for(i=1;i<=9;i++)

{

m=m+pow(-1,i)*n/y;

a=n;

n=n+q;

q=a;

b=y;

y=y+w;

w=b;

}

printf("%f\n",m);

}

27.从键盘读入一个自然数,判定其是否为素数,如果是,输出Yes,否则输出No

#include

main()

{

printf("请输入一个整数:");

int i,x,a;

scanf("%d",&x);

for(i=2;i

{

if(x%i==0)

{

a=1;

break;

}

if(x%i!=0)

{

a=0;

continue;

}

}

if(a==1)

printf("No\n");

else

printf("yes\n");

}

28.由x,y二个数字组成二位数xy和yz,且xy+yz=102。如果有解,输出所有解,否则输出无解

这道题不知道z是从哪来的,所以答案仅供参考!我把z看成x

#include

void main()

{

int x,y,z;

for(x=1;x<=10;x++)

{

for(y=1;y<=10;y++)

{

z=x*10+y+y*10+x;

if(z==102)

printf("%d %d\n",x,y);

}

if(x==10)

printf("无解\n");

}

}

29.计算Fibonacci数列中前5项的和。提示:Fibonacci数列F(n)的定义为:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)。

#include

main()

{

int a,b,c,i,w;

b=1;

a=0;

c=0;

for(i=1;i<=4;i++)

{

a=a+b;

w=b;

b=b+c;

c=w;

}

printf("%d\n",a);

}

30.计算全部水仙花数的和(提示:“水仙花”数是指一个三位数,其各位数字的立方和等于该数本身,例如:153).

#include

#include

main()

{

int x,a,b,c,y;

for(x=100;x<=999;x++)

{

a=x/100;

b=x/10-a*10;

c=x%10;

y=pow(a,3)+pow(b,3)+pow(c,3);

if(y==x)

printf("%d ",x);

}

}

31.计算S=1-1/12+1/12-1/12+1/12……-1/102的值,并输出

这道题我不懂他是什么意思所以没做出来!

32.计算1/1+1/(1+2)+1/(1+2+3)+…+1/(1+2+…n)的,要求小数点后保留6位

#include

void main()

{

float i,a,n,m;

printf("请输入n:");

scanf("%f",&n);

m=0;

for(i=1;i<=n;i++)

{

a=i*(i+1)/2;

m=m+1/a;

}

printf("%f\n",m);

}

44.由x,y二个数字组成二位数xx和yz,且xy+yz=124。如果有解,输出所有

解,否则输出无解

#include

void main()

{

int x,y,z;

for(x=1;x<=10;x++)

{

for(y=1;y<=10;y++)

{

z=x*10+y+y*10+x;

if(z==124)

printf("%d %d\n",x,y);

}

if(x==10)

printf("无解\n");

}

}

45.输出公元1000至今的所有闰年的数量

#include

main()

{

int x;

for(x=1001;x<=2014;x++)

{

if(x%100!=0)

{

if(x%4==0)

{

printf("%d\n",x);

}

}

}

}

第三大题

7.在物理实验中,获得5个数据{0.89,0.78,0.0009,0.67,0.56},其中有一个数据小于0.001,此数据无效,将此无效数据删除。要求编制函数cleandata(double *p)实现数据的清理工作,并在主函数输出删除之前的数组和删除之后的数组。

#include

#include

cleandata(double p[])

{

int a,b,c;

for(a=0;a<4;a++)

printf("%lf ",p[a]);

printf("%lf\n",p[4]);

for(b=0;b<5;b++)

{

if(p[b]<0.001)

break;

}

for(c=0;c

printf("%lf ",p[c]);

for(c=b+1;c<5;c++)

printf("%lf ",p[c]);

}

main()

{

double p[5]={0.89,0.78,0.0009,0.67,0.56};

cleandata(p);

}

8.编写函数clear(char *t)将字符串t中的非英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。

#include

#include

clear(char t[])

{

char b[100];

int i,d,m,n;

d=0;

for (n=0;n<100;n++)

b[n]='\0';

for(i=0;i<100;i++)

{

if(t[i]<='z'&&t[i]>='a'||t[i]<='Z'&&t[i]>='A')

{

b[d]=t[i];

d++;

}

}

printf("%s\n",b);

}

main()

{

char t[100];

printf("请输入字符串:");

gets(t);

clear(t);

}

9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。要求输出原始数组和插入之后的数组。要求编制函数insert(int *p,int

d)实现此功能,在主函数调用此函数。

提示:例如输入整数位7,首先要找到7在整个序列中的位置,然后将7插入到当前位置。

#include

insert(int p[],int d)

{

int a,b,c;

for(a=0;a<5;a++)

{

printf("%d ",p[a]);

}

printf("%d\n",p[5]);

for(b=0;b<6;b++)

{

if(d

break;

}

for(c=0;c

{

printf("%d ",p[c]);

}

printf("%d ",d);

for(c=b;c<6;c++)

{

printf("%d ",p[c]);

}

}

main()

{

int p[6]={1,2,4,6,12,14};

int d;

printf("请输入一个整数:");

scanf("%d",&d);

insert(p,d);

}

12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。若存在,则删除此数;否则,提示此数不存在。要求:编制函数remove(double *p,double d)实现数据的清理工作,并输出原始数据和删除后的数据。

#include

remove(double p[],double d)

{

int a,b,c,e,f;

c=0;

for(b=0;b<5;b++)

{

printf("%lf ",p[b]);

}

printf("%lf\n",p[5]);

for(a=0;a<6;a++)

{

if(p[a]==d)

c=c+1;

break;

}

for(e=0;e

{

if(c==0)

break;

printf("%lf ",p[e]);

}

for(f=a+1;f<5;f++)

{

if(c==0)

break;

printf("%lf ",p[f]);

}

if(c==0)

printf("不存在\n");

}

main()

{

double p[6]={3,23,-7,8,9,10};

double d;

printf("请输入一个整数:");

scanf("%lf",&d);

remove(p,d);

}

33.编写函数strcat(char *t,char *s)将字符串s中的全部数字字符连接到字符串t 的尾部。

for(d=0;d<100;d++)

{

t[d]='\0';

}

printf("请输入第一个字符串:");

gets(t);

printf("请输入第二个字符串:");

gets(s);

strcat(t,s);

}#include

#include

strcat(char t[],char s[])

{

int a,b,c;

a=strlen(t);

c=0;

for(b=0;b<100;b++)

{

if(s[b]<='9'&&s[b]>='0')

{

t[a+c]=s[b];

c++;

}

}

printf("%s\n",t);

}

main()

{

char t[100],s[100];

int d;

34.编写函数clear(char *t)将字符串t中的全部英文字母删除,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。

#include

clear(char t[])

{

char a[100];

int i,m;

m=0;

for(i=0;i<100;i++)

{

if(t[i]<'a'&&t[i]>'Z'|| t[i]<'A'||t[i]>'z')

{

a[m]=t[i];

m++;

}

}

printf("%s\n",a);

}

main()

{

char t[100];

printf("请输入字符串:");

gets(t);

clear(t);

}

35.编写函数astrcat(char *t,char *s)将字符串s中的全部大写字符连接到字符串t 的尾部,要求在主函数中定义数组存储字符串信息,调用函数实现链接后,输出结果。

#include

#include

astrcat(char t[],char s[])

{

int i,j,m,n;

j=0;

m=strlen(t);

n=strlen(s);

for (i=0;i

{

if(s[i]>='A'&&s[i]<='Z')

{

t[m+j]=s[i];

j++;

}

}

printf("%s\n",t);

}

main()

{

char a[100],b[100];

int x;

for (x=0;x<100;x++)

a[x]='\0';

printf("请输入第一个字符串:");

gets(a);

printf("请输入第二个字符串:");

gets(b);

astrcat(a,b);

}

36.编写函数mstrcpy(char *t,char *s,int m)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。

#include

#include

mstrcpy(char t[],char s[],int m)

{

int i,n,b;

n=strlen(t);

b=0;

for(i=m-1;i<100;i++)

{

t[n+b]=s[i];

b++;

}

printf("%s\n",t);

}

main()

{

char t[100],s[100];

int m;

printf("请输入第一个字符串:");

gets(t);

printf("请输入第二个字符串:");

gets(s);

printf("请输入一个整数:");

scanf("%d",&m);

mstrcpy(t,s,m);

}

37.编写函数nstrcat(char *t,char *s)将字符串s中的全部数字字符连接到字符串t 的尾部。

#include

#include

nstrcat(char t[],char s[])

{

int a,b,c;

c=0;

b=strlen(t);

for(a=0;a<100;a++)

{

t[b+c]=s[a];

c++;

}

printf("%s\n",t);

}

main()

{

char t[100],s[100];

int z;

for(z=0;z<100;z++)

t[z]='\0';

printf("请输入第一个字符串:");

gets(t);

printf("请输入第二个字符串:");

gets(s);

nstrcat(t,s);

}

38.编写函数itoa(int n,char *p)实现将整数n转换为字符串存储到p中。要求在主函数中输入整数n,调用itoa函数,并将结果输入到字符串。

这道题我也不太懂,做的可能是错的!

#include

itoa(int n,char p[])

{

int i;

for(i=0;i<100;i++)

p[i]='\0';

p[0]=n;

printf("%s\n",p);

}

main()

{

int n;

printf("请输入一个整数:");

scanf("%d",&n);

char p[100];

itoa(n,p);

}

40.编写函数mstrcat(char *t,char *s)将字符串s中的全部英文字符连接到字符串t的尾部。

#include

#include

mstrcat(char t[],char s[])

{

int i,m,n,j;

j=0;

m=strlen(t);

n=strlen(s);

for(i=0;i<你;i++)

{

if(s[i]>='a'&&s[i]<='z'||s[i]<='Z'&&s[i]>='A')

{

t[m+j]=s[i];

j++;

}

}

printf("%s\n",t);

}

main()

{

char a[100],b[100];

int x;

for(x=0;x<100;x++)

a[x]='\0';

printf("请输入第一个字符串:");

gets(a);

printf("请输入第二个字符串:");

gets(b);

mstrcat(a,b);

}

#include

void sstrcat(char *s,char *t)

{

int i=0,j=0;

while (s[i]!='\0')

i++;

while (t[j] !='\0')

s[i++]=t[j++]; /* 拼接字符到s */ s[i] ='\0';

}

int main()

{

char s1[80],s2[40];

int i=0,j=0;

printf("\nInput the first string:");

scanf("%s",s1);

printf("\nInput the second string:");

scanf("%s",s2);

sstrcat(s1,s2);

printf("\nNew string: %s",s1);

}

41.从键盘读入一字符c,判断其在字符串"English"中是否存在,假设此数组中不存在重复的字符。若存在,则删除此数;否则,提示此数不存在。要求:编制函数del(char *p,char c)实现数据的清理工作,并输出原始数据和删除后的数据。#include

del(char p[],char c)

{

printf("%s\n",p);

int i,j;

j=0;

for(i=0;i<8;i++)

{

if(p[i]==c)

{

j=1;

for(i=i;i<8;i++)

{

p[i]=p[i+1];

}

printf("%s\n",p);

}

}

if (j==0)

printf("不存在\n");

}

main()

{

char p[]="English";

char c;

printf("请输入一个字符:");

scanf("%c",&c);

del(p,c);

}

1注意是float int