一、计算机与程序设计语言
1、计算机系统的基本组成
计算机系统包括计算机硬件和软件。
计算机硬件主要是指构成计算机系统的物理元器件、部件和设备,其中包括运算器、存储器、控制器、以及输入、输出设备等。
(1)运算器和控制器
运算器和控制器就是人们悉知的中央处理器(CPU),是计算机的核心部分,其中运算器是完成算术运算和逻辑运算的部件,控制器则是负责按照程序规定的顺序,自动地接受和执行每一条计算机指令。
(2)存储器
计算机存储器包括主存储器和辅助存储器,主存储器就是大家常说的内存,其内部数据可以直接参与运算处理;辅助存储器又被称之为外存,其中数据要被调用至内存才能参与运算处理。
(3)输入与输出设备
输入设备负责把数据输入到计算机中,输出设备负责把计算机处理的结果传递出去。像键盘、扫描仪、麦克风这类为输入设备,打印机和显示器则属于输出设备。当然,随着科技的不断发展,输入输出设备也在不断地扩展。
(4)计算机硬件
计算机硬件是计算机物理的体现,它的发展决定着计算机系统的迭代。1946年,世界上第一台电子数字积分式计算机——埃尼阿克(ENIAC)在美国宾夕法尼亚大学诞生。在过去的几十年中,计算机经历了从第一代到第四代的变革。
阶段 | 起止年份 | 主要元件 | 运算速度 | 特点 | 用途 |
1 | 1946~1957年 | 电子管 | 加法运算:1000次/s~10000次/s | 体积大、成本大、能耗大、速度低、内存容量仅几千字 | 国防及高科技 |
2 | 1968~1964年 | 晶体管 | 加法运算:10万次/s~100万次/s | 机器的体积减小、能耗降低、可靠性增加、价格降低、运算速度加快 | 军事与尖端科技、中小企业 |
3 | 1965~1970年 | 中小规模集成电路 | 加法运算:100万次/s~1000万次/s | 减少机器的体积和质量、能耗大大的降低,增强了可靠性,节约了信息传输时间、提高了运算速度 | 工业控制、数据处理、商用 |
4 | 1971年至今 | 大规模以及超大规模集成电路 | 加法运算:一亿次/s~几十亿次/s | 出现微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机 | 工业、生活等各方面 |
(5)软件
与其他电子设备不同,缺少“灵魂”的计算机“躯体”没有任何活力,你不会喜欢和一个不能联网的“废铁”打交道的,当然计算机的“灵魂”不会是仅限于能不能联网。
计算机软件包括程序和文档。程序是计算任务的处理对象和处理规则的描述;文档是为了便于了解程序所必备的简明性材料。软件是用户操纵计算机的接口界面,要使用计算机就必须开发软件,而设计、编制和调试程序是其中的主要任务。通常,按照应用程序可以将软件划分为系统软件、支撑软件和应用软件。
2、程序设计语言
程序设计是指设计设计、编写和调试程序的方法与过程。由于程序是软件的本体,而软件的质量也是通过程序的质量体现,因此,研究一种切实可行的程序设计方法显得格外重要。回顾程序设计的发展历程,大致经历了下面几个阶段:
(1)面向计算机的程序语言
计算机诞生初期,人类与计算机打交道的唯一方式就是机器语言,这是一种能被计算机直接识别的程序设计语言,其中每一条指令和操作都是采用二进制表示,因此一开始这种语言具有复杂、易错、难读和错误难纠正等错误,尽管后续被优化,但仍然摆脱不了指令格式与机器相关的弊端。
(2)面向过程的程序设计
随着计算机的快速发展,先有的程序语言已经不能满足人们需求,人们迫切需要一种更加自然、规范和易学的程序设计语言,以提高软件开发效率,面向过程的程序设计思路应运而生。所谓面向过程从功能的角度分析问题,将待解决的问题空间分解成若干个功能模块,每个功能模块描述一个操作的具体过程。在过去曾一度流行的结构化程序设计方法就是面向过程的典型代表。
(3)面向对象的程序设计
面向对象的程序设计是指以对象为中心,分析、设计以及构造应用程序的机制,不同于面向过程的程序,再利用面向对象的方法求解问题时,它通过建立模型来反映现实世界中事物特征的抽象,通过对象来描述客体的特征和行为。面向对象程序设计在软件开发中的应用已经超越了程序设计和软件开发,拓展到数据库系统、应用结构、网络管理结构和人工智能等领域。
3、C语言发展过程及特点
C语言是一种应用极为广泛的的程序设计语言。它是由AT&T公司Bell实验室的D.Rithie于1972至1973年间,在由英国剑桥大学设计的一种被称之为B的系统程序设计语言的基础上发展而来,故命名为C。
C语言吸收了许多20世纪60年代出现过的高级程序设计语言的成功经验和特色,其具有书写格式自由、数据类型丰富、语言功能强大、执行速度快和存储控制能力强等特点,并全面支持结构化程序设计方法,是一种名副其实的通用性程序设计语言。
二、C语言基本结构和运行过程
任何一种语言的程序都具有其特定的组成结构。这种结构表示了程序的基本组成元素和程序设计理念。C程序是由一个个函数组成,每一个函数用于描述一项操作的具体实现过程,这种设计目标是以操作为核心,整个程序是一系列操作的具体描述。
在任何一个程序中,无论是简单还是复杂,其程序的基本结构都是一样的。下面可以从几个简单的程序入手,了解其基本组成结构。
【程序1】
#include <stdio.h>//第一行的含义是将头文件"stdio.h"嵌入到本程序中。这个头文件是C语言编译系统为我们提供的,里面放置着许多与输入输出操作有关的标准函数原型
int main()//main()是函数的首部,名为main的函数是一个特殊函数,通常被成为主函数。
{
printf("This is a C program");//printf()标准输出函数,双引号内的内容为程序运行后在屏幕上显示的问本行内容。
return 0;
}
运行结果:
这个简单的程序,它的基本功能是在屏幕上显示文本行“This is a C program”。
【程序2】
//求1~100的和
#include <stdio.h>
int main()
{
int i,sum;
for(i=1;i<=100;i++)
{
sum=sum+i;
}
printf("\n1+2+3+...+100=%d",sum);
return 0;
}
运行结果:
【程序3】
//键入两个整数,求较大者。
#include <stdio.h>
int maxValue(int,int);//函数名称
int main()
{
int x,y,z;//定义变量
printf("请输入两个值:");
scanf("%d%d",&x,&y);
z=maxValue(x,y);
printf("二者较大者是:%d",z);
return 0;
}
int maxValue(int x,int y)
{
int max;
if (x>y)
max=x;
else
max=y;
return max;//返回最大值
}
运行结果:
运行C程序基本过程
三、数据类型、常量、变量、输入输出与基本运算
1、数据类型:
2、常量
(1)整型常量
即整常数,如1、2、3、4......,-1、-2、-3......
(2)实型常量
即我们日常说的小数,又称为实数和浮点数。
(3)字符型常量
再编程过程中,不仅需要整数和实数,还需要使用字符,如'a'、'A'、'?'、'*'等。
字符常量需要区分大小写,'a'与'A'是不同类型的字符常量。
3、变量
(1)整型变量
对于年龄的表示,我们通常会说18,19这类整数,而不是18.5,所以这时候变量就会被定义成整型,就像:
int age;//定义一个整型变量age
age=18;
在定义整型变量时,我们可能会遇到一些大额数字,比如中国人口,这时候我们只用int就会因为数字太大而溢出,在C语言中还有另外两种整形,短整型(short int)和长整型(long int)。
整形数据在内存存储中最高位为符号为,用'0'和'1' 表示,正数是'0',负数是'1'。
(2)实型变量
生活中可以将年龄定义为整形,但有些时候,比喻成绩,可以有小数。
变量类型 | 数据长度 | 有效数字 | 取值范围 |
单精度型(float) | 4个字符 | 7位 | |
双精度型(double) | 8个字符 | 16位 | |
长双精度型(long double) | 16个字符 | 19位 |
(3)字符型变量
在影视剧中,我们常常看到一些打分标准是一些'A'、'B'、'C'之类的字符来表示成绩,这时候我们就需要用到字符型变量,类似于以上两种,它的作用则是用来存储字符。
定义如下:
char grade;//字符型变量grade
字符型变量存储方式依旧采用二进制,每个字符都对应一个ASCII码。
值得注意的是,字符不仅仅是英文字符,还包括形状和特殊符号。
#include <stdio.h>
int main()
{
char sex,grade;
sex='M';
grade='a';
sex=sex+32;//'M'的ASCII码值加32对应的是'm'
grade=grade-32;//'a'的ASCII码值减32对应的是'A'
printf("sex:%c,grade:%c\n",sex,grade);
return 0;
}
运行结果:
四、C语言中的关键字和特定字
1、C语言中32个常见关键字
auto | const | double | int | float | short |
struct | unsigned | break | continue | else | for |
long | sizeof | switch | void | case | default |
enum | goto | register | signed | typedef | volatile |
char | do | extern | if | return | static |
union | while |
2、C语言中7个特定字
define | include | undef | ifdef | ifndef | endif | line |