C语言程序设计教程课后习题答案Word格式文档下载.docx

上传人:b****6 文档编号:20876994 上传时间:2023-01-26 格式:DOCX 页数:30 大小:22.08KB
下载 相关 举报
C语言程序设计教程课后习题答案Word格式文档下载.docx_第1页
第1页 / 共30页
C语言程序设计教程课后习题答案Word格式文档下载.docx_第2页
第2页 / 共30页
C语言程序设计教程课后习题答案Word格式文档下载.docx_第3页
第3页 / 共30页
C语言程序设计教程课后习题答案Word格式文档下载.docx_第4页
第4页 / 共30页
C语言程序设计教程课后习题答案Word格式文档下载.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C语言程序设计教程课后习题答案Word格式文档下载.docx

《C语言程序设计教程课后习题答案Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言程序设计教程课后习题答案Word格式文档下载.docx(30页珍藏版)》请在冰豆网上搜索。

C语言程序设计教程课后习题答案Word格式文档下载.docx

no\n"

7.

#include<

intyear,month;

printf("

pleaseinputtheyearandmonth:

"

%d%d"

year,&

month);

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

printf("

thismonthhave31days."

break;

case4:

case6:

case9:

case11:

thismonthhave30days."

case2:

if(year%4==0&

year%100!

=0||year%400==0)

{

printf("

thismonthhave29days."

break;

}

else

{

thismonthhave28days."

}

8.

floatmoney;

intyear;

\npleaseinputthemoneyandtheyear:

%f%d"

money,&

year);

if(year==1)money+=money**12*year;

if(year==2)money+=money**12*year;

if(year==3||year==4)money+=money**12*year;

if(year>

=5&

year<

=7)money+=money**12*year;

=8)money+=money**12*year;

themoneyis:

%f"

money);

第3章

1

#include"

{floatx[10],sum=0;

inti=0;

pleaseinput10numbers(-10e6<

10e6)\n"

while(i<

10)

{scanf("

x[i]);

sum=sum+1/x[i];

i=i+1;

thesumof10numbersis%.2f\n"

sum);

2

#include"

{intx[100],sum=0,aver,i=0;

pleaseinputnumbersuntil0\n"

while(x[i]!

=0)

{sum=sum+x[i];

thesumis%d\n"

theaverageis%.2f\n"

float(sum)/i);

3

{inti=1,j,f;

longints=0;

=10)

{for(f=1,j=1;

j<

=i;

j++)

f=f*j;

s=s+pow(-1,i-1)*f;

s=%ld\n"

s);

4

{inti=0;

floats=;

while(2*i+1<

=101)

{s=s+pow(-1,i)/float(2*i+1);

s=%f\n"

5

#include"

{inti,j,k,n=0;

for(i=1;

i<

=9;

i++)

for(j=0;

for(k=0;

k<

k++)

if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

the%d:

%d\n"

++n,i*100+j*10+k);

theallis%d.\n"

n--);

6

{intn,i,j;

pleaseinputn:

n);

for(i=0;

n;

{for(j=0;

*"

\n"

7

{chara[81];

inti,j=0,k=0,m=0;

pleaseinputa$(length<

=80)\n"

(a[i]=getchar())!

='

\n'

;

{if(a[i]>

=65&

a[i]<

=90)

j++;

elseif(a[i]==32)

k++;

elsem++;

theupperletteris%d\n"

j);

theblankis%d\n"

k);

theotheris%d\n"

m);

8

{inti,j,k,m=0;

=20;

=50;

=100;

if(i*5+j*2+k==100)

the%dwagis1:

%d,2:

%d,5:

++m,k,j,i);

thewagsis%d\n"

m--);

9

=3;

=6;

if(i+j+k==8)

the%dwagiswhite:

%d,red:

%d,black:

++m,i,j,k);

10

{longintn;

inti,j,k;

pleaseinpurn:

%ld"

if(n%2==1||n<

=1)

{printf("

theinputiserror.\n"

return

(1);

for(i=2;

=n/2;

{for(j=2;

i;

if(i/j*j==i)

break;

if(j==i)

{for(k=2;

n-i;

if((n-i)/k*k==(n-i))

if(k==n-i)

%ld=%d+%d\n"

n,i,n-i);

11

{inti,j,k,m;

for(m=0;

m<

m++)

if((i*1000+j*100+k*10+m)*9==(i+j*10+k*100+m*1000))

thenumberis:

i*1000+j*100+k*10+m);

第4章

1-5ABDCB6-10BCBCA11-13ABA

14

floata1,b1,a2,b2,re1,im1,re2,im2,re3,im3;

Pleaseinputthefirstnumber:

%f%f"

a1,&

b1);

Pleaseinputthesecondnumber:

a2,&

b2);

re1=a1+a2;

im1=b1+b2;

(%f+j%f)+(%f+j%f)=%f+j%f\n"

a1,b1,a2,b2,re1,im1);

re2=a1-a2;

im2=b1-b2;

(%f+j%f)-(%f+j%f)=%f+j%f\n"

a1,b1,a2,b2,re2,im2);

re3=a1*a2-b1*b2;

im3=a1*b2+a2*b1;

(%f+j%f)*(%f+j%f)=%f+j%f\n"

a1,b1,a2,b2,re3,im3);

第5章

1-5CACCD6-7DA

8

charstr[100];

intnum1=0,num2=0,i=0;

%s"

str);

while(str[i]!

\0'

if(str[i]>

A'

str[i]<

Z'

||str[i]>

a'

z'

num1++;

elseif(str[i]>

0'

9'

num2++;

i++;

num1=%d,num2=%d"

num1,num2);

9笔者在程序中直接给数组元素赋了值,读者可以修改为用scanf函数读入数值;

另外,还可以用第7章宏定义的方法设定数组的长度,从而实现对元素个数不同的数组进行排序。

inta[5]={2,4,1,3,0},i,j,temp;

=4;

%d,"

a[i]);

for(j=1;

for(i=j;

if(a[i]<

a[j-1])

temp=a[j-1];

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

a[i]=temp;

第6章

1-5AADBA6C

7024681012141618

024681012141618

8a+b=9

95+4+1=10

10+4+2=16

20+4+3=27

加密:

charstring[100],i=0,number=0;

string);

while(string[i++]!

number++;

fun1(string,number);

fun1(charstr[],intnum)

inti;

=num;

V'

v'

5'

str[i]+=4;

'

str[i]-=22;

str[i]-=6;

解密

fun2(string,number);

fun2(charstr[],intnum)

E'

e'

4'

str[i]-=4;

str[i]+=22;

str[i]+=6;

第8章

一、下列语句是否合法

语句:

int*p=&

x,x=13;

点评:

不合法,因为x变量没有定义。

在执行int*p=&

x时,x变量的定义在后面。

参考:

intx=13,*p=&

x;

x=13;

x=13时,x变量没有定义。

intx=13,*p;

p=&

intx=13,*p=x;

不合法,不能把x变量的值赋給指针p。

应该把变量x的地址值赋給指针p。

inty[5]={1,2,3,4,5},*p=y[3];

不合法,不能把数组元素y[3]的值赋給指针p,应该把数组元素y[3]的地址值赋給指针p。

inty[5]={1,2,3,4,5},*p;

y[3];

int*p=y,y[5]={1,2,3,4,5};

不合法,因为数组y没有定义。

inty[5]={1,2,3,4,5},*p;

p=y;

inty[5]={1,2,3,4,5},*p=&

y;

不合法,不能把数组y的地址值赋給指针p。

数组名y本身是数组y的地址常量值。

或inty[5]={1,2,3,4,5},*p;

y[0];

int*c=&

ch,ch="

HelloWorld"

不合法,ch变量没有定义,字符串"

不能赋給变量ch。

char*ch="

HelloWorld!

或char*ch;

ch="

charch[12]="

*c=ch;

合法。

思考:

HelloWorld!

该语句错误,字符个数超出数组ch定义的宽度。

char*c=ch[12]="

不合法,数组ch没有定义。

数组ch没有第12个元素。

char*c,ch[12]="

c=ch;

char*c,c='

X'

c=&

c;

不合法,不能把常量'

的值赋給指针,不能把指针c的地址值赋給指针c自己。

char*c,ch;

ch='

ch;

二、综合练习题参考答案

1.将一字符串复制到另一字符串中。

#include<

voidmain()

{charstr1[128],str2[128]={"

WelcometoCLanguage"

};

char*cp1,*cp2;

cp1=str1;

cp2=str2;

while(*cp1++=*cp2++);

puts(str1);

2.将一字符串与另一字符串相连接。

{charstr1[128]={"

Welcome"

},str2[128]={"

toCLanguage"

inti=0,n=0;

while(n++,str1[++i]!

=0);

cp1=str1+n;

3.将字符数组中大写字符改为小写字符,将小写字符改为大写字符。

char*cp1=str1;

while(*cp1)

{if(*cp1>

='

&

*cp1<

*cp1=*cp1+32;

elseif(*cp1>

*cp1=*cp1-32;

else

*cp1=*cp1;

cp1++;

4.从一字符串中取出部分字符串复制到另一字符串中。

{charch[128],*cp,str[128],*sp;

intb,n,l=0,i;

cp=ch;

sp=str;

gets(cp);

b,&

while(l++,*(ch+l)!

=0);

if(n<

l)

{for(i=0;

*(sp+i)=*(cp+b+i);

*(sp+i)='

puts(str);

else

printf("

无数据可以复制"

5.完成一整型数组的排序。

{intx[10],i,j,*p,t;

p=x;

for(i=0;

10;

x[i]=rand();

9;

for(j=0;

if(*(p+j)>

*(p+j+1))

{t=*(p+j);

*(p+j)=*(p+j+1);

*(p+j+1)=t;

%d\t"

*p++);

6.将一个字符串中的字符反序排列。

{charch[128],c,*cp1,*cp2;

inti,n=0;

gets(ch);

cp1=ch;

cp2=ch;

while(*cp2!

=0)

{n++;

cp2++;

cp2--;

n=n/2;

{c=*cp1;

*cp1=*cp2;

*cp2=c;

cp2--;

puts(ch);

7.编函数完成将一字符串中的字符全部改为大写。

voidcove(char*cp)

{while(*cp!

{if(*cp>

*cp<

*cp=*cp-32;

cp++;

{charch[128],*cp;

cp=ch;

cove(cp);

8.编函数完成从一字符串左边取若干字符复制到另一字符串中。

voidlm(char*lcp,char*bcp,intn)

{inti;

*(bcp+i)=*(lcp+i);

*(bcp+i)='

{charch[128],*cp,str[128];

intn,l=0;

{cp=ch;

lm(cp,str,n);

第9章

1

structdate

{intyear;

intmonth;

intday;

{structdatere;

intday[2][12]={{31,29,31,30,31,30,31,31,30,31,30,31},{31,28,31,30,31,30,31,31,30,31,30,31}};

inti,da

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

当前位置:首页 > 医药卫生 > 预防医学

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

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