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

news2024/12/26 11:50:28

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

  • 一、实验目的
  • 二、实验内容
    • 2.1、输人并运行一个简单的正确的程序
    • 2.2、输人并编辑一个有错误的C程序
    • 2.3、输入并运行一个需要在运行时输入数据的程序
    • 2.4、运行一个自己编写的程序
  • 三、实验步骤
    • 3.1、输人并运行一个简单的正确的程序
    • 3.2、输人并编辑一个有错误的C程序
    • 3.3、输入并运行一个需要在运行时输入数据的程序
    • 3.4、运行一个自己编写的程序
  • 四、实验总结
  • 五、实验完整代码
    • 5.1、Main1.c源文件
    • 5.2、Main2.c源文件
    • 5.3、Main3.c源文件
    • 5.4、MaxDigit.c源文件

在这里插入图片描述

一、实验目的

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/115591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效

OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学习(三) – 绘制平面图形 Android OpenGL ES 学习(四) – 正交投影 Android OpenGL ES 学习(五) – 渐变色 Android OpenGL ES 学习(六) – 使用…

基于MWORKS.Sysplorer的电子控制器应用案例——永磁同步电机FOC算法建模

1 前言 MWORKS是面向数字工程的新一代科学计算与系统建模仿真平台&#xff0c;可提供机械、电子、液压、控制、热、信息等多领域统一建模仿真环境。经过同元持续攻关&#xff0c;全新推出的MWORKS.Sysplorer嵌入式代码生成器&#xff0c;现已支持面向电子控制器的产品级的嵌入…

循环神经网络的简洁实现

参考8.6. 循环神经网络的简洁实现 — 动手学深度学习 2.0.0 documentation 本节将展示如何使用深度学习框架的高级API提供的函数更有效地实现相同的语言模型。 我们仍然从读取时光机器数据集开始。 pip install mxnet1.7.0.post1 pip install d2l0.15.0 from mxnet import n…

ubuntu18.04下用Fiddler抓取curl库网络数据包总结

本人在ubuntu18.04下进行开发&#xff0c;需要使用http和服务端进行通信&#xff0c;为了确认自己发送给服务端和服务端返回数据字段&#xff0c;所以需要进行抓包分析参数。本文就说明一下如何在ubuntu18.04使用fidder对自己编写的应用程序进行http协议数据包抓取。 目录 1.…

无线网络渗透测试清单

©网络研究院 无线渗透测试积极检查 WiFi 网络中的信息安全措施的过程&#xff0c;并分析弱点、技术流程和关键无线漏洞。 我们应该关注的最重要的对策是威胁评估、数据盗窃检测、安全控制审计、风险预防和检测、信息系统管理和升级基础设施&#xff0c;并且应该准备一份…

13-14-15-RabbitMq工作模式深度剖析与Spring整合MQ以及RabbitMq高级特性

RabbitMQ消息传递流程 连接( Connection) 在RabbitMQ中&#xff0c;生产者和消费者与RabbitMQ的通信就是基于TCP连接的。不过呢我们知道TCP连接的创建和销毁在高并发场景下对于操作系统来说都是特别昂贵的开销&#xff0c;所以RabbitMQ又引入了信道的概念 信道&#xff08;Chan…

云原生之使用Docker部署轻量级web服务器lighthttpd

云原生之使用Docker部署轻量级web服务器lighthttpd一、Lighthttpd介绍二、检查系统版本三、检查docker状态四、下载lighthttpd镜像五、部署lighthttpd1.创建数据目录2.创建lighthttpd容器3.查看容器状态六、访问lighthttpd服务七、编辑index.html1.编辑index.html文件2.重新访问…

Hadoop大数据存算分离方案:计算层无缝对接存储系统

Hadoop的诞生改变了企业对数据的存储、处理和分析的过程&#xff0c;加速了大数据的发展。随着大数据系统建设的深入&#xff0c;企业的数据基础设施易出现计算资源浪费、存储性能低、管理成本过高等挑战。相比存算一体架构&#xff0c;存算分离架构具有性能与成本最优、兼具灵…

3D地图app

3D三维地图APP 发布时间&#xff1a;2018-07-19 版权&#xff1a; 3D地图依据高程数据等对地表进行渲染&#xff0c;实现地表的起伏&#xff0c;模拟出真实的三维场景&#xff0c;让你有如身临其境般的感觉。 &#xff08;注&#xff1a;Bigemap 3D地图是一个三维地图浏览功能…

项目沟通怎么才能不像在吵架?

项目沟通并非吵架&#xff0c;看起来却总是剑拔弩张。有效沟通才能真正解决问题&#xff0c;笔者给出了一些实用的建议&#xff0c;从对象到场景&#xff0c;再到方法与技巧&#xff0c;应该在沟通中有针对性地注意这些问题。 沟通是个老话题&#xff0c;在项目管理中有专门讲沟…

draw.io使用教程

大部分的绘图应用都离不开三个基本的元素&#xff0c;图形&#xff0c;链接&#xff0c;文本。每个元素都有基本的操作和样式&#xff0c;元素与元素之间又可以进行组合&#xff0c;“三生万物”&#xff0c;生成各种各样的图表。 如果没有这款绘图的 可以点击获取 : drawio文…

企业项目管理的不同与好处

大型企业组织通常同时运行多个复杂项目。尽管这些项目看起来不一定相互关联&#xff0c;但它们都会影响同一个企业组织。企业项目管理(EPM)是指在公司范围内管理项目的实践。它通常涉及实施战略和流程&#xff0c;以大规模简化和提高项目管理的有效性。根据项目管理协会(PMI)的…

burpsuite靶场——XXE

文章目录什么是XML&#xff1f;什么是XML实体&#xff1f;什么是文档类型定义(DTD)&#xff1f;什么是XML自定义实体&#xff1f;什么是XML外部实体&#xff1f;使用外部实体利用 XXE 来检索文件利用 XXE 执行 SSRF 攻击盲XXE漏洞带外交互的盲 XXE过 XML 参数实体进行带外交互的…

【AJAX】AJAX的跨域问题

AJAX的跨域问题跨域的概述区别同源与不同源同源策略有什么用&#xff1f;AJAX跨域解决方案方案一、设置响应头方案二、jsonp方案三、代理机制&#xff08;httpclient&#xff09;跨域的概述 跨域是指从一个域名的网页去请求另一个域名的资源。比如从百度&#xff08;https://ba…

WPF控件模板、数据模板、容器样式选择器

WPF控件模板 利用Tag来绑定控件模板内容 <!--模板定义--> <Style x:Key"ButtonStyle1" TargetType"{x:Type Button}"><Setter Property"Template"><Setter.Value><ControlTemplate TargetType"{x:Type Button…

声音事件检测metric:PSDS

论文&#xff1b;A FRAMEWORK FOR THE ROBUST EVALUATION OF SOUND EVENT DETECTION Abstract 这项工作为多声道声音事件检测&#xff08;SED&#xff09;系统的性能评估定义了一个新的框架&#xff0c;它克服了传统的collar-based事件决定、事件F-cores和事件错误率的限制。…

【Kotlin 协程】Flow 流组合 ( Flow#zip 组合多个流 | 新组合流的元素收集间隔与被组合流元素发射间隔的联系 )

文章目录一、Flow 流组合1、Flow#zip 组合多个流2、新组合流的元素收集间隔与被组合流元素发射间隔的联系一、Flow 流组合 1、Flow#zip 组合多个流 调用 Flow#zip 函数 , 可以将两个 Flow 流合并为一个流 ; Flow#zip 函数原型 : /*** 将来自当前流( this )的值压缩到[其他]流&…

第二十六章 数论——欧拉函数(详解与证明)

第二十六章 数论——欧拉函数&#xff08;详解与证明&#xff09;欧拉函数1、互质2、欧拉函数的定义3、欧拉函数的公式4、欧拉函数的证明5、欧拉函数的使用&#xff08;1&#xff09;问题一&#xff1a;思路代码&#xff08;2&#xff09;问题二&#xff1a;思路case1case1case…

2022/12/17 MySQL索引失效的底层原理

1 复合索引-最左前缀原理 where子句中使用最频繁的一列放在最左边&#xff1b;我们在&#xff08;a,b,c&#xff09;字段上建了一个联合索引&#xff0c;所以这个索引是先按a 再按b 再按c进行排列的&#xff0c;所以&#xff1a;以下的查询方式都可以用到索引 select * from …

emacs下安装eaf

emacs下安装eaf插件 原因 eaf插件一开始还有点排斥&#xff0c;觉得emacs终端下操作多好多流畅。想要浏览器&#xff0c;终端和pdf再快速切换就可以了&#xff0c;毕竟我用i3wm/yabai窗口管理器。 但是想到当初也是vim用的多学得多&#xff0c;emacs就不愿意去接触学习&#…