第一章:程序设计和C语言

第一章:程序设计和C语言

1.1 什么是计算机程序

程序:一组计算机能识别和执行的指令。
程序设计:解决特定问题程序的过程。

1.2 什么是计算机语言

计算机语言:一种计算机和人都能识别的语言
发展阶段:

发展阶段简介备注
机器语言计算机能直接识别和接受的二进制代码称为 机器指令。机器指令的集合就是该计算机的 机器语言机器语言与人们习惯用的语言差别太大,难学,难记,难检查,难修改,难以推广使用。
符号语言为了克服机器语言的上述缺点,人们创造出符号语言。它用一些英文字母和数字表示一个指令。但计算机不能直接识别和执行符号语言的指令,需要一种称为汇编程序的软件把符号语言的指令转换为机器指令。一般,一条符号语言的指令对应转换为一条机器指令。转换的过程称为“代真”或“汇编”,因此,符号语言又称为符号汇编语言汇编语言机器语言和汇编语言是完全依赖于具体机器特性的,是面向机器的语言。由于它贴近计算机,故称为计算机低级语言
高级语言这种语言功能性很强,且不依赖于具体机器,用它写出的程序对任何型号的计算机都适用(或只需作很少的修改),它与具体机器距离较“远”,故称为计算机高级语言计算机不能直接识别高级语言程序,需要一种称为编译程序的软件把用高级语言写的程序(称为源程序)转换为机器指令的程序(称为目标程序),然后计算机执行机器指令程序,最后得到结果。

高级语言的发展阶段如下:

阶段说明举例
非结构化的语言编程风格比较随意,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转。人们往往追求程序执行的效率而采用了许多“小技巧”,使程序变得难以阅读和维护早期的BASIC, FORTRAN和ALGOL
结构化语言规定程序必须由具有良好特性的基本结构(顺序结构、选择结构、循环结构)构成,程序中的流程不允许随意跳转,程序总是由上而下顺序执行各个基本结构。 这种程序结构清晰,易于编写、阅读和维护。QBASIC, FORTRAN 77 和C语言
面向对象的语言面向对象语言是一类以对象作为基本程序结构单位的程序设计语言,指用于描述的设计是以对象为核心,而对象是程序运行时刻的基本成分。语言中提供了类、继承等成分,有识认性、多态性、类别性和继承性四个主要特点。C++, C#, Java,Visual Basic

1.3 C语言的发展及特点

1.3.1 发展

  • 1972年,美国贝尔实验室的D.M.Ritchie在B语言的基础上设计出了C语言。
  • 最初的C语言只是为了描述和实现UNIX操作系统提供一种工作语言而设计的。
  • 1978年后,C语言先后移植到大、中、小和微型计算机上。C语言很快便风靡全世界,成为世界上应用最广泛的程序设计高级语言。
  • 1999年,ISO(国际标准化组织)对C语言标准进行了修订,在保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,并在2001年和2004年前后进行了两次技术修正,它被称为C 99。

1.3.2 特点

C语言是一种用途广泛、功能强大、使用灵活的过程性编程语言,既可以用于编写应用软件,又可以用于编写系统软件。
C语言主要有以下一些主要特点:
(1)语言简洁、紧凑,使用方便。C语言一共只有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示,压缩了一切不必要的成分。实际上,C是一个很小的内核语言,只包括极少的与硬件有关的成分,C语言不直接提供输入和输出的语句、有关文件操作的语句和动态内存管理的语句等(这些操作是由编译系统所提供的函数来实现的),C的编译系统相当简洁。
(2)运算符丰富。C语言共有34种运算符。C语言把括号、赋值和强制类型转换等都作为运算符处理。
(3)数据类型丰富。C语言提供的数据类型包括整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C 99 又扩充了复数浮点类型、超长整形和布尔类型等。尤其是指针类型数据,使用十分灵活和多样化,能用来实现各种复杂的数据结构(如链表、树、栈等)
(4)具有结构化的控制语句(如if…else语句、while语句、do…while语句、switch语句和for语句)。用函数作为程序的模块单位,便于实现程序的模块化。C语言是完全模块化和结构化的语言。
(5)语法限制不太严格,程序设计自由度大
(6)C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作因此C语言既具有高级语言的功能,又具有低级语言的许多功能,可用来编写系统软件。C语言的这种双重性使它既是成功的系统描述语言,又是通用的程序设计语言。
(7)用C语言编写的程序可移植性好
(8)生成目标代码质量高,程序执行效率高。

1.4 最简单的C语言程序

1.4.1 最简单的C语言程序举例

【例1.1】要求在屏幕上输出以下一行信心:
This is a C program.
解:

#include<stdio.h>						//这是编译预处理指令(头文件)

int main()								//定义主函数
{

	printf("This is a C program.\n");   //输出指定的信息
	return 0;							//函数执行完毕返回函数值0

}

程序分析:

  • 在使用函数库中的输入输出函数时,编译系统要求程序提供有关此函数的信息(例如对输入输出函数的声明和宏的定义、全局量的定义等),程序第一行“#include<stdio.h>”的作用是用来提供这些信息的。stdio.h是系统提供的一个文件名,stdio是standard input & output的缩写,文件后缀.h的意思是头文件。#include指令用于把这些信息调入供使用。
  • 程序第二行main是主函数,前面的int表示此函数的类型是int类型(整型),表面执行主函数后会得到一个整型的函数值。每个C语言程序都必须有一个main函数。函数体由花括号{}括起来。
  • return 0的作用就是main函数执行完毕后返回0作为函数值,返回到调用函数处。
  • printf是C编译系统提供的函数库中的输出函数。\n是换行符,疑似是输出“”中的内容后显示屏上的光标位置移到下一行的开头。
  • 每个语句最后都有一个分号,表示语句结束。
  • //是注释。C语言允许两种值注释方式。//是注释一行,而/*内容*/是多行注释,两个*之间的内容都会被注释掉。(注释在字符串中不适用)

1.4.2 C语言程序的结构

通过上述的例子(其余的例子也简单,都是懂得就不打了),可以看到一个C语言程序的结构有以下特点:
(1)一个程序由一个或多个源文件程序文件组成。在一个源程序文件中可以包括三个部分:

  • 预处理指令。如#include<stdio.h>等。
  • 全局声明。在函数之外进行数据的声明
  • 函数定义

(2)函数是C程序的主要组成部分
(3)一个函数包括两个部分

  • 函数首部:包括函数类型、函数名、函数参数类型、函数参数名、函数属性等。
  • 函数体:一边包括以下两部分
    • 声明部分。包括:定义在本函数中所用到的变量;对本函数所调用的函数进行声明。
    • 执行部分。由若干个语句组成,指定在函数中所进行的操作

(4)程序总是从main函数开始执行的。无论main函数在整个程序中的位置如何
(5)程序中要求计算机的操作是由函数中的C语句完成的
(6)在每个数据声明和语句的最后必须有一个分号
(7)C语言本身不提供输入输出语句
(8)程序应当包含注释

1.5 运行C程序的步骤与方法

用C语言编写的程序是源程序。在编写好一个C源程序后,一般要经过以下几个步骤进行编译和运行:
(1)上机输入和编辑源程序
(2)对源程序进行编译
(3)进行连接处理
(4)运行可执行程序
在这里插入图片描述
实线表示操作流程,虚线表示文件的输入输出。

1.6 程序设计的任务

程序设计:是指从确定任务到得到结果、写出文档的全过程。
从确定任务到最后完成任务,一般经历以下几个工作阶段:
(1)问题分析
(2)设计算法
(3)编写程序。根据算法,用一种高级语言编写出源程序。
(4)对源程序进行编辑、编译和连接,得到可执行程序
(5)运行程序,分析结果
(6)编写程序文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值