C语言程序设计参考答案湘大出版社.docx

上传人:b****6 文档编号:6556475 上传时间:2023-01-07 格式:DOCX 页数:22 大小:32.22KB
下载 相关 举报
C语言程序设计参考答案湘大出版社.docx_第1页
第1页 / 共22页
C语言程序设计参考答案湘大出版社.docx_第2页
第2页 / 共22页
C语言程序设计参考答案湘大出版社.docx_第3页
第3页 / 共22页
C语言程序设计参考答案湘大出版社.docx_第4页
第4页 / 共22页
C语言程序设计参考答案湘大出版社.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C语言程序设计参考答案湘大出版社.docx

《C语言程序设计参考答案湘大出版社.docx》由会员分享,可在线阅读,更多相关《C语言程序设计参考答案湘大出版社.docx(22页珍藏版)》请在冰豆网上搜索。

C语言程序设计参考答案湘大出版社.docx

C语言程序设计参考答案湘大出版社

 

C语言程序设计

——参考答案(湘大版)

 

主编:

长寿湖畔有人家

创建日期:

2015.9

修改日期:

2016.10

第5章分支结构

5.2

任给一个三位十进制整数,若该数中有且只有两个数码相同,则输出该数。

#include

#include

intmain()

{

intshu,a,b,c;

printf("请输入一个三位的整数\n");

scanf("%d",&shu);

a=shu%10;

b=shu/10%10;

c=shu/100;

if(a==b&&b!

=c)printf("%d\n",shu);

elseif(b==c&&c!

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

elseif(c==a&&a!

=b)printf("%d\n",shu);

return0;

}

5.3用case实现:

y=cos(x+3.0)0<=x<10

Y=cos^2(x+7.5)10<=x<20

Y=cos^4(x+4.0)20<=x<30

#include

#include

#include

intmain()

{

intx;

doublea;

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

scanf("%d",&x);

switch(x/10)

{

case0:

printf("%f\n",cos(x+3.0));break;

case1:

a=cos(x+7.5);printf("%f\n",a*a);break;

case2:

a=cos(x+4.0);printf("%f\n",a*a*a*a);

}

return0;

}

5.4

给定一个整数,判断是奇数还是偶数,如果是奇数,则判断它是不是素数(质数)。

#include

#include

#include

intmain()

{

intx;

inti,gen;

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

scanf("%d",&x);

if(x%2==0)printf("偶数\n");

else

{

printf("奇数\n");

if(x>1)

{

gen=sqrt(x);

for(i=3;i<=gen;i+=2)

if(x%i==0)break;

if(i>gen)printf("素数\n");

elseprintf("非素数\n");

}

}

return0;

}

5.5

3个数成等差数列,首尾两个数之积为中项的5倍,后2个数的和是第一个数的8倍,求这3个数。

这3个数分别是:

3915

第6章循环结构

6.1

利用公式:

…,求

的近似值,直到最后一项的绝对值小于10^-6为止。

#include

#include

intmain()

{

inti=1;

doublesum=0;

while(1.0/i>0.000001)

{

if((i+1)/2%2==0)sum-=1.0/i;

elsesum+=1.0/i;

i+=2;

}

printf("%f\n",sum*4);

return0;

}

6.2

2/1,3/2,5/3,8/5,13/8,21/13.。

,求前20项的和。

#include

#include

#include

intmain()

{

intzi=2,mu=1,i=1,te;

doublesum=0;

while(i<=20)

{

sum+=(zi/(mu+0.0));

te=zi;

zi=zi+mu;

mu=te;

i++;

}

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

return0;

}

6.3

分别编程输出菱形图案

*A

***BBB

*****CCCCC

*******DDDDDDD

*********EEEEEEEEEE

*******FFFFFFF

*****GGGGG

***HHH

*I

第一个图

#include

#include

#include

intmain()

{

intkong=4,i,k,shu=1;

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

{

if(i<6)

{

for(k=kong;k>0;k--)printf("");

kong--;

for(k=0;k

shu+=2;

printf("\n");

if(kong==-1)kong=1;

if(shu==11)shu=7;

}

else

{

for(k=0;k

kong++;

for(k=shu;k>0;k--)printf("*");

shu-=2;

printf("\n");

}

}

return0;

}

第二个图

#include

#include

#include

intmain()

{

intkong=4,i,k,shu=1;

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

{

if(i<6)

{

for(k=kong;k>0;k--)printf("");

kong--;

for(k=0;k

shu+=2;

printf("\n");

if(kong==-1)kong=1;

if(shu==11)shu=7;

}

else

{

for(k=0;k

kong++;

for(k=shu;k>0;k--)printf("%c",i-1+'A');

shu-=2;

printf("\n");

}

}

return0;

}

6.4

求出3000以内的亲密数,即整数A的全部因子(除本身)之和等于B,整数B的全部因子(除本身)之和等于A。

#include

#include

#include

intmain()

{

inti,k,gen,sum,s2;

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

{

gen=sqrt(i);

sum=0;

for(k=1;k<=gen;k++)

{

if(i%k==0)

{

sum+=k;

if((i/k)!

=i)sum+=(i/k);

if(k*k==i)sum-=k;

}

}

if(sum>i&&sum<3000)

{

//printf("%d%d\n",i,sum);

gen=sqrt(sum);

s2=0;

for(k=1;k<=gen;k++)

{

if(sum%k==0)

{

s2+=k;

if((sum/k)!

=sum)s2+=(sum/k);

if(k*k==sum)s2-=k;

}

}

if(s2==i)printf("%d%d\n",i,sum);

}

}

return0;

}

6.5

求出所有水仙花数。

即三位数的各位数字的立方和等于自己,例如153=1^3+5^3+3^3.

#include

#include

#include

intmain()

{

inta,b,c,i;

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

{

a=i%10;

b=i/10%10;

c=i/100;

if(i==a*a*a+b*b*b+c*c*c)printf("%d\n",i);

}

return0;

}

6.6

1000以内的所有完数,即一个数等于它的因子之和,例如

6=1+2+3.并输出它的因子。

#include

#include

#include

intmain()

{

intsum,i,k,gen,g;

for(i=6;i<1000;i++)

{

sum=1;

gen=sqrt(i);

for(k=2;k<=gen;k++)

{

if(i%k==0)

{

sum+=k;

sum+=i/k;

if(k*k==i)sum-=k;

if(sum==i)

{

printf("%d\n因子:

1",sum);

for(g=2;g<=gen;g++)

if(i%g==0)

{

printf("%d",g);

if(i/g!

=g)printf("%d",i/g);

}

printf("\n");

}

}

}

}

return0;

}

6.7

3025分成两段30和25,且(30+25)^2=3025,求出全部四位数。

#include

#include

#include

intmain()

{

inti,a,b,c;

for(i=1000;i<10000;i++)

{

a=i/100;

b=i%100;

c=a+b;

if(c*c==i)printf("%d\n",i);

}

return0;

}

6.8

求出满足下面条件的三位数:

该数只有两个数字相同,例如121,112

#include

#include

#include

intmain()

{

inti,a,b,c;

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

{

a=i/100;

b=i%10;

c=i/10%10;

if(c==a&&a!

=b||a==b&&b!

=c||b==c&&c!

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

}

return0;

}

6.9

猴子吃桃问题。

第一天吃了一半还多一个,以后每天都这样,第十天发现,只有一个了,问一共有多少桃子?

#include

#include

#include

intmain()

{

inti,sum=1;

for(i=9;i>0;i--)

{

sum=(sum+1)*2;

}

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

return0;

}

第7章数组

7.1

输入一个整型十进制数,转成十六进制,并输出。

#include

#include

intmain()

{

intn,i=0,k;

intshu[10];

scanf("%d",&n);

i=0;

while(n>0)

{

shu[i]=n%16;

i++;

n/=16;

}

for(k=i-1;k>=0;k--)

{

if(shu[k]<10)printf("%d",shu[k]);

elseprintf("%c",'A'+shu[k]%10);

}

printf("\n");

return0;

}

7.2

输入一个整数,判断其是不是回文数.

#include

#include

intmain()

{

intn,i,k;

intshu[10];

scanf("%d",&n);

i=0;

while(n>0)

{

shu[i]=n%10;

n/=10;

i++;

}

k=0;

i--;

while(k<=i)

{

if(shu[i]!

=shu[k])break;

k++;

i--;

}

if(k>i)

{

printf("Yes\n");

}

elseprintf("No\n");

return0;

}

7.3

有一个3×4的矩阵,找出其中的最大值,及对应的坐标号。

#include

#include

intmain()

{

intshu[3][4];

inti,k,max=0,xx,yy;

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

{

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

{

scanf("%d",&shu[i][k]);

if(shu[i][k]>max)

{

max=shu[i][k];

xx=i;yy=k;

}

}

}

printf("%d\n%d%d\n",max,xx,yy);

return0;

}

7.4

求数列第10项及前10项的和。

F1=1,f2=1,

F(n)=3*f(n-1)+2*f(n-2)

#include

#include

intmain()

{

inti;

intf[12],sum=2;

f[1]=f[2]=1;

for(i=3;i<=10;i++)

{

f[i]=f[i-1]*3+f[i-2]*2;

sum+=f[i];

}

printf("第10项:

%d\n和:

%d\n",f[10],sum);

return0;

}

7.5

打印杨辉三角,8行

#include

#include

intmain()

{

inthui[10][20];

inti,k,kon=7;

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

for(k=0;k<20;k++)

hui[i][k]=0;

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

{

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

{

hui[i][k]=(k==0)?

1:

hui[i-1][k-1]+hui[i-1][k];

}

}

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

{

for(k=kon;k>0;k--)printf("");

kon--;

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

{

if(hui[i][k]>0)

{

printf("%2d",hui[i][k]);

}

}

printf("\n");

}

return0;

}

7.6

从键盘输入2个字符串,若不相等,则把短的字符串连接到长的字符串后面,输出新的字符串。

#include

#include

intmain()

{

charf1[100],f2[100];

inti,k;

scanf("%s",f1);

scanf("%s",f2);

i=k=0;

while(f1[i]&&f2[k])

{

i++;k++;

}

if(f1[i]||f2[k])

{

if(f1[i])

{

while(f1[i])

{

i++;

}

k=0;

while(f2[k])

{

f1[i]=f2[k];

i++;k++;

}

f1[i]=0;

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

}

else

{

while(f2[k])

{

k++;

}

i=0;

while(f1[i])

{

f2[k]=f1[i];

i++;k++;

}

f2[k]=0;

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

}

}

return0;

}

7.7

输出如下图案:

**

****

******

*******

#include

#include

intmain()

{

chartu[4][7];

inti,k,kon=5;

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

for(k=0;k<7;k++)

tu[i][k]='*';

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

{

for(k=i+1;k

tu[i][k]='';

kon-=2;

}

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

{

for(k=0;k<7;k++)

printf("%c",tu[i][k]);

printf("\n");

}

return0;

}

第8章函数

8.1

将十进制整数变成十六进制字符串输出。

#include

#include

voidbian(intn,charf[])

{

intff[10],i=0,k,g=0;

while(n)

{

ff[i++]=n%16;

n/=16;

}

for(k=i-1;k>=0;k--)

{

if(ff[k]<10)f[g++]=ff[k]+'0';

elsef[g++]=ff[k]%10+'A';

}

f[g]=0;

}

intmain()

{

intn;

charf[10];

scanf("%d",&n);

bian(n,f);

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

return0;

}

8.2

筛法求1000以内的素数。

#include

intmain()

{

intshu[1001];

inti,k;

for(i=2;i<=1000;i++)shu[i]=0;

for(i=2;i<=1000;i++){

if(shu[i]==0){

printf("%d",i);

for(k=i*2;k<=1000;k+=i)shu[k]=1;

}

}

return0;

}

未完待续。

8.3

输出N×N的反时针方向的螺旋方阵。

8.4

打印n阶魔方阵。

8.5

用移位的方法,实现十进制数以二进制形式输出。

8.6

分别编写5个函数,实现字符串的复制,连接,大写转小写,小写转大写,字符串比较。

8.7

利用海伦公式求三角形面积。

S=(a+b+c)/2;分别定义2个函数,一个求s,一个求面积,主函数输入3边的长,并判断是否合法,然后求面积。

8.8

编写程序,求2的n次方,n可以大于100.用数组存结果。

8.9

编写程序,求n!

,例如100!

8.10

求1!

+2!

+......+10!

8.11

在数字插入千分位符,例如1234567,表示成1,234,567

8.12

给定年,月,日,判断那是该年的第几天,并判断是星期几?

8.13

给若干字符串冒泡排序。

8.14

将数字字符串转成数字。

如“123”是123.

第9章指针

9.2

从键盘输入3个整数,从大到小输出。

9.3

自定义strcmp函数,实现字符串比较。

9.4

自定义strlen函数,求出字符串的长度。

9.5

编函数,实现从长度为n的字符串第m个字符开始,截取k个,到另一个字符串中。

9.6

一个班4个学生,5门课程。

计算每门课的平均分。

找出2门课不及格的学生,输出他的学号,成绩,姓名,平均分。

找出平均分90以上,或每科85以上的学生。

(用结构体数组)

9.7

利用辛甫生公式求积分

9.8

用指针数组实现,输入月份,输出对应的英文名。

9.9

编写函数实现2个n阶矩阵相乘。

9.10

输入一行文字,统计大写字母,小写字母,空格,数字,其他字符各几个?

 

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

当前位置:首页 > 经管营销 > 财务管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1