实验4:数据类型、运算符和简单的输入输出一、实验目的(1)掌握c语言数据类型,了解字符型数据和整型数据的内在关系。(2)掌握对各种数值型数据的正确输入方法。(3)学会使用c的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。(4)学会编写和运行简单的运用程序。(5)进一步熟悉c程序的编辑、编译、连接和运行的过程。二、实验内容和步骤1、输入并运行教材第3章第4题给出的程序#includestdio.hintmain(){charc1,c2;c1=97;c2=98;printf(c1=%c,c2=%c\n,c1,c2);printf(c1=%d,c2=%d\n,c1,c2);return0;}结果显示:分析:char是数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。(1)运行以上程序,分析为什么会输出这些信息。输入的符号应该在英文状态下输入,还有就是第一个peintf括号里n”后少了一个”,“(2)如果将程序第4,5行改为c1=197,c2=198运行时会输出什么信息?为什么?/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){charc1,c2;c1=197;c2=198;printf(c1=%c,c2=%c\n,c1,c2);printf(c1=%d,c2=%d\n,c1,c2);return0;}结果显示:分析:char是数据与整型数据进行运算,就是把字符的ASCII代码与整型数据进行运算。(3)如果将程序第3行改为intc1,c2;运行时会输出什么信息?为什么?#includestdio.hintmain(){intc1,c2;c1=197;c2=198;printf(c1=%c,c2=%c\n,c1,c2);printf(c1=%d,c2=%d\n,c1,c2);return0;}结果显示:分析:因为Int是整型。2、输入第3章第5题的程序。即:用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’,c2=’a’。问在键盘上怎么输入?/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inta,b;floatx,y;charc1,c2;scanf(a=%db=%d,&a,&b);scanf(%f%e,&a,&y);scanf(%c%c,&c1,&c2);return0;}运行时分别按以下方式输入数据,观察输入结果,分析原因。输入格式1:结果能显示出来。输入格式2:输入格式3:结果能显示出来。输入格式4:结果能显示出来。输入格式5:结果能显示出来。输入格式6:结果出现错误,不能执行。输入格式7:结果能显示出来。结果不正确。结果能显示出来。结果能显示出来。输入格式8:输入格式9:通过此题,总结输入数据的规律和容易出错的地方。3、输入以下程序:/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inti,j,m,n;i=8;j=10;m=++i;n=j++;printf(%d,%d,%d,%d\n,i,j,m,n);return0;}(1)、编译和运行程序,注意i,j,m,n各变量的值。显示结果:结果分析:“++i”是先把i的值变为i+1,再把值赋给m,所以输出i=9,m=9而“j++是先使用j的值再执行j+1赋给n,所以j=11,n=10.(2)、将第6,7行改为m=i++;n=++j;再编译和运行,分析结果。/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inti,j,m,n;i=8;j=10;m=i++;n=++j;printf(%d,%d,%d,%d\n,i,j,m,n);return0;}显示结果:分析结果:”i++”是先把i的值赋给m,然后再执行i+1,所以输出的值i=9,m=8,而++j是先执行j+1,再赋给n,因此输出的j=11,n=11。(3)、程序改写/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inti,j;i=8;j=10;printf(%d,%d\n,i++,j++);return0;}再编译和运行,分析结果。显示结果:结果分析:由于”i++”是先将i的值赋给“i++”,然后再将i的值加1,“j++”也是同理的,所以输出的结果是8,10.(4)在(3)的基础上,将printf语句改为printf(%d,%d\n”,++i,++j);再编译和运行。/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inti,j;i=8;j=10;printf(%d,%d\n,++i,++j);}显示结果:结果分析:“++i”是先将i的值加1,然后再赋给++i,而“++j”也是一样的,所以输出的结果为9和11.(5)、再将printf(%d,%d,%d,%d\n”,i,j,i++,j++);再编译和运行,分析结果。#includestdio.hintmain(){inti,j;i=8;j=10;printf(%d,%d,%d,%d\n,i,j,i++,j++);return0;}显示结果:结果分析:由于”i++”是先将i的值赋给“i++”,然后再将i的值加1,“j++”也是同理的,所以输出的结果是8,10,8,10.(6)、程序改为:/*Note:YourchoiceisCIDE*/#includestdio.hintmain(){inti,j,m=0,n=0;i=8;j=10;m+=i++;n-=--j;printf(i=%d,j=%d,m=%d,n=%d\n,i,j,m,n);return0;}再编译和运行,分析结果。显示结果:结果分析:由于“i++”是先将i的值赋给“i++”,然后再将i的值加1,而“--j”是先将j减1,再把值赋给—j,所以输出结果为9,9,8,-9.4、假如我国国民生产总值的年增长率9%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序。计算公式为:nrp)1(,r为年增长率,n为年数,p为与现在相比的倍数。(1)、输入自己编好的程序,编译并运行,分析运行结果。(2)、年增长率不在程序中指定,改用scanf函数语句输入,分别输入7%,8%,10%。观察结果。(3)在程序中增加printf函数语句输入,用来提示输入什么数据,说明输入的是什么数据。(1)、程序编写如下:#includestdio.h#includemath.hintmain(){doubler,n,p;r=0.09;n=10;p=pow(1+r,n);printf(p=%f\n,p);return0;}