实验2 数据类型、运算符和简单的输入输出
1, 实验目的
(1) 掌握C语言数据类型,了解字符型数据和整型数据的内在关系。
(2) 掌握对各种数值型数据的正确输入方法。
(3) 学会使用C语言的有关算数运算符,移机包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。
(4) 学会编写和运行简单的应用程序。
(5) 进一步熟悉C程序的编辑、编译、连接和运行的过程。
2, 实验内容和步骤
(1) 输入并运行教材第3章第4题给出的程序。
#include Int main() {char c1,c2; c1=97; c2=98; printf(“c1=%c,c2=%c\\n”,c1,c2); printf(“c1=%d,c2=%d\\n”,c1,c2); return 0; } ○1 运行以上程序,分析为什么会输出这些信息。 输出信息:c1=a,c2=b c1=97,c2=98 Press any key to continue 第6行是将c1,c2按%c的格式输出,97是字符a的ASCⅡ代码,98是字符b的ASCⅡ代码。 第7行是将c1,c2按5d的格式输出,所以输出两个十进制整数。 ○2 如果将程序第4,5行改为 c1=197; c2=198; 运行时会输出什么信息?为什么? 输出信息:c1=?,c2=? c1=-59,c2=-58 Press any key to continue 由于Visual C++6.0字符型数据是作为signed char类型处理,它存字符的有效范围为0~127,超出此范围的处理方法,不痛的系统得到的结果不痛,因而用“%d”格式输出,结果是不可预期的。 用“%d”格式输出时,输出c1=-59,c2=-58.这是按补码形式输出的,内存字节中第1位为1时,作为负数。59和197之和等于256,58与198之和也等于256. ○3如果将程序第3行改为 int c1,c2; 运行时会输出什么信息?为什么? 输出结果:c1=a,c2=b c1=97,c2=98 Press any key to continue 因为97和98在int类型的有效范围。 (2)输入第3章第5题得程序。即: 用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=’A’问键盘上如何输入? #include int main() {int a,b; float x,y; char c1,c2; scanf(\"a=%db=%d\ scanf(\"%f%e\ scanf(\"%c%c\ printf(\"a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\\n\ ,c2=’a’。 return 0; } 运行时分别按一下方式输入数据,观察输出结果,分析原因。 1, a=3,b=7,x=8.5,y=71.82,A,a↙ 2, a=3 b=7 x=8.5 y=71.82 A a↙ 3, a=3 b=7 8.5 71.82 A a↙ 4, a=3 b=7 8.5 71.82Aa↙ 5, 3 7 8.5 71.82Aa↙ 6, a=3 b=7↙ 8.5 71.82↙ A↙ a↙ 7, a=3 b=7↙ 8.5 71.82↙ Aa↙ 8, a=3 b=7↙ 8.6 71.82Aa↙ 通过此题,总结输入数据的规律和容易处所的地方。、、 1~8情况输入数据及输出数据: 1, a=3,b=7,x=8.5,y=71.82,A,a↙ a=3,b=-858993460,x=-10737.000000,y=-107374176.000000,c1=,,c2=b Press any key to continue 2, a=3 b=7 x=8.5 y=71.82 A a↙ a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=b,c2== Press any key to continue 3, a=3 b=7 8.5 71.82 A a↙ a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=b,c2== Press any key to continue 4, a=3 b=7 8.5 71.82Aa↙ a=3,b=-858993460,x=-107374176.000000,y=-107374176.000000,c1=b,c2== Press any key to continue 5, 3 7 8.5 71.82Aa↙ a=-858993460,b=-858993460,x=3.000000,y=7.000000,c1= ,c2=8 Press any key to continue 6, a=3 b=7↙ 8.5 71.82↙ A↙ a↙ 7, a=3 b=7↙ 8.5 71.82↙ Aa↙ 8, a=3 b=7↙ 8.5 71.82Aa↙ (2) 输入以下程序: #include int main() {int i,j,m,n; i=8; j=10; m=++i; n=j++; printf(\"%d,%d,%d,%d\\n\ return 0; } ○1编译和运行程序,注意i,j,m,n各变量的值。 9,11,9,10 Press any key to continue ○2将第6,7行改为: m=i++; n=++j; 再编译和运行,分析结果。 9,11,8,9 Press any key to continue ○3程序改为: #include int main() {int i,j; i=8; j=10; printf(\"%d,%d\\n\ } 再编译和运行,分析结果。 8,10 Press any key to continue ○4在○3的基础上,将printf语句改为 printf(\"%d,%d\\n\ 再编译和运行。 9,11 Press any key to continue ○5再将printf语句改为: printf(\"%d,%d,%d,%d\\n\ 再编译和运行,分析结果。 8,10,8,10 Press any key to continue ○6程序改为: #include int main() {int i,j,m=0,n=0; i=8; j=10; m+=i++;n-=--j; printf(\"i=%d,j=%d,m=%d,n=%d\\n\ } 再编译和运行,分析结果。 i=9,j=9,m=8,n=-9 Press any key to continue (3) 假如我国国民生产总值的年增长率9%,计算10后我国民生产总值与现在比增长的百分比。编写程序。 #include #include int main() { float p,r; int n; scanf(\"r=%f\ n=10; p=pow(1+r,n); printf(\"p=%f\\n\ return 0; } 因篇幅问题不能全部显示,请点此查看更多更全内容