C语言课后答案谭浩强清华大学出版社.docx

上传人:b****4 文档编号:24278925 上传时间:2023-05-26 格式:DOCX 页数:29 大小:19.63KB
下载 相关 举报
C语言课后答案谭浩强清华大学出版社.docx_第1页
第1页 / 共29页
C语言课后答案谭浩强清华大学出版社.docx_第2页
第2页 / 共29页
C语言课后答案谭浩强清华大学出版社.docx_第3页
第3页 / 共29页
C语言课后答案谭浩强清华大学出版社.docx_第4页
第4页 / 共29页
C语言课后答案谭浩强清华大学出版社.docx_第5页
第5页 / 共29页
点击查看更多>>
下载资源
资源描述

C语言课后答案谭浩强清华大学出版社.docx

《C语言课后答案谭浩强清华大学出版社.docx》由会员分享,可在线阅读,更多相关《C语言课后答案谭浩强清华大学出版社.docx(29页珍藏版)》请在冰豆网上搜索。

C语言课后答案谭浩强清华大学出版社.docx

C语言课后答案谭浩强清华大学出版社

第一章

1.3写出一个C程序的构成。

一个C程序可以由若干个源程序文件(分别进行编译的文件模块)组成,一个源文件可以由若干个函数和预处理命令以及全局变量声明部分组成,一个函数由数据声明部分和执行语句组成。

1.5

#include

voidmain()

{

printf("********************");

printf("\n");

printf("VeryGood!

");

printf("\n");

printf("********************");

scanf("%d");

}

1.6编写一个C程序,输入a,b,c三个值,输出其中最大值。

#include

voidmain()

{

inta,b,c,max;

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

if(a

{

max=b;

b=a;

a=max;

}

if(a

{

max=c;

c=a;

a=max;

}

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

}

第三章

3.5字符常量和字符串常量有什么区别?

答:

字符常量是一个字符,在程序中字符是用单引号括起来的。

字符串常量有0个或若干个字符组合而成,在程序中字符串是用双引号括起来的,在储存时系统自动在字符串最后面加一个结束符号’\0’。

3.6写出下列程序的运行结果:

aa︼bb︼︼︼cc︼︼︼︼︼︼abc

︼︼︼︼︼︼︼A︼N

3.7

#include

voidmain()

{

charc1,c2,c3,c4,c5;

c1='C';

c2='h';

c3='i';

c4='n';

c5='a';

c1=c1+4;

c2=c2+4;

c3=c3+4;

c4=c4+4;

c5=c5+4;

printf("%c%c%c%c%c",c1,c2,c3,c4,c5);

}

3.9求下面算术表达式的值。

(1)2.5

(2)3.5

3.10

9,11,9,10

3.12

(1)24

(2)10

(3)60

(4)0

(5)0

(6)0

第四章

4.4

#include

voidmain()

{

inta,b,c;

floatx,y,z;

longu,n;

charc1,c2;

a=3;

b=4;

c=5;

x=1.2;

y=2.4;

z=-3.6;

u=51274;

n=128765;

c1='a';

c2='b';

printf("a=%2db=%2dc=%2d\n",a,b,c);

printf("x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);

printf("x+y=%5.2fy+z=%5.2fz+x=%5.2f\n",x+y,y+z,z+x);

printf("u=%6ldn=%9ld\n",u,n);

printf("c1='%c'or%d(ASCII)\n",c1,c1);

printf("c2='%c'or%d(ASCII)\n",c2-32,c2);

}

4.5请写出程序的输出结果:

57

57

67.856400,-789.124023

67.856400,-789.124023

67.86,-789.12,67.856400,-789.124023,67.856400,-789.124023

6.785640e+01,-7.89e+02

A,65,101,41

1234567,4553207,d687

65533,177777,ffff,-1

COMPUTER,COM

4.6

a=3︼b=7

︼8.5︼71.82

︼A︼a

 

4.7

︼︼︼10︼︼︼20Aa1.5︼-3.75︼1︼67.8

 

4.8

#include

voidmain()

{

floatr,h,a,b,c,d,e;

floatp=3.141592653;

scanf("r=%fh=%f",&r,&h);

a=2*p*r;

b=p*r*r;

c=4*p*r*r;

d=(3.0/4.0)*p*r*r*r;

e=p*r*r*h;

printf("yuanzhouchang:

a=%.2f\n",a);

printf("yuanmianji:

b=%.2f\n",b);

printf("yuanqiubiaomianji:

c=%.2f\n",c);

printf("yuanqiutiji:

d=%.2f\n",d);

printf("yuanzhutiji:

e=%.2f\n",e);

}

 

4.10

(1)

#include

voidmain()

{

charc1,c2;

printf("pleaseprintc1,c2:

");

c1=getchar();

c2=getchar();

printf("useputchartoprinttheresult:

");

putchar(c1);

putchar(c2);

printf("\n");

printf("useprintfprinttheresult:

");

printf("%c%c\n",c1,c2);

}

c1和c2可以定义为字符型或整型,二者皆可。

(2)

要使程序结果输出c1和c2的ASCII码,要在printf函数中用%d格式符输出,即:

printf("%d%d\n",c1,c2);

(3)字符变量在计算机内占用一个字节,而整型变量占用两个字节。

因此整型变量在可输出字符的范围内(ASCII码为0~255之间的字符)是可以与字符数据互相转换的。

如果整数在此范围外,则不能替代。

 

第五章习题

 

5.3

#include

voidmain()

{

inta,b,c,x,y;

a=3;

b=4;

c=5;

printf("%d\n",a+b>c&&b==c);

printf("%d\n",a||b+c&&b-c);

printf("%d\n",!

(a>b)&&!

c||1);

printf("%d\n",!

(x=a)&&(y=b)&&0);

printf("%d\n",!

(a+b)+c-1&&b+c/2);

}

 

5.4

#include

voidmain()

{

inta,b,c;

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

if(a

if(b

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

else

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

elseif(a

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

else

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

}

 

5.5

#include

voidmain()

{

intx,y;

scanf("%d",&x);

if(x<1)

y=x;

else

if(x>=10)y=3*x-11;

elsey=2*x-1;

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

}

 

5.6

#include

voidmain()

{

floatscore;

chargrade;

printf("student'sscoreis:

");

scanf("%f",&score);

switch((int)(score/10))

{

case10:

case9:

grade='A';break;

case8:

grade='B';break;

case7:

grade='C';break;

case6:

grade='D';break;

default:

grade='E';

}

printf("gradeis%c\n",grade);

}

 

5.9

#include

voidmain()

{

inta,b,c,d,t;

printf("pleaseprintfournumbers:

");

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

if(a>b){t=a;a=b;b=t;}

if(a>c){t=a;a=c;c=t;}

if(a>d){t=a;a=d;d=t;}

if(b>c){t=b;b=c;c=t;}

if(b>d){t=b;b=d;d=t;}

if(c>d){t=c;c=d;d=t;}

printf("theorderis:

%d%d%d%d\n",a,b,c,d);

}

 

第六章习题

 

6.1

#include

voidmain()

{

intm,n,t,s,i;

scanf("m=%dn=%d",&m,&n);

if(m>n)

{t=m;m=n;n=t;}

s=m*n;

while(m!

=0)

{i=n%m;n=m;m=i;}

printf("highestcommondivissor=%d\n",n);

printf("leastcommonmultiple=%d\n",s/n);

}

 

6.4

#include

voidmain()

{

intn;

floats,i;

s=0;i=1;

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

{i=i*n;s=s+i;}

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

}

 

6.6

#include

voidmain()

{

intn,a,b,c;

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

{

a=n/100;

b=n/10-a*10;

c=n%10;

if(n==a*a*a+b*b*b+c*c*c)

printf("%d",n);

}

printf("\n");

}

 

6.8

#include

voidmain()

{

inti,t;

floata,b,c;

a=1;b=2;c=0;

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

{

c=c+b/a;

t=b;

b=a+b;

a=t;

}

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

}

 

6.11

#include

#include

voidmain()

{

floata,x0,x1;

printf("thenumberis:

");

scanf("%f",&a);

x0=a;

x1=(x0+a/x0)/2;

while(fabs(x0-x1)>=1e-5)

{

x0=x1;

x1=(x0+a/x0)/2;

}

printf("thesquarerootof%.0fis:

%f\n",a,x1);

}

 

6.14

#include

voidmain()

{

inti,j,n;

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

{

for(j=0;j<=2-i;j++)

printf("");

for(n=0;n<=2*i;n++)

printf("*");

printf("\n");

}

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

{

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

printf("");

for(n=0;n<=4-2*i;n++)

printf("*");

printf("\n");

}

}

第七章习题

7.2

#include

voidmain()

{

inti,j,min,t,a[11];

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

{

printf("a[%d]=",i);

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

}

printf("\n");

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

printf("%5d",a[i]);

printf("\n");

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

{

min=i;

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

if(a[min]>a[j])min=j;

t=a[i];a[i]=a[min];a[min]=t;

}

printf("\nThesortednumbers:

\n");

for(i=1;i<=10;i++)printf("%5d",a[i]);

}

7.4

#include

voidmain()

{

inta[5]={2,4,6,8};

intnum,i,j;

printf("arraya:

\n");

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

printf("%5d",a[i]);

printf("\n");

printf("enterdatais:

");

scanf("%d",&num);

if(num>a[3])

a[4]=num;

else

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

if(a[i]>num)

{for(j=3;j>=i;j--)

a[j+1]=a[j];

a[i]=num;

break;

}

}

printf("newarraya:

\n");

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

printf("%5d",a[i]);

printf("\n");

}

7.5

#include

voidmain()

{

inti,j,a[5];

printf("enterarraya:

\n");

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

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

printf("arraya:

\n");

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

printf("%5d",a[i]);

printf("\n");

for(i=0;i<5/2;i++)

{

j=a[i];a[i]=a[4-i];a[4-i]=j;

}

printf("newarraya:

\n");

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

printf("%5d",a[i]);

printf("\n");

}

7.6

#include

voidmain()

{

inti,j,a[11][11];

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

{

a[i][1]=1;a[i][i]=1;

}

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

{

for(j=2;j<11;j++)

{a[i][j]=a[i-1][j-1]+a[i-1][j];}

}

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

{for(j=1;j<=i;j++)

printf("%5d",a[i][j]);

printf("\n");}

}

7.9

#include

#defineN15

main()

{

inti,j,number,mid,top,bott,loca,flag=1,sign=1;

staticinta[N]={14,23,35,37,49,51,63,75,77,79,81,83,95,97,100};

intc;

printf("\n");

for(i=0;i

printf("%5d",a[i]);

printf("\n");

while(flag)

{

printf("insertnumbertolookfor:

");

scanf("%d",&number);

loca=0;

top=0;

bott=N-1;

if((numbera[N-1]))

loca=-1;

while((sign==1)&&(top<=bott))

{

mid=(bott+top)/2;

if(number==a[mid])

{

loca=mid;sign=0;

printf("find%d,itspositionis%d\n",number,loca+1);

}

else

if(number

bott=mid-1;

else

top=mid+1;

}

if((sign==1)||(loca==-1))

printf("%disnotfound.\n",number);

printf("continueornot(1/2)?

");

scanf("%d",&c);

if(c==2)

flag=0;

sign=1;

printf("\n");

}

}

7.10

#include

voidmain()

{

inti,j,upp,low,dig,spa,oth;

chartext[3][80];

upp=low=dig=spa=oth=0;

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

{

printf("\nInputline%d:

\n",i+1);

gets(text[i]);

for(j=0;j<80&&text[i][j]!

='\0';j++)

{

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

upp++;

elseif(text[i][j]>='a'&&text[i][j]<='z')

low++;

elseif(text[i][j]>='0'&&text[i][j]<='9')

dig++;

elseif(text[i][j]=='')

spa++;

elseoth++;

}

}

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

printf("%s\n",text[i]);

printf("uppercase:

%d\n",upp);

printf("lowercase:

%d\n",low);

printf("digit:

%d\n",dig);

printf("space:

%d\n",spa);

printf("other:

%d\n",oth);

}

7.11

#include

voidmain()

{

chara[5]={'*','*','*','*','*'};

charspace='';

inti,j,k;

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

{

printf("\n");

printf("");

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

printf("%c",space);

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

printf("%c",a[k]);

}

printf("\n");

}

7.12

#include

voidmain()

{

inti,j;

intj=0;

charch[80],tran[80];

printf("\nInputCipherCode:

");

gets(ch);

printf("\nCipherCode:

%s",ch);

while(ch[j]!

='\0')

{

if((ch[j]>='A')&&(ch[j]<='Z'))

tran[j]=155-ch[j];

else

if((ch[j]>='a')&&(ch[j]<='z'))

tran[j]=219-ch[j];

else

tran[j]=ch[j];j++;

}

i=j;

printf("\nOriginalText:

\n");

for(j=0;j

printf("%c",tran[j]);

}

第八章习题

8.1

#include

voidmain()

{

intgys(int,int);

intgbs(int,int,int);

intm,n,y,b;

scanf("%d%d",&m,&n);

y=gys(m,n);

printf("thegysis:

%d\n",y);

b=gbs(m,n,y);

printf("thegbsis:

%d\n",b);

}

intgys(intm,intn)

{

intt,s;

if(n>m)

{t=n;n=m;m=t;}

while(n!

=0)

{s=m%n;m=n;n=s;}

return(m);

}

intgbs(intm,intn,inty)

{return(m*n/y);}

8.3

#include

voidmain()

{

intprime(int);

intn;

scanf("%d",&n);

if(prime(n)==1)

printf("%disaprimenumber.\n",n);

else

printf("%disnotaprimenumber.\n");

}

intprime(intn)

{

inti,s;

for(i=2;i<=n/2;i++)

{if(n%i==0)

s=0;

else

s=1;

}

return(s);

}

8.4

#include

voidmain()

{

intb(inta[3][3]);

inta[3][3];

inti,j;

printf("inputthenumbersection:

\n");

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

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

scanf("%d",&a[i][j]);

printf("theoriginaloneis:

\n");

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

{

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

printf("%5d",a[i][j]);

printf("\n");

}

b(a);

printf("thechangedoneis:

\n");

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

{

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

printf("%5d",a[i][j]);

printf("\n");

}

}

intb(inta[3][3])

{

inti,j,t;

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

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

当前位置:首页 > 高等教育 > 教育学

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

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