第01章 C语言概述.docx

上传人:b****6 文档编号:4946250 上传时间:2022-12-12 格式:DOCX 页数:112 大小:58.81KB
下载 相关 举报
第01章 C语言概述.docx_第1页
第1页 / 共112页
第01章 C语言概述.docx_第2页
第2页 / 共112页
第01章 C语言概述.docx_第3页
第3页 / 共112页
第01章 C语言概述.docx_第4页
第4页 / 共112页
第01章 C语言概述.docx_第5页
第5页 / 共112页
点击查看更多>>
下载资源
资源描述

第01章 C语言概述.docx

《第01章 C语言概述.docx》由会员分享,可在线阅读,更多相关《第01章 C语言概述.docx(112页珍藏版)》请在冰豆网上搜索。

第01章 C语言概述.docx

第01章C语言概述

本章重点:

●用TurboC开发环境调试C程序的过程

●C语言的结构和书写规则

第一章C语言概述

§1.1C语言的发展历史

一、早期阶段

在C语言诞生以前,系统软件主要是用汇编语言编写的。

由于汇编语言程序依赖于计算机硬件,其可读性和可移植性都很差;但一般的高级语言又难以实现对计算机硬件的直接操作(这正是汇编语言的优势),于是人们盼望有一种兼有汇编语言和高级语言特性的新语言。

C语言就是在这种情况下应运而生的。

C语言是一种“中级语言”,它具有高级语言的易学易用性,可读性和可移植性都很好,又具有汇编语言的一些特点。

二、标准C阶段(ANSIC)

C语言产生之后,又被多次改进,并出现了多种版本。

80年代初,美国国家标准化协会(ANSI),在各种版本的基础上,制定了ANSIC标准。

在此期间,C语言已成为了一种受程序员喜爱,且广为使用的语言。

C语言既可用来开发系统软件(如操作系统,数据库管理系统等),又可用来开发应用软件(如文字处理软件,游戏软件等)。

三、C++阶段

随着计算机技术的发展,在C语言的基础上有产生了C++语言,C++是面向对象的语言。

C++比C语言具有更高的编程效率,且编写的程序易于重用和维护。

从C到C++是C语言的一次“革命”。

四、VC++阶段

在C++之后出现了VC++,VC++功能更加强大。

C语言是学习C++和VC++的基础,尽管现在很少用标准C来开发程序,但学不好标准C,根本无法学习C++和VC++。

目前使用的JAVA语言和C#语言也是以C和C++语言为基础的。

§1.2C语言的特点

一、功能强大

C语言能实现许多只有用汇编语言才能实现的功能,既可用来开发系统软件,又可用来开发应用软件。

二、语言简洁,使用方便、灵活

C语言编写程序时非常简洁,且用C语言编写的程序结构清晰。

C语言对语法的限制和要求不高,使程序员编写程序时,有着很大的自由度,方便、灵活。

三、生成的目标代码质量高,程序执行效率高。

用C语编写的程序生成的目标代码较其他高级语言的质量要高。

§1.3简单C语言介绍

一、简单的C程序介绍

[例1]输出字符串程序

main()

{

printf(“Howareyou\n”);

}

程序运行结果:

Howareyou

[例2]求两个数和的程序

/*这是定义变量*/

main()

{

inta,b,s;

a=3;b=6;

s=a+b;

printf(“s=%d\n”,sum);

}

程序的运行结果:

s=9

[例3]稍复杂点的一个C程序

main()

{

inta,m;

a=3;

m=pf(a)

printf(“m=%d\n”,m);

}

pf(intx)

{

intt;

t=x*x;

returnt;

}

程序的运行结果:

s=9

§1.4C程序的结构和书写规则

一、C程序是由函数构成的

每个程序由一个或多个函数组成,其中必须有且仅有一个主函数main()。

二、总是从main函数开始执行

一个可执行的C语言程序总是从main函数开始执行,而不论其在整个程序中的位置如何。

当主函数执行完毕时,亦即程序执行完毕。

习惯上,将主函数main()放在最前头。

main()

{

inta,b,s;/*变量定义部分*/

a=3;b=6;/*可执行语句部分*/

s=a+b;

printf(“s=%d\n”,sum);

}

三、每条语句后必须有一个分号

C程序书写格式自由,一行内可以写几个语句,一个语句也可以分写在多行上。

四.区分大小写

在C语言中,大小写字母是有区别的。

(C语言习惯用小写字母)

五、注释语句

可用/*……*/对C程序中的任何部分作注释,注释可以写在程序的任何位置上,“/*”与“*/”也可不在同一行上。

六、大括号

相当于Pascal中的一对Begin…End

本章重点:

●数据类型

●算术运算符和算术表达式

●赋值运算符和赋值表达式

●逗号运算符和逗号表达式

第三章数据类型、运算符和表达式

C语言有四种常用数据类型:

字符、整型、单精度实型、双精度实型。

类型

范围

char(字符型)

0~255

int(整型)

-32768~32767

float(单精度型)

约精确到6位数

double(双精度型)

约精确到12位数

除此之外,C语言还提供了几种其他类型,包括数组、指针、结构体、共用体(联合)、位域和枚举等。

这些复杂类型在以后的章节中讨论。

§3.1常量和变量

 

一、常量

1.常量的概念

在程序运行过程中,其值不能被改变的量称之为常量。

2.常量的分类

整型常量实型常量字符常量符号常量。

二、变量

1.变量的概念

在程序运行过程中,其值可以被改变的量称之为变量。

2.变量名

每个变量的名字即变量名,变量命名遵循标识符命名规则。

3.标识符和命名规则

有效字符:

只能由字母、数字和下划线组成,且以字母或下划线开头。

有效长度:

随系统而异,但至少前8个字符有效。

如果超长,则超长部分被舍弃。

在TCV2.0中,变量名(标识符)的有效长度为1~32个字符,缺省值为32。

C语言的关键字不能用作变量名。

*特别注意C语言对英文字母的大小敏感,即同一字母的大小写,被认为是两个不同的字符。

习惯上,变量名和函数名中的英文字母用小写,以增加可读性。

4.变量的定义与初始化

在C语言中,要求对所有用到的变量,必须先定义、后使用;且在定义变量的同时可以赋初值(初始化)。

变量定义的一般格式

[存储类型]数据类型变量名[,变量名2……];

例如:

inta,b,c;

变量初始化的一般格式

[存储类型]数据类型变量1=值1,变量2=值2…;

例如:

inta=3,b=4,c=5;

§3.2整型数据

一、整型变量

1.分类

根据占用内存字节数的不同,整型变量又分为4类:

(1)基本整型(类型关键字为int)。

(2)短整型(类型关键字为short[int])。

(3)长整型(类型关键字为long[int])。

(4)无符号整型。

分为三种,只能用来存储无符号整数。

(unsigned[int])基本无符号整型

(unsignedshort)无符号短整型

(unsignedlong)无符号长整型

2.占用内存字节数与值域

上述各类型整型变量占用的内存字节数,随系统而异。

ANSI标准中的数据类型

类型

长度

范围

int

16

-32768~32767

short[int]

16

-32768~32767

long[int]

32

-2147483648~2147483649

unsigned[int]

16

0~65535

unsignedshort

8

0~255

unsignedlong

32

0~4294967296

3.举例

main()

{

inta;

shortb;

longc=2345678;

unsignedu;

a=-12;

b=24;

u=10;

printf("%d,%d,%d,%d\n",a,b,c,u);

}

4.说明

上述各类型整型变量占用的内存字节数,随系统而异。

在赋值和运算时可能溢出,导致不可确定结果。

二、整型常量

1.三种表示形式

整型常量即整常数,在C语言中可用三种形式表示:

(1)十进制。

例如10、36。

(2)八进制(以数字0开头)。

例如012。

(3)十六进制(以数字0+小写字母x开头)。

例如0x36

main()

{

inta=123;

intb=010+10;

intc=0xffff;

intd=10+010+0x10;

printf("%d,%d,%d,%d\n",a,b,c,d);

}

2.分类

(1)基本整型。

其数据范围与int型变量一样。

(2)长整型(在数值后面加“L/l”)。

对数值很大的整型常量,可使用长整型常量表示,其取值范围可达-231—231-1。

例如:

123l、315L等。

3.说明

(1)一个整型常量,可以赋给能容纳下其值的整型变量。

例如,其值在-215--(215-1)的整型常量,可以赋给int型变量和longint型变量;其值在-231--(231-1)的整型常量,就只能赋给longint型变量。

(2)常量无unsigned型。

但一个非负整型常量,只要它的值不超过相应变量的值域(即取值范围),也可以赋给unsigned型变量。

§3.3实型数据

一、实型变量

1.分类

根据占用内存字节数的不同,整型变量又分为3类:

(1)单精度型。

类型关键字为float。

(2)双精度型。

类型关键字为double。

(3)长双精度型。

类型关键字为longdouble。

(用的很少)

类型

比特数

有效数字

范围

float

32

6~7

-3.4*10-38~3.4*1038

double

64

15~16

-1.7*10-308~1.7*10308

longdouble

128

18~19

-1.2*10-4932~1.2*104932

2.举例

main()

{

floata;

doubleb;

longdoublec=-24345345678.1234565433;

a=-12.324234;

b=23244.4543345;

printf("%d,%d,%d\n",a,b,c);

}

二、实型常量

1.表示形式

实型常量即实数,在C语言中又称浮点数,其值有两种表达形式:

(1)十进制形式。

例如3.14、9.8。

(2)指数形式:

<尾数>E(e)<整型指数>。

例如3.0E+5等。

2.说明

实型常量不分float型和double型。

一个实型常量,可以赋给一个实型变量(float型或double型)。

§3.4字符型数据

一、字符常量

1.定义

用一对单引号括起来的单个字符,称为字符常量。

例如,‘A’、‘1’、‘!

’等。

2.转义字符

C语言还允许使用一种特殊形式的字符常量,就是以反斜杠“\”开头的转义字符。

注意:

如果反斜杠或单引号本身作为字符常量,必须使用转义字符:

‘\\’、‘\’‘。

字符形式

含义

ASCII代码

字符形式

含义

ASCII代码

\n

换行

10

\t

水平制表

9

\b

退格

9

\r

回车

13

\f

换页

12

\\

反斜杠

92

\’

单引号字符

39

\”

双引号字符

34

\ddd

任意字符三位八进制

\xhh

任意字符二位十六进制

3.举例

main()

{

printf(“abc\tde\rf\tg\n”);

printf(“h\ti\b\bjk);”);

printf(“\x4F\x4B\x21\n”);

printf(“\x15\xAB\n”);

}

执行结果:

fgde

hjk

OK!

§½

二、字符变量

1.变量的定义和存储

字符变量的类型关键字为char,占用1字节内存单元。

字符变量用来存储字符常量。

将一个字符常量存储到一个字符变量中,实际上是将该字符的ASCII码值(无符号整数)存储到内存单元中。

charch1,ch2;/*定义两个字符变量:

ch1,ch2*/

ch1=’a’;ch2=’b’;/*给字符变量赋值*

2.说明

(1)一个字符型数据,既可以字符形式输出,也可以整数形式输出。

(2)允许对字符数据进行算术运算,此时就是对它们的ASCII码值进行算术运算

3.举例

[例1]

main()

{

charch1,ch2;

ch1='a';ch2='b';

printf(“ch1=%c,ch2=%c\n”,ch1,ch2);

printf(“ch1=%d,ch2=%d\n”,ch1,ch2);

}

程序运行结果:

ch1=a,ch2=b

ch1=97,ch2=98

[例2]

main()

{

charch1,ch2;

ch1=‘a’;ch2=‘B’;

/*字母的大小写转换*/

printf(“ch1=%c,ch2=%c\n”,ch1-32,ch2+32);

}

程序运行结果:

ch1=A,ch2=b

4.总结

关于数据存储输出的总结

不同类型数据的存储长度不同,能表示数的有效范围也不同

不同类型数据赋值时应赋有效值

不同类型数据输出时应用相应输出格式符

字符型(char)

S0000000

 

整型(int)

S0000000

00000000

实型(float)

S0000000

00000000

00000000

00000000

[例1]

main()

{

charc=128;

printf(“%c”,c);

printf(“%d”,c);

c=256;

printf(“%c”,c);

printf(“%d”,c);

}

[例2]

main()

{

intx=3.5;

inty=0x7fff;

printf(“%d”,x);

printf(“%d”,y);

y=0x8000;

printf(“%d”,y);

y=0x10000;

printf(“%d”,y);

y=0x10001;

printf(“%d”,y);

}

三、字符串常量

1.字符串常量的概念

字符串常量是指用一对双引号括起来的一串字符。

双引号只起定界作用。

例如:

"China","Cprogram","YES","33312-2341","A"等。

2.字符串的存储和长度

C语言中,字符串常量在内存中存储时,系统自动在字符串的末尾加一个“串结束标志”,即ASCII码值为0的字符NULL,常用\0表示。

因此在程序中,长度为n个字符的字符串常量,在内存中占有n+1个字节的存储空间。

例如,字符串China有5个字符,作为字符串常量"China"存储于内存中时,共占6个字节,系统自动在后面加上NULL字符,其存储形式为:

C

h

i

n

a

\0

3.说明

要特别注意字符串与字符串常量的区别,除了表示形式不同外,其存储性质也不相同,字符'A'只占1个字节,而字符串常量"A"占2个字节。

9‘9’"9"

§3.5各类数值型数据见的混合运算

先看下面例子,理解什么是数值数据的混合运算

[例1]

main()

{

intx=3;

longy=100

floatz;

z=x+y;

x=y+23;

y=z+x;

printf(“%d,%d,%d”,x,y,z);

}

不同类型数值数据混合运算时应注意:

简单类型赋值给复杂类型可以,反之则有问题

§3.6算术运算符和算术表达式

一、算术运算符和算术表达式

1.基本算术运算符

+3+5a+b

-4-6x-y

*3*53.14*s

/5/25.0/2-5/3

%7%4(整数求余运算)

[例]

main()

{

intx;

folaty;

x=5/2;

y=5/2;

printf(“%d,%f”,x,y);

x=-5/2;

y=5.0/2;

printf(“%d,%f”,x,y);

}

2.自增、自减运算符

作用是使变量的值增1或减1

++i++++i

--i----i

x=i++相当于x=i;i=i+1;

x=++i相当于i=i+1;x=i;

[例]

main()

{

inti=10,j=10;

intx,y;

x=i++;

printf(“%d,%d”,x,i);

x=++j

printf(“%d,%d”,x,j);

y=x--;

printf(“%d,%d”,y,x);

x=100

y=--x;

printf(“%d,%d”,y,x);

}

[例]

main()

{

inti=5,j=10;

i++;

printf(“%d”,i);

printf(“%d”,i++);

printf(“%d”,++i)

printf(“%d,%d”,j++,j++);

}

3.说明

不要写有二义性的语句或晦涩语句,应写成多个简单语句。

如x=y+++z

printf(“%d,%d”,j++,j++)

应写为多句,或用括号说明先计算哪部分

3++(错误)

二、算术运算符的优先级和结合性

1.优先级

先乘除余,后加减

3+5%4-2*5

2.结合性

左结合性3*6/2*5

右结合行a=b=3

§3.7赋值运算符和赋值表达式

一、赋值运算符和赋值表达式

1.赋值运算符

C中“=”称为赋值运算符,它的作用是将一个表达式的值赋给一个变量。

赋值运算符的一般形式为:

变量=赋值表达式

例如,x=5y=(float)5/2

如果表达式值类型与被赋值变量的类型不一致,系统将会把表达式的值转换成被赋值变量的数据类型,然后再赋值给变量。

2.赋值表达式

由赋值运算符,将一个变量和一个表达式连接起来的表达式,称为赋值表达式。

(1)一般格式

变量=表达式

如:

a=5+2

(2)赋值表达式的值

任何一个表达式都有一个值,赋值表达式也不例外。

被赋值变量的值,就是赋值表达式的值。

例如,z执行“a=5+2”这个赋值表达式时,先把7的值赋给变量a,然后再让整个表达式的值等于a的值

3.举例

[例]

main()

{

inta,b;

intx,y,z;

a=5;

b=a+2;

x=y=b*10-5;

printf(“%d,%d”,a,b);

printf(“%d,%d”,x,y);

printf(“%d”,z=a+b);

}

二、复合赋值运算符

C语言还有以下的复合赋值运算符:

+=,-=,*=,/=,%=

它们的具体含义如下:

x+=3等价于x=x+3

y*=x+6等价于y=y*(x+6),而不是y=y*x+6

[例]

main()

{

inta,b;

intx,y,z;

a=5;

b+=a;

c-=b+5;

x=10;y/=2;z%=y

printf(“%d,%d”,a,b);

printf(“%d,%d”,x,y);

}

§3.8逗号运算符和逗号表达式

C语言提供一种用逗号运算符“,”连接起来的式子,称为逗号表达式。

逗号运算符又称顺序求值运算符。

1.一般形式

表达式1,表达式2,……,表达式n

2.求解过程

自左至右,依次计算各表达式的值,“表达式n”的值即为整个逗号表达式的值。

例如,逗号表达式“a=3*5,a*4”的值是60:

先求解a=3*5,得a=15;再求a*4=60,所以逗号表达式的值=60。

又例如,逗号表达式“(a=3*5,a*4),a+5”的值=20:

先求解a=3*5,得a=15;再求a*4=60;最后求解a+5=20,所以逗号表达式的值=20。

注意:

并不是任何地方出现的逗号,都是逗号运算符。

很多情况下,逗号仅用作分隔符。

3.举例

main()

{

inta,b;

a=3*5,a*4;

b=(a+=10,a++)

printf(“%d,%d”,a,b);

printf(“%d”,a,4);

printf(“%d”,(a,4));

printf(“%d”,a,b=5);

}

 

本章重点:

●格式输出语句

●格式输入语句

第四章顺序结构程序设计

§4.1赋值语句

C语言中赋值表达式加上一个分号就是一个赋值语句。

或者说C语言中赋值表达式既完成赋值功能,还本身有一个确定的值。

试理解下面的程序段:

inta,b,t;

b=3

a=b;

if(a>0)t=a;

...

inta,b,t;

b=3

if((a=b)>0)t=a;

/*if((a=b;)>0)t=a;*/

另外注意=和==的区别,一个是赋值运算符,一个是比较运算符

inta,b,c,d;

a=3;b=4;

c=(a=b);

d=c;

inta,b,c,d;

a=3;b=4;

c=(a==b);

d==c;

§4.2库函数和头文件

一、库函数

C语言中一个源程序有多个函数组成,程序总是由主函数开始执行,主函数会调用其他函数。

在C语言中系统已经提供了许多已经编写好的函数,可供用户直接调用,无需再自己编写,这些函数叫做C语言的库函数,所有库函数就组成了函数库。

C语言的函数库提供了非常丰富的库函数,这些库函数可以大致分为以下几类:

分类

举例

输入输出函数

scanf()prinft()getch()bioskey()

数学函数

sqrt()sin()abs()pow()

绘图函数

initgraph()line()circle()

文件操作函数

mkdir()rmdir()chdir()getcwd()

字符串函数

strcmp()strcpy()strlen()

其他函数

open()exit()free()

利用C语言丰富的库函数,可以编写出功能强大的程序。

当学完C语言的基础知识后,应当进一步学习C语言库函数,才能真正编写出功能强大的程序。

二、头文件

C语言中要使用库函数,应当用命令include把与该库函数相关的头文件包含进来,格式如下:

include“math.h”或  include

使用不同的库函数,应包括进不同的头文件,如使用绘图函数时,应包括进“graphics.h”,使用标准输入输出函数时,应包括进“stdio.h”等等。

C语言的头文件较多,不用死记,用时只需查查书或帮助即可,用多了,就自然记住了。

§4.3字符的输入输出

一、putchar()函数

1.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 军事

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1