首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

实验2 数据类型、运算符和简单的输入输出

2022-11-23 来源:画鸵萌宠网


实验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;

}

因篇幅问题不能全部显示,请点此查看更多更全内容