东北大学C语言程序+答案1.docx

上传人:b****6 文档编号:12639766 上传时间:2023-06-06 格式:DOCX 页数:31 大小:20.41KB
下载 相关 举报
东北大学C语言程序+答案1.docx_第1页
第1页 / 共31页
东北大学C语言程序+答案1.docx_第2页
第2页 / 共31页
东北大学C语言程序+答案1.docx_第3页
第3页 / 共31页
东北大学C语言程序+答案1.docx_第4页
第4页 / 共31页
东北大学C语言程序+答案1.docx_第5页
第5页 / 共31页
东北大学C语言程序+答案1.docx_第6页
第6页 / 共31页
东北大学C语言程序+答案1.docx_第7页
第7页 / 共31页
东北大学C语言程序+答案1.docx_第8页
第8页 / 共31页
东北大学C语言程序+答案1.docx_第9页
第9页 / 共31页
东北大学C语言程序+答案1.docx_第10页
第10页 / 共31页
东北大学C语言程序+答案1.docx_第11页
第11页 / 共31页
东北大学C语言程序+答案1.docx_第12页
第12页 / 共31页
东北大学C语言程序+答案1.docx_第13页
第13页 / 共31页
东北大学C语言程序+答案1.docx_第14页
第14页 / 共31页
东北大学C语言程序+答案1.docx_第15页
第15页 / 共31页
东北大学C语言程序+答案1.docx_第16页
第16页 / 共31页
东北大学C语言程序+答案1.docx_第17页
第17页 / 共31页
东北大学C语言程序+答案1.docx_第18页
第18页 / 共31页
东北大学C语言程序+答案1.docx_第19页
第19页 / 共31页
东北大学C语言程序+答案1.docx_第20页
第20页 / 共31页
亲,该文档总共31页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

东北大学C语言程序+答案1.docx

《东北大学C语言程序+答案1.docx》由会员分享,可在线阅读,更多相关《东北大学C语言程序+答案1.docx(31页珍藏版)》请在冰点文库上搜索。

东北大学C语言程序+答案1.docx

东北大学C语言程序+答案1

第一大题

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()

{

floatx,y;

printf("请输入x:

");

scanf("%f",&x);

if(x<1)

y=cos(x)+2;

elseif(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()

{

floatx;

printf("请输入一个小数:

");

scanf("%f",&x);

x=x*100;

x=int(x+0.5);

x=x/100.0;

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

}

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

#include

main()

{

charx;

printf("请输入一个字母:

");

scanf("%c",&x);

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

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

elseif(x>='A'&&x<='Z')

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

else

printf("%c",x);

}

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

#include

main()

{

inta,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("请输入一个字母:

");

charx;

scanf("%c",&x);

if(x=='A')

printf("95");

elseif(x=='B')

printf("85");

elseif(x=='C')

printf("75");

elseif(x=='D')

printf("65");

elseif(x=='E')

printf("65");

else

printf("错误");

}

18.输入一个3位的正整数,判定该正整数是否为一个回文数。

(所谓回文数是指正读和反读都相同的数,例如131)。

#include

main()

{

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

");

intx,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("请输入商品价格:

");

floatx,y;

chara;

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

if(a=='$')

{

y=x*6;

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

}

elseif(a=='E')

{

y=x*8;

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

}

else

{

printf("错误\n");

}

}

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

#include

main()

{

printf("请输入三个整数:

");

inta,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:

");

floatx,y;

scanf("%f",&x);

if(x<6)

y=x+1;

elseif(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:

");

floatx,y;

scanf("%f",&x);

if(x<5)

y=0;

elseif(x<=10)

y=sin(x);

elseif(x>10)

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

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

}

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

#include

main()

{

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

");

intx,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("请输入一个三位纯小数:

");

floatx,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

#include

voidmain()

{

printf("请输入一个整数:

");

floatx,n,y;

y=0;

scanf("%f",&n);

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

{

y=y+pow(-1,x-1)*1/x;

}

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

}

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

完数是指一个整数的所有因子之和等于其自身的数,例如6=1+2+3。

#include

voidmain()

{

printf("请输入一个整数:

");

inta,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

voidmain()

{

floatm,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

voidmain()

{

floaty,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("请输入一个整数:

");

inti,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

voidmain()

{

intx,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()

{

inta,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()

{

intx,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

voidmain()

{

floati,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

voidmain()

{

intx,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()

{

intx;

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

{

If(x%400==0)

printf("%d\n",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

voidcleandata(double*p)

{

inta,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]);

}

intmain()

{

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

double*p;

p=s;

cleandata(p);

return0;

}

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

#include

#include

voidclear(char*t)

{

charb[100];

inti,d,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);

}

intmain()

{

chars[100];

printf("请输入字符串:

");

gets(s);

char*t;

t=s;

clear(t);

return0;

}

9已知一有序序列1,2,4,6,12,14,要求从键盘输入一个整数,将此整数插入到此有序序列中。

要求输出原始数组和插入之后的数组。

要求编制函数insert(int*p,intd)实现此功能,在主函数调用此函数。

提示:

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

#include

voidinsert(int*p,intd)

{

inta,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;

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

p=s;

intd;

printf("请输入一个整数:

");

scanf("%d",&d);

insert(p,d);

return0;

}

12.从键盘读入一整数,判断其在数组3,23,-7,8,9,10中是否存在,假设此数组中不存在重复的数字。

若存在,则删除此数;否则,提示此数不存在。

要求:

编制函数remove(double*p,doubled)实现数据的清理工作,并输出原始数据和删除后的数据。

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

#include

#include

voidstrcat(char*t,char*s)

{

inta,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,*s;

charm[100],n[100];

intd;

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

{

m[d]='\0';

}

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

");

gets(m);

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

");

gets(n);

t=m;

s=n;

strcat(t,s);

return0;

}

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

#include

voidclear(char*t)

{

chara[100];

inti,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;

chars[100];

printf("请输入字符串:

");

gets(s);

t=s;

clear(t);

return0;

}

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

#include

#include

voidastrcat(char*t,char*s)

{

inti,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*t,*s;

chara[100],b[100];

intx;

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

a[x]='\0';

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

");

gets(a);

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

");

gets(b);

t=a;

s=b;

astrcat(t,s);

return0;

}

36.编写函数mstrcpy(char*t,char*s,intm)字符串s中的第m个字符开始的全部字符复制成另一个字符串t。

要求在主函数中初始化字符串s,从键盘读入m的值,输出字符串s和复制的字符串t。

#include

#include

voidmstrcpy(char*t,char*s,intm)

{

inti,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,*s;

charf[100],d[100];

intm;

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

");

gets(f);

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

");

gets(d);

printf("请输入一个整数:

");

scanf("%d",&m);

t=f;

s=d;

mstrcpy(t,s,m);

return0;

}

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

#include

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 育儿知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2