第三章
2、分析下面程序段,指出错误的原因和程序错在哪里,并将其改正。
(1)  int a,b;
    scanf(“%d,%d”,a,b);
错误:在scanf函数中,参数应该是a,b两个变量的地址。
改正:scanf(%d,%d,&a,&b);
(2)float f=2.39;
printf(“%d”,f);
错误:数据输出格式与数据类型不匹配。
改正:printf(%f,f);
(3)double var;
long a;
scanf(“%f%d”,&var,&a);
错误:数据输入格式与数据类型不匹配。
改正:scanf(%lf%ld,&var,&a);
(4)int a,b;
scanf(“%d,%d\n”,a,b);
错误:在scanf函数输入格式控制串中多了\n,a和b前面少了&
改正:scanf(%d%d,&a,&b);
(5)float f;
scanf(“%5.2f”,&f);
错误:%f的输入格式不应有精度控制。
改正:scanf(%5f,&f);
(6)main()
{
    int a,b;
scanf(“a=%d,b=%d”,&a,&b);
printf(“a=%d,b=%d\n”,a,b);
}
程序运行时输入:6,2回车
错误:程序输入错误使得变量a,b的值不是6,2.
改正:应输入 a=6,b=2回车
3、分析下列程序,写出程序运行结果。
(1)
    main()
    {
        char c1=’a’,c2=’b’,c3=’c’;
        printf(“a%cb%cc%cabc\n”,c1,c2,c3);
}
aabbccabc
(2)
main()
{
    int x=12,y=8;
    printf(“\n%5d%5d%5d”,!x,x||y,x&&y);
}
    0    1    1
(3)可选题
    main()
{
    int x,y;
    scanf(“%2d%*2s%2d”,&x,&y);
    printf(“%d”,x+y);
}
printf输出格式char程序执行时从键盘输入:1234567回车
68
(4)
    main()
{
    int a=2,b=3;
    float x=3.5,y=2.5;
    printf("%f",(float)(a+b)/2+(int)x%(int)y);
}
3.500000
(5)
main()
{
    int x=12,y=8;
    printf("%d %d\n",x++,++y);
    printf("%d %d\n",x,y);
}
12 9
13 9
(6)
main()
{
    int x=12,y=8,p,q;
    p=x++;
    q=++y;
    printf("%d %d\n",p,q);
    printf("%d %d\n",x,y);
}
12 9
13 9
5、已知三角形的三边长为a,b,c,计算三角形面积的公式为:
,s=1/2(a+b+c)
要求编写程序,从键盘输入a,b,c的值,计算并输出三角形的面积。
算法分析:
s=1/2(a+b+c)公式,用C语言表达式这样表示:s=1.0/2*(a+b+c)或s=0.5*(a+b+c)都可以。
公式:
用C语言表达式:area=sqrt(s*(s-a)*(s-b)*(s-c))来表示。
参考答案:
#include "stdio.h"
#include "math.h"
main()
{
    float a,b,c; /*a,b,c为三边变量*/
    float s,area;
    printf("请输入 a,b,c三边:");
    scanf("%f,%f,%f",&a,&b,&c); /*用a,b,c三个变量来接受输入的三个整数。*/
    s=1.0/s*(a+b+c);
    area=sqrt( s* (s-a)*(s-b)*(s-c) );
    printf("area=%.2f\n",area);
}
运行:
请输入 a,b,c三边:3,4,5
area=6.00
6、从键盘输入圆的半径r,计算并输出圆的周长和面积。
参考答案:
#include "stdio.h"
#define PI 3.14
main()
{
    float r;
    float circum,area;
    printf("请输入半径r:");
    scanf("%f",&r);
    circum=2*PI*r;
    area=PI*r*r;
    printf("周长=%.2f,面积=%.2f\n",circum,area);
}
请输入半径r:5
周长=31.40,面积=78.50

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。