(一)改错题
错误信息1:
错误原因:stdio拼写错误。
改正方法:stido改成stido.
错误信息2:
错误原因:在对错误1改正后,进行编译发现第二个printf后没有加分号。
改正方法:在第二个printf后加分号。正确格式:printf(" welcome\n");
错误信息3:
错误原因:在对错误信息2进行改正后,进行编译发现第三个printf括号中只有前引号而没有后引号。
改正方法:在\n后加后引号。正确格式:printf("*************\n");
错误信息4:
错误原因:在对错误3进行改正后,进行编译发现main的拼写错误,错写成mian。
改正方法:把mian改成main。正确格式:int main( ).
进行四次改正后,编译无错误:
错误信息1:
错误原因:stdio后没有加 .h
改正方法:在stdio后加.h 正确格式:#include
(二)学习总结
(1) 用sizeof运算符编程求出int类型数据所占的字节大小:
#include <stdio.h>
int main()
{
printf("int: %d字节\n",sizeof(int));
return 0;
}
运行结果:
(2)用sizeof运算符编程求出long类型数据所占的字节大小:
#include <stdio.h>
int main()
{
printf("long: %d字节\n",sizeof(long));
return 0;
}
运行结果:
(3)用sizeof运算符编程求出float类型数据所占的字节大小:
#include <stdio.h>
int main()
{
printf("float: %d字节\n",sizeof(float));
return 0;
}
运行结果:
(4)用sizeof运算符编程求出double类型数据所占的字节大小:
#include <stdio.h>
int main()
{
printf("short: %d字节\n",sizeof(short));
return 0;
}
运行结果:
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;
}
运行结果:
修改程序,输出i+1,结果是什么?为什么?
运行结果:
此结果原因:若int整形变量超出最大值时会导致溢出从最小值开始计起
修改程序输出j-1,结果是什么?为什么?
运行结果:
此结果原因:若int整形变量超出最小值时会导致溢出从最大值开始计起。
3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?
#include
# include <stdio.h>
int main(void)
{
int cm,foot,inch;
double m,n;
scanf("%d",&cm);
m=cm/100.0;
n=m/0.3048;
foot=n;
inch=(n-foot)*12;
printf("%d %d",foot,inch);
return 0;
}
(4)测试数据及运行结果:((
(5)实验分析:
问题一:输出结果与给出的结果不符合。
原因 :米和厘米单位没有进行换算。
解决办法:m=cm/100.0。
2.A乘以B
(1)题目:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
(2)流程图:
(3)源代码:
# include <stdio.h>
int main(void)
{
int A,B,C;
scanf("%d %d",&A,&B);
C=A*B;
printf("%d\n",C);
return 0;
}
(4)测试数据及运行结果:
(5)实验分析
此题较简单,没有发现错误问题。
3.整数四则运算
(1)题目:计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
(2)流程图:
(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)测试数据及运行结果
(5)实验分析
此代码要注意格式问题,等号前后要空格不能忘记加分号&
4.逆序的三位数
(1)题目:程序每次读入一个正3位数,然后输出按位逆序的数字。注意:当输入的数字含有结尾的0时,输出不应带有前导的0。比如输入700,输出应该是7。
(2)流程图:
(3)源代码:
# include<stdio.h>
int main(void)
{
int a,b,c,d,e;
scanf("%d",&a);
b = a%10;
c = (a/10)%10;
d = a/100;
e =b*100+c*10+d;
printf("%d\n",e);
return 0;
}
(4)测试数据及运行结果
(5)实验分析
问题:不清楚怎样表达出一个三位数的个位十位百位。
解决办法:经过同学们的指导与自己的查询资料,知道了用floor(向下取整),这样便表达出了十位与百位。
(四)PTA提交列表