目录
一、C语言是一门通用的计算机编程语言
C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发。C语言能以简易的方式编译、处理低级存储器。C语言是仅产生少量的机器语言以及不需要任何运行环境支持便能运行的高效率程序设计语言。尽管C语言提供了许多低级处理的功能,但仍然保持着跨平台的特性,以一个标准规格写出的C语言程序可在包括类似嵌入式处理器以及超级计算机等作业平台的许多计算机平台上进行编译。
C语言最初的标准:ANSIC
二、程序设计语言的发展
1.机器语言
第一代计算机语言,采用的是二进制(由0和1组成)。用机器语言编写的程序称为目标程序。目标程序可以被计算机直接执行,且运行效率是最高的。
缺点:难学、难写、难记、难修改、难移植。
2.汇编语言
第二代计算机语言,采用助记符来代替机器指令的二进制串,如用ADD表示加法,SUB表示减法,MOV表示传送数据等。运行效率仅次于机器语言。
缺点:十分依赖于机器硬件,可移植性差。
3.高级语言
为了克服低级语言而创造出的一种语言。这种语言功能很强,且不依赖于具体机器,但高级语言编写的程序不能被计算机直接运行。我们将高级语言编写的程序称为源程序,将源程序翻译成目标程序的程序称为编程程序。
高级语言的发展阶段:
(1)非结构化的语言
(2)结构化的语言
(3)面向对象的语言
三、三种基本的控制结构:
1.顺序控制结构:
一条语句执行完后,按自然顺序执行下一条语句。
2.分支控制结构(选择结构):
根据不同的条件选择执行不同的语句。例如C语言中的if与switch语句都可以构成选择结构。
3.循环控制结构:
条件满足时,重复执行。C语言中for、while与do-while语句都可以构成循环结构。
四、算法的特征
(1)确定性:算法的每条指令必须有明确的含义,不能有二义性。
(2)有穷性:一个算法应包含有限个操作步骤。
(3)可行性:算法中指定的操作都可以通过已经实现的基本运算执行有限次后实现。
(4)有零个或多个输入:算法时用来处理数据对象的,在大多数情况下,这些数据对象需要通过输入来得到。
(5)有一个或多个输出:算法的目的时为了求”解“,"解"只有通过输出才能得到。
五、C语言的特点
(1)C语言语句简洁紧凑,使用方便灵活。ANSIC中只有32个关键字和9种控制语句。
(2)运算符丰富,表达能力强。C语言提供了34种运算符。
(3)C语言程序可移植性好。
(4)生成的目标代码质量高,运行效率高。
(5)C语言是一种结构化语言。
(6)语言处理能力强。
六、C语言的规定
(1)运算符:
定义:用来标识数据类型、变量、函数、语句的符号称为标识符。
C语言的标识符由字母、数字、下划线组成。第一个字符必须是字母或下划线。
标识符中英文字母的大小写是有区别的,如name和Name是不同的标识符。最好命名的时候做到"见名知义",增加程序的可读性。标识符的有效长度为1~255个字符。
例如:&a、-123、a b均是不合法。
age、name、_0、FOR均是合法的。
(2)关键字:
定义:C语言规定的、赋予特定含义和有专门用途的标识符。
注意:C语言的关键字都用小写字母书写,不能用大写字母书写。
数据类型关键字:char、double、enum、float、int、long、short、signed、struct、union、un-signed、void
控制语句关键字:break、continute、case、do、default、else、for、goto、if、return、switch、while
存储类型关键字:auto、extern、register、static
其他关键字:const、sizeof、typedef、volatile
计算一些数据类型关键字的字节数:
int main()
{
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(short));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(long long));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));
printf("%d\n",sizeof(long double));
return 0;
}
数据类型: 字节数
char //字符数据类型 1
short //短整型 2
int //整形 4
long //长整型 4/8 c语言标准规定:sizeof(long)>=sizeof(int)
long long //更长的整形 8
float //单精度浮点数 4
double //双精度浮点数 8
warn!:存在这么多类型是为了丰富表达生活中的各种值
char 字符类型
%d-打印整数
%c-打印字符
%f-打印浮点数字--打印小数
%p-以地址的形式打印
%x-打印16进制数字
%o-打印8进制数字
(3)用户自定义标识符:
定义:用户自定义标识符包括程序中定义的变量名、数据类型名、函数名和符号常量名。例:max表示最大值。
(4)预定义标识符:
C语言中提供了 大量的头文件和库函数,这些头文件和库函数中定义的一些标识符(scanf、printf等)统称为预定义标识符。(相当于可以直接用的已经定义过的标识符)
(5)分隔符:
C语言中的分隔符有逗号和空格两种。逗号主要用于类型说明和函数参数表中,分隔各个变量。空格多用于各单词之间作间隔符。在关键字、标识符之间必须要有一个以上的空格分隔,否则将会出现语法错误。例如:"int m"写成"intm",编译系统会把intm当成一个自定义标识符。
七、C语言的语法成分:
(1)常量:
定义:不变的值。
数据类型:整型常量1、实型常量1.0、字符型常量'1'、字符串常量”Helloworld“等。
int age=15;
float weight=30.1f;
(2)变量
每个变量都有数据类型,在定义变量时要说明变量的数据类型。
变量定义的一般形式:类型名 变量名。
int a;
int b;
变量的分类:
局部变量:定义在代码块({})内部
全局变量:定义在代码块({})外部
#include<stdio.h>
int a=10;//全局变量
int main()
{
int a=100;
printf("%d\n",a);//局部变量
//局部变量和全局变量命名最好不要相同,容易让人误会,如果相同的话,局部变量优先。
return 0;
}
作用域:
程序设计的概念,通常来说,一段程序代码中所用到的名字并部总是有效的,限定这个名字的可用性的代码范围就是这个名字的作用域。
局部变量的作用域是变量所在的局部范围。
全局变量的作用域是整个工程。
生命周期:
变量的生命周期指的是变量的创建到变量的销毁之间的一个时间段
1.局部变量的生命周期:进入作用域生命周期开始,出作用域生命周期结束。
2.全局变量的生命周期:整个程序的生命周期。
(3)运算符:
用于对各种类型的数据对象进行运算。
例如:
算术运算符:+、-、*、/、%
关系运算符:>、>=、==(等于)、<、<=等等
注意:=:赋值的含义;例如a=10就是把10赋给a。
==:等于的含义;例如a==b就是a和b的值相等。
(4)表达式:
由运算符将常量、变量、函数组合而成的有意义的式子称为表达式。
(5)语句:
在C语言中,语句是程序最基本的执行单位,以分号结尾。
(6)函数定义与调用:
函数是完成特定功能的小模块,是C语言中唯一的一种子程序,常常在一个C程序中包含若干个函数,复杂的任务通过调用这些函数来完成。
(7)输入与输出:
C语言没有提供用于数据输入及输出的语句,所有的输入与输出都是通过系统提供的有关函数(如scanf()和printf()函数)来实现的。
八、第一个C语言程序
#include<stdio.h>//头文件
int main()//主函数
{
printf("hello world!");//输出
return 0;//返回值
}
//main:函数程序的入口
//一个工程中main函数有且仅有一个
九、计算机单位
bit-比特位
byte-字节 =8bit
kb = 1024byte
mb = 1024kb
gb = 1024mb
tb = 1024gb
pb =1024tb
*十、VS2010重点:
这样写会出现报错的情况:
两数求和:
正确写法:
输入值的间隔取决于scanf("")中的间隔。
例如上面是scanf("%d,%d"),所以键盘输入两个值中就要加个逗号。
如果scanf("%d %d"),那么键盘输入两个值中就要加个空格。
输入值的正确写法:scanf("%d,%d",&num1,&num2);
&代表取地址操作符。
printf("sum=%d\n",sum)中\n是换行的意思,而加上sum=是为了让人知道30是谁的值。
*本篇是我认为C语言基础的第一部分,文章的内容借鉴于书本里面的知识、网上查找的资料。最后一点是对于microsoft visual C++2010学习版的问题,但好像在2013年的那个版本就没有这种困惑了。最后就是如果有错误的地方还请各位指点我好知道哪里出错了并加以修改。