C语言程序设计第二次作业——顺序结构
(一)改错题
1、错误信息:
错误原因:stido拼写错误找不到该文件
改正:改成正确的拼写stdio
2、错误信息:
错误原因:上一语句末没有用分号结束无法进行下面
改正:在上一语句末最后加上一个英文半角的分号
3、错误信息:
错误原因:在printf里面应该有一对双引号,可在这里面printf里面只有一个引号缺少了另一个
改正:在最后的printf括号里面最后面加一个英文半角的引号
4、错误信息:
错误原因:mian拼写错误找不到改文件
改成:改成正确的拼写main
经检查最后的正确结果:
1、错误信息:
错误原因:<>里面的stdio后面少了个.h
改正:在括号里面最后加一个.h
2、错误信息:
错误原因:前后两个printf括号最后里面加上前面相对应的%d相对应的字母
改错:第一个括号的第二部分改成y,x,x 第二个括号第二部分改成x,x,y
3、错误信息;
错误原因:x没有赋值,执行不了 ,没有运算结果
改错:在scanf语句的下一行加一个x=3;这条语句
4、错误信息:
错误原因:注释语句没有完整编译,缺少东西。
改正:把注释语句修改完整在后面加上*/
5、错误信息:
错误原因:虽然C++在编译规格上面没有了问题,但是在运行时发现有一个不是数还是字母,经检查冒号里面的内容发现第二个printf的d前面少了一个%。并且两个式子在题目中给的是两行,而运行时却是一行。
改正:在第二个printf都改成%d。并且在第一个printf引号里面最后加一个\n。
经检查最后得出正确结果:
(二)学习总结
1、应用已给的内容总结利用sizeof运算符编程求出int、long、float和double类型数据所占的字节大小
按照short的格式改编依次写出其他的字节输出
#include <stdio.h>
int main()
{
printf("short: %d字节\n",sizeof(short));
return 0;
}
int:
#include <stdio.h>
int main()
{
printf("int: %d字节\n",sizeof(int));
return 0;
}
long:
#include <stdio.h>
int main()
{
printf("long: %d字节\n",sizeof(long));
return 0;
}
float:
#include <stdio.h>
int main()
{
printf("float: %d字节\n",sizeof(float));
return 0;
}
double:
#include <stdio.h>
int main()
{
printf("double: %d字节\n",sizeof(double));
return 0;
}
以此改变printf里面括号里面的单词依次改变出来不同的相对应的字节数
2、运行了改程序
#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;
}
修改程序为i+1输出结果为最小值
#include <stdio.h>
#include <limits.h>
int main()
{
int i,j;
i = INT_MAX+1;
j = INT_MIN;
printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j);
return 0;
}
整数的值如果超过它的最大值,将发生溢出,即整数溢出。整数i就像一个汽车里程指示表,当达到最大值时,它将溢出到起始点(即最小值)。
修改程序为j-1输出结果为最大值
#include <stdio.h>
#include <limits.h>
int main()
{
int i,j;
i = INT_MAX;
j = INT_MIN-1;
printf("int类型最大值max = %d\nint类型最小值min = %d\n",i,j);
return 0;
}
同理和上面举的例子一样,j就像一个汽车里程的指示表,当达到最小值又将到起始点(即最大值)。
3、运行结果为
因为输入的一个是十进制第二个是八进制第三个是十六进制,输出的都是十进制所以输出的都是100
多次测验发现没有错误问题。
4、我想对本章其他内容的总结:C语言中,数据有常量和变量之分。要明白这两者的定义联系与区别。C语言中最常用的数据类型要明白都有哪些时刻牢记。给变量起名时尽量做到“见明知意”,使别人一看到变量名就知道它的含义。习惯用小写的事情等等。C语言中的大小写代表的是不同的在写程序时要加以注意。C语言中的运算符号和数学有很大的区别,比如=代表的时赋值==才是相等的意思等等,C语言和raptor的语言也不一样不要弄混。整数除整数还是整数如果想让结果有保留几位数可以强制换成double的形式或者其他的。printf后面的说明一定要一一对应。
(三)实验总结
1、题目
厘米换算英尺英寸
2、流程图
3、源代码
#include<stdio.h>
int main (void)
{
int cm,foot,inch;
double m;
scanf("%d",&cm);
m=cm/100.0;
foot=m/0.3048;
inch=(m/0.3048-foot)*12;
printf("%d %d",foot,inch);
return 0 ;
}
4、测试数据及运行结果
输入170合情合理下应该输出5 6
5、实验分析
问题:raptor在运行时无法运行
原因:忘记在输入input时加上引号
解决办法:加上引号
问题:框图中出来的除法最后是小数
原因:在编程中整数除整数直接只保留整数部分,而在框图中要向上取整
解决办法:在最后除法中加上了floor
1、题目
A乘以B
2、流程图
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、测试数据及运行结果
第一次输入错误,第二次输入四五得出正确结果,第三次输入8 -13得出正确结果等等多次验证发现框图代码完全正确。
5、实验分析
无问题
1、题目
整数四则运算
2、流程图
3、源代码
#include<stdio.h>
int main(void)
{
int A,B,sum,sub,pro,con;
scanf("%d %d",&A,&B);
sum=A+B;
sub=A-B;
pro=A*B;
con=A/B;
printf("%d + %d = %d\n",A,B,sum);
printf("%d - %d = %d\n",A,B,sub);
printf("%d * %d = %d\n",A,B,pro);
printf("%d / %d = %d\n",A,B,con);
return 0 ;
}
4、测试数据及运行结果
在框图中第一次输入3 2最后除法出来的是1.5没有考虑向上取整,改正好再次输入3 2除法最后出来的是1。第二次输入20 4结果完全正确,多次测验结果发现正确即可
5、实验分析
问题:编程老是出不来结果
原因:在scanf括号中忘记了&
解决办法:在scanf里面最后对应的字母前面加上&
1、题目
整数152的各位数字
2、流程图
3、源代码
#include<stdio.h>
int main (void)
{
int a,b,c,d;
a=152;
b=a%10;
c=a%100/10;
d=a/100;
printf("152 = %d + %d*10 + %d*100",b,c,d);
return 0 ;
}
4、测试数据及结果
5、实验分析
问题:在写框图时有小数
原因:忘记了求余等等向上取整
解决办法:在该式子前面加上floor
问题:在写框图最后输出时总是不对
原因:没有在合适的位置加上引号
解决办法:在合适的位置加上引号在最后正确输出
(四)PTA提交列表
顺序结构一
顺序结构二