一、实验目的
- (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
- (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
- (3)通过运行简单的C程序,初步了解C源程序的特点。
二、实验内容
- (1)检查所用的计算机系统是否已安装了C编译系统并确定它所在的子目录。
- (2)进入所用的C编译集成环境.
- (3)熟悉集成环境的界面和有关菜单的使用方法。
2.1、输人并运行一个简单的正确的程序
- ①输人下面的程序
# include <stdio. h> int main() { printf ("This is a e program. \n"); return 0;
- ②仔细观察屏幕上的已输入的程序.检查有无错误。
- ③根据本书第3部分介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。如
果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。 - ④如果编译连接无错误,运行程序,观察分析运行结果。
2.2、输人并编辑一个有错误的C程序
- ①输入以下程序(敏材第1章中例1. 2,故意漏打或打错几个字符)。
#include <stdio.h> int main() { int a, b, sum a = 123; b = 456; sum = a+b print("sum is %d\n", sum); return 0; }
- ②进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错
误。最后请与教材上的程序对照。 - ③使程序运行,分析运行结果。
2.3、输入并运行一个需要在运行时输入数据的程序
- ①输人下面的程序:
#include <stdio.h> int main() { int max(int x, int y); int a, b, c; printf("input a & b:"); scanf("%d,%d", &a, &b); c = max(a, b); printf("max=%d\n", c); return 0; } int max(int x, int y) { int z; if (x > y) z = x; else z = y; return (z); }
- ②编译并运行,在运行时从键盘输人整数2和5,然后按“回车"键,观察运行结果。
- ③将程序中的第4行改为
int a; b; c;
再进行编译,观察其结果。
- ④将max函数中的第3,4两行合并写为一行,即
if (x > y)z = x; else z = y;
进行编译和运行,分析结果。
2.4、运行一个自己编写的程序
题目是教材第1章的第6题。即输人a,b,c 3个值,输出其中最大者。
①输人自己编写的源程序。
②检查程序有无错误(包括语法错误和逻辑错误),有则改之。
③编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。
④运行程序,输入数据,分析结果。
⑤自己修改程序(例如故意改成错的),分析其编译和运行情况。
⑥将调试好的程序保存在自己的用户目录中,文件名自定。
⑦将编辑窗口清空,再将该文件读人,检查编辑窗口中的内容是否刚才存盘的程序。
⑧关闭所用的VisualC++集成环境.用Windows中的“我的电脑”找到刚才使用的用户子目录,浏览其中文件,看有无刚才保存的后缀为.c和.exe的文件。
三、实验步骤
3.1、输人并运行一个简单的正确的程序
- ①输人下面的程序
# include <stdio. h> int main() { printf ("This is a e program. \n"); return 0;
- ②仔细观察屏幕上的已输入的程序.检查有无错误。
程序没有出现错误。
已启动重新生成… 1>------ 已启动全部重新生成: 项目: 1-C程序的运行环境和运行C程序的方法, 配置: Debug Win32 ------ 1>Main.c 1>1-C程序的运行环境和运行C程序的方法.vcxproj -> E:\Document\2-programmLanguageExper\C\1-课程-C语言及算法设计实验\C语言课程实验\Debug\1-C程序的运行环境和运行C程序的方法.exe ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
成功 1 个,失败 0 个,跳过 0 个
- ③根据本书第3部分介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。如
果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。 - ④如果编译连接无错误,运行程序,观察分析运行结果。
程序编译运结果如下
3.2、输人并编辑一个有错误的C程序
- ①输入以下程序(敏材第1章中例1. 2,故意漏打或打错几个字符)。
#include <stdio.h> int main() { int a, b, sum a = 123; b = 456; sum = a+b print("sum is %d\n", sum); return 0; }
编译出现如下错误信息
- ②进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错
误。最后请与教材上的程序对照。
修改之后的程序如下
#include <stdio.h> int main() { int a, b, sum; a = 123; b = 456; sum = a + b; printf("sum is %d\n", sum); return 0; }
- ③使程序运行,分析运行结果。
正确程序的运行结果如下
3.3、输入并运行一个需要在运行时输入数据的程序
- ①输人下面的程序:
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int max(int x, int y); int a, b, c; printf("input a & b:"); scanf("%d,%d", &a, &b); c = max(a, b); printf("max=%d\n", c); return 0; } int max(int x, int y) { int z; if (x > y) z = x; else z = y; return (z); }
- ②编译并运行,在运行时从键盘输人整数2和5,然后按“回车"键,观察运行结果。
编译与运行结果
编译结果如下
已启动重新生成… 1>------ 已启动全部重新生成: 项目: 1-C程序的运行环境和运行C程序的方法, 配置: Debug Win32 ------ 1>Main.c 1>Main2.c 1>Main3.c 1>正在生成代码... 1>1-C程序的运行环境和运行C程序的方法.vcxproj -> E:\Document\2-programmLanguageExper\C\1-课程-C语言及算法设计实验\C语言课程实验\Debug\1-C程序的运行环境和运行C程序的方法.exe ========== 全部重新生成: 成功 1 个,失败 0 个,跳过 0 个 ==========
- 成功 1 个,失败 0 个,跳过 0 个。
运行结果如下
- 程序运行的结果正确,可以求出2和5两个数的最大值。
- ③将程序中的第4行改为
int a; b; c;
再进行编译,观察其结果。
将程序中的第4行改为
int a; b; c;
之后编译运行结果,如下所示。
- 程序出现了:
error C2065: “c”: 未声明的标识符
int a; b; c;
:说明没有定义b和c变量,只是定义了a变量。- ④将max函数中的第3,4两行合并写为一行,即
if (x > y)z = x; else z = y;
- 进行编译和运行,分析结果。
将max函数中的第3,4两行合并写为一行编译运行结果如下所示
- 将max函数中的第3,4两行合并写为一行编译运行结果是对的。
3.4、运行一个自己编写的程序
题目是教材第1章的第6题。即输人a,b,c 3个值,输出其中最大者。
- ①输人自己编写的源程序。
编写的源程序如下所示
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int maxFn(int a, int b, int c); int main() { system("color 3E"); int a, b, c, max; printf("input a & b & c:"); scanf("%d%d%d", &a, &b, &c); max = maxFn(a, b, c); printf("max=%d\n", max); system("pause"); return 0; } int maxFn(int a, int b, int c) { int max; max = a; if (max < b) { max = b; } if(max < c) { max = c; } return max; }
- ②检查程序有无错误(包括语法错误和逻辑错误),有则改之。
- ③编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。
- ④运行程序,输入数据,分析结果。
编译运行程序如下所示
⑤自己修改程序(例如故意改成错的),分析其编译和运行情况。
⑥将调试好的程序保存在自己的用户目录中,文件名自定。
⑦将编辑窗口清空,再将该文件读人,检查编辑窗口中的内容是否刚才存盘的程序。
⑧关闭所用的VisualC++集成环境.用Windows中的“我的电脑”找到刚才使用的用户子目录,浏览其中文件,看有无刚才保存的后缀为.c和.exe的文件。
.c和.exe的文件如下所示
四、实验总结
通过C语言及算法设计课程实验:C程序的运行环境和运行C程序的方法
自己掌握了如下几点
- (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
- (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
- (3)通过运行简单的C程序,初步了解C源程序的特点。
五、实验完整代码
5.1、Main1.c源文件
Main1.c源文件代码如下
#include <stdio.h> #include <stdlib.h> int main() { system("color 3E"); printf("This is a e program. \n"); system("pause"); return 0; }
5.2、Main2.c源文件
Main2.c源文件代码如下
#include <stdio.h> int main() { int a, b, sum; a = 123; b = 456; sum = a + b; printf("sum is %d\n", sum); return 0; }
5.3、Main3.c源文件
Main3.c源文件代码如下
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int max(int x, int y); int a, b, c; printf("input a & b:"); scanf("%d,%d", &a, &b); c = max(a, b); printf("max=%d\n", c); return 0; } int max(int x, int y) { int z; /*if (x > y) z = x; else z = y;*/ if (x > y)z = x; else z = y; return (z); }
5.4、MaxDigit.c源文件
MaxDigit.c源文件代码如下
#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> int maxFn(int a, int b, int c); int main() { system("color 3E"); int a, b, c, max; printf("input a & b & c:"); scanf("%d%d%d", &a, &b, &c); max = maxFn(a, b, c); printf("max=%d\n", max); system("pause"); return 0; } int maxFn(int a, int b, int c) { int max; max = a; if (max < b) { max = b; } if(max < c) { max = c; } return max; }