1.实验目的
(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2)掌握对各种数值型数据的正确输入方法。
(3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(十十)和自减(—一)运算符的使用。
(4)学会编写和运行简单的应用程序。
(5)进一步熟悉C程序的编辑、编译
2.实验内容和步骤
(1)输入并运行教材第3章第4题给出的程序;
①运行以上的程序,分析为什么会输出这些信息。
②如果将程序第4,5行改为
C1=197;
C2=198;
运行时会输出什么信息?为什么?
③如果将程序第3行改为
Int c1,c2;
运行时会输出什么信息?为什么?
(2)输入第3章第5题的程序。即:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’.问在键盘上如何输入?
运行时分别按下方式输入数据,观察输出结果,分析原因。
①
②
③
④
⑤
⑥
⑦
⑧
通过此题,总结输入数据的规律和容易出错的地方。
(3)输入以下程序:
①编译和运行程序,注意i,j,m,n各变量的值。
②将第6,7行改为
m=i++;
n=++j;
在编译和运行,分析结果。
③程序改为
再编译和运行,分析结果。
④在③的基础上,将printf语句改为
printf(“%d,%d\n”,++i,++j);
再编译和运行。
⑤再将printf语句改为
printf(“%d,%d,%d,%d\n”,i,j,i++,j++);
再编译和运行,分析结果。
⑥程序改为:
再编译和运行,分析结果。
- 假如我国国民生产总值的年增长率为9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序。
①输入自己编好的程序,编译并运行,分析运行结果。
②年增长率不在程序中指定,改用scanf函数语句输入,分别输入7%,8%,10%。观察结果。
③在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。
3.实验结果
运行结果为:如上面的所有所附带的图片可得
4.分析讨论
(1)①中运用了char这个字符型这个数据类型,将整数通过ASCII中的编码转化成特定的字符。而%c为我新学到的格式化字符,可以将输入的数字按照ASCII码相应的转化为对应的字符。这边其实不难发现,char所定义的变量内其实是存贮着整数,然后通过%c,才输出了相应的字符。
②中由于ASCII的数值范围为-128~127,就拿197举例,它的值已经超过了127,又因为197的原码为11000101,我们所要输出的用“%d”来说明了,变成了要强制用int类型来输出数据。又因为Int在内存中占用4个字节,而char只占用1个字节,故需要再其前面在补充3个字节,于是其内存补码便变为了11111111 11111111 11111111 11000101,然后又根据补码变为原码的规则(一.如果补码的符号位为“0”,表示是一个正数,所以补码就是该数的原码。二.如果补码的符号位为“1”,表示是一个负数,求原码的操作可以是:符号位为1,除符号外其余各位取反,然后再整个数加1)于是其原码便变为了10000000 00000000 00000000 00111011转化成十进制变为-59,所以导致了c1这个变量中存储了-59这个整数。而之所以通过“%c”输出了“牌”这个汉字,是因为汉字是双字节,运用了unsigned char 这个数值范围,用两个单字节的char所定义的变量所编码成了一个汉字。
通过这个实验案例,让我更深一步的了解了ASCII表以及char,%c的用法与技巧。
(2)中一开始我编写的程序没有问题,但在调用scanf的时候,我输入数据为3 7 8.5 71.82 Aa,打完之后发现a b 所对应的值不是理想中的值,还有c1所对应的值变成了“,”,后来经过询问发现是自己的基础知识不够牢固,应该把3 7 改为a=3 b=7 ,还有char是字符型的数据类型,空格还有回车都有所对应的数据。做完之后,我为我能发现自己的遗漏知识点而感到欣慰。文章来源:https://www.toymoban.com/news/detail-722864.html
(3)中其实主要来区别i++,++i的区别,++ i 是先加后赋值;i ++ 是先赋值后加;++i和i++都是分两步完成的。因为++i 是后面一步才赋值的,所以它能够当作一个变量进行级联赋值,++i = a =b,即 ++i 是一个左值;i++ 的后面一步是自增,不是左值。形象的理解可以是i++先做别的事,再自己加1,++i先自己加1,再做别的事情。理解完这个以后,这些代码的打出以及结果的理解就十分轻松了。文章来源地址https://www.toymoban.com/news/detail-722864.html
到了这里,关于C程序设计实验报告2——数据类型、运算符和简单的输入输出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!