C语言复习题答案.docx

上传人:b****5 文档编号:8101505 上传时间:2023-01-28 格式:DOCX 页数:28 大小:41.01KB
下载 相关 举报
C语言复习题答案.docx_第1页
第1页 / 共28页
C语言复习题答案.docx_第2页
第2页 / 共28页
C语言复习题答案.docx_第3页
第3页 / 共28页
C语言复习题答案.docx_第4页
第4页 / 共28页
C语言复习题答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言复习题答案.docx

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

C语言复习题答案.docx

C语言复习题答案

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

习题1

1-1单选题

1~5 BBBAC

1-2填空题

1.函数

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

3. 主函数main()

4.函数首部,函数体

5.{,}

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

7..c,.obj,.exe

第2章

2.1单选题

1~5DBDCA 6~10DCABAﻩﻩ11~15 CADBD   16~20CAABC

21~25ADAAA 26~30ACBAC  31~35BADDA  36~40BBCCC

41~45BDABA 46~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.11 64

10.5

11.double

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

13.数据类型数据类型

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

15.单精度 双精度

16. 变量初始化

17.双引号

18.’\0

19.x=3.600000,i=3

习题3

3-1选择题

1-5BDABC6-10 ADCAC11-15BBBCC 16-20 CDCDA

21-25 CACAA26-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<Enter>

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.2 20.000000

2067 G

习题4

4-1单选题

1~5 AADAD6~10ACBBBﻩ11~15BADAD    16~20BADBA

21~25CDBDD26~30DCDCA  31~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:

5.-4

6.1

7.5,0,3

8. (1) (a==0)(2) (b==0)(3) (disc<0)

9.11  0 1

10.10 200

11.yes

12.X==0

13.x=1 y=0

x=2

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

15.-1

16.01

习题5

5-1单选题

1~5CDABA ﻩ6~10ABDDBﻩ11~15DBCBC16-21 DBCBCD

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~5CBBADﻩ6~10DBCCDﻩ11~15DCABC 16~20ABBBC

21~25CCBAA  26~30ABBDB  31~35BDADD  36~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.0 101 112 12

13.4 334

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~15 CADAC ﻩ6~10CCDABﻩ11~15 CBBCD 16~20CAABA

21~25DACDA 26~30BDCAD 31~35ADACD 36~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~5DDACB 6~10ACBAD11~15CDBCC

16~20DADAC21~25ACDAC26~30DDDAA

31~33 ABC

9-2填空题

1.2,1

2.10#30#

3.FOUR,O

4. 60

5. 49

6.2

7.2

8. 7 5 31 9

9.15

10.

11.

 

12.(1) *x  

(2) t

13.

(1)'\0'或0 

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

14. 024

习题10

10-1单选题

1-5 CDBBB 6-10 BBBADﻩ11-15 CCBDA   16-20BDCBB

21-25CDDCD 26-30CADBB

10-2填空题

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

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

3. 

(1) 结构体

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

4. 80

5. struct node

6. 0

7. 23

8.22

9.10,x

10. 2,3

习题11

11-1单选题

1-6BADDAA

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.2 46

习题12

12-1单选题

1-5 BCDCA ﻩ6-10 ADABC    11-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-5BCDCA6-8ADA

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) ;

  ﻩ elseﻩb=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()

{  int i,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("Pleaseinputthe numberofballtook:

");

scanf("%d",&n);

printf("whitered yellow\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);

}

int led(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(int x,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,int y,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"

void lsum(intn);

voidrsum(intn);

void lsumc(intn);

voidrsumc(int n);

main()

{lsum(10000);

rsum(10000);

lsumc(10000);

rsumc(10000);

}

voidlsum(intn)

{inti,k=1;

double sum=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(int n)

{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);

}

void rsumc(intn)

{int i; 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"

int monkey(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"

void view1();

voidview2();

main()

{

intop;

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

  printf("    Menu  section    \n");

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

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

printf("  3.exit     \n");

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

printf("\nPleaseinput selection:

\n");

 while(1)

 {

   scanf("%d",&op);

 if(op==1)

 {view1();

   printf("\nPleaseinputselection:

");

  }

elseif(op==2)

ﻩ { view2();

ﻩ printf("\nPleaseinputselection:

");

}

ﻩelse return;

voidview1()

{ inti;

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

  putchar('@');

 return;

}

void view2()

{inti,j;

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

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

ﻩputchar(' ');

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

  putchar('$');

  printf("\n");

 }

return;}

实验6数组

(1)略

(2)略

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

#include"stdio.h"

main()

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

printf("Pleaseinput the arraya:

\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"

#define M 3

#defineN 4

main()

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

printf("Pleaseinputthearraya:

\n");

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

for(j=0;j

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

for(i=0;i

{k=0;

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

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

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

  if(a[j][k]<a[i][k])break;

  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("Please input numberof person:

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<n-1)

ﻩ{while(i<n)

ﻩ{if(*

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

当前位置:首页 > 工程科技 > 能源化工

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

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