实验一
Part 1:验证性内容
本部分属于对书本内容的验证,要求我们熟悉一下c语言的基本结构,难度不大。
几个程序虽然简单,却也有值得注意的地方:
1、必须在英文半角状态下进行编写;
2、语句结束后必须有“;”;
3、关系运算和逻辑运算中,要熟记各个逻辑运算符表达的意思以及它们的优先级,避免程序出现逻辑错误(后面填写part 2 ex2.c中第二个空时就曾因为没有弄清“||”和“==”的优先级而犯了错);
Part 2: 按要求写出符合要求的表达式,补全程序
1、判断奇偶:ex1.c
源代码:
#include <stdio.h> int main(){ int x; printf("输入一个整数:\n"); scanf("%d",&x); if(x%2==1) printf("是奇数"); else printf("是偶数"); return 0; }
运行结果:
2、根据不同的输入,显示不同提示信息:ex2.c
源代码:
#include <stdio.h> int main(){ int days; printf("输入一个整数:\n"); scanf("%d",&days); if(1<=days&&days<=5) printf("workdays,fighting\n"); else if(days==6||days==7) printf("weekend,relax~\n"); else printf("Ooops, not in 1~7\n"); return 0; }
运行结果:
3、根据用户输入字符,判断如果是小写字母,则转换成大写;否则保持原样: ex3.c
源代码:
#include <stdio.h> int main(){ char ch; printf("输入一个字符:\n"); scanf("%c",&ch); if(ch>='a'&&ch<='z') ch=ch-32; printf("%c\n",ch); return 0; }
运行结果:
Part 3:编程练习
编写程序,实现把一个十进制整数转换成二进制。十进制整数由键盘输入,转换后的二进制数据输出到显示
器上。
源代码:
#include <stdio.h>
int main(){
int a,b=1,c=0,d;
printf("输入一个整数:");
scanf("%d",&d);
while (d!=0){
a=d%2;
c=a*b+c;
b=b*10;
d=d/2;
}
printf("%d",c);
return 0;
}
运行结果:
然而,这样的程序其实是不完善的。实际上,由于int的位数有限,当输入值大于1023时(从1024起),就无法得出正确答案了。即使改为long,甚至long long,仍然有位数的限制。
使用数组的知识,我得出以下一个改进方案:
源代码:
#include<stdio.h>
int main(){
int b,i,c=0,a[30]={0};
printf("输入一个整数:");
scanf("%d",&b);
if(b == 0){
printf("0");
return 0;
} while(b!=0){
i=b%2;
a[c]=i;
c++;
b=b/2;
}
c--;
for(;c>=0;c--){
printf("%d",a[c]);
} return 0;
}
这里的数组长度可以根据用户的不同需求做出改变,相比之前的方案,区间更大。
运行结果:
实验总结与体会
在上机实验之前,自己虽然已经进行了一定的预习,但也仅仅是停留在“了解”的层面上,距离“理解”和“应用”其实还有很长的距离。因此真正在电脑上编写程序(特别是最后一个完全由自己编写的程序)时,仍然感觉到举步维艰。对很多语法结构还很陌生,需要更多的练习一遍遍巩固。
c语言是一件有力的工具,然而,要真正让它为我所用发挥力量,还有很长的路要走。
评论地址
https://www.cnblogs.com/Anna0708/p/10574553.html
https://www.cnblogs.com/Zhangxw999/p/10562888.html
https://www.cnblogs.com/1346si/p/10568270.html