C语言及算法设计课程实验一:C程序的运行环境和运行C程序的方法

简介: C语言及算法设计课程实验一:C程序的运行环境和运行C程序的方法

dff6a0433ef349068555a6959613882f.jpg

一、实验目的


  • (1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
  • (2)了解在该系统上如何编辑、编译、连接和运行一个C程序。
  • (3)通过运行简单的C程序,初步了解C源程序的特点。



33ef260a3af643cd9ede8dfb56e40eb4.jpg


二、实验内容


  • (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的文件。


三、实验步骤


d6e0afff06f14d0f87f3e9d16e9d91c8.jpg

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 个



601595f6b19d4884a08c5c3a7c24c039.png

  • ③根据本书第3部分介绍的方法对源程序进行编译,观察屏幕上显示的编译信息。如
    果出现“出错信息”,则应找出原因并改正之,再进行编译,如果无错,则进行连接。
  • ④如果编译连接无错误,运行程序,观察分析运行结果。

程序编译运结果如下


ec257327e45c4946b3821d2672499064.png



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;
}


编译出现如下错误信息



27be76b303804324b5044fae017019b5.png


  • ②进行编译,仔细分析编译信息窗口,可能显示有多个错误,逐个修改,直到不出现错
    误。最后请与教材上的程序对照。

修改之后的程序如下


#include <stdio.h>
int main()
{
  int a, b, sum;
  a = 123; b = 456;
  sum = a + b;
  printf("sum is %d\n", sum);
  return 0;
}
  • ③使程序运行,分析运行结果。

正确程序的运行结果如下


5ae22a3769584dbda130fad769b0d9bf.png


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 个。

运行结果如下


bb156935eb9e437294b2eabc328863d0.png


  • 程序运行的结果正确,可以求出2和5两个数的最大值。
  • ③将程序中的第4行改为
int a; b; c;


再进行编译,观察其结果。

将程序中的第4行改为int a; b; c;之后编译运行结果,如下所示。

7314c7431a3e4154ae487c589304374d.png



  • 程序出现了: error C2065: “c”: 未声明的标识符
  • int a; b; c;:说明没有定义b和c变量,只是定义了a变量。
  • ④将max函数中的第3,4两行合并写为一行,即
if (x > y)z = x; else z = y;


  • 进行编译和运行,分析结果。

将max函数中的第3,4两行合并写为一行编译运行结果如下所示

b06b9a6036594516b6b15c7b28857abb.png


  • 将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;
}


  • ②检查程序有无错误(包括语法错误和逻辑错误),有则改之。
  • ③编译和连接,仔细分析编译信息,如有错误应找出原因并改正之。
  • ④运行程序,输入数据,分析结果。

编译运行程序如下所示

0dc21536426a44e9af6cb6f5d886150c.png


⑤自己修改程序(例如故意改成错的),分析其编译和运行情况。

⑥将调试好的程序保存在自己的用户目录中,文件名自定。

⑦将编辑窗口清空,再将该文件读人,检查编辑窗口中的内容是否刚才存盘的程序。

⑧关闭所用的VisualC++集成环境.用Windows中的“我的电脑”找到刚才使用的用户子目录,浏览其中文件,看有无刚才保存的后缀为.c和.exe的文件。


.c和.exe的文件如下所示


43deb7b8b457416b80209fa030c16751.png

9a9ec7c985524ab5a9d0e6a5d9151063.png

四、实验总结



93122474c6194ae4b5ae52805cca9e2f.jpg


通过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;
}

e02dde29de004133838b5dfd850147ef.jpg


相关文章
|
2月前
|
存储 算法 程序员
C 语言递归算法:以简洁代码驾驭复杂逻辑
C语言递归算法简介:通过简洁的代码实现复杂的逻辑处理,递归函数自我调用解决分层问题,高效而优雅。适用于树形结构遍历、数学计算等领域。
|
3月前
|
机器学习/深度学习 算法 数据挖掘
C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出
本文探讨了C语言在机器学习中的应用及其重要性。C语言以其高效性、灵活性和可移植性,适合开发高性能的机器学习算法,尤其在底层算法实现、嵌入式系统和高性能计算中表现突出。文章还介绍了C语言在知名机器学习库中的作用,以及与Python等语言结合使用的案例,展望了其未来发展的挑战与机遇。
77 1
|
3月前
|
存储 缓存 算法
C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力
本文探讨了C语言在实现高效算法方面的特点与优势,包括高效性、灵活性、可移植性和底层访问能力。文章还分析了数据结构的选择与优化、算法设计的优化策略、内存管理和代码优化技巧,并通过实际案例展示了C语言在排序和图遍历算法中的高效实现。
74 2
|
3月前
|
算法 数据处理 C语言
C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合
本文深入解析了C语言中的位运算技巧,涵盖基本概念、应用场景、实用技巧及示例代码,并讨论了位运算的性能优势及其与其他数据结构和算法的结合,旨在帮助读者掌握这一高效的数据处理方法。
91 1
|
3月前
|
并行计算 算法 测试技术
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面
C语言因高效灵活被广泛应用于软件开发。本文探讨了优化C语言程序性能的策略,涵盖算法优化、代码结构优化、内存管理优化、编译器优化、数据结构优化、并行计算优化及性能测试与分析七个方面,旨在通过综合策略提升程序性能,满足实际需求。
99 1
|
3月前
|
C语言
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性
C语言编程中,错误处理至关重要,能提升程序的健壮性和可靠性。本文探讨了C语言中的错误类型(如语法错误、运行时错误)、基本处理方法(如返回值、全局变量、自定义异常处理)、常见策略(如检查返回值、设置标志位、记录错误信息)及错误处理函数(如perror、strerror)。强调了不忽略错误、保持处理一致性及避免过度处理的重要性,并通过文件操作和网络编程实例展示了错误处理的应用。
101 4
|
3月前
|
存储 缓存 算法
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式
在C语言中,数据结构是构建高效程序的基石。本文探讨了数组、链表、栈、队列、树和图等常见数据结构的特点、应用及实现方式,强调了合理选择数据结构的重要性,并通过案例分析展示了其在实际项目中的应用,旨在帮助读者提升编程能力。
99 5
|
3月前
|
网络协议 物联网 数据处理
C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势
本文探讨了C语言在网络通信程序实现中的应用,介绍了网络通信的基本概念、C语言的特点及其在网络通信中的优势。文章详细讲解了使用C语言实现网络通信程序的基本步骤,包括TCP和UDP通信程序的实现,并讨论了关键技术、优化方法及未来发展趋势,旨在帮助读者掌握C语言在网络通信中的应用技巧。
81 2
|
1月前
|
存储 编译器 C语言
【C语言程序设计——函数】分数数列求和2(头歌实践教学平台习题)【合集】
函数首部:按照 C 语言语法,函数的定义首部表明这是一个自定义函数,函数名为fun,它接收一个整型参数n,用于指定要求阶乘的那个数,并且函数的返回值类型为float(在实际中如果阶乘结果数值较大,用float可能会有精度损失,也可以考虑使用double等更合适的数据类型,这里以float为例)。例如:// 函数体代码将放在这里函数体内部变量定义:在函数体中,首先需要定义一些变量来辅助完成阶乘的计算。比如需要定义一个变量(通常为float或double类型,这里假设用float。
36 3
|
1月前
|
存储 算法 安全
【C语言程序设计——函数】分数数列求和1(头歌实践教学平台习题)【合集】
if 语句是最基础的形式,当条件为真时执行其内部的语句块;switch 语句则适用于针对一个表达式的多个固定值进行判断,根据表达式的值与各个 case 后的常量值匹配情况,执行相应 case 分支下的语句,直到遇到 break 语句跳出 switch 结构,若没有匹配值则执行 default 分支(可选)。例如,在判断一个数是否大于 10 的场景中,条件表达式为 “num> 10”,这里的 “num” 是程序中的变量,通过比较其值与 10 的大小关系来确定条件的真假。常量的值必须是唯一的,且在同一个。
20 2

热门文章

最新文章