习题2

任务一:

1、以下程序功能为输入圆锥的底面积和半径和高,求表面积和体积。请通过调试方法或编译方法去把错误代码修改正确。

 

#include <stdio.h>

#define PI 3.1415926

#include <math.h>

void main()

{      double r,h,s,v;

       printf("Please input the radius:\n");

       scanf("%63lf",&r);

       printf("Please input the height:\n");

       scanf("%63lf",&h);

       s=PI*r*(r+pow(r*r+h*h,0.5));

       v=PI*r*r*h;

       printf("The area is %lf\nThe volumn is %lf\n",s,v);

}

任务二

2、分析左边程序,第几行输出的数据不正确,总结整型和实型能正确输出的格式符是哪些?

 

#include <stdio.h>

void main()

{   int x1=2;

       long x2=-8;

    float y1=8.9;

       double y2=9.9;

    printf("1:x1=%d,x2=%d\n",x1,x2);

    printf("2:x1=%ld,x2=%ld\n",x1,x2);

       printf("3:x1=%d,x2=%ld\n",x1,x2);//有问题已改

       printf("4:x1=%u,x2=%ld\n",x1,x2);//有问题已改

    printf("5:y1=%f,y2=%lf\n",y1,y2);//有问题已改

    printf("6:y1=%f,y2=%f\n",y1,y2);

    printf("7:y1=%lf,y2=%lf\n",y1,y2);

    printf("8:y1=%lf,y2=%lf\n",y1,y2);//有问题已改

 }

 

 

 

任务三:

 

 

3、以下程序中若输入9876543210则输出x1=98,x2=765,c1=4,c2=1;若输入98 76 543210则输出x1=98,x2=76,c1= ,c2=3;若输入987654 3210则输出x1=98,x2=765,c1=4,c2=2。请根据输入输出写出正确的scanf函数调用语句把程序补充完整。

 

 

#include <stdio.h>

void main()

{     

       int x1,x2;

       char c1,c2;

       scanf("%2d%3d%3c%c",&x1,&x2,&c1,&c2);

       printf("x1=%d,x2=%d,c1=%c,c2=%c\n",x1,x2,c1,c2);

}

 

 

 

 

任务四:

4.1、编程实现任意输入一个无符号的整数,分别以十进制、八进制、十六进制形式输出,且每个数字输出时都从各个制表区的第一个位置开始输出。

 

#include <stdio.h>

void main()

{     

       unsigned int x1;

       scanf("%u",&x1);

       printf("%u %o %x\n",x1,x1,x1);

}

 

4.2、编程实现任意输入一个小数,分别输出此小数的整数部分、小数部分以及保留2位小数的结果,并且这三个数用%隔开。

若输入的是56.889,则输出56%0.889000%56.89。

 

#include <stdio.h>

void main()

{     

       double x,b;

       int a;

       scanf("%lf",&x);

       a=(int)x;

       b=x-a;

       printf("%d%%%f%%%.2f\n",a,b,x);

}

 

 

 

4.3、编程输入两个字符分别给变量c1和c2,要求不借助于其他变量的条件下,将变量c1和c2的值互换。

#include <stdio.h>

void main()

{     

       int c1,c2;

       printf("请输入c1和c2的值:");

       scanf("%d%d",&c1,&c2);

       c1=c1+c2;

       c2=c1-c2;

       c1=c1-c2;

       printf("c1=%d,c2=%d\n",c1,c2);

}

 

 

4.4、编程实现鸡兔同笼,已知笼中有头h个,有脚f条,问笼中鸡兔各有多少只?若头10,脚32,则鸡4只,兔6只。

#include <stdio.h>

void main()

{     

       int h,f,j,t;

       printf("请输入头和腿的值:");

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

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

       j=h-t;

       printf("鸡=%d 兔=%d\n",j,t);

 

}

 

上一篇:Linux 相关面经


下一篇:Linux学习笔记2