C语言课后习题答案.docx

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

C语言课后习题答案.docx

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

C语言课后习题答案.docx

C语言课后习题答案

第一章习题答案 

一、选择题 

1~5:

BDCDA 6~10:

DABBB11~12:

CC 

二、填空题 

1、main() 

2、函数首部,函数体 

3、函数 

4、编辑、编译、连接、运行 

5、.cpp、.obj、.exe 

6、;或分号 

三、编程题 

#include       /*包含标准库的信息*/ 

voidmain()             /*定义名为main的函数,它不接受参数值*/ 

{                        /*main函数的语句都被括在花括号中*/ 

    printf("hello,world\n"); 

    /*main函数调用库函数printf以显示字符序列,其中\n代表换行符*/ 

}

 第二章习题答案 

一、选择题 

1~5:

CBABB 6~10:

CDCDD 11~15:

CADBC 16~20:

BDAAD 

二、填空题 

1、整型,实型,字符型,枚举类型 

2、1 

3、9 

4、12353514 

5、2,1 

6、2,2 

7、10200 

8、a=14 

9、2,3,1 

10、double

 第三章习题答案 

一、选择题 

1~5:

CBBBC 6~10:

DDDBB 

二、填空题 

1、控制语句,表达式语句,复合语句 

2、; 

3、{} 

4、1 

5、a 

6、c:

dec=120,oct=170,hex=78,ASCII=x 

7、32767,32767 

8、10,A,10 

9、3 3 

10、 

 

(1)123.456001 

 

(2)□□□□□□□123.456 

 (3)123.4560 

 (4)8765.456700 

 (5)□□□□□□8765.457 

 (6)8765.4567 

 (7)8765.4567 

三、编程题 

1、参考答案:

 

#include 

voidmain() 

 { 

int a,b,c; 

long intu,n; 

float x,y,z;

char c1,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("\n"); 

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

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

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

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

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

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

2、参考答案:

 

#include 

voidmain() 

float a,b,c,t; 

printf("pleaseinputa,b,c:

\n"); 

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

t=(a+b+c)/3; 

printf("averageof%6.2f、%6.2f and  %6.2f is %6.2f\n",a,b,c,t); 

3、参考答案:

 

#include 

main() 

 int R,d; 

 float s; 

 printf("请输入圆的半径"); 

 scanf("%d",&R); 

 d=2*R; 

 c=2*3.14159*R; 

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

4、参考答案:

 

#include

voidmain() 

 { 

int h,f,x,y;/*x为鸡的数量,y为兔的数量*/ 

printf("请输入鸡兔的总头数h,总脚数f:

"); 

scanf("%d%d",&h,&f); 

x=(4*h-f)/2; 

y=(f-2*h)/2; 

printf("笼中有鸡%d只,有兔%d只。

\n",x,y); 

}

   第四章习题答案 

一、选择题 

CDDDDCDBBC 

二、填空题 

1、&&,||, !

,                  !

,         || 

2、(y%2 0) 

3、1 

4、(a+b>c&&a+c>b&&b+c>a) 

5、233 

6、7 

三、编程题 

1、参考答案:

 

#include 

voidmain() 

 {intx; 

scanf("%d",&x); 

if(x%5 0&&x%7 0) 

  printf("yes\n"); 

else

  printf("no\n"); 

2、参考答案:

 

#include 

voidmain() 

 { int  a,b,c,max; 

      printf("请输入三个整数:

%%d%%d%%d\n"); 

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

 if (a>=b) 

       if (a>=c) max=a; 

       else max=c; 

    else 

       if(b>=c) max=b; 

       else  max=c; 

   printf("\n最大数为:

%d\n",max); 

 } 

3、参考答案:

 

#include 

voidmain() 

  float  x,y; 

  printf("请输入x的值:

"); 

  scanf("%f",&x); 

   if(x<1)y=1; 

  elseif(x<10) 

        y=2*x-1; 

  else 

        y=3*x-11; 

  printf("y=%.2f\n",y); 

 } 

4、参考答案:

 

#include 

voidmain() 

intyear; 

floatmoney,rate,total;     /*money:

本金rate:

月利率total:

本利合计 

*/

printf("Inputmoneyandyear=?

"); 

scanf("%f%d",&money,&year);    /*输入本金和存款年限*/ 

if(year 1)rate=0.00315;     /*根据年限确定利率*/ 

elseif(year 2)rate=0.00330; 

elseif(year 3)rate=0.00345;

elseif(year 5)rate=0.00375; 

elseif(year 8)rate=0.00420; 

elserate=0.0; 

total=money+money*rate*12*year;    /*计算到期的本利合计*/ 

printf("Total=%.2f\n",total); 

}

第五章习题答案 

一、选择题 

1~5:

ACCBA 

6~10:

ACDCB 

二、填空题 

1、

(1)i<=9或i<10 

(2)j%3!

=0 

2、7 

3、

(1)ch=ch+1、

(2)printf("\n") 

三、编程题 

1、参考答案:

 

#include 

voidmain() 

 {inti=2; 

longp=1; 

  do 

 {p=p*i; 

i=i+2; 

} while(i<10); 

printf("2*4*6*8=%ld\n",p); 

2、参考答案:

 

#include 

voidmain() 

 {intn=0; 

charc; 

c=getchar(); 

while(c!

='\n') 

 {if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))n++; 

  c=getchar(); 

}

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

3、参考答案:

 

#include 

voidmain() 

 {inta,max; 

scanf("%d",&a); 

max=a; 

while(a!

=0) 

 {scanf("%d",&a); 

   if(max

printf("%d",max); 

4、参考答案:

 

#include 

voidmain() 

 { 

 intday=0,buy=2; 

floatsum=0.0,ave; 

do

 { 

sum+=0.8*buy; 

day++; 

buy*=2; 

while(buy<=100); 

ave=sum/day; 

printf(“%f”,ave); 

5、参考答案:

 

#include 

voidmain() 

 {intf1,f2,f5,count=0; 

for(f5=0;f5<=20;f5++)

for(f2=0;f2<=(100-f5*5)/2;f2++) 

{f1=100-f5*5-f2*2; 

  if(f5*5+f2*2+f1 100) 

 printf("No.%2d>>5:

%4d2:

%4d1:

%4d\n",++count,f5,f2,f1); 

printf("共有%d种换法",count); 

6、参考答案:

 

#include 

voidmain() 

{inti,j,n; 

printf("\nPleaseEntern:

"); 

scanf("%d",&n); 

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

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

printf(""); 

for(j=1;j<=2*i-1;j++) 

printf("*"); 

printf("\n"); 

7、参考答案:

 

#include 

voidmain() 

inti,j; 

floatg,sum,ave; 

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

sum=0; 

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

scanf(“%f”,&g); 

sum+=g; 

}

ave=sum/5; 

printf(“No.%dave=%5.2f\n”,i,ave); 

8、参考答案:

 

#include 

voidmain() 

 {intn,t,number=20; 

floata=2,b=1,s=0; 

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

 {s=s+a/b; 

t=a; 

a=a+b; 

b=t; 

printf("s=%9.6f\n",s); 

}

第六章习题答案 

一、选择题 

1~5:

CBABD 6~10:

CDBCD 

二、填空题 

1、库函数(或系统函数),自定义函数 

2、无参函数, 有参函数 

3、传值方式 

4、实参,           形参 

5、1 3 

6、maxis2 

7、15 

8、1,2,3 

三、编程题 

1、参考答案:

 

#include 

intis_prime(inta) 

 {inti,p=1; 

    for(i=2;i

          if(a%i 0) 

          {p=0;break;} 

      return(p);

voidmain() 

 {inti=11; 

 if(is_prime(i)) 

       printf("1"); 

 else 

        printf("0"); 

2、参考答案:

 

#include

intgongyue(intnum1,intnum2) 

 {inttemp,a,b; 

  if(num1

  {temp=num1;num1=num2;num2=temp;} 

    a=num1; 

   b=num2; 

   while(b) 

    {temp=a%b;a=b;b=temp;} 

      return(a); 

voidmain() 

 {inti=12,j=8; 

 printf("%d",gongyue(i,j)); 

}

 

  第七章习题答案 

一、选择题 

1~5:

BDDCC 6~10:

CDCAB 

二、填空题 

1、字符、1 

2、2 

3、c:

\win98\cmd.exe 

4、1,2,3,4,5,6,7,8,9,0 

5、325678 

6、1,0,7,0, 

7、4332 

8、

(1)j=2                         

(2)j>=i 

三、编程题 

1、参考答案:

 

#include 

voidmain() 

 { inti,a[20],s,count; 

    s=count=0; 

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

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

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

     { if(a[i]<0) 

          continue; 

          s+=a[i]; 

          count++; 

    } 

    printf("s=%d\tcount=%d\n",s,count); 

2、参考答案:

 

#include

voidmain() 

 {inta[3][4],i,j,max; 

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

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

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

         max=a[0][0]; 

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

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

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

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

3、参考答案:

 

#include 

voidmain() 

 {inta[11]={3,4,7,9,10,13,14,15,18,20}; 

  inti,j,n; 

  scanf("%d",&n); 

  i=0; 

  while(i<10) 

   {if(n

     { 

      for(j=10;j>i;j--) 

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

      a[i]=n; 

     break; 

     } 

     i++; 

  } 

  if(i>=10) 

  a[10]=n; 

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

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

}

 第八章习题答案 

一、选择题 

1?

5ABCCB 6?

10DACBB 11?

15DACCC 

二、填空题 

1.

(1)*

(2)& 

2.

(1)*p 

(2)**a  (3)2 

3.10 

4.*p>*s 

5.*(++p) 

三、编程题 

1.编程实现从键盘输入一个字符串,将其字符顺序颠倒后重新存放,并输出这个字符串。

 

#include 

#include 

voidInverse(char*pStr)?

 

main() 

     char str[80]?

 

    printf("Inputastring:

\n")?

 

     gets(str)?

                /*输入字符串*/ 

     Inverse(str)?

             /*将存于str数组中的字符串逆序存放*/ 

    printf("Theinversedstringis:

\n")?

 

    puts(str)?

                 /*输出字符串*/ 

/*函数功能:

实现字符串逆序存放 

 函数参数:

字符指针变量,所指向的存储单元存放源字符串,逆序后的字符串也存放于此 

 返回值:

无*/ 

voidInverse(char*pStr) 

     int len?

 

     chartemp?

 

     char*pStart?

             /*指针变量pStart指向字符串的第一个字符*/ 

     char*pEnd?

                    /*指针变量pEnd指向字符串的最后一个字符*/ 

     len=strlen(pStr)?

       /*求出字符串长度*/ 

     for(pStart=pStr,pEnd=pStr+len?

1?

pStart

pStart++,pEnd?

?

 { 

          temp=*pStart?

 

           *pStart=*pEnd?

 

           *pEnd=temp?

 

     } 

2.从键盘任意输入10个整数,用函数编程实现计算最大值和最小值,并返回它们所在数组 

中的位置。

 

#include 

intFindMax(intnum[],intn,int*pMaxPos)?

 

intFindMin(intnum[],intn,int*pMinPos)?

 

main() 

     intnum[10],maxValue,maxPos,minValue,minPos,i?

 

     printf("Input10numbers:

\n")?

 

     for(i=0?

i<10?

i++) 

     { 

           scanf("%d",&num[i])?

                     /*输入10个数*/ 

     } 

     maxValue=FindMax(num,10,&maxPos)?

 /*找最大值及其所在下标位置*/ 

     minValue=FindMin(num,10,&minPos)?

 /*找最小值及其所在下标位置*/ 

     printf("Max=%d,Position=%d,Min=%d,Position=%d\n", 

                      maxValue,maxPos,minValue,minPos)?

 

/*函数功能:

求n个数中的最大值及其所在下标位置 

  函数入口参数:

整型数组num,存储n个整数,整型变量n,表示数组元素个数 

  函数出口参数:

整型指针变量pMaxPos,指向的地址单元存储最大值在数组中的下标位置 

  函数返回值:

最大值*/ 

intFindMax(intnum[],intn,int*pMaxPos) 

     inti,max?

 

     max=num[0]?

                    /*假设num[0]为最大*/ 

     *pMaxPos=0?

                    /*假设最大值在数组中的下标位置为0*/ 

     for(i=1?

i

i++) 

     { 

          if(num[i]>max) 

           { 

                      max=num[i]?

 

                      *pMaxPos=i?

 

           } 

     } 

     returnmax?

/*函数功能:

求n个数

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

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

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

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