(一)实验总结
(一)改错题 (一)
1.输出带框文字:在屏幕上输出以下3行信息。
*************
Welcome
*************
源代码
#include <stido.h>
int mian()
{
printf("*************\n");
printf(" Welcome\n")
printf("*************\n);
return 0;
}
对源程序进行编译,采用每次修改第一个错误并重新编译的方法,记录每个错误信息、分析错误原因并给出正确的语句。
错误信息一:
错误原因:头文件拼写错误
改正方法:将stido改为stdio
错误信息二:
错误原因: printf(" Welcome\n")后面没有加分号
改正方法:在末尾加上分号
错误信息三:
错误原因:缺少又双引号
改正方法:在\n后面加上”
错误信息四:
错误原因: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;
}
错误信息一:
错误原因:头文件拼写不完全
改正方法:将stdio改为stdio.h
错误信息二:
错误原因:第七行和第八行,一共有四个%d缺少对应的变量地址
改正方法: 补充出对应的变量地址
错误信息三:
错误原因:注释的格式错误
改正方法在 输出后面加上*/
错误信息四:
错误原因:第八行的第一个d没有加%
改正方法:在第一个d前面加%
错误信息五:
错误原因:没有加/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;
}
输出结果:
利用sizeof运算符编程求出long类型数据所占的字节大小
源代码
#include <stdio.h>
int main()
{
printf("long: %d字节\n",sizeof(long));
return 0;
}
输出结果:
利用sizeof运算符编程求出float类型数据所占的字节大小
源代码
#include <stdio.h>
int main()
{
printf("float: %d字节\n",sizeof(float));
return 0;
}
运行结果:
利用sizeof运算符编程求出double类型数据所占的字节大小
源代码
#include <stdio.h>
int main()
{
printf("double: %d字节\n",sizeof(double));
return 0;
}
运行结果:
2.在C语言中,在头文件limits.h中,有关于各种基本数据类型的最大以及最小值的宏定义。例如,int型的最大值为INT_MAX,最小值为INT_MIN。运行下列程序,看一下结果是什么?
运行结果:
修改程序,输出i+1,结果是什么?为什么?
运行结果:
原因:此时的I的值超过了最大值整数的值,将发生溢出,即整数溢出。
修改程序,输出j-1,结果是什么?为什么?
运行结果:
原因:此时的j的值低于最大值整数的值,将发生溢出,即整数溢出。
3.运行下面的程序,输入100 144 64,看看运行结果是什么?为什么?
运行结果:
原因:程序会将输入的第一个数识别为十进制数,第二个识别为八进制数,第三个识别为十六进制数。并将它们转换为十进制数。
4.对本章其他你认为需要进行总结的内容进行总结。
我感觉C语言比流程图更加好用,而流程图更加直观一些。使用C语言时要更加注重细节。C语言的函数都有自己的使用范围。使用这些函数应该注意是否会发生整数溢出的现象,这有可能会影响到用户体验,出现一些bug。而有些函数则十分有用,能迅速求出手算要算好长时间的式子。还要认清各种数学符号在C语言中的含义,例如%是求余 而整数/整除求出的依旧是整数。合理的使用%与/可以求出一个数字的各位数字。
(三)(试验总结)
(1)厘米换算英尺英寸
如果已知英制长度的英尺foot和英寸inch的值,那么对应的米是(foot+inch/12)×0.3048。现在,如果用户输入的是厘米数,那么对应英制长度的英尺和英寸是多少呢?别忘了1英尺等于12英寸。
(2)流程图
(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)测试数据及运行结果
(5)实验分析
问题一:不能输出正确答案
原因:计算公式错误
解决办法:重新计算如何正确算出英尺英寸
(2)A乘以B
看我没骗你吧 —— 这是一道你可以在10秒内完成的题:给定两个绝对值不超过100的整数A和B,输出A乘以B的值。
(2)流程图
(3)源代码
#include<stdio.h>
int main()
{
int a,b,c;
scanf("%d%d",&a,&b);
c = a * b;
printf("%d",c);
return 0;
}
(4)测试数据及运行结果
(5)实验分析
问题1:计算结果错误
原因: printf("%d",&c);不应该在C前面加&
解决办法:删去&
(3)整数四则运算
本题要求编写程序,计算2个正整数的和、差、积、商并输出。题目保证输入和输出全部在整型范围内。
(2)流程图
(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)测试数据及运行结果
(5)实验分析
问题1:语句全部出现在同一行
原因:在每句的结尾没有加换行符
解决办法:在右引号前加/n
(1) 整数152的各位数字
本题要求编写程序,输出整数152的个位数字、十位数字和百位数字的值。
(2)流程图
(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)测试数据及运行结果
(5)实验分析
无