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

(一)实验总结

(一)改错题 (一)

1.输出带框文字:在屏幕上输出以下3行信息。

*************
  Welcome
*************

源代码

#include <stido.h> 
int mian()
{   
printf("*************\n");
printf("  Welcome\n")
printf("*************\n);

return 0;
}

对源程序进行编译,采用每次修改第一个错误并重新编译的方法,记录每个错误信息、分析错误原因并给出正确的语句。
错误信息一:
1242338-20171019202059068-1425623260.png
错误原因:头文件拼写错误
改正方法:将stido改为stdio
错误信息二:
1242338-20171019202300881-1727414941.png
错误原因: printf(" Welcome\n")后面没有加分号
改正方法:在末尾加上分号
错误信息三:
1242338-20171019202621474-689066144.png
错误原因:缺少又双引号
改正方法:在\n后面加上”
错误信息四:
1242338-20171019202714224-1340639056.png
错误原因:main拼写错误
改正方法:将mian改为main

改错题 (二)

2.计算某个数x的平方赋给y:分别以“y = xx” 和 “xx = y” 的形式输出x和y的值。注意不要删除源程序中的任何注释。
输入输出示例(假设x的值为3)

9 = 3 * 3
3 * 3 = 9

源程序

#include <stdio>
int main()
{
int x,y;

y=x*x;
printf("%d = %d * %d", x);  /* 输出
printf("d * %d = %d", y); 

return 0; 
}

错误信息一:
1242338-20171019203126865-83140577.png
错误原因:头文件拼写不完全
改正方法:将stdio改为stdio.h
错误信息二:
1242338-20171019203443818-1103279707.png
错误原因:第七行和第八行,一共有四个%d缺少对应的变量地址
改正方法: 补充出对应的变量地址
错误信息三:
1242338-20171019204200177-1724940219.png
错误原因:注释的格式错误
改正方法在 输出后面加上*/
错误信息四:
1242338-20171019204729256-1030331394.png
错误原因:第八行的第一个d没有加%
改正方法:在第一个d前面加%
错误信息五:
1242338-20171019205028193-2123183654.png
错误原因:没有加/n而且没有给x赋值
改正方法:在第一个printf的括号里面加上/n 并且第五行加上x = 3

1.(二)学习总结

1.不 同的数据类型,在计算机中所占内存大小是不一样的,C语言提供了sizeof运算符,可以获取数据字节数。其基本语法如下:
sizeof(数据类型名称)

sizeof(变量名)
利用sizeof运算符编程求出int类型数据所占的字节大小
源代码

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

输出结果:1242338-20171019205940662-474901196.png
利用sizeof运算符编程求出long类型数据所占的字节大小
源代码

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

输出结果:1242338-20171019210433756-1201625876.png

利用sizeof运算符编程求出float类型数据所占的字节大小
源代码

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

运行结果:1242338-20171019210617412-372397886.png

利用sizeof运算符编程求出double类型数据所占的字节大小
源代码

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

运行结果:1242338-20171019210732412-1623456819.png

2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?
运行结果:1242338-20171019210920365-1802866516.png
修改程序,输出i+1,结果是什么?为什么?
运行结果:1242338-20171019211019318-1946306067.png
原因:此时的I的值超过了最大值整数的值,将发生溢出,即整数溢出。
修改程序,输出j-1,结果是什么?为什么?
运行结果:1242338-20171019211157693-736253337.png
原因:此时的j的值低于最大值整数的值,将发生溢出,即整数溢出。

3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?
运行结果:1242338-20171019212738052-182148826.png
原因:程序会将输入的第一个数识别为十进制数,第二个识别为八进制数,第三个识别为十六进制数。并将它们转换为十进制数。
4.对本章其他你认为需要进行总结的内容进行总结。
我感觉C语言比流程图更加好用,而流程图更加直观一些。使用C语言时要更加注重细节。C语言的函数都有自己的使用范围。使用这些函数应该注意是否会发生整数溢出的现象,这有可能会影响到用户体验,出现一些bug。而有些函数则十分有用,能迅速求出手算要算好长时间的式子。还要认清各种数学符号在C语言中的含义,例如%是求余 而整数/整除求出的依旧是整数。合理的使用%与/可以求出一个数字的各位数字。

(三)(试验总结)

(1)厘米换算英尺英寸
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
(2)流程图
1242338-20171019215343537-338397250.png
(3)源代码

#include<stdio.h>
int main()
{
int cm,foot,inch;
scanf("%d",&cm);
foot = cm / 30.48;
inch = (cm / 30.48 - foot)*12;
printf("%d %d",foot,inch);
return 0;


}

(4)测试数据及运行结果
1242338-20171019215624302-1163912809.png

(5)实验分析
问题一:不能输出正确答案
原因:计算公式错误
解决办法:重新计算如何正确算出英尺英寸
(2)A乘以B
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
(2)流程图
1242338-20171019220403927-975374821.png
(3)源代码

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

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

1242338-20171019220629927-930924063.png

(5)实验分析
问题1:计算结果错误
原因: printf("%d",&c);不应该在C前面加&
解决办法:删去&

(3)整数四则运算
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
(2)流程图
1242338-20171019222114974-830340896.png
(2)源代码

#include<stdio.h>
int main()
{

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)测试数据及运行结果
1242338-20171019222300256-419075251.png

(5)实验分析
问题1:语句全部出现在同一行
原因:在每句的结尾没有加换行符
解决办法:在右引号前加/n

(1) 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
(2)流程图
1242338-20171019231711709-132662632.png

(3)源代码

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

(4)测试数据及运行结果
1242338-20171019232250052-408760152.png
(5)实验分析

(四)(PTA提交列表)

1242338-20171019224506646-1411225124.png
1242338-20171019224548724-1924107313.png
1242338-20171019224610537-17006262.png

转载于:https://www.cnblogs.com/moying456/p/7695307.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值