一、C语言概述
1.1C语言出现的历史背景
略
1.2C语言的特点
-
语言简洁、紧凑,使用方便灵活。c语言一共有32个关键字、9种控制语句,程序书写程序自由,主要使用小写字母表示,压缩了一切不必要的成分。
-
运算符丰富。34种。
-
数据类型丰富。
-
具有结构化的控制语句。
-
语法限制不太严格,程序设计自由度大。
-
C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,能直接对硬件进行操作。
-
生成目标代码质量高,程序执行效率高。C语言一般只比汇编程序生成的目标代码效率低10%~20%。
-
用C语言编写的程序可移植性好(与汇编语言相比)。
1.3简单的C语言程序介绍
输出一行信息
#include<stdio.h> //函数标准库
int main()
{
printf("Hello World!\n");
return 0;
}
/* 这是
多行注释 */
main是主函数的名字。每一个C语言程序都必须有一个main函数,也就是主函数。
函数体由{ }括起来。
priintf和scanf是C的标准输入输出函数。
求两数之和
#include<stdio.h>
int main()
{
int a,b,sum;
a=123,b=456;
sum = a+b;
printf("sum is %d\n",sum);
return 0;
}
求两个数中较大者
#include<stdio.h>
int main()
{
int max(int x,int y); // 对调用函数max进行声明
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) //定义max函数,函数值为整型,形式参数x,y为整型
{
int z;
if(x>y) z=x;
else z=y;
return z; //将z值返回,通过max带回调用函数的位置
}
小结:
-
C程序是由函数构成的。一个C源程序至少且仅包含一个main函数,也可以包含一个main函数和若干个其他函数。因此,函数是C程序的基本单位。=
-
一个函数由两部分组成。
-
函数的首部,即函数的第1行,包括函数名、函数类型、函数参数(形式参数)名、参数类型。
-
函数体。声明部分+执行部分。
-
void dump() { //这是一个空函数,什么也不做,但也是合法的。 }
-
-
一个C程序总是从main函数开始执行的,到main函数结束。而不论main函数在整个程序中的位置如何(main函数可以放在程序的最前头,也可以放在程序的最后,或在一些函数之前,或在另一些函数之后)。
-
C语言书写格式自由,目前使用的最多C编译系统,允许一行内写几个语句,一个语句可以分写在多行上,C程序没有行号。
(C99标准不支持一行内写多个语句)
-
每个语句和数据声明的最后必须有一个分号。
-
C语言本身没有输入输出语句。输入和输出语句是操作库函数scanf和printf等函数来完成的。
-
可以用/ * ... ... * / 对C程序的某行或者几行做注释。一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。
1.4运行C程序的步骤和方法
-
上机输入和编辑源程序。
-
对源程序进行编译,得到目标程序。
-
将目标程序与库函数连接,得到可执行程序。
-
运行可执行程序,得到运行结果。
注意:
-
源程序 f.c
-
目标程序 f.obj
-
可执行目标程序 f.exe
课后习题:
-
C语言的主要用途是什么?它和其他高级语言有什么异同?
C语言的主要用途:C语言是一种通用、过程式、编译型的编程语言,其设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。C语言广泛用于系统软件与应用软件的开发,特别是在操作系统、嵌入式系统、驱动程序、图形处理、游戏开发等领域。
C语言与其他高级语言的异同:
相同点:都是高级编程语言,提供了一定的抽象层次,使得编程者无需直接操作硬件细节,提高了编程效率。
不同点
C语言更接近硬件,支持直接访问内存地址和进行位操作,这在某些底层编程任务中非常有用。
C语言是一种静态类型语言,要求变量在编译时就必须确定其类型,这有助于减少运行时错误。
C语言没有自动的内存管理机制(如垃圾回收),需要程序员手动管理内存,这既增加了灵活性也带来了复杂性。
C语言的结构相对简单,语法清晰,这使得它成为学习编程原理的理想语言之一。
-
写出一个C程序的构成。
C程序的构成:
预处理指令:以
#
开头的行,如#include
,用于包含其他文件或进行宏定义。全局声明:在函数之外声明的变量和函数原型。
主函数(main函数):程序的入口点,C程序从这里开始执行。
其他函数:根据程序需要,可能包含多个自定义函数,用于执行特定任务。
注释:以
//
或/* ... */
标记的文本,用于解释代码,不被编译器执行。
-
C语言以函数为程序的基本单位,有什么好处?
模块化:将程序划分为多个函数,每个函数完成一个特定的任务,这使得程序结构更加清晰,易于理解和维护。
代码重用:同一个函数可以在程序中多次调用,避免了代码的重复编写,提高了编程效率。
便于调试:当程序出现问题时,可以逐个检查函数,定位错误更加容易。
易于协同开发:不同的开发者可以分别编写不同的函数,然后组合在一起形成完整的程序,促进了团队的协同工作。
-
编写一个程序,输入a,b,c三个值,输出其值最大者。
#include<stdio.h>
int main()
{
int a,b,c,max;
scanf("%d%d%d",&a,&b,&c);
max = a;
if(max<b) max=b;
if(max<c) max=c;
printf("最大值max=%d\n",max);
return 0;
}
本章小结:
-
C程序的基本组成单位是函数。一个C语言由函数组成。
-
C语言规定:在一个源程序中,main函数的位置可以任意。
-
在C语言程序中,一个变量代表内存中的一个存储单元。
-
C语言的源程序必须通过编译和连接后,才能被计算机执行。
-
C语言源程序文件的后缀是.c;经过编译后,生成的文件后缀是.obj;经过链接后,生成的文件后缀是.exe。
-
结构化程序由顺序结构、选择结构、循环结构三种结构组成。
-
C语言源程序的基本单位是函数。
-
一个C语言源程序由若干个函数组成,其中至少应该含一个主函数main。
-
在C语言中,输入操作是由库函数scanf完成的,输出操作是由库函数printf完成的。
声明:本文章为个人学习笔记,资料整理参考谭浩强《C程序设计(第三版)》和《C程序设计试题汇编(第三版)》如有错误,欢迎大家指正!