一,实验总结
本此实验共9组练习,其中前5组为练习c程序结构与书写规范,3组为补全程序,最后一组为自主编写。
Part 1
前五组中没有出现什么问题,但在学习指导P116第一题中:
#include
int main(){
int a=5,b=7,c=100;
int f,e,d;
d = a/b*c;
e = a*c/b;
f = c/b*a;
printf("d=%d,e=%d,f=%d",d,e,f);
return 0;
最开始 f 的运算式写成了
f=c/d*a
,运算一直是错误的,由此分析得出,出现除数为0时,都会出现除法溢出异常,程序不能正常运行。此情况下运算结果如下图,可见程序未正常运行并进行报错。
将表达式修改回来之后,即可正常运行且结果无误。
Part 2
(1)判断奇偶: ex1.c
补全后如图
// 程序功能:
// 要求用户从键盘输入一个整数,判断其是奇数还是偶数
#include
int main() {
int x;
printf("输入一个整数: \n");
scanf("%d",&x);
// 在×××处填写相应表达式
// 使得当表达式成立时,判定x是奇数,否则是偶数
if(x%2==!0)
printf("是奇数");
else
printf("是偶数");
return 0;
}
运行结果为
(2)根据不同的输入,显示不同提示信息:ex2.c
补全后如图
/* 程序功能:
要求用户从键盘输入1~7之间的整数
如果输入的是1~5, 提示用户是工作日,要努力工作;
如果输入的是6或7,提示用户是休息日,放松休息;
否则,提示用户输入不在合法范围
*/
#include
int main() {
int days;
printf("输入一个整数: \n");
scanf("%d",&days);
// 补足×××处的表达式,使得满足程序功能描述
if(days<=5&&days>0) // days在1到5之间
printf("workdays, fighting\n");
else if(days==6||days==7) // days是6或7
printf("weekend, relax~\n");
else
printf("Ooops, not in 1~7\n");
return 0;
}
运行结果为
(3)根据用户输入字符,判断如果是小写字母,则转换成大写;否则保持原样: ex3.c
补全后如图
// 功能:
// 从键盘上输入单个字符
// 如果是小写字母,则转换成大写后输出
// 否则,什么也不做,原样输出
#include
int main() {
char ch;
printf("输入一个字符:\n");
scanf("%c",&ch);
// 根据程序功能描述,补足程序
if(ch>='a'&&ch<='z') // 如果ch是小写字母,补足判定ch是小写字母的表达式
ch-=32; // 补足把ch中的小字母转换成大写字母的表达式语句
// 说明:语句就是在表达式末尾加分号;
printf("%c\n",ch);
return 0;
}
运行结果为
Part 3
由十进制转换为二进制的数学计算方法可知,采用“除二取余,逆序排列”的方法。
在尝试编写代码的过程中,我主要遇到了两个问题:(1)如何进行逆序排列;(2)当数值过大时,程序无法成功将十进制数转化为二进制数。
首先尝试了
#include
int main()
{
int z=0,k=1,i,a,b;
printf("输入一个十进制整数:\n");
scanf("%d",&a);
b=a;
while(a>0)
{
i=a%2;
z=k*i+z;
k=k*10;
a=a/2;
}
printf("十进制整数%d的二进制为:%d",b,z);
return 0;
}
结果在1023及以前,运算结果都是正常的;到了1024之后,结果就不是二进制数了。
此后参考了博主“低俗小怪”使用了【do while】的代码(如下),但无法理解其中使用黄色标记的部分(链接/didiaoxiaoguai/p/6731310.html)
#include
int main()
{int a;
char s[20];
int i = 0, rem;
printf("Input number:");
scanf("%d", &a);
do
{
rem = a % 2;
a = a / 2;
s[i] = rem;
i++;
} while (a != 0);
printf("输出二进制:");
while (i > 0)
printf("%d", s[--i]);//
return 0;
}
二、实验总结与体会
1.本此实验中,主要使用了Dev C++软件,同时尝试使用了Visual Studio 和Visual Studio 。vs的功能更加健全,但Dev更便于在学习过程中进行操作。
2.无论是在编程过程或者测试过程中,都需要注意英文符号与中文符号的不同之处,不可混淆。
3.要继续加强关系运算符和逻辑运算符的学习与记忆,明确在哪里使用哪个运算符以及运算符间的优先级关系。
4. 注意进行测试,要多次不重复且跨度尽量大的进行测试,避免偶然性的出现。
标签:main,int,数据类型,days,运算符,实验,printf,include,输入
来源: /1623449-w/p/10562856.html
c语言实验数据类型体会 实验1-C语言开发环境使用和数据类型 运算符 表达式-实验总结与体会...