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

更新时间:2024-06-10 20:02:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

嘉应学院 计算机学院

实 验 报 告

课程名称 指导老师 班 级 程序设计基础 实验名称 实验时间 姓 名 实验地点 提交时间 座 号

一、实验目的和要求

(1)掌握C语言数据类型,了解字符型数据和整型数据的内在关系。 (2)掌握对各种数值型数据的正确输入方法。

(3)学会使用C的有关算术运算符,以及包含这些运算符的表达式,特别是自加(++)和自减(--)运算符的使用。

(4)学会编写和运行简单的应用程序。

(5)进一步熟悉C程序的编辑、编译、连接和运行的过程

二、实验环境和方法

实验方法:

(一)综合运用课本所学的知识,用不同的算法实现在不同的程序功能。

(二)结合指导老师的指导,解决程序中的问题,正确解决实际中存在的异常情况,逐步改善功能。

(三)根据实验内容,编译程序。

实验环境:Windows xp Visual C++6.0

三、实验内容及过程描述

实验步骤: ① 进入Visual C++ 6.0集成环境。 ② 输入自己编好的程序。 ③ 检查一遍已输入的程序是否有错(包括输入时输错的和编程中的错误),如发现有错,及时改正。 ④ 进行编译和连接。如果在编译和连接过程中发现错误,频幕上会出现“报错信息”,根据提示找到出错位置和原因,加以改正。再进行编译,如此反复直到不出错为止。 ⑤ 运行程序并分析运行结果是否合理。在运行是要注意当输入不同的数据时所得结果是否正确,应运行多次,分别检查在不同情况下结果是否正确。 实验内容:编译以下题目的程序并调试运行。

实验①

(一)在Visual C++6.0中输入教材第3章第4提给出的程序:

#include int main() {char c1,c2; c1=97; c2=98;

printf(“%c,%c\\n”,c1,c2); printf(“%d%d\\n”,c1,c2); return 0; }

(1)对程序进行编译,将该程序进行连接,运行该程序。 (2)如果将程序第4,5行改为

C1=197; C2=198;

再次进行编译并连接运行。 (3)将程序第三行改为

int c1,c2;

对程序进行编译、连接和运行。

实验②

(二)输入第3章第5题的程序。即:

用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1=`A`,c2=`a`。

#include int main() {int a,b; float x,y; char c1,c2;

scanf(\ scanf(\ scanf(\

printf(\ return 0; }

运行时分别按以下方式输入数据,观察输出结果,分析原因。 ① a=3,b=7,x=8.5,y=71.82,A,a↙ ② a=3 b=7 x=8.5 y=71.82 A a↙ ③ a=3 b=7 8.5 71.82 A a↙ ④ a=3 b=7 8.5 71.82Aa↙ ⑤ 3 7 8.5 71.82Aa↙ ⑥ a=3 b=7↙

8.5 71.82↙ A↙ a↙ ⑦ a=3 b=7↙

8.5 71.82↙ Aa↙ ⑧ a=3 b=7↙

8.5 71.82Aa↙ 实验③

输入以下程序:

#include int main() {int i,j,m,n; i=8; j=10; m=++i; n=j++;

printf(\return 0; } ① 编译和运行程序,注意i,j,m,n各变量的值。 ② 将第6,7行改为 m=i++; n=++j;

再编译和运行,分析结果。 ③ 程序改为

#include int main() {int i,j; i=8; j=10;

printf(\ }

再编译和运行,分析结果。 ④ 在③的基础上,将printf语句改为 Printf (“%d,%d\\n”,++i,++j); 再编译和运行。 ⑤ 再将printf语句改为

Printf(“%d,%d,%d,%d\\n”,I,j,i++,j++); 再编译和运行,分析结果。 ⑥程序改为: #include int main()

{int i,j,m=0,n=0; i=8; j=10;

m+=i++;n-=--j;

printf(\ return 0; }

再编译和运行,分析结果。

实验④

假如我国国民生产总值的年增长率为10%,计算10年后我国国民生产总值与现在相比增长多少百分比。编写程序。 计算公式为:p?(1?r)n

R为年增长率,n为年数,p为与现在相比的倍数。 #include

#include

int main() { float p,r,n; r=0.1; n=10; p=pow(1+r,n); printf(\ return 0;

}

①输入自己编好的程序,编译并运行,分析运行结果。

②在程序中增加printf函数语句,用来提示输入什么数据,说明输出的是什么数据。 #include #include int main() {

float p,r; int n; printf(\请输入增长率为:\ scanf(\ printf(\请输入年数:\ scanf(\

p=pow(1+r,n);

printf(\年后我国国民生产总值与现在相比增长了

p=%f\\n\ return 0; }

四、结果分析 实验①

(1)运行结果如图:

第1行是将c1,c2按%c的格式输出,97是字符a的ASCII代码,98是字符b的ASCII代码。

第2行是将c1,c2按%d的格式输出,所以输出两个十进制整数。 (2)运行结果如图:

由于Visual C++6.0字符型数据是作为signed char类型处理的,它存字符的有效范围为0~127,超过此范围的处理方法,不同的系统得到的结果不同,因而用“%c”格式输出时,结果是不可预料的。

用“%d”格式输出时,输出c1=-59,c2=—58.这是按补码形式输出的,内在字节中第一位为1时,作为负数。所以用char类型变量时,给它赋的值应该在0~127范围内。 (3)运行结果如图:

输出结果与(1)相同,因为赋的值在int类型的有效范围内。

实验②:

运行结果如图: ①

② ③ ④ ⑤ ⑥ ⑦ ⑧

分析:在输入8.5和71.82两个实数给x和y后,应紧接着输入字符A,中间不要有空格,由于A是字母而不是数字,系统在遇到字母A时就确定输入给y的数值已经结束。字符A就送到下一个scanf语句中的字符变量c1(如图④⑧是正确的)。如果在输入8.5和71.82两个实数后输入空格符,则71.82后面输入的空格符就被c1读入,c2读入了字符A。输出c1时就输出空格,输出c2的值为A(如图③⑥)。如果在输入8.5和71.82两个实数后按回车键,这时“回

车”被作为一个字符送到内存输入缓冲区,被c1读入,字符A被c2读取,所以在执行printf函数输出c1时,就输出一个换行,在下一行输出逗号和c2的值A。

实验③

运行结果如图 ① ②

③ ④

++i为使用i之前,先使i加1;i++为使用i之后,使i的值加1. --i为使用i之前,先使i减1;i--为使用i之后,使i的值减1.

实验④:

① 运行结果如图:

②将原程序进行修改后编译并运行,结果如图:

本文来源:https://www.bwwdw.com/article/r2a6.html

Top