C语言复习题答案.docx

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

C语言复习题答案.docx

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

C语言复习题答案.docx

C语言复习题答案

c语言程序设计教程(第2版)参考答案

习题1

1-1单选题

1~5BBBAC

1-2填空题

1. 函数

2. 主函数main(),主函数main()

3. 主函数main()

4. 函数首部,函数体

5. {,}

6. 顺序结构,选择结构,循环结构

7. .c,.obj,.exe

第2章

2.1单选题

1~5DBDCA6~10DCABA11~15CADBD16~20CAABC

21~25ADAAA26~30ACBAC31~35BADDA36~40BBCCC

41~45BDABA46~49ABBB

2.1填空题

1.2.000000

2.1,0.5

3.9,2

4.6

5.100,d

6.

(1)20

(2)0(3)60

7.

(1)10,6,4

(2)6,9,15(3)3,60,83

8.55

9.1164

10.5

11.double

12..整型字符型实型枚举类型

13.数据类型数据类型

14.字母数字下划线字母下划线

15.单精度双精度

16.变量初始化

17.双引号

18.’\0

19.x=3.600000,i=3

习题3

3-1选择题

1-5 BDABC6-10 ADCAC11-15 BBBCC16-20CDCDA

21-25CACAA26-29BCBA

3-2填空题

1. 3

2. 0261

3. 0x10

4.2,1 互换a,b的值

5. 6.6

6. –003

7. 5.0,4,c=3

8. i=10,j=20

9. 

(1)65

(2)65,A

(3)56.123400,123.456001

(4)3.141600

(5)8765.432

(6)5.864000e+002

(7)3.141600e+000

(8)3.1416

(9)8765

(10)3.1416,8765.43

10. a=2b=5x=8.8y=76.34c1=65c2=97

11.B66

12.n1=%d\nn2=%d\n

13.12

14.11

15.252137

16.10030

17.1B

18.88

19.220.000000

2067G

习题4

4-1单选题

1~5AADAD6~10ACBBB11~15BADAD16~20BADBA

21~25CDBDD26~30DCDCA31~35DAACB36~40BDBAD

41~42AA

4-2填空题

1.1

2.

(1)a>0||b>0

(2)x>0&&x<=10

(3)a==1.5&&b==1.5&&c==1.5(4)p

3.

(1)0

(2)1(3)1(4)0(5)1

4.(max=a>b?

a:

b)>c?

max:

c

5.-4

6.1

7.5,0,3

8.

(1)(a==0)

(2)(b==0)(3)(disc<0)

9.1101

10.10200

11.yes

12.X==0

13.x=1y=0

x=2

14.ch>=’A’&&c<=’Z’ch=ch-32

15.-1

16.01

习题5

5-1单选题

1~5CDABA6~10ABDDB11~15DBCBC16-21DBCBCD

5-2填空题

1.20

2.333

3.

(1)i<10

(2)j%3!

=0

4.

(1)flag*(float)k/(k+1)

(2)flag=-flag

5.

(1)max=x

(2)x!

=-1(3)scanf("%d",&x)

6.0

7.22

8.t*10

习题6

6-1单选题

1~5CBBAD6~10DBCCD11~15DCABC16~20ABBBC

21~25CCBAA26~30ABBDB31~35BDADD36~40ADCAA

41~43BBB

6.2填空题

1. 120

2. x

3. 3,2,2,3

4.fac/i

5. 8,17

6. 9

7. 1.0/(i*i)

8. fun-in:

30,20,10

fun-end:

1015,35,1050

10,20,30

9. 012345

10.93636

11.–f

12.010111212

13.4334

14.x

15.voidfun(doubleb[])

16.

(1)j

(2)str[j-1

17.A+B=9

18.246

19.1:

a=1,b=1

2:

a=1,b=2

20.x=9

x=10

21.9

22.777

习题7

7-1单选题

1-5 DBCCB6-8BDCAD

7-2填空题

1. c

2. 60

3. 1000 10

4. 16

5.81

6.100,144

习题8

8-1单选题

1~15CADAC6~10CCDAB11~15CBBCD16~20CAABA

21~25DACDA26~30BDCAD31~35ADACD36~37AC

10000

01000

00100

00010

00001

8-2填空题

1

(1)2345

(2)10010(3)QuickC(4)

2.

(1)j+=2

(2)a[i]>a[j]

3.

(1)r+b[k]

(2)*x

4.13715

5.&a[i]

a[i]或*(a+i)

6.m-1,n-1

7.

(1)i<10

(2)a[i]-a[i-1]

(3)i%3==0

8.

(1)a[i][j]+b[i][j]

(2)printf(“\n”)

9.0

习题9

9-1单选题

1~5DDACB6~10ACBAD11~15CDBCC

16~20DADAC21~25ACDAC26~30DDDAA

31~33ABC

9-2填空题

1.2,1

2.10#30#

3.FOUR,O

4.60

5.49

6.2

7.2

8.75319

9.15

1,1,1,1,1

3,3,3,3,3

10.

10001

01010

00100

01010

10001

11.

 

12.

(1)*x

(2)t

13.

(1)'\0'或0

(2)n++或n+=1或n=n+1

14.024

习题10

10-1单选题

1-5 CDBBB6-10 BBBAD11-15 CCBDA16-20BDCBB

21-25CDDCD26-30CADBB

10-2填空题

1. 所有结构体成员所占存储空间的总和

2. 与占用存储空间最大的那个成员相等

3. 

(1)结构体 

(2)3 (3)sa.a (4)9 (5)psa=&sa

4. 80

5. structnode

6. 0

7.23

8.22

9.10,x

10.2,3

习题11

11-1单选题

1-6 BADDAA

11-2填空题

1. 3d3d330

2. 

(1)28 

(2)20 (3)0 (4)-9

3. 

(1)251 

(2)42 (3)209 (4)–295 (5)848

4.246

习题12

12-1单选题

1-5 BCDCA 6-10 ADABC11-14BDDA

12-2填空题

1. rewind(文件指针)

2. "d1.dat","rb"

3. stdin

4. 文本文件 二进制文件

5. 

(1)"w" 

(2)str[i]-32 (3)"r"

6. fopen

7. Hell

8. 

(1)"r" 

(2)fgetc(fp) (3)time++

9.文本文件二进制文件

10.非零值0

习题12

12-1单选题

1-5 BCDCA 6-8 ADA

12-2填空题

1. rewind(文件指针)

2. "d1.dat","rb"

3. stdin

4. 文本文件 二进制文件

5. 

(1)"w" 

(2)str[i]-32 (3)"r"

6. fopen

7. Hell

8. 

(1)"r" 

(2)fgetc(fp) (3)time++

实验篇

实验1熟悉VisualC++6.0可视化集成开发环境

实验2顺序结构程序设计

实验3选择结构程序设计

(1)略

(2)略

(3)#include"stdio.h"

main()

{

floata,b;

printf("Pleaseinputthedataaandb:

\n");

scanf("%f%f",&a,&b);

if(a>10.0)

a=a-10.0;

else

{a=a+10.0;

if(b>a);

elseb=a-b;

}

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

}

实验4循环结构程序设计

(1)略

(2)略

(3)编写一个程序,打印输出半径为1~10的圆的面积,若面积为40~90则予以打印,否则,不予打印。

#include"stdio.h"

main()

{floatr=0,area=0;

while(r<10&&area<90)

{if(area>40)

printf("r=%f,area=%f\n",r,area);

r=r+1;

area=3.1415926*r*r;

}

}

(4)从键盘输入一批整数,统计其中不大于100的非负数数值的个数。

(用while循环实现。

#include"stdio.h"

main()

{intx,i=0;

scanf("%d",&x);

while(x>=0)

{if(x<=100)

i++;

scanf("%d",&x);

}

printf("thenumberis:

%d\n",i);

}

(5)用/4=1-1/4+1/5-1/7+1/9-…公式求的近似值,直到最后一项的绝对值小于10-4为止。

#include"math.h"

main()

{doublek=1.0,n=1.0,pi=0,t=1.0;

while(fabs(t)>=1e-4)

{pi=pi+t;

n=n+2.0;

k=-k;

t=k/n;

}

pi=pi*4;

printf("pi=%lf\n",pi);

}

(6)解决猴子吃桃问题。

猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。

第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,只剩一个桃子了。

求第一天猴子共摘了多少个桃子。

#include

main()

{inti,m,n;

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

{m=2*n+2;

n=m;}

printf("total=%d\n",m);

}

(7)取彩球问题。

现有12个彩球——3个白球、3个红球、6个黑球,从中任意取n(2≤n≤12)个球,求所有不同的取法。

#include"stdio.h"

main()

{

intn,white,red,yellow,count=0;

printf("Pleaseinputthenumberofballtook:

");

scanf("%d",&n);

printf("whiteredyellow\n");

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

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

{yellow=n-white-red;

if(yellow>=0&&yellow<=6)

{printf("%6d%6d%6d\n",white,red,yellow);

count++;}

}

printf("Total:

%d\n",count);

}

实验5函数

(1)略

(2)略

(3)求两个整数的最大公约数和最小公倍数,要求:

用一个函数求最大公约数,用另一个函数求最小公倍数,分别采用用全局变量和不用全局变量两种方法做。

●使用全局变量:

#include"stdio.h"

intx,y;

inthef()

{intu=x,v=y,a,b;

if(u>v)

{a=u;u=v;v=a;}

while((b=u%v)!

=0)

{u=v;v=b;}

return(v);

}

intled(intx,inty,inth)

{return(x*y/h);}

main()

{

inth,l;

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

h=hef(x,y);

printf("HCF=%d\n",h);

l=led(x,y,h);

printf("LCD=%d\n",l);

}

●不用全局变量:

#include"stdio.h"

inthef(intx,inty)

{

inta,b;

if(y>x)

{a=x;x=y;y=a;}

while((b=x%y)!

=0)

{x=y;y=b;}

return(y);

}

intled(intx,inty,inth)

{return(x*y/h);}

main()

{intx,y,h,l;

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

h=hef(x,y);

printf("HCF=%d\n",h);

l=led(x,y,h);

printf("LCD=%d\n",l);

}

(4)计算s=1/1-1/2+1/3-…+1/9999-1/10000,分别采用下列各种方法,每种方法单独用一个函数实现,最后加以比较:

①从左到右各项相加;

②从右到左各项相加;

③从左到右各个正项和负项分别相加;

④从右到左各个正项和负项分别相加。

#include"stdio.h"

voidlsum(intn);

voidrsum(intn);

voidlsumc(intn);

voidrsumc(intn);

main()

{lsum(10000);

rsum(10000);

lsumc(10000);

rsumc(10000);

}

voidlsum(intn)

{inti,k=1;

doublesum=0,t;

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

{t=1.0*k/i;

sum+=t;

k=-k;

}

printf("thelsumis:

%lf\n",sum);

}

voidrsum(intn)

{inti,k=-1;

doublesum=0,t;

for(i=n;i>=1;i--)

{t=1.0*k/i;

sum+=t;

k=-k;

}

printf("thersumis:

%lf\n",sum);

}

voidlsumc(intn)

{inti;doublesum=0;

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

sum+=1.0/i;

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

sum-=1.0/i;

printf("thelsumcis:

%lf\n",sum);

}

voidrsumc(intn)

{inti;doublesum=0;

for(i=n;i>=2;i--,i--)

sum-=1.0/i;

for(i=n-1;i>=1;i--,i--)

sum+=1.0/i;

printf("thersumcis:

%lf\n",sum);

}

(5)猴子吃桃问题的函数化。

把猴子吃桃问题写成一个函数,使它能够求得指定一天开始时的桃子数。

#include"stdio.h"

intmonkey(intk)

{inti,m,n;

for(n=1,i=1;i<=10-k;i++)

{m=2*n+2;

n=m;}

return(n);

}

main()

{intday;

printf("Pleaseinputtheday(1<=day<=10):

\n");

scanf("%d",&day);

printf("day:

%d,total:

%d",day,monkey(day));}

(6)菜单程序。

编写一个菜单程序,运行后首先在屏幕显示如图所示的菜单,当输入数值1时,调用显示“@”图案的函数;当输入数值2时,调用显示“$”图案的函数;当输入数值3时,程序结束。

#include"stdio.h"

voidview1();

voidview2();

main()

{

intop;

printf("\n************************************\n");

printf("Menusection\n");

printf("1.view(@)\n");

printf("2.view($)\n");

printf("3.exit\n");

printf("************************************\n");

printf("\nPleaseinputselection:

\n");

while

(1)

{

scanf("%d",&op);

if(op==1)

{view1();

printf("\nPleaseinputselection:

");

}

elseif(op==2)

{view2();

printf("\nPleaseinputselection:

");

}

elsereturn;

}

}

voidview1()

{inti;

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

putchar('@');

return;

}

voidview2()

{inti,j;

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

{for(j=1;j

putchar('');

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

putchar('$');

printf("\n");

}

return;}

实验6数组

(1)略

(2)略

(3)设有含10个元素的一维整型数组,其中偶数和奇数各占一半,将该数组变换为25的二维数组,且偶数和奇数各成一行。

#include"stdio.h"

main()

{inta[10],b[2][5],i,j=0,k=0;

printf("Pleaseinputthearraya:

\n");

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

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

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

{if(a[i]%2==0)

{b[0][j]=a[i];

j++;}

else

{b[1][k]=a[i];

k++;}

}

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

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

printf("b[%d][%d]=%d",j,k,b[j][k]);

}

(4)找出一个二维数组的鞍点,即该位置上的元素在所在行上最大,在所在列上最小,注意也可能没有鞍点。

#include"stdio.h"

#defineM3

#defineN4

main()

{inta[M][N],i,j,k;

printf("Pleaseinputthearraya:

\n");

for(i=0;i

for(j=0;j

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

for(i=0;i

{k=0;

for(j=1;j

if(a[i][j]>a[i][k])k=j;

for(j=0;j

if(a[j][k]

if(j==M)

printf("%d%d,%d\n",a[i][k],i,k);

}

}

(5)有n个人围成一圈,顺序编号。

从第1个人开始报数(从1到m),凡报到m的人退出圈子,求最后一个圈中的人的编号。

#include"stdio.h"

main()

{inti=0;intk=0;

intquit_num=0;

intn;//总人数

intm;//报数的最大数

intnum[100];//保存所有人的编号

int*p=num;//初始化指针,使其指向num数组

printf("Pleaseinputnumberofperson:

n=");

scanf("%d",&n);

printf("Pleaseinputthenumberm=");

scanf("%d",&m);

/*给所有的人编号为1到n*/

for(i=0;i

{*(p+i)=i+1;}

i=0;

/*当未退出人数大于1时执行循环*/

while(quit_num

{while(i

{if(*(p+i)==0)

{k++;

if(k==m){*(p+i)=0;quit_num++;k=0;}

}

i++;

}

i=0;

}

while(*p==0)p++;//查找留在圈中的人

printf("Thelastone’snumberis:

%d\n",*p);

}

实验7指针

(1)略

(2)略

(3)用指针作函数参数求4个整数中的最大者。

#include"stdio.h"

voidmax(int*,int*);

main()

{inta,b,c,d,*pa,*pb,*pc,*pd;

pa=&a;pb=&

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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