C语言程序设计第二次作业

(一)改错题
1.输出带框文字,源程序如图所示:
1242357-20171019142101302-1089500641.png
错误信息1:1242357-20171019142230084-897460257.png
错误原因:第1行stido拼写错误。
改正方法:将stido改为stdio。
错误信息2:1242357-20171019142619334-1153136403.png
错误原因:第6行括号里少写了一个后引号。
改正方法:在第6行的最后一个括号前加一个后引号。
错误信息3:1242357-20171020124424459-1472197808.png
错误原因:第5行最后没有分号。
改正方法:在第5行最后加上分号。
错误信息4:1242357-20171020124910662-729186546.png
错误原因:第2行main拼写错误。
改正方法:将mian改成main。
改正编译无错后,运行结果为:1242357-20171021124553599-1002916306.png
2.计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。
源程序如图所示:1242357-20171020140059568-318981570.png
错误信息1:1242357-20171021124637084-1426846354.png
错误原因:第1行stdio后丢了“.h”。
改正方法:在stdio后加上“.h”。
错误信息2:1242357-20171021124912084-442232955.png
错误原因:第7行%d没有对应的x或y,注释符号丢落。
改正方法:在x前加上“y,x,”,在输出后加上“ */”。
错误信息3:1242357-20171021125432521-1416567295.png
错误原因:第8行%d无对应的x或y,并且没有换行。
改正方法:在y前加“x,x,”,在后引号前加“\n”。
改正编译后,运行结果为1242357-20171021130235177-1337527633.png
(二)学习总结
1.不同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。
(1)int:

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

运行结果如图:1242357-20171021194136037-1264651930.png
(2)long:

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

运行结果如图:1242357-20171021194154224-1938310296.png
(3)float:

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

运行结果如图:1242357-20171021194213615-982267987.png
(4)double:

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

运行结果如图:1242357-20171021194232131-20953612.png
2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?

#include <stdio.h> 
#include <limits.h>
int main()
{   
    int i,j;
    i = INT_MAX;
    j = INT_MIN;
    printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j);
    return 0;
}

运行结果如图:1242357-20171021194751756-1944327504.png
修改程序,输出i+1,结果是什么?为什么?
运行结果如图:1242357-20171021195321287-631051027.png
修改程序输出j-1,结果是什么?为什么?
运行结果如图:1242357-20171021195620849-507955132.png
原因:整数的值如果超过它的最大值,将发生溢出,即整数溢出。整数i就像一个汽车里程指示表,当达到最大值时,它将溢出到起始点(即最小值)。理解整数的溢出,注意当整数溢出时,系统不会进行提示,编程时需自己处理这个问题。
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;
}

运行结果如图:1242357-20171021203253849-1875221195.png
原因:%x表示输出时,采用16进制形式,%o表示输出时,采用8进制形式,所以输入144和64会得到100和100。
4.总结:
(1)格式化输入函数scanf时要注意加地址符。
(2)注意整型数据和实型数据的输入输出。
(3)注意stdio和main的拼写,及注意\n与引号与分号不要丢落。
(三)实验总结
1.厘米换算英尺英寸
(1)题目
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
(2)流程图
1242357-20171021144344068-1983807270.png
(3)源代码

#include <stdio.h>
int main (void)
{
    int c,foot,inch;
    double m,f;
    scanf("%d",&c);
    m=c/100.0;
    f=m/0.3048;
    foot=f;
    inch=(f-foot)*12;
    printf("%d %d\n",foot,inch);
    
    return 0;
}

(4)测试数据及运行结果
1242357-20171021135851802-1967613214.png
(5)实验分析
问题1:foot与inch输出都为小数。
原因:foot与inch都用double声明。
解决办法:用int声明。
问题2:流程图输出结果与源代码的运行结果不同。
原因:没有用floor标明取整。
解决办法:标明floor取整。
2.A乘以B
(1)题目
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
(2)流程图
1242357-20171021150020006-1481867179.png
(3)源代码

#include <stdio.h>
int main (void)
{
    int A,B,C;
    scanf("%d %d",&A,&B);
    C=A*B;
    printf("%d",C);
    
    return 0; 
}

(4)测试数据及运行结果
1242357-20171021145641849-238120682.png
(5)实验分析
无问题
3.整数四则运算
(1)题目
本题要求编写整数四则运算程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
(2)流程图
1242357-20171021152605099-2016219194.png
(3)源代码

#include <stdio.h>
int main (void)
{
    int A,B,C,D,E,F;
    scanf("%d %d",&A,&B);
    C=A+B;
    D=A-B;
    E=A*B;
    F=A/B;
    printf("%d + %d = %d\n",A,B,C);
    printf("%d - %d = %d\n",A,B,D);
    printf("%d * %d = %d\n",A,B,E);
    printf("%d / %d = %d\n",A,B,F);
    
    return 0;
 } 

(4)测试数据及运行结果
1242357-20171021152635568-1091872125.png
(5)实验分析
问题:格式错误
原因:输出的内容没有分行
解决办法:在输出语句里加/n
4.整数152的各位数字
(1)题目
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
(2)流程图
1242357-20171021154157802-802570430.png
(3)源代码

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

(4)测试数据及运行结果
1242357-20171021153217959-705826803.png
(5)实验分析
问题:得数错误
原因:除号与求余符号弄混
解决办法:区分除号与求余符号
(四)PTA提交列表
PTA中完成顺序结构(1)和顺序结构(2)习题集的提交列表截图。
顺序结构(1)提交列表1242357-20171021131707068-826048052.png
顺序结构(2)提交列表1242357-20171021131844162-1767377306.png
1242357-20171021131904318-1091903205.png

转载于:https://www.cnblogs.com/hbnydxxdkjwy/p/7692334.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值