实验1“C语言开发环境使用和数据类型、运算符、表达式”总结与体会

一、实验总结

本次实验共尝试编写9个程序,其中5个为自主编写与课本程序,3个参考其他优秀作品,1个尝试未果(错误结果将在下文呈现)。由于是第一次比较系统的编译,以往虽有所接触,但还是生疏,大部分没有一次编译成功,总有许多细微的错误,也是初学者经常犯的错误。下面将逐一进行简要自评。

①输入自己的学号

1 #include<stdio.h>
2 int main()
3 {
4     printf("201883300022");
5     return 0;
6 }

来自课本例题的简单改编,使我对其结构有大概的了解,也由于其结构简单,无法明显体现出初学者易错点,并无过多可讨论之处。

②两书相乘(例题照搬)

 1 #include<stdio.h>
 2 int product(int,int);
 3 int main(void)
 4 {
 5     int x,y,s;
 6     scanf("%d %d",&x,&y);
 7     s = product(x,y);
 8     printf("The mul is:%d", s);
 9     return 0;
10 }
11 int product(int a,int b)
12 {
13     int mul;
14     mul = a * b;
15     return mul;
16 }

较之前的①多了"scanf",可就算是依葫芦画瓢我也在第6行处"%d"与"%d"之间多打了一逗号,使得无论输入什么,结果都为0。我认为这可以作为一个典型,即说明在代码比较多的情况下,初学者会对括号、引号、逗号之类的符号应用不清或无意识的出错,这都要引起我们的重视。

③整数相除(课后练习)

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int a = 5,b = 7,c = 100,d,e,f;
 5     d = a/b*c;
 6     e = a*c/b;
 7     f = c/b*a;
 8     printf("d = %d,e = %d,f = %d\n",d,e,f);
 9     return 0;
10 } 

很显然,三式之计算结果与我们一贯的认知有差别,即对于计算机而言,两整数相除,商仍为整数,小数舍去。另外题中a、b、c、d、e、f均为int型,故结果自然也均为整数。

④自加、自减运算

 1 /*自加、自减运算*/
 2 #include<stdio.h>
 3 int main()
 4 {
 5     int a=5,b=8;
 6     printf("a++=%d\n",a++);
 7     printf("a=%d\n",a);
 8     printf("++b=%d\n",++b);
 9     printf("b=%d\n",b);
10     return 0;
11 } 

此题旨在明确自增/减运算符前置运算与后置运算时表达式与变量自身的变化情况,可以总结如下:变量本身均+/-1,前置运算表达式同样+/-1,后置运算表达式值不变

⑤关系运算和逻辑运算

1 #include<stdio.h>
2 int main()
3 {
4     int a=5,b=8,c=8;
5     printf("%d,%d,%d,%d\n",a==b&&a&&c,a!=b&&a!=c,a>=b&&a>=c,a<=b&&a<=c);
6     printf("%d,%d\n",a<=b||a>=c,a==b||b==c);
7     printf("%d,%d,%d,%d\n",!(a==b),!(a>=b),!(a>=c),!(a<=b));
8     return 0;
9  } 

使用关系运算符或逻辑运算符的表达式对False和True分别返回值0或1。其中,非"!"结合性不同于其他,为从右向左,需引起注意。而逻辑表达式中,只有在必须执行下一个逻辑运算符才能求出表达式的解时才继续执行(短路表达式)。

⑥判断奇偶(填第11行空)

 1   #include <stdio.h>
 2   int main()
 3 {
 4       int x;
 5
 6       printf("输入一个整数: \n");
 7       scanf("%d",&x);
 8
 9       // 在×××处填写相应表达式
10       // 使得当表达式成立时,判定x是奇数,否则是偶数
11       if(x%2==1)
12           printf("是奇数");
13       else
14           printf("是偶数");
15
16       return 0;
17   } 

用到了取余运算,而取余运算两端必须均为整型数据。易将"=="错写为"="使得结果出错。

⑦if...else if(填第9、11行空)

 1   #include <stdio.h>
 2   int main() {
 3       int days;
 4
 5       printf("输入一个整数: \n");
 6       scanf("%d",&days);
 7
 8       // 补足×××处的表达式,使得满足程序功能描述
 9       if((days>=1)&&(days<=5)) // days在1到5之间
10           printf("workdays, fighting\n");
11       else if((days==6)||(days==7)) // days是6或7
12           printf("weekend, relax~\n");
13       else
14           printf("Ooops,not in 1~7\n");
15
16       return 0;
17   } 

逻辑运算符应用,变向表示数的取值范围。同⑥注意区分"="与"=="。

⑧大小写字母转化(填第9、10行空)

 1 #include <stdio.h>
 2   int main() {
 3       char ch;
 4
 5       printf("输入一个字符:\n");
 6       scanf("%c",&ch);
 7
 8       // 根据程序功能描述,补足程序
 9       if((int)ch>=65&&(int)ch<=96)   // 如果ch是小写字母,补足判定ch是小写字母的表达式
10           ch=ch+32;   // 补足把ch中的小字母转换成大写字母的表达式语句
11                 // 说明:语句就是在表达式末尾加分号;
12
13       printf("%c\n",ch);
14
15       return 0;
16   }

C语言中字符按其所对应的ASCII码(十进制/十六进制)储存,可运用强制类型转换“(类型名)(表达式)”将字母用十进制表示,又字符A~Z十进制对应65~90,a~z对应十进制97~122,大小写相差32,综上可得。

⑨十进制整数转二进制(错误演示)

 1 #include<stdio.h>
 2 int main()
 3 {
 4     int x,y,z=0,k=1;
 5     printf("输入一个正整数\n");
 6     scanf("%d",&x);
 7     while(x>=0)
 8     {
 9         y=x%2;
10         x/=2;
11         z+=y*k;
12         k*=10;
13     }
14     printf("%d\n",z);
15     return 0;
16  } 

while内语句序列没问题,错在这是一个“死循环”,即此题被除数始终不会小于0,循环便一直进行。截至定稿,受能力所限暂时未编成可正常运行的程序,能力达到再解。

————————————————————————————————————————分 割 线————————————————————————————————————————————————

二、实验体会

由于刚接触编程,处于适应期,理论部分看懂了到实践还是生疏,经常会犯一些细节上的错误导致整个程序无法运行。要善于总结自己错误的类型,同时多看一些优秀的编程范例或许有助于在同样的时间内获得较高的效率。

作于2019年3月19日傍晚

李张瑞

原文地址:https://www.cnblogs.com/lizhangrui/p/10560359.html

时间: 2024-08-03 03:49:25

实验1“C语言开发环境使用和数据类型、运算符、表达式”总结与体会的相关文章

实验1 C语言开发环境使用和数据类型、运算符、表达式

PART 1 验证性内容 问题: 1.结尾没有加“:”时回车到下一行的时候再输入下一行的语言首字对齐方式会发生变化,可以对上一行进行检查. (这一点需要在不同软件里面试一下,在机房里的软件做出来是有这种变化的,但自己用Xcode就没有,而是直接会弹出语句错误提示,所以这一条可能不是全都适用) 2.把一些字符混淆,可能语法没有错误程序可以跑起来,但进行输出实验之后就会发现错误,所以每次写完之后多运行测试一下找找看有没有什么问题. (这个是我当时敲错的内容,调试结果未提示错误,运行出来就很奇怪) p

实验1 C 语言开发环境使用和数据类型、运算符、表达式

# include <stdio.h> int main() { int x; printf("x:\n"); scanf("%d",&x); if (x%2==0) printf("是偶数"); else printf("是奇数"); return 0; } # include <stdio.h> int main() { int days; printf("days:\n"

实验1 C语言开发环境使用和数据类型,运算符,表达式

part 1:验证性内容 1.输出学号. #include<stdio.h> int main(void){ printf("201883300077"); return 0; } 2.输入两个整数,求它们的乘积. #include<stdio.h> int product(int,int); int main(void) { int x,y,s; scanf("%d%d",&x,&y); s=product(x,y); pr

实验1 C语言环境使用和数据类型 运算符 表达式

Part1 经过练习我发现自己经长会漏掉分号,有时输入法不同,打出来的括号前后不同,还有转义字符的使用,大小写转化之间的表达.还有打字速度比较慢. Part2 #include<stdio.h> int main() { int x; printf("输入一个整数:\n"); scanf("%d",&x); if(x%2==1) printf("是奇数"); else printf("是偶数") ; ret

20155208 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

20155208 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 命令行下的程序开发 打开windows下的```cmd → 输入cd Code命令进入Code目录,进入"代码托管"文件夹 → 输入md 20155202建立以自己学号命名的文件夹 → 输入cd 20155202进入文件夹 → 输入md exp1建立"实验一"文件夹 → 输入cd exp1进入"实验一

2062326 齐力锋 实验一《Java开发环境的熟悉》实验报告

北京电子科技学院(BESTI) 实     验    报     告 课程:   程序设计与数据结构           班级:      1623           姓名:  齐力锋      学号: 20162326 成绩:             指导教师:   娄嘉鹏/王志强             实验日期: 2017年3月17日 实验密级:非密级         预习程度:   优良      实验时间: 2 Hours 仪器组次:          必修/选修:   必修    

PyCharm Golang开发环境搭建(最方便快捷的GO语言开发环境)

IntelliJ太牛了.为了配置Go语言开发环境,折腾了半天,下IDE(Sublime Text,IntelliJ Idea),然后装Go插件.装Go插件还要下载插件项目源码,编译等等,Sublime还要输入python脚本,粘进去通不过,头疼. 突然悟出一个道理,如果你觉得当前手上的事情变得非常痛苦的时候,不是事情本身的问题,是你没找到好的解决方法的问题,或者说,“不是事情太痛苦,是你太笨了”. 在不停的装插件,尝试过程中,突然发现,PyCharm跟Idea一样,也是支持Go插件的,立马悟到,

在Windows平台搭建C语言开发环境的多种方式

新接触C语言,如何进行C语言开发环境的搭建值得思考并整理 注:本文知识来源于  Windows 平台搭建C语言集成开发环境 - 极客学院 一.在Windows平台配置GNU环境 二.在Windows平台使用Sublime Test开发C语言程序 三.在Windows平台使用VisualStudio开发C语言程序 四.在Windows平台搭建EclipseCDT集成开发环境 五.在Windows平台搭建Clion集成开发环境 一.在Windows平台配置GNU环境 GNU http://www.g

Eclipse配置Go语言开发环境(GoEclipse)

Eclipse安装Go语言插件GoEclipse GoEclipse插件地址:http://goclipse.googlecode.com/svn/trunk/goclipse-update-site/ 接下来,配置插件 Eclipse配置Go语言开发环境(GoEclipse),布布扣,bubuko.com