没有合适的资源?快使用搜索试试~ 我知道了~
第1章C语言程序设计概述1
需积分: 0 1 下载量 63 浏览量
2022-08-03
12:47:53
上传
评论
收藏 485KB PDF 举报
温馨提示
试读
15页
第1章 C语言程序设计概述计算机的工作过程就是执行各种程序的过程,而程序是用计算机程序设计语言编写的。C语言作为一种长盛不衰的高级程序设计语言,被广泛应用于操作
资源详情
资源评论
资源推荐
1
第1章 C语言程序设计概述
计算机的工作过程就是执行各种程序的过程,而程序是用计算机程序设计语言编写的。
C语言作为一种长盛不衰的高级程序设计语言,被广泛应用于操作系统和应用软件的开发。
本章主要介绍计算机程序设计语言的相关概念、C语言程序的基本结构、C程序的运行过程、
程序设计算法及其描述方法、程序设计风格等内容。
1.1 计算机程序设计语言概述
计算机系统由硬件系统和软件系统两大部分组成。硬件系统是指构成计算机的各种机械
部件和电子元件组成的设备和装置,是组成计算机系统的物质基础。软件系统是控制、管理
计算机各硬件设备如何工作的所有程序文件和数据文件的总称,是计算机系统的头脑和灵魂。
没有软件的计算机是一台“裸机”,什么也不能干,计算机的工作过程就是执行各种程序的
过程。程序是指为完成特定功能而编写的指令的集合,这组指令依据既定的逻辑控制计算机
的运行。所有程序都是用计算机语言编写的。
随着计算机技术的迅速发展,计算机程序设计语言经历了机器语言、汇编语言到高级
语言的发展历程。程序设计方法也伴随着计算机硬件技术的提高而不断发展,可分为三个阶
段,即面向计算机的程序设计、面向过程的程序设计和面向对象的程序设计。
高级语言使用一种接近人的自然语言和数学公式的形式编写程序。使用高级语言编写
的程序与计算机的硬件结构及指令系统无关,具有更强的表达能力,可方便地表示数据的运
算和程序的控制结构,能更好的描述各种算法,而且易于学习掌握。近几十年来,为解决不
同的实际问题出现了几百种高级语言,目前较流行的有 Java、C、C++、C#、Pascal、Python、
Prolog、Basic、FoxPro、Perl、Ruby 等。
C 语言是 1972 年由美国的 Dennis Ritchie 设计发明的,它由早期的编程语言 BCPL(Basic
Combined Programming Language)发展演变而来。早期的 C 语言主要用于 UNIX 系统。由于
C 语言的强大功能和各方面的优点逐渐为人们所认识,到了 20 世纪八十年代,C 开始进入
其它操作系统,并很快在各类大、中、小和微型计算机上得到了广泛的使用,成为当代最优
秀的程序设计语言之一。
C 语言是一种面向过程的结构化程序设计语言,它层次清晰,便于按模块化方式组织程
序,易于调试和维护。C 语言的表现能力和处理能力极强,它不仅具有丰富的运算符和数据
类型,便于实现各类复杂的数据结构,它还可以直接访问内存的物理地址,进行位(bit)一
级的操作,因此 C 语言集高级语言和低级语言的功能于一体,既可用于系统软件的开发,也
适合于应用软件的开发。此外,C 语言还具有语言简练、源程序短、效率高、可移植性强等
特点。
随着微型计算机的日益普及,出现了许多 C 语言版本。由于没有统一的标准,使得这
些 C 语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准局( ANSI)为 C
语言制定了一套 ANSI 标准,成为现行的 C 语言标准。
面向过程的程序设计必须按照算法的实现过程逐条编写程序,通知计算机一步一步怎么
做。20 世纪 80 年代后,面向对象的程序设计概念日益普及。所谓面向对象,是通过类和对
象把程序涉及的数据结构和对它施行的操作有机地组织成模块,对数据及数据处理细节进行
最大限度的封装,从而使开发出来的软件易于重用、修改、测试、维护和扩充,C++就是在 C
语言的基础上增加了面向对象的思想发展而来的。为了满足网页开发的需要,1994 年又出现
了 Java 语言,Java 语言脱胎于 C++,不仅支持面向对象的程序设计思想,且具有软硬件平
台无关的特点,适合于进行网络开发。2000 年,Microsoft 公司推出的 Microsoft Visual
2
Studio.NET 是一个具有公共语言子集的开发平台,实现了多种语言及其类库的无缝集成,C#
是专为这一平台推出的全新语言。C#也派生于 C 和 C++,具有语法简洁、面向对象、与 Web
紧密结合、卓越的安全性能、灵活性和兼容性俱佳等特点,成为.NET 平台一流的网络编程工
具。
从面向过程的 C 到面向对象的 C++,再到 Windows 平台上可视化的 C++开发工具 Visual
C++,直到网络平台上面向对象的 Java 和 C#,各种适应新的编程环境的程序设计语言也在层
出不穷,但很多语言都是基于 C 语言发展而来的,而且开发系统程序(如操作系统和嵌入式
系统)和低层应用程序(如接口程序、通信和自动控制等)仍然是非 C 莫属。C 语言在程序
设计语言中可谓常青树,在近年来的世界程序设计语言排名中一直稳定或稍有上升,对于理
工科学生来说,是一种最佳的编程入门学习语言。
1.2 C 语言程序结构特点及其运行
本节我们来初步了解 C 语言程序的结构特点,并通过 Visual C++6.0 集成开发环境学习
C 程序的运行方法。
1.2.1 C 语言程序的结构特点
下面通过几个简单的 C 语言程序,学习 C 语言程序的结构特点。
【例1.1】 在显示器上分行显示“Welcome you.”和“First C program.”。
程序如下:
#include<stdio.h>
void main() /* 函数名 */
{ /* 函数体放在一对花括号中 */
printf("Welcome you.\nFirst C program.\n");/* 输出内容 */
}
运行结果为:
本例是一个最简单的 C 语言程序。
第 1 行是编译预处理命令 include。当程序中要使用 C 系统提供的标准函数或其他文件
时,一定要用 include 命令包含函数对应的文件,以在编译前将对应文件嵌入到该处成为源
程序的一部分。每一个程序都必须要有输出语句,因此必须包含标准输入输出头文件 stdio.h。
第 2 行是函数名 main()。一个 C 源程序由若干个函数组成,至少有一个用 main()命名的
主函数,程序从主函数开始运行,也结束于主函数。函数都要有类型说明,放在函数名前,
void 表示空类型,没有返回值。
第 3 行到第 5 行为函数体。函数体是程序的执行部分,由若干语句构成,写在一对花括
号“{ }”内,本例的函数体只有一条输出语句。C 语言的输入与输出操作都是由系统函数完
成的,printf()为标准输出函数。printf()函数的输出内容取决于第一对双引号“”内的字
符串,一般原样输出该字符串,仅在出现以“%”开头的输出格式时有变化。“\n”是换行符。
在一对“/*”和“*/”内的内容为注释。程序编译时,碰到“/*”将不对后面的内容进
3
行编译直到出现“*/”为止。注释内容是对程序的解释以增加程序的可读性,不是执行代码。
【例1.2】 求-5 的绝对值。
程序如下:
#include<stdio.h>
#include<math.h>
void main()
{
int x,y; /* 定义程序中用到的变量 x 和 y */
x=-5; /* 将初值-5 赋给变量 x */
y=abs(x); /* 求-5 的绝对值,结果赋给变量 y*/
printf("-5 的绝对值为:%d\n",y); /* 输出变量 y 中的结果*/
}
运行结果为:
本例使用了系统函数 abs()求绝对值,因此,要包含对应头文件 math.h。其它系统函数
参见附录 3。%d 是输出格式,表示输出一个十进制整数,输出时其出现的位置将代入逗号后
面对应变量的值。本例的%d 表示代入 y 的值 5,并以十进制整数形式显示。
【例1.3】 由键盘输入任意三个整数,输出其中的最大数。
我们用两种形式编写程序代码。
程序 1 如下:
#include <stdio.h>
void main( )
{
int x,y,z,max;
scanf("%d%d%d",&x,&y,&z); /* 运行时,由键盘输入 3 个整数 */
if(x>y)max=x;else max=y; /* 比较 x 和 y,将大者赋给 max */
if(max<z)max=z; /*比较 max 和 z,将大者赋给 max */
printf("%d,%d,%d 中的最大值为:%d\n",x,y,z,max); /* 输出结果 */
}
运行结果为:
Scanf()是系统提供的标准输入函数,该函数在程序运行时,为逗号后的各变量赋值,
该函数要求变量名前须加取地址符“&”。用户每次运行程序,可根据实际情况随机灵活地输
入不同的变量值。本例程序运行后,用“空格”隔开输入 3 个数后回车,系统自动顺次将其
剩余14页未读,继续阅读
番皂泡
- 粉丝: 18
- 资源: 320
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
- Linux线程同步机制深度解析与实用指南.zip
- PTA题库C语言解题策略与实战.rar
- SVPWM控制技术的simulink建模与仿真【包括simulink模型,参考文献,操作步骤】
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0