C语言习题答案.docx

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

C语言习题答案.docx

《C语言习题答案.docx》由会员分享,可在线阅读,更多相关《C语言习题答案.docx(50页珍藏版)》请在冰点文库上搜索。

C语言习题答案.docx

C语言习题答案

C语言习题答案

第1章

1.选择题

(1)C

(2)B(3)D

2.填空题

(1)main

(2)main(3)有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性

(4)顺序、分支和循环(5)自顶向下,逐步细化、模块化设计、结构化编码

第2章

1.选择题

BBCDADDBBABBDCB

2、填空题

(1)数字、字母、下划线

(2)0(3)4、8(4)(a+b)*c/(a-b)(5)-60(6)-16

(7)3(8)6、4、2(9)0(10)10、6(11)5.500000(12)12、4

(13)double(14)0(15)16(16)6.6

3、编程题

(1)

main()

{

printf("int:

%5d\n"

"float:

%5d\n"

"char:

%5d\n"

"double:

%5d\n"

"long:

%5d\n",

sizeof(int),

sizeof(float),

sizeof(char),

sizeof(double),

sizeof(long));

}

(2)

#defineRAT1.60934

main()

{

floatk=0.0;

printf("inputthekm:

");

scanf("%f",&k);

printf("\nmile:

%f",k*RAT);

}

第3章

1.选择题

(1)~(10):

DDCDCDCDBC

2.解析题

(1)x=170,x=ㄩㄩㄩ170,x=ㄩㄩㄩ252,x=ㄩㄩㄩ170

x=170,x=170ㄩㄩㄩ,x=ㄩㄩㄩ170,x=%6d

a=513.789185,a=ㄩㄩ513.79,a=513.78918457,a=513.78918457

(2)a=3ㄩb=7x=8.5ㄩy=71.82c1=Aㄩc2=a

3.编程题

(1)

main()

{

intx,y;

scanf("%d%d",&x,&y);

printf("商数=%d,余数=%d",x/y,x%y);

system("pause");

}

(2)

main()

{

doublex,y,z,avg;

scanf("%lf%lf%lf",&x,&y,&z);

avg=(x+y+z)/3;

printf("%.1lf",avg,avg);

system("pause");

}

第4章

1.选择题

(1)~(10)CCAADCCABD

2.填空题

(1)ch>='A'&&ch<='Z'ch=ch-32

(2)x<=10&&x>2x<=2&&x>-1y=-1

(3)a+b>c&&a+c>b&&b+c>aa==b&&a==ca==b||a==c||b==c

(4)mark/10k=1case9

(5)x<0c=x/10y!

=-2

3.编程题

(1)

#include

main()

{

intx;

printf("pleaseinputanumber:

");

scanf("%d",&x);

if(x%2==0)printf("%disaevennumber",x);

elseprintf("%disaoddnumber",x);

}

(2)

#include

main()

{

intx,y;

printf("pleaseinputanumber:

");

scanf("%d",&x);

if(x<=-5)printf("thenumberiserror");

elseif(x<0){y=x;printf("%d",y);}

elseif(x==0){y=x-1;printf("%d",y);}

elseif(x<10){y=x+1;printf("%d",y);}

elseprintf("thenumberiserror");

}

(3)

#include

main()

{inta,m;

printf("pleaseinputanumber:

");

scanf("%d",&a);

switch(a/10)

{case0:

case1:

case2:

m=1;break;

case3:

m=2;break;

case4:

m=3;break;

case5:

m=4;break;

default:

m=5;break;

}

printf("%d",m);

}

(4)

#include

main()

{

floatprice,tax;

printf("pleaseinputthepriceofproduct:

");

scanf("%f",&price);

if(price>10000)tax=price*0.05;

elseif(price>5000)tax=price*0.03;

elseif(price>1000)tax=price*0.02;

elsetax=0;

printf("%f",tax);

}

(5)

#include

main()

{

floatscore;

printf("pleaseinputthescoreofstudent:

");

scanf("%f",&score);

if(score>=85)printf("VERYGOOD");

elseif(score>=60)printf("GOOD");

elseprintf("BAD");

}

第5章

1.选择题

(1)d

(2)c(3)a(4)d(5)a(6)d(7)d(8)b(9)d(10)b

(11)c(12)b(13)d(14)a(15)c

2.填空题

(1)==0m=m/kk++

(2)546(3)3*i-2

(4)-=*=(5)852(6)j++i%j==0j>=i

(7)sum

3.改错题

(1)第一处改正:

For改为for

第二处改正:

ave=sum/4改为ave=sum/4.0

(2)第一处改正:

j<=9

第二处改正:

m=100*i+10*j+k

3.编程题

(1)

#include

main()

{

ints;

floatn,t,sum;

t=1;sum=0;n=1;s=1.0;

while(n<=100)

{

sum=sum+t;

n=n+1;

s=-s;

t=s/n;

}

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

}

(2)利用辗除法,直到b为0为止

main()

{intp,r,n,m,temp;

printf("inputtwointegern,m:

");

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

if(n

{temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!

=0)

{

r=n%m;

n=m;

m=r;

}

printf("greatestcommondivisoris:

%d\n",n);//最大公约数

printf("leasecommonmultipleis:

%d\n",p/n);//最小公倍数

}

(3)采取逆向思维的方法,从后往前推断。

main()

{

int day,x1,x2;

day=9;

x2=1;

while(day>0)

{x1=(x2+1)*2;/*第一天的桃子数是第2天桃子数加1后的2倍*/

x2=x1;

day--;

}

printf("the total is %d\n",x1);

}

(4)

#include

main()

{

inti;

longintn=1;

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

{

n=n*i;

printf(i%5==0?

"%2d!

=%-10ld\n":

"%2d!

=%-10ld",i,n);

}

}

(5)

main()

{

intm,s,i;

for(m=2;m<1000;m++)

{s=0;

for(i=1;i

if((m%i)==0)s=s+i;

if(s==m)

{printf("%ditsfactorsare",m);

for(i=1;i

if(m%i==0)printf("%d,",i);

printf("\n");

}

}

}

(6)

#include

main()

{

intn,i,j;

scanf("%d",&n);

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

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

if(j<=n-i)printf("");

elseprintf("*");

printf("\n");

}

}

(7)

#include

main()

{

floatx0,x1,x2,fx0,fx1,fx2;

do

{printf("Enterx1&x2:

");

scanf("%f,%f",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fx1*fx2>0);

do

{x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<0)

{x2=x0;

fx2=fx0;

}

else

{x1=x0;

fx1=fx0;

}

}while(fabs(fx0)>=1e-5);

printf("x=%6.2f\n",x0);

}

第6章

1.选择题

CCDCCAADBD

2.写出程序的运行结果

(1)sum=6

(2)Max=9,row=1,col=0

(3)

0

10

210

3210

(4)-5

3、填空

(1)i=j=k=0、i<4、j<5、

(2)s[i]、s[0],s[1]、str,s[1]、s[2],str

4、编程题

(1)

#include

main()

{

inta[12],count=0,i;

randomize();

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

a[i]=5+random(11);

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

{

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

count++;

if(count%4==0)printf("\n");

}

getch();

}

(2)

main()

{

inta[5]={2,23,43,77,33};

intmax,min,i;

longsum=0L;

intcount=0;

floatav;

max=min=a[0];

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

{

sum+=a[i];

if(a[i]>max)max=a[i];

if(a[i]

}

av=(float)sum/5;

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

if(a[i]>av)count++;

printf("max:

%d\nmin:

%d\nav:

%f\ncount:

%d",max,min,av,count);

getch();

}

(3)

main()

{

intscore[30]={61,62,63,64,65,66,67,68,69,70,

71,72,73,74,75,76,77,78,79,80,

81,85,89,90,33,44,55,91,92,93};

inti,count90=0,count80=0,count70=0,count60=0;

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

{

printf("intputNO.%dstudent'sscore:

",i+1);

scanf("%d",score+i);

}

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

{

if(score[i]>=90)

{

count90++;

count80++;

count70++;

count60++;

}

elseif(score[i]>=80)

{

count80++;

count70++;

count60++;

}

elseif(score[i]>=70)

{

count70++;

count60++;

}

elseif(score[i]>=60)

{

count60++;

}

}

printf("0~60:

%d\n60~70:

%d\n70~80:

%d\n80~90:

%d\n90~100:

%d",30-count60,count60-count70,count70-count80,count80-count90,count90);

printf("\n60orhigher:

%d\n70orhigher:

%d\n80orhigher:

%d\n90orhigher:

%d\n",count60,count70,count80,count90);

getch();

}

 

(4)

1、

main()

{

chara[45];

inti,j,k;

for(i=0;i<45;i++)a[i]='';

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

{

for(j=0;j

a[9*i+j]='';

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

a[9*i+j+k]='*';

}

j=0;

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

{

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

j++;

if(j%9==0)printf("\n");

}

getch();

}

2、

main()

{

chara[5][9];

inti,j,k;

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

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

a[i][j]='';

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

{

for(j=0;j

a[i][j]='';

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

a[i][j+k]='*';

}

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

{

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

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

printf("\n");

}

getch();

}

第7章

1.选择题

DCCBDCADACBD

2.填空

(1)函数

(2)main函数(3)变量声明部分、函数体(4)形式参数、实际参数、实参、形参(5)常量、变量、表达式(6)函数定义时函数值、函数定义时函数值

(7)30,20,10(8)max(max(a,b),c))、(x>y?

x:

y)(9)str[]=abdef

(10)8,17

(11)

a=5

a*a=25

a*a*a=512

(12)

******

######

******

******

######

******

******

######

******

3、编程题

(1)

longact(longn)

{

if(n==1||n==0)return1L;

else

{

returnn*act(n-1);

}

}

main()

{

intn=3;

printf("n!

=%ld",act(n));

getch();

}

(2)

voidmmax(floata[],intn);

main()

{

floata[6];

inti;

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

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

a[0]=1;

mmax(a,5);

printf("%f%f\n",a[a[0]],a[0]);

}

voidmmax(floata[],intn)

{

if(n<=0)

return;

else

if(a[n]>a[a[0]])

a[0]=n;

mmax(a,n-1);

}

(3)

#include

main()

{

chara[40];inti=0;

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

scanf(“%c”,&a[i]);

intcount=0,i=0,len,flag=0;

len=strlen(a);

while(!

flag&&i

{

if(a[i]=='A')flag=1;

i++;

}

while(flag&&i

{

i++;

if(a[i]=='A')flag=0;

count++;

printf("%c",a[i-1]);

}

printf("\ncount:

%d",count);

getch();

}

(4)

my_strcpy(chardst[],charsrc[])

{

inti=0;

while(src[i]!

='\0')

{dst[i]=src[i];

i++;

}

dst[i]='\0';

}

intmain()

{

chara[12];charb[12];

gets(b);

my_strcpy(a,b);

puts(a);

}

第8章

2.编程题

(1)

/*习题8-2-1*/

#defineISALPHA(a)(((a)>='A'&&(a)<='Z')||((a)>='a'&&(a)<='z'))

main()

{charc;

scanf("%c",&c);

printf("%d\n",ISALPHA(c));

}

(2)

/*习题8-2-2*/

#defineSWAP(t,x,y){tw;w=x;x=y;y=w;}

main()

{doublea=99.99,b=11.11;

SWAP(double,a,b);

printf("%f,%f\n",a,b);

}

(3)

/*习题8-2-3*/

#include"stdio.h"

#defineMAX80

#defineCHANGE1

main()

{charstr[MAX];

inti;

printf("Inputtext:

\n");

gets(str);

#if(CHANGE)

{for(i=0;i

{if(str[i]!

='\0')

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

str[i]+=1;

elseif(str[i]=='z'||str[i]=='Z')

str[i]-=25;

}

}

#endif

printf("output:

\n%s",str);

}

(4)

/*习题8-2-4*/

#defineLEAP_YEAR(y)(y%4==0)&&(y%100!

=0)||(y%400==0)

main()

{intyear;

printf("Inputyear:

");

scanf("%d",&year);

if(LEAP_YEAR(year))

printf("%disaleapyear.\n",year);

else

printf("%disnotaleapyear.\n",year);

}

(5)

/*习题8-2-5.h*/

#ifndef__X8_2_5_H

#define__X8_2_5_H

#defineAVER(a,b,c)(a+b+c)/3.0

#endif

/*习题8-2-5*/

#include"X8_2_5.h"

main()

{inta,b,c;

printf("Inputthreeintegersa,b,c:

");

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

printf("Averageis%f.\n",AVER(a,b,c));

}

第9章

4.编程题

(1)

/*习题9-4-1*/

#include

#include

main()

{char*str1[20],*str2[20],*str3[20];

charswap();

printf("Inputthreeline:

\n");

gets(str1);

gets(str2);

gets(str3);

if(strcmp(str1,str2)>0)swap(str1,str2);

if(strcmp(str1,str3)>0)swap(str1,str3);

if(strcmp(str2,str3)>0)swap(str2,str3);

printf("Now,theorderis:

\n");

printf("%s\n%s\n%s\n",str1,str2,str3);

}

charswap(char*p1,char*p2)/*交换两个字符串*/

{char*p[20];

strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);

}

(2)

/*习题9-4-2*/

main()

{intnumber[20],n,m,i;

printf("Howmanynumbers?

");/*共有多少个数*/

scanf("%d",&n);

printf("Input%dnumbers:

\n",n);/*输入n个数*/

for(i=0;i

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

printf("Howmanyplaceyouwanttomove?

");/*后移多少个位

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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