C语言课后习题部分答案.docx

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

C语言课后习题部分答案.docx

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

C语言课后习题部分答案.docx

C语言课后习题部分答案

         第二章 C程序设计的初步知识

一、选择题

(1) B       

(2) D          (3) B         (4) A          (5)  C      

(6) A       (7) B          (8) B         (9) A          (10) C     

(11)B       (12)B          (13)A         

二、填空题

(14)11,12    

(15) 4.2,4.2  

(16) { ,}  说明,执行   

(17) 关键字,用户标识符  

(18) int ,float ,double  

(19) float a1=1,a2=1 ;   

(20) 存储单元   

(21) 3.5  

(22) a*b/c  a/c*b  a*(b/c)  

(23) 10赋给变量s

(24) 位,0或1   

(25) 8 ,255 ,11111111,0,00000000  

(26) 32767 ,-32768 ,10000000 00000000   

(27)十,八,十六

三、上机改错题

——————————————————————————————————————

(28) 请指出以下C程序的错误所在

    #include  stdio.h ;

    main( );  / * main function * /

        float   r, s;  /* /*r is radius*/,/*s is area of circular*/*/

        r = 5.0 ;

        s=3.14159 * r * r ;

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

※正确应为:

    #include   或 #include"stdio.h"

    main( )  /* main function  */

    {

       float r,s; /*r is radius, s is area of circular*/

       r = 5.0 ;

       s = 3.14159 * r * r ;

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

     }     

(29) 请指出以下C程序的错误所在

    #include  stdio.h

    main     /* main function */

    {

        float a,b,c,v;  /*a,b,c are sides, v is volume of cube*/

        a = 2.0 ; b = 3.0 ; c = 4.0 

        v = a * b * c;

        printf("%f\n",v);

     }

※正确应为:

    #include"stdio.h"

    main( )    /* main function */

    {

        float a,b,c,v;  /*a,b,c are sides, v is volume of cube*/

        a = 2.0 ; b = 3.0 ; c = 4.0; 

        v = a * b * c;

        printf("%f\n",v);

     }

 

               第三章 顺序结构

一、选择题

(1) C      

(2) C      (3) D      (4) C      (5) D  

(6) B      (7) C      (8) D      (9) A      (10)B 

(11)C      (12)D      (13)D      (14)A      (15)C  

(16)C      (17)C      (18)均不对,应为scanf( “%6f”,&c) (18) C   (20) B

二、填空题

(21) ① -200,2500   ② i=-200, j=2500    ③ i = -200 , j = 2500

(22) 12 ,0 ,0 

(23) 语句块,{ ;} 

(24) ;

(25) 100<空格>25.81<空格>1.89234   /*可用一个或几个空格作为输入时的间隔符*/

    10025.811.89234   /*Tab(制表符)也可以作为输入时的间隔符*/

    10025.811.89234   /*CR(回车符)也可以作为输入时的间隔符*/

(26) x = 127,  x =ццц127,  x=ццц177,   x=цццц7f,   x=ццц127。

(27) x = 127,  x =127ццц,  x=177ццц,   x=7fцццц,   x=127ццц。

(28) a=513.789215, a=цц513.79, a=цц513.78921500, a=цц513.78921500

三、上机改错题

3.30 编写程序,把560分钟换算成用小时和分钟表示,然后进行输出。

※程序如下※

main( )

   int hour,minute; 

   hour=560/60; 

   minute=560%60; 

   printf("hour=%d,minute=%d",hour,minute);

}

3.31 编写程序,输入两个整数:

1500和350,求出它们的商数和余数并进行输出。

※程序如下※

#include

main( )

   int num1,num2,i,j; /* 定义变量 i-商,j-余数 */

   printf("input num1 and num2:

\n"); 

   scanf("%d%d",&num1,&num2); 

   i=num1/num2;   

   j=num1%num2; 

   printf("商=%d\n 余数=%d",i,j); 

}

——————————————————————————————————————

3.32 编写程序,读入三个双精度数,求它们的平均值并保留此平均值小数点后一位数,

    对小数点后第二位数进行四舍五入,最后输出结果。

※程序如下※

main( )

   double a,b,c,average=0; 

   printf("input a,b,c(double):

\n"); 

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

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

   average=average*10; 

   average=average+0.5; 

   average=(int)average; 

   average=average/10; 

   printf("average=%lf",average);

}

——————————————————————————————————————

3.33 编写程序,读入三个整数给a,b,c,然后交换它们中的数,把a中原来的值给b,

    把b中原来的值给c,把c中的值给a。

※程序如下※

main( )

   int a,b,c,t=0; 

   printf("input a b c:

\n"); 

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

   t=c;c=b;b=a;a=t; 

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

}

      第四章 选择结构

一、选择题

(1) A      

(2) A      (3) A      (4) D      (5) C  

(6) A      (7) B      (8) 均错   (9)D      (10)A   

二、填空题

(11) 非零,零 

(12) <或<=、>或>=、==、!

=

(13) 逻辑非、逻辑与、逻辑或 

(14) !

、<或<=、>或>=、==、!

=、&&、|| 

(15) !

  

(16) a= =b || a 4 或 x > 4 || x< - 4  

(17)  1

(18) x>0 ?

 0 :

 1 , 1  

(19)  a=3 , b=2 , c=2   

(20)  * #

三、编程题

——————————————————————————————————————

4.21 当a>0时,请将以下语句改写成switch语句。

    if( a<30 ) m=1;

    else if( a<40 ) m=2;

    else if( a<50 ) m=3;

    else if( a<60 ) m=4;

    else m=5;

※程序如下※

main()

{

   int a;

   printf("Enter a:

\n");

scanf("%d",&a);

   switch(a/10)

   {

       case 0:

       case 1:

       case 2:

  printf("m=1"); break ;

       case 3:

  printf("m=2"); break ; 

       case 4:

  printf("m=3"); break ;

       case 5:

  printf("m=4"); break ;

       default:

 printf("m=5"); 

   }

}

4.22 编写程序,输入一位学生的生日(年:

y0、月:

m0、日:

d0);并输入当前的日

    期(年:

y1、月:

m1、日:

d1);输出该生的实足年龄。

main( )

   int y0,y1,m0,m1,d0,d1,age=0; 

   printf("Your Birthday(yyyy-mm-dd):

\n"); 

   scanf("%d-%d-%d",&y0,&m0,&d0); 

   printf("Current Date(yyyy-mm-dd):

\n"); 

   scanf("%d-%d-%d",&y1,&m1,&d1); 

   if(d1

   if(m1

   age=y1-y0; 

   printf("\nAge=%d",age); 

}

——————————————————————————————————————

4.23 编写程序,输入一个整数,打印出它是奇数还是偶数。

※程序如下※

main( )

   int i; 

   printf("input a integer:

\n"); 

   scanf("%d",&i); 

   if(i%2==0) /*条件判断*/ 

       printf("%d is a even",i); 

   else 

       printf("%d is a odd",i);

}

——————————————————————————————————————

4.24 编写程序,输入a、b、c三个数,打印出最大者。

※程序如下※

main( )

   int a,b,c,max = 0; 

   printf("input (int)a b and c:

\n"); 

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

   max = a; 

   if(max

   if(max

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

}

4.25 有一函数:

编写一程序,要求输入x的值,输出y的值。

分别

       

(1)不嵌套的if语句     

(2)嵌套的if语句

       (3)if_else语句        (4)switch语句

※程序如下※

源程序一:

(1)不嵌套的if语句

main( )

   float x; 

   printf("input x:

\n"); 

   scanf("%f",&x); 

   if(x>-5&&x<0) 

       printf("y=%f",x); 

   if(x==0) 

       printf("y=%f",x-1); 

   if(x>0&&x<10) 

       printf("y=%f",x+1); 

   if(x<=-5||x>=10)

       printf("input error");

}

源程序二:

(2)嵌套的if语句

main( )

   float x; 

   printf("input x:

\n"); 

   scanf("%f",&x); 

   if(x>-5&&x<10) 

   { 

       if(x==0) printf("y=%f",x-1); 

       if(x<0) printf("y=%f",x); 

       if(x>0) printf("y=%f",x+1); 

   } 

   if(x<=-5||x>=10)

       printf("input error");

}

源程序三:

(3)if_else语句

main( )

   float x; 

   printf("input x:

\n"); 

   scanf("%f",&x); 

   if(x>-5&&x<10) 

       if(x<0) 

           printf("y=%f",x-1); 

       else if(x==0) 

           printf("y=%f",x); 

       else 

           printf("y=%f",x+1); 

   else 

       printf("input error");

}

源程序四:

(4)switch语句

main()

{

   int flag;

   float x;

   printf("Enter x:

\n");

   scanf("%f",&x);

   if(x>-5 &&x<0) flag=-1;

   if(x==0)       flag=0;

   if(x>0 &&x<10) flag=1;

   switch(flag)

   {

       case -1:

 printf("y=%f",x);   break;

       case  0:

 printf("y=%f",x-1); break;

       case  1:

 printf("y=%f",x+1); break;

    } 

}

第五章 循环结构

一、选择题

(1) D      

(2) C      (3) B      (4) C      (5) C  

(6) B      (7) D      (8) A      (9) D      (10)D 

二、填空题

(11) 5, 4, 6  

(12) 有错 

(13) -1  

(14) 11  

(15) d=1.0 , k++ , k<=n  

(16)x>=0 , x

三、编程题

5.17 编写程序,求1-3+5-7+...-99+101的值。

main()

{

   int i,sum=0,s=1;

   for(i=1; i<=101;i+=2)  

   {

       sum=sum+i*s;

       s=-s;            /*控制符号交替变换*/

   }

   printf("sum=%d",sum);

}

——————————————————————————————————————

5.18 编写程序,求e的值,e=1+1/1!

+1/2!

+1/3!

+1/4!

+...+1/n!

   

(1)用for循环,计算前50项

   

(2)用while循环,要求直至最后一项的值小于1e-4。

※程序如下※

源程序一:

(1)用for循环实现

main( )

   int i,n; 

   double sum=1,t=1; 

   printf("input n:

\n"); 

   scanf("%d",&n); 

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

   { 

       t=t*i;             /* 实现阶乘*/

       sum=sum+1/t;         

   } 

   printf("e=%lf",sum);

}

源程序二:

(2)用while循环实现

#include

main( )

   int i; 

   doubel sum=1,t=1; 

   while(fabs(1.0/t)>1e-4)   /* fabs求浮点型数据的绝对值 */

   { 

       t=t*i; 

       sum=sum+1/t; 

       i++; 

   } 

   printf("e=%lf",sum);

}

——————————————————————————————————————

5.19 编写程序,输出从公元1000年至2000年所有闰年的年号 每输出3个年号换一行。

    判断公元年是否闰年的条件是:

   

(1)公元年数如能被4整除,而不能被100整除,则是闰年。

   

(2)公元年数能被400整除也是闰年。

※程序如下※

main( )

   int i,j=0; 

   for(i=1000;i<=2000;i++) 

   { 

       if((i%4==0)&&(i%100!

=0)||(i%400==0))  /* 判断是否是闰年的条件 */

       { 

           printf("&d ",i); 

           j++; 

           if(j%3==0)      /* 控制换行 */ 

           printf("\n"); 

       } 

   }

}

——————————————————————————————————————

5.20 编写程序,打印以下图形:

              *

             ***

            *****

           *******

            *****

             ***

              *

※程序如下※

#include

main( )

   int i,j; 

   for(i=1;i<=7;i++) /*控制行数*/ 

   { 

       for(j=1;j<=7;j++) /*控制星数*/ 

       { 

           if((j<=fabs(4-i))||(j>7-fabs(4-i))) 

               printf(" "); 

           else 

               printf("*") 

       } 

       printf("\n"); 

   }

}

—————————————————————————————————————— 

              第六章 字符型数据

一、选择题

(1) B       

(2) D      (3) A       (4) A   (5) B   

(6) D       (7) D      (8)B       (9) A   (10)A 

(11)B ©  

二、填空题

(12) -1  

(13) 1   

(14) ctype.h   

(15) 0   

(16) 10A20B30C40D 

(17) 7.29    101.298 ↙ AB↙ (7.29↙101.298↙AB↙)  

(18) A7.29B101.298↙ 

(19) AЦЦЦ↙ BЦЦЦ↙ C↙

三、编程题

6.21 请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的ASCII

    代码值,每行输出三队.

※程序如下※

#include

main( )

   int i=0; 

   char ch; 

   while((ch=getchar( ))!

='\n') 

   { 

       printf("%4c%4d",ch,ch); 

       i++; 

       if(i%3==0) 

       printf("\n"); 

   }

}

——————————————————————————————————————

6.21 请编写程序,输入一行数字字符(用EOF结束),每个数字字符的前后都有空格。

    请编程,把这一行中的数字转换成一个整数。

例如,若输入:

    2     4     8     3      (代表Enter键)

    则输出整数:

2483

※程序如下※

#include

main()

{

   char ch;

   while((ch=getchar())!

=EOF)

   {

       if(ch==' ')

           continue;

       else 

           

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

当前位置:首页 > 医药卫生 > 基础医学

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

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