c语言谭浩强第五版复习梳理1
前言
大二了,发现自己程序学的是一塌糊涂,学校也是特别垃圾,为了以后考研跟工作下决心开始复习,从这里开始记录自己
第一章
程序设计和c语言
1.1节 什么是计算机程序
**所谓程序,就是一组计算机能识别和执行的指令。**一个特定的指令序列用来完成一定的功能。
总之,计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。//让我想起了自己经常看的抽象动物园,otto!离开拉克丝后你将一事无成!
1.2节 什么是计算机语言
机器语言,符号语言,高级语言
其实这些会在计算机组成原理中详细讲解,但这里还是复习一下。
机器语言:也就是二进制0和1,一般计算机指令长度为16,16个二进制数(0或1)组成一条指令。
计算机能直接识别和接受的二进制代码成为机器指令。机器指令的集合就是该计算机的机器语言。
符号语言:英文字母和数字来表示指令。
机器语言和汇编语言是完全依赖于具体机器特性的,面向机器,称为计算机低级语言。不同型号的计算机机器语言和汇编语言不通用。
计算机需要用汇编程序把符号语言转换为机器指令才能识别,转换过程成为“代真”和“汇编”,因此符号语言又称为符号汇编语言或汇编语言。又称为计算机低级语言。
高级语言:使用接近人们使用的自然语言和数学语言。(这种语言功能很强,不依赖于具体机器,写出的程序对任何计算机都适用,离机器“远”,因此称为计算机高级语言。
计算机需要把高级程序写的程序(源程序)通过编译程序转换为机器指令的程序(称为目标程序)。
高级语言的一个语句往往对应多条机器指令。
高级语言经历了不同的发展阶段
(1)非结构化语言
编程风格比较随意,只要符合语法规则即可,没有严格的规范要求,程序中的流程可以随意跳转。程序有时会难以阅读和维护。早期的BASIC,FORTRAN和ALGOL都是非结构化语言
(2)结构化语言
略
(3)面向对象的语言
略
1.3节 c语言的发展及其特点
1972年,美国贝尔实验室的D.MRitchic在B语言基础上设计出了C语言。最初的C语言知识为描述和实现UNIX操作系统提供一种工作语言而设计的。
c语言特点:
**(1)**语言简洁、紧凑,使用方便、灵活。C语言共有37个关键字,9种控制语句,程序书写方式自由,压缩了一切不必要的成分。C语言程序比其他很多高级语言简练,源程序短,因此输入程序时工作量少。
c语言是很小的内核语言,只包括极少的与硬件有关的成分,c语言不直接提供输入和输出语句、有关文件操作的语句和动态内存管理的语句等(这些操作时是由编译系统所提供的库函数来实现)。
(2)
运算符丰富、广泛,34种运算符,C语言把括号、赋值、和强制类型转换等都座位运算符处理,从而使运算类型极其丰富,表达式类型多样化。
(3)
数据类型丰富,有整型、浮点型、字符型、数组类型、指针类型、结构体类型和共用体类型
(4)
具有结构化的控制语句(如if else、while、do while、switch和for)。用函数作为程序的模块单位,便于实现程序的模块化。c语言是完全模块化和结构化的语言。
(5)
语法限制不太严格,程序设计自由度大。
(6)
c语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
(7)
用c语言编写的程序可移植性好。
(8)
生成目标代码质量高,程序执行效率高。
1.4.1最简单的C语言程序
【基础程序1.1】代码如下(示例):
#include<stdio.h>
int main()
{
printf("This is a C program.\n");
return 0;
}
This is a C program.
--------------------------------
Process exited after 0.02494 seconds with return value 0
请按任意键继续. . .
程序结果
程序分析:main是函数名字,表示“主函数”,main前面的int是类型,整型,执行主函数后得到一个值,值为整型。第五行的“return 0”的作用是:main函数执行结束前把整数0作为函数值,返回调用函数处。每个c语言程序必须有一个main函数。
c99建议把main函数指定为int型,它要求函数带回一个整数值。有return 0程序员可以利用操作指令检查main函数的返回值,判断main函数是否已正常执行。
printf是c编译系统提供的函数库中的输出函数,第一行的#include<stdio.h>是提供该函数的信息,stdio是standard intput&output的缩写,文件后缀.h的意思是头文件(header file),因为这些文件都是放在程序各文件模块的开头。
【基础程序1.2】求两个整数之和
#include<stdio.h>
int main()
{
int a,b,sum;
a=123;
b=456;
sum=a+b;
printf("sum is %d\n",sum);
return 0;
}
sum is 579
--------------------------------
Process exited after 0.02323 seconds with return value 0
请按任意键继续. . .
**程序分析:**略
【基础程序1.3 】求两个整数中的较大者
#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\n",c);
return 0;
}
int max(int x,int y)
{
int z;
if(x>y)z=x;
else z=y;
return(z);
}
运行结果:
4396,2200
max=4396
--------------------------------
Process exited after 7.852 seconds with return value 0
请按任意键继续. . .
程序分析:本程序包含两个函数:1.主函数main;2被调用的函数max
本例函数有两个return语句,max函数中的return返回值是max函数中求出的两数中的最大值z。
1.4.2 C语言程序的结构
(1)一个程序由一个或多个源程序文件组成
1.预处理指令
2.全局声明
3.函数定义
(2)函数是C程序的主要组成部分
(3)一个函数包含两个部分
1.函数首部
2.函数体
声明部分 执行部分
(4)程序总是从main函数开始执行!
(5)程序要求计算机完成测操作是由函数中的C语句完成的
(6)在每个数据声明和语句的最后必须有一个分号
(7)C语言本身不提供输入和输出语句
(8)程序应当包含注释
1.5 运行C程序的步骤与方法
略
1.6 程序设计的任务
(1)问题分析
(2)设计算法
(3)编写程序
(4)对源程序进行编辑、编译和连接
(5)运行程序,分析结果
(6)编写程序文档
课后习题
1.略
2.略
3.略
4.
程序代码:
#include<stdio.h>
int main()
{
printf("Hello world!");
}
运行结果
Hello world!
--------------------------------
Process exited after 0.02265 seconds with return value 0
请按任意键继续. . .
程序代码:
#include<stdio.h>
int main()
{
printf("****\n ****\n *****");
}
运行结果
****
****
*****
--------------------------------
Process exited after 0.02117 seconds with return value 0
请按任意键继续. . .
程序代码:
#include<stdio.h>
int main()
{
int max(int x,int y,int z);
int a,b,c,d;
scanf("%d,%d,%d",&a,&b,&c);
d=max(a,b,c);
printf("max=%d\n",d);
return 0;
}
int max(int x,int y,int z)
{
int g;
if(x>y&&x>z)
{
g=x;
}
if(y>x&&y>z)
{
g=y;
}
if(z>x&&z>y)
{
g=z;
}
}
运行结果:
4396,2200,56
max=56
--------------------------------
Process exited after 8.454 seconds with return value 0
请按任意键继续. . .
7.略