知识梳理
程序:一组计算机可以识别和执行的指令。
计算机语言经历了以下发展阶段:
1.机器语言。计算机工作基于二进制,从根本上说,计算机只能识别和接受由0和1组成 的指令。机器能直接识别和接受的二进制代码称为机器指令。机器指令的集合就是该计算机的机器语言。ex:1011011000000000
2.符号语言。符号语言又称为符号汇编语言或汇编语言。虽然汇编语言比机器语言简单好记一些,但仍然难以普及,只在专业人员中使用。不同型号的计算机的机器语言和汇编语言是互不通用的。ex:ADD代表加,SUB代表减
3.高级语言。这种语言功能很强,且不依赖于具体机器,用它写出来的程序对任何型号的计算机都适用(或只需做很少的修改),故称为计算机高级语言。计算机不能直接识别高级语言程序。用一种称为编译程序的软件把高级语言写的程序(称为源程序)转换为机器指令的程序(成为目标程序),然后让计算机执行机器指令程序,最后得到结果。高级语言经历了不同的发展阶段:(1)非结构化的语言(2)结构化的语言(3)面向对象的语言。
C语言的特点:
1.语言简洁、紧凑,使用方便、灵活。C语言一共有37个关键字、9种控制语句,程序书写形式自由,主要用小写字母表示。
2.运算符丰富。C语言一共有34种运算符。
3.数据类型丰富。C语言提供的数据类型包括整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型等,C99又扩充了复数浮点型、超长整型和布尔类型等。
4.具有结构化的控制语句。ex:if…else语句、while语句、do…while语句、switch语句和for语句
5.语法限制不太严格,程序设计自由度大。一般的高级语言语法检查比较严,能检查出几乎所有的语法错误,而C语言为了使编写者有较大的自由度放宽了语法检查。
6.C语言允许直接访问物理地址,能进行位操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.用C语言编写的程序可移植性好。
8.生成目标代码质量高,程序执行效率高。
//要求在屏幕上输出以下一行信息
//This is a C program.
#include<stdio.h>
int main()
{
printf("This is a C program.");
return 0;
}
//单行注释
/* */多行注释
注意字符串中的的//和/*都不作为注释的开始,而是作为字符串的一部分
printf("//how do you do!\n");
输出为//how do you do!
printf("/*how do you do!*/");
输出为/how do you do!/
//求两个整数的和
#include<stdio.h>
int main()
{
int a, b, sum;
a = 123;
b = 456;
sum = a + b;
printf("sum is %d", sum);
return 0;
}
输出为sum is 579
//求两个整数中的较大者
#include<stdio.h>
int main()//主函数
{
int max(int x, int y);//被调函数
int a, b, c;
scanf("%d,%d", &a, &b);
c = max(a, b);
printf("max=%d", c);
return 0;
}
int max(int x, int y)//此处不需要分号
{
int z;
if (x > y)
{
z = x;
}
else
{
z = y;
}
return(z);
}
C语言程序的结构:
1.一个程序由一个或多个源程序文件组成。一个规模较小的程序,往往只包括一个源程序文件。上述例题有两个函数,属于同一个源程序文件。一个源程序文件可以包括3个部分:(1)预处理指令。ex:#include<stdio.h>、#define(2)全局声明。ex:int a,b,sum(3)函数定义。
2.函数是C程序的主要组成部分。一个C程序语言是由一个或多个函数组成的,其中必须包含一个main函数(且只能有一个main函数)。一个小程序只包含一个源程序文件,在一个源程序文件中包含若干个函数(其中有一个main函数)。当程序规模较大的时候,所包含的函数的数量较多,如果把所有的函数都放在同一个源程序文件中,则此文件显得太大,不便于编译和调试。为了便于调试和管理,可以使一个程序包含若干个源程序文件,每个源程序文件又包含若干个函数。
3.一个函数包括两个部分。(1)函数首部(2)函数体,函数体又包括声明部分和执行部分。
4.程序总是从main函数开始执行。
5.程序中要求计算机完成的操作是由函数中的C语句完成的。
6.在每个数据声明和语句最后必须有一个分号。
7.C语言本身不提供输入输出语句。输入输出是由库函数scanf和printf等函数来完成的。
8.程序应当包含注释。
课后习题
1.什么是程序?什么是程序设计?
程序:一组计算机可以识别和执行的指令
程序设计:从确定任务到得到结果、写出文档的全过程
2.为什么需要计算机语言?高级语言有哪些特点?
计算机语言解决了人和计算机交流的语言问题,使得计算机和人都能识别
(1) 高级语言的数据结构要比汇编和机器语言丰富
(2) 高级语言与具体机器结构的关联没有汇编以及机器语言密切
(3) 高级语言更接近自然语言更容易掌握
(4) 高级语言编写的程序要经过编译或解释计算机才能执行
3.正确理解以下名词及其含义:
(1)源程序,目标程序,可执行程序。
源程序:指未编译的按照一定的程序设计语言规范书写的文本文件,是一系列人类可读的计算机语言指令
目标程序:为源程序经编译可直接被计算机运行的机器码集合,在计算机文件上以.obj作扩展名
可执行程序:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体,生成一个可供计算机执行的目标程序,成为可执行程序
(2)程序编辑,程序编译,程序连接。
程序编辑:上机输入或者编辑源程序。
程序编译:先用C提供的“预处理器”,对程序中的预处理指令进行编译预处理;对源程序进行语法检查, 判断是否有语法错误,直到没有语法错误未知;编译程序自动把源程序转换为二进制形式的目标程序
程序连接:将所有编译后得到的目标模块连接装配起来,在与函数库相连接成为一个整体的过程称之为程序连接
(3)程序,程序模块,程序文件。
程序:一组计算机能识别和执行的指令,运行于电子计算机上,满足人们某种需求的信息化工具
程序模块:可由汇编程序、编译程序、装入程序或翻译程序作为一个整体来处理的一级独立的、可识别的程序指令
程序文件:程序的文件称为程序文件,程序文件存储的是程序,包括源程序和可执行程序
(4)函数,主函数,被调用函数,库函数。
函数:将一段经常需要使用的代码封装起来,在需要使用时可以直接调用,来完成一定功能
主函数:又称main函数,是程序执行的起点
被调用函数:由一个函数调用另一个函数,则称第二个函数为被调用函数
库函数:一般是指编译器提供的可在c源程序中调用的函数。可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数
(5)程序调试,程序测试。
程序调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程
程序测试:是指对一个完成了全部或部分功能、模块的计算机程序在正式使用前的检测,以确保该程序能按预定的方式正确地运行
4.编写一个C程序,运行时输出
Hello World!
#include<stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
5.编写一个C程序,运行时输出以下图形:
#include<stdio.h>
int main()
{
printf("*****\n *****\n *****\n *****\n");
return 0;
}
6.编写一个C程序,运行时输人a,b,c三个值,输出其中值最大者。
#include<stdio.h>
int main()
{
int a, b, c, t;
int max(int x, int y);
scanf("%d %d %d", &a, &b, &c);
t = max(a, b);
if (t > c)
{
printf("%d", t);
}
else
{
printf("%d", c);
}
return 0;
}
int max(int x, int y)
{
if (x > y)
{
return(x);
}
else
{
return(y);
}
}