1.part 1
这部分主要为基础部分,主要是验证性内容,第一个就是把教材上的把hello,world改成自己的学号,如图,这只是改动了printf()中的内容,所以没有问题。
#include<stdio.h> int main(){ printf("201883300002"); return 0; }
第二个就是输入教材上给的代码,只要细心一点输入,不要用错中英文输入法就OK:
#include<stdio.h> int product(int,int); int main(void) { int x,y,s; scanf("%d %d",&x,&y); s=product(x,y); printf("The mul is:%d",s); return 0; } int product(int a,int b) { int mul; mul=a*b; return mul; }
至于第三个,是另一本书上的实验内容,是计算整数相除的一个程序,这个问题的关键是表达式求值的类型和运算符“*”与“/”的优先级,只要弄懂这两个问题,是不难求得值的:
#include<stdio.h> int main(){ int a=5,b=7,c=100,d,e,f; d=a/b*c; e=a*c/b; f=c/b*a; printf("d=%d,e=%d,f=%d\n",d,e,f); return 0; }
第四个则主要考察了自加自减运算规则,这也要求我们分清"i++","++i"的值的区别:
#include<stdio.h> int main(){ int a=5,b=8; printf("a++=%d\n",a++); printf("a=%d\n",a); printf("++b=%d\n",++b); printf("b=%d\n",b); return 0; }
第五个则是关系运算和逻辑运算,要求我们熟记各个逻辑运算符表达的意思以及它们的优先级,这样我们才能准确分析出结果:((“!”)的优先级是最高的)
#include<stdio.h> int main(){ int a=5,b=8,c=8; printf("%d,%d,%d,%d\n",a==b&&a==c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c); printf("%d,%d\n",a<=b||a>=c,a==b||b==c); printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b)); return 0; }
part 2:
这部分就要比part 1难很多了(个人认为),要求我们自己写出表达式来补全程序,可能是第一次实验的原因吧,这些程序在前几次输入时,都出现了错误,但是在经过不断的改进后,总算成功了。
首先是第一个判断奇偶性的程序:
#include<stdio.h> int main(){ int x; printf("输入一个整数:\n"); scanf("%d",&x); if(x%2==1) printf("是奇数"); else printf("是偶数"); return 0; }
这个程序主要的错误便是关系运算符“==”错误的用成了“=”,导致报错,然后需要注意的就是if语句后面不能加“;”,因为此语句并没有结束。
然后就是第二个信息判别的程序:
#include<stdio.h> int main(){ int days; printf("输入一个整数:\n"); scanf("%d",&days); if(days>=1&&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; }
这个程序主要的易错点就是逻辑运算符的使用,第一次我把“&&”打成了“||”,导致无论输入的数字是几,都显示"workdays, fighting“,然后看了半天才发现错误的地方,由于有了第一题的提示所以这次”==“并没有用错。
最后一个就是改变大小写了:
#include<stdio.h> int main(){ char ch; printf("输入一个字符:\n"); scanf("%c",&ch); if(ch>='a'&&ch<='z'){ ch=ch+('A'-'a'); printf("%c\n",ch); } else printf("%c\n",ch); return 0; }
在这个程序上我犯得错误是最多的,首先在if语句后面我没有加”{}“,导致程序一直报错:”’else' without a previous 'if'",然后等我找到这个错误之后,又把‘A’和‘a’的ASCΙΙ码大小给记错了,导致当输入‘a’时,输出“?”。
体会:
经过这一次实验之后,我觉得编程有时就像是下象棋,有时候一步错,步步错,而更加糟糕的是,编程有时候都不知道哪里错了,盯着屏幕老半天也难发现错误,所以我觉得编程其实也是对我们细心的一种考验吧。总而言之,在这次实验中我收获了很多,也进步了很多。