C语言程序设计第二次作业——顺序结构

C语言程序设计第二次作业——顺序结构

一:改错题
(1)输出指定信息:

将给定源代码输入编译器;
1242358-20171019104438396-919039088.png
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019104357521-2042594388.png
错误原因:拼写错误
改正:stido-stdio
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019104640037-496728981.png
错误原因:printf(" Welcome\n")后未加;
改正:printf(" Welcome\n");
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019104846552-1231194853.png
错误原因:第六行括号中引号不全
改正:\n后加"
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019105015693-1117182818.png
错误原因:拼写错误
改正:mian-main
完成;1242358-20171019105156084-1755406534.png
1242358-20171019105222849-2020231880.png

(2).计算某个数x的平方赋给y:

分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。
输入输出示例(假设x的值为3)
将给定源代码输入编译器:
1242358-20171019105435990-390878417.png
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019105515474-31598207.png
错误原因:尖括号内缺少.h
改正:+.h
执行编译命令,发现编译器报错,错误信息如下:
1242358-20171019105640662-1923394771.png
错误原因:注释符错误
改正:加/
执行编译命令,如下:
1242358-20171019105912490-218946933.png
但运行报错:
1242358-20171019105957599-1124215499.png
错误原因:第七八行输出语句中缺少输出变量说明。
改正:,后分别改为y,x,x x,x,y
执行编译命令,如下:
1242358-20171019110236365-211010161.png
运行报错:
1242358-20171019110318052-1479308631.png
错误原因:变量初始化错误
改正:把x初始为3,y初始为0
执行编译命令,如下:
1242358-20171019110813662-359880097.png
运行错误:
1242358-20171019110842709-1777345112.png
错误原因:第七行缺少\n,第八行缺少%
改正:printf("%d = %d * %d\n",y,x,x); //* 输出
printf("%d * %d = %d",x,x,y);
编译正确,运行:
1242358-20171019112742365-2126587907.png
完成:
1242358-20171019112837537-1555456016.png

(二)学习总结

1.获取不同的数据类型所占的字节数

(1).int类型数据所占的字节大小

源程序

#include <stdio.h>
int main()
{
    printf("int:  %d字节\n",sizeof(int));
    return 0;
}

运行结果:
1242358-20171020115802740-807817741.png
(2).long类型数据所占的字节大小

源程序

#include <stdio.h>
int main()
{
    printf("long:  %d字节\n",sizeof(long));
    return 0;
}

运行结果:
1242358-20171020120030349-1645602590.png
(3).float类型数据所占的字节大小

源程序

#include <stdio.h>
int main()
{
    printf("float:  %d字节\n",sizeof(float));
    return 0;
}

运行结果:
1242358-20171020120001099-1793632179.png
(4).double类型数据所占的字节大小

源程序

#include <stdio.h>
int main()
{
    printf("double:  %d字节\n",sizeof(double));
    return 0;
}

运行结果:
1242358-20171020120127162-589440076.png
2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义

(1).int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?

结果:
1242358-20171020120327193-1748491.png
(2).修改程序,输出i+1,结果是什么?为什么?

结果:
1242358-20171020120818427-1449329128.png
原因:因为int类型最大值为2147483647
(3).修改程序输出j-1,结果是什么?为什么?

结果:
1242358-20171020121050724-2067256951.png
原因:int类型最小值为-2147483648
3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?

#include <stdio.h>
int main()
{   
    int a,b,c;
    scanf("%d%o%x",&a,&b,&c);
    printf("%d %d %d\n",a,b,c);
    return 0;
}

结果:
1242358-20171020121359271-48065516.png
原因:三个数进制不同,输出都为十进制。
4.对本章其他你认为需要进行总结的内容进行总结。

总结:(1)分号代表语句结束,改加的地方不能忘,不能加的地方不能加。(2)更改错误后,要先编译再运行,不只是因为排除更改带来的错误,不编译运行很有可能系统默认运行未更改的程序。

(三)实验总结

1.求整数均值

(1)题目
本题要求编写程序,计算4个整数的和与平均值。题目保证输入与输出均在整型范围。
(2)流程图
1242358-20171020222836021-26595382.png
(3)源代码

#include <stdio.h>
int main(void)
{
    int a,b,c,d,Sum;
    double Average;
    scanf("%d %d %d %d",&a,&b,&c,&d);
    Sum=a+b+c+d;
    Average=(a+b+c+d)/4.0;
    printf("Sum = %d; Average = %.1f",Sum,Average);
    
    return 0;
} 

(4)测试数据及运行结果
运行结果:
1242358-20171020170450099-345804522.png
问题:平均值显示为2.0。
原因:平均值运算时应除以4.0,否则输出的Average是整数且保留了一位小数。
解决:将4改为4.0
2.是不是太胖了
(1)题目
据说一个人的标准体重应该是其身高(单位:厘米)减去100、再乘以0.9所得到的公斤数。已知市斤是公斤的两倍。现给定某人身高,请你计算其标准体重应该是多少?(顺便也悄悄给自己算一下吧……)
(2)流程图
1242358-20171020223047849-654942217.png
(3)源代码

#include <stdio.h>
int main()
{
    int H;
    scanf("%d",&H);
    float t,y;
    t=(H-100.0)*0.9;
    y=2*t;
    printf("%.1f",y);
    return 0;
}

(4)测试数据及运行结果
1242358-20171020223212240-1573388483.png
1242358-20171020223446881-537643138.png
问题:程序无法运行
原因:缺少取地址符
改正:加&
3.计算物体自由下落的距离
(1)题目
一个物体从100米的高空自由落下。编写程序,求它在前3秒内下落的垂直距离。设重力加速度为10米/秒2。

(2)流程图
1242358-20171020223904349-1107661794.png
(3)源代码

#include <stdio.h>
int main()
{
    int g,t,x;
    g=10;
    t=3;
    x=g*t*t;
    float height;
    height=1.00/2*x;
    printf("height = %.2f",height);
    return 0;
}

(4)测试数据及运行结果
运行结果:
1242358-20171020224035412-1241703251.png
问题:编译错误
原因:return 0后缺少;
改正:0后加;
4.逆序的三位数
(1)题目
程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。

(2)流程图
1242358-20171020225423584-64183409.png
(3)源代码

#include <stdio.h>
int main()
{
    int a,b,c,x,y;
    scanf("%d",&x);
    a=x/100;
    b=x/10%10;
    c=x%(a*100+b*10);
    y=c*100+b*10+a;
    printf("%d",y);
    return 0;
}

(4)测试数据及运行结果

运行结果1:
1242358-20171020225642224-800303390.png
运行结果2:
1242358-20171020225908334-1344187431.png
问题:y值输出错误
原因:c=x%(a100b+10);语句错误
改正:c=x%(a100+b10);
(四)PTA提交列表
1242358-20171020230736693-1272023713.png
1242358-20171020230813896-1957734578.png

转载于:https://www.cnblogs.com/hfaq/p/7702257.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值