实验结论
Part 1: 验证性实验
出现的问题:
scanf("%d",&x);中d和%位置搞错并将x前&遗漏
头文件输入拼写错误
return 0 后的";"被遗漏
原因:
初次学习对头文件还不熟悉
语法格式没有细节化
尚未完全弄清每条语句含义(为啥一定为&x?)
Part2 : 按要求写出符合要求的表达式,补全程序。 给出补全后完整的程序源码及运行结果截图。
Test 1:判断其是奇数还是偶数
完整的程序源码如下:
//程序功能://要求用户从键盘输入一个整数,判断其是奇数还是偶数
#include
intmain() {intx;
printf("输入一个整数: \n");
scanf("%d",&x);//在×××处填写相应表达式//使得当表达式成立时,判定x是奇数,否则是偶数
if(x%2==1)
printf("是奇数");elseprintf("是偶数");return 0;
}
运行结果如下:
Test 2 判断是否是工作日
完整程序如下
/*程序功能:
要求用户从键盘输入1~7之间的整数
如果输入的是1~5, 提示用户是工作日,要努力工作;
如果输入的是6或7,提示用户是休息日,放松休息;
否则,提示用户输入不在合法范围*/#include
intmain() {intdays;
printf("输入一个整数: \n");
scanf("%d",&days);//补足×××处的表达式,使得满足程序功能描述
if(days>=1&&days<=5) //days在1到5之间
printf("workdays, fighting\n");else if(days==6||days==7) //days是6或7
printf("weekend, relax~\n");elseprintf("Ooops, not in 1~7\n");return 0;
}
运行结果如下
Test 3 小写字母转换为大写字母
完整程序如下
//功能://从键盘上输入单个字符//如果是小写字母,则转换成大写后输出//否则,什么也不做,原样输出
#include
intmain() {charch;
printf("输入一个字符:\n");
scanf("%c",&ch);//根据程序功能描述,补足程序
if(ch>='a'&&ch<='z') //如果ch是小写字母,补足判定ch是小写字母的表达式
ch=ch-'a'+'A'; //补足把ch中的小字母转换成大写字母的表达式语句//说明:语句就是在表达式末尾加分号;
printf("%c\n",ch);return 0;
}
运行结果如下
Part 3 编程练习
编写程序,实现把一个十进制两位数整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示器上。
程序如下
#include
intmain()
{
printf("输入一个两位十进制数:\n");intx,a,b,c,d,e,f,g ;
scanf("%d",&x);
a=x%2; /*除二取余,a,b,c,d,e,f,g作为余数*/x=x/2;
b=x%2;
x=x/2;
c=x%2;
x=x/2;
d=x%2;
x=x/2;
e=x%2;
x=x/2;
f=x%2;
x=x/2;
g=x%2;
x=x/2;
printf("二进制为:%d%d%d%d%d%d%d\n",g,f,e,d,c,b,a); /*倒序输入*/
return 0;
}
运行结果如下
实验总结与体会
初次写c语言作业,比预期平顺一些(怕是忘了刚开学自己玩闹着写程序头挠秃了找不到原因的苦痛了),对于c语言初学者,这一切都是很新鲜令人好奇的(秃头算什么??!)。
补程序这一part感觉自己基本功好差啊啊啊!对优先级不清楚,导致了编写错误,自己试着换了几种算法,就运行结果看貌似都还行(?),但其实不太懂啥样的算法较优(小白本白)......
选做题真的.......我都秃了,想不出啥好一点的,优化一点的方法,(总感觉有个东西可以存储这些余数,但我并不知道),网上有查,没太能理解,可能需要两三天的时间再去研究一下.......(我太难了)。就这个奇奇怪怪的程序,写完我都笑了,幸好是两位,要是三位我手都酸了。也算是激发了学习的热情吧,就怕囫囵吞枣,适得其反。
总体来说,还是反应了自己基础的薄弱,代码格式也不是很清晰,要投入更多的精力去温习和预习。也收获了很多,之前闹着玩写的程序中if--else语句存在的问题现在有test2做参考,也许可以有所突破(?)(来自小白渣渣的自省......)
总之呢,现在对于c语言的新鲜劲儿还没过,还挺有兴趣去花上两三天去磕磕巴巴的尝试着模仿着写一些小程序,尽管过程有些坎坷(是我太菜),但至少,还是挺快乐的......