博客简介
本篇文章是我对大一上学期C语言程序设计知识内容的整理。通过一个学期的学习,我已经对编程有了初步的理解,对计算机专业有了初步的认识,也意识到了自己的缺点与不足。因此利用寒假时间,对学过的内容进行系统的整理,发布到博客上。
第1章 程序设计和C语言
1.1 什么是计算机程序
程序:一组计算机能识别和执行的指令。
只要让计算机执行这个程序,计算机就会自动地、有条不紊地进行工作。
计算机的一切操作都是由程序控制的,离开程序,计算机将一事无成。
1.2 什么是计算机语言
计算机语言:人和计算机交流信息的、计算机和人都能识别的语言
计算机语言的发展阶段:
机器语言:
CPU指令系统,由0、1序列构成的指令码组成,如:10000000 加 10010000 减
汇编语言:
用助记符号描述的指令系统,可进行地址、位操作,如: ADD A, B
通过编写系统软件,直接对硬件操作。其缺点是可读性,移植性差。
高级语言:
可读性,移植性好,编写应用程序。但一般较难实现汇编语言的某些功能,如:地址和位的操作。
C语言兼有高级和低级语言的功能,适合写系统软件和应用软件,又被称作中级语言。
1.3 C语言的发展及其特点
1983年,美国国家标准协会(ANSI)成立了一个委员会,根据C语言问世以来各种版本对C语言的发展和扩充,制定了第一个C语言标准草案(’83 ANSI C)。
1989年,ANSI公布了一个完整的C语言标准—ANSI X3.159-1989(常称ANSI C,或C89)。
1990年,国际标准化组织ISO(International Standard Organization) 接受C89作为国际标准ISO/IEC 9899:1990,它和ANSI的C89基本上是相同的。
1995年,ISO对C90作了一些修订,1999年,ISO又对C语言标准进行修订,在基本保留原来的C语言特征的基础上,针对应用的需要,增加了一些功能,尤其是C++中的一些功能,命名为ISO/IEC 9899:1999。
2001、2004年先后进行了两次技术修正(TC1和TC2)。
ISO/IEC 9899:1999(及其技术修正)被称为 C99,C99是C89(及1995基准增补1)的扩充。
本书的叙述以C99标准为依据(对C99新增加的功能作特别的说明)。
目前不同软件公司提供的各C语言编译系统多数并未完全实现C99建议的功能
- C语言的特点:
1.语言简洁、紧凑,使用方便、灵活。
2.运算符丰富。
3.数据类型丰富。
4.具有结构化的控制语句。
5.语法限制不太严格,程序设计自由度大。
6.C语言允许直接访问物理地址,能进行位(bit)操作,能实现汇编语言的大部分功能,可以直接对硬件进行操作。
7.用C语言编写的程序可移植性好。
8.生成目标代码质量高,程序执行效率高。
1.4 最简单的C语言程序
【例1.1】要求在屏幕上输出以下一行信息。
This is a C program.
编写程序:
#include <stdio.h> //这是预编译处理指令
int main() //定义主函数
{ //函数开始的标志
printf(“This is a C program.\n”); //输出所指定的一行信息
return 0; //函数执行完毕时返回函数值0
} //函数结束的标志
运行结果:
This is a C program.
Press any key to continue_
注意:
1.以上运行结果是在Visual C++ 6.0环境下运行程序时屏幕上得到的显示。第1行是程序运行后输出的结果,第2行是Visual C++ 6.0系统在输出完运行结果后自动输出的一行信息,告诉用户“如果想继续下一步,请按任意键”。当用户按任意键后,屏幕上不再显示运行结果,而返回程序窗口,以便进行下一步工作(如修改程序)。为节省篇幅以后的程序省略此内容。
2. \n 的作用是换行,如果去掉,就变成了:
This is a C program.Press any key to continue_
如果把第四行的代码换成
printf(“This\n is a C program.”);
运行结果就变成了这样:
This
is a C program.Press any key to continue_
【例1.2】求两个整数之和。
编写程序:
#include <stdio.h>
int main()
{
int a,b,sum; /*定义变量*/
a=10;
b=24;
sum=a+b;
printf(”sum= %d\n",sum); //printf语句中的“ %d ”是表示“十进制整数类型”
return 0;
}
运行结果:
sum is 579
【例1.3】从键盘输入两个整数,输出其中较大的数。
编写程序:
#include <stdio.h>
void main()
{ int max(int x,int y)
int a,b,c;
scanf(“%d,%d”,&a,&b);
c=max(a,b);
printf(" max = %d",c);
}
int max(int x,int y)
{ int z;
if(x>y) z=x;
else z=y;
return(z);
}
运行结果:输入8,5 之后按下回车键。
8,5
max=8
注意:C语言格式特点:
习惯用小写字母,大小写敏感
不使用行号,无程序行概念
可使用空行和空格
优秀的程序员应该具备的一些素质:
使用TAB缩进
{}对齐
有足够的注释
有合适的空行
例如,锯齿状书写:
main( )
{
int i , j , sum;
sum=0;
for(i=1; i<10;i++)
{
for(j=1;j<10;j++)
{
sum+=i*j ;
}
}
printf(“%d\n”,sum);
}
小结:
(1) C程序是由函数构成的。 这使得程序容易实现模块化。
(2) 一个函数由两部分组成:
函数的首部:例1.3中的max函数首部: int max(int x,int y )
函数体:花括号内的部分。若一个函数有多个花括号,则最外层的一对花括号为函数体的范围。
函数体包括两部分 :
声明部分:int a,b,c; 可缺省
执行部分:由若干个语句组成。可缺省
(3) C程序总是从main函数开始执行的,与main函数的位置无关。
(4) C程序书写格式自由,一行内可以写几个语句, 一个语句可以分写在多行上,C程序没有行号。
(5) 每个语句和数据声明的最后必须有一个分号。
(6) C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成的。C对输入输出实行“函数化”。
(7) 可以用 /……/ 对C程序中的任何一行或数行做注释,//注释单行,注释从//开始,到换行符结束。一个好的、有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。注释不能嵌套。
1.5 运行C程序的步骤与方法
1.6 程序设计的任务
1.问题分析
2.设计算法
3.编写程序
4.对源程序进行编辑、编译和连接
5.运行程序,分析结果
6.编写程序文档