C语言笔记.docx

上传人:b****8 文档编号:30659785 上传时间:2023-08-19 格式:DOCX 页数:41 大小:76.17KB
下载 相关 举报
C语言笔记.docx_第1页
第1页 / 共41页
C语言笔记.docx_第2页
第2页 / 共41页
C语言笔记.docx_第3页
第3页 / 共41页
C语言笔记.docx_第4页
第4页 / 共41页
C语言笔记.docx_第5页
第5页 / 共41页
点击查看更多>>
下载资源
资源描述

C语言笔记.docx

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

C语言笔记.docx

C语言笔记

第一章

1

2

3.C语言的基本结构

#includinclude:

包含,包括

voidmain()字母()表示一个函数

{

printf(“hello,world!

\n”);

}

说明:

1>#include是编译预处理命令

是标准输入输出库

2>voidmain()

void是空类型,无返回值

main主要的

main():

主函数,C程序至少有且仅有一个main函数构成,程序的执行总是从main函数开始,并且结束于main函数,而不论main函数的位置如何。

3>函数是C语言的基本单位。

函数由(函数首部,函数体)构成

(声明,执行)

声明部分必须放在执行的前面。

4>printf(“hello,world!

”);

\n是转义字符,表示换行。

;表示C语句的结束。

5>C语言区分大小写。

6>C语言本身没有输入输出语句,其输入输出操作完全由函数来完成。

7>程序书写格式自由。

 

#include

voidmain()

{

inta=3,b=4,sum;

sum=a+b;

printf(“sum=%d”,sum);

}

说明:

int:

是一种数据类型,表示整型数据,占两个字节空间

inta=3,b=4,sum;要在内存空间中分配存储空间,赋值。

 

printf格式:

printf(“格式控制串”,输出项);

格式控制串包含两种信息:

1)普通字符或转义字符,会原样输出。

2)格式字符(用%开头),不会原样输出。

注:

除了%开头的,其他的原样输出。

格式串与输出项数目要一致。

%d:

是整数

%c:

是字符

%f:

是小数

4.上机:

1>编辑源程序(*.c)

2>编译,生成目标程序(.obj)

3>目标程序经连接生成可执行程序(.exe)

F9:

编译查错

F3:

加载程序

F2:

保存

F10:

选择菜单

Ctrl+F9:

运行

Alt+F5:

跳转到用户界面

getch();跳转到用户界面

clrscr();清屏,要放在声明之后,输出之前。

第二章

1.算法的特点:

1>有穷性2>确定性3>有效性

4>有零个或多个输入5>有一个或多个输出

2.算法的描述

1>文字2>图形(流程图,N-S图)N-S图无流程线

菱形--------判断

矩形--------处理

 

3.结构化程序设计的三大结构

1>顺序结构

2>选择结构

3>循环结构

1)“当”型循环:

先判断后执行

2)“直到”型循环:

先执行后判断

 

第三章

1.数据类型

1>基本类型:

1)整型:

关键字占用空间

短整型short2个字节

整型int2个字节

长整型long4个字节

2)字符型:

char1个字节

3)浮点型:

(实型)单精度浮点float4个字节

双精度浮点double8个字节

 

数据类型决定三个方面:

a.决定所占空间大小,可以使用sizeof进行测试:

#include

voidmain()

printf(“%d”,sizeof(long));

}

b.决定所表示的数据范围。

整型类型的有关数据

类型

比特(位)数

取值范围

[signed]int

16

-32768~32767即-215~(215-1)

Unsignedint

16

0~65535即0~(216-1)

[signed]short[int]

16

-32768~32767即-215~(215-1)

Unsignedshort[int]

16

0~65535即0~(216-1)

long[int]

32

-2147483648~2147483648即-231~(231-1)

unsignedlong[int]

32

0~4294967295即0~(232-1)

 

浮点型数据

类型

比特(位)数

有效数字

数值范围

Float

32

6~7

-3.4*10-38~3.4*10-38

double

64

15~16

-1.7*10-308~1.7*10-308

longdouble

128

18~19

-1.2*10-4932~1.2*10-4932

c.决定所能进行的操作

低位

高位

符号位

2个字节中分高低位,高位第一个位为0时表示正数,为1时表示负数

[signed]int=int分正负signed:

符号

Unsigned代表数值的一部分

2.常量与变量

1>标识符:

用来标识常量,变量,数组,函数等名字的。

规则:

由字母,数字,下划线构成,且第一个字符必须为字母或下划线。

关键字不能作为标识符

2>常量

1)符号常量:

定义格式:

#define符号值

#definePRICE30define:

定义

voidmain()function:

函数

{intnum=10,tatal;

tatal=num*PRICE;

printf(“tatal=%d”,total);

}

2)直接常量:

整型常量:

十进制八进制(用0开头)十六进制(以0X开头)

(0~7)(0~9,a~f)

浮点型常量:

小数点指数形式(e的前面必须有数字,后面必须为整数)

字符型常量:

用单引号引下来的一个字符

所有字符都有是以ASCII码的形式存储的。

‘A’-------65‘a’---------97

转义字符:

用\表示

字符形式

含义

ASCII代码

\n

换行,将光标移到下一行开头

10

\t

水平制表(跳到下一个输出区,8个光标为一个输出区)

9

\b

退格,将光标移到前一列

8

\r

回车,将光标移到本行开头

13

\f

换页,将光标移到下页开头

12

\\

代表一个反斜杠字符“\”

92

\’

代表一个单引号字符

39

\”

代表一个双引号字符

34

\ddd

1~3位八进制代表的字符(要转化为十进制再找ASCII码对应的字符)

\xhh

1~2位十六进制代表的字符(同八进制方法)

字符串:

用双引号引起来的多个字符

\0

\0

a

a

“abded”“”表示空串

‘a’--------“a”--------“”----

字符串自动添加字符串结束标志\0

字符串用字符数组来存储。

 

符号(#define)

十进制

整型八进制

常量十六进制

直接小数点

浮点

指数

字符(’a’)

字符串(”a”)

3>变量(三个方面)

(1)定义:

格式:

数据类型变量1,变量名2,……

inta,b,c

doublex,y

(2)初始化(变量定义时直接赋初值)

格式:

数据类型变量名=值

inta=1,b=2,c=3;

(3)使用:

变量先定义后使用。

(4)分类:

根据数据类型分(整型,浮点,字符没有字符串变量)

a‘a’“a”

标识符字符字符串

3.不同数据类型之间的转换

高doublefloat

水平方向为必定转换,

纵向表示当运算对象为不同

long

类型时转换的方向。

隐式转换

unsigned

低intshort,char

i+c+f-d

inti;

intint

floatf;

intdoubledouble

charc;

doublec;

double

double

%f默认小数点后面有六位数0.000000

%.2f小数点后面保留两位数0.00会进行四舍五入

显示转换(强制类型转换),不会进行四舍五入。

格式:

(类型)表达式同类型相除得到结果也是

(int)3.6----------3此类型,不同类型以高级

(double)(3/2)--------1.0别为结果。

(double)3/2------------1.5

4.运算符与表达式

1>算术运算符

+-  *  / %(求余)

   说明:

     %:

求余运算要求两个运算量必须是整型。

      5%2――――1

      2%5―――――2(当除数小于被除数时取除数为值)

2>自增运算符

   ++   ――

   功能:

使变量本身加1或减1

   格式:

      前置:

  inti=3;

++i;i的值增加1变为4,表达式的值是变量变化以后的值4

后置:

inti=3;

i++;i的值增加1变为4,表达式的值是变量变化前的值3

3>赋值运算符

1)简单的赋值运算

赋值符号(=)的左边必须为变量

intnum;

num=10;

赋值表达式的值与变量的值相等

2)复合赋值运算

+=-=   *=   /=   %=

      a+=3 相当于a=a+3

      x*=x+y  相当于 x=x*(x+y)

      赋值运算的嵌套

       x=y=z=1――――――x=(y=(z=1))

4>逗号运算符

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

   逗号表达式的值是最后一个表达式的值。

    a=3*5,a*4       60

    a=3*4,a*4,a+5   20   a*4没有赋值给a

    a=a*5,a*=4,a+5  65   a*=4赋值给a

 

第四章 顺序结构的程序设计

1字符输入输出函数

   #include

1>字符输出函数(putchar)

格式:

putchar(c);参数c可以是字符常量,字符变量或表达式。

功能:

向显示器输出一个字符。

例:

charc1=’a’;

putchar(c1);putchar(‘b’);putchar(‘b’-32);

2>字符输入函数(getchar)

格式:

getchar();

该函数无参数

功能:

从输入终端输入一个字符。

例:

charc1;

c1=getchar();

2格式化输入输出函数

1>格式化输出函数(printf)

格式:

printf(“格式控制串”,输出项);输出项若有多个,用逗号想隔开

格式控制串包含两种信息:

a.普通字符或转义字符(原样输出)

b.格式字符(用%开头)

%d:

有符号的十进制整数----------int

%o:

无符号八进制整数

%x:

无符号十六进制整数

%u:

符号十进制整数-------------unsignedint

补充:

负数的存储----------补码的形式

以-4为例:

原码:

除了最高位符号位以外,其余表示这个数的绝对值

补码:

对原码取反加1,(除了符号位)

%c:

对应一个字符输出

%s:

对应一个字符串输出

%f:

以小数点的形式输出,保留6位小数

%e:

以指数形式输出

%g:

选用%f或%e格中输出宽度较短的一个,不输出无意义的0。

printf的修饰符:

(1)l(long):

%ld--------长整型

例:

longx=65536;

printf(“%ld”,x);

(2)m:

m是一个正整数,表示数据的域宽。

如果m>数据本身的宽度,则左补空格,靠右对齐。

如果m<数据本身的宽度,则原样输出。

(3)-:

左对齐

(4)n:

对于浮点型,表示保留小数的位数

          对于字符串,表示要截取字符个数

        floatx=1.2345;printf(“%s”,”Hello”);

printf(“%.2f”,x);printf(“%.2s”,”Hello”);

(5)#:

对于八进制,十六进制数输出前导0或0x.

   2>格式化输入函数 scanf()

格式:

scanf(“格式控制”,地址)

地址使用取地址运算符:

&

inti,j;

scanf(“%d%d”,&i,&j);

如果格式控制串中只有格式字符,那么输入数据可使用空格,回车,TAB键隔开数据。

例:

inti,j,m;

scanf(“i=%d,j=%d”,&i,&j);

如果有其他字符,则原样输入。

i=19,j=23

例:

charc1,c2,c3;

scanf(“%c%c%c”,&c1,&c2,&c3);

ABC

如果使用%c格式时,空格,回车,TAB将作为有效字符读入。

scanf的修饰符:

m:

表示截取数据宽度。

例:

inty,m,d;

scanf(“%4d%2d%2d”,&y,&m,&d);

输入:

20100630

*:

表示数据被读入但不赋给任何变量,数据被跳过。

第五章选择结构

1运算符

1>关系运算符

<<=>>===!

=

关系表达式的值(两个);

0(假):

式子不成立

1(真):

式子成立

2>逻辑运算符(0,1)

(非)&&(与)||(或)

&&(与):

并且

0&&00

0&&10

1&&00

1&&11

||(或)

0||00

0||11

1||01

1||11

注:

(1)非零即为真

3‘a’-5………………1

3………………0

(2)‘短路’特性

A&&B如果A为0,则不必计算B的值

只有A为1时,才计算B

A||B只有A为1时,则不必计算B的值,

只有A为0时,才计算B

#include

voidmain()

{intx=1,y=2,z;

z=x++||y++;

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

}

3>条件运算符(唯一的三目运算符)

格式:

表达式1?

表达式2:

表达式3

执行过程:

判断表达式1是否成立,成立则取表达式2的值为整个式子的值,

不成立则取表达式3的值为整个式子的值

例:

intx=3,y=5,z;intx=13,y=5,z=7,m;

z=x>y?

x:

y;m=(x>y?

x:

y)>z?

(x>y?

x:

y):

z;

条件运算的嵌套

4>总结

++-(类型)&sizeof()------------单目运算

算术运算*/%+ -

关系运算,逻辑运算,条件运算,赋值运算,逗号运算

2.C语言

分类:

1>表达式语句c=a+b;

2>空语句(空操作);

3>函数调用语句

4>控制语句break

5>复合语句:

用大括号括起来的两条或两条以上的语句

{

[声明]……………………可以省略

执行

3.if语句

三种形式

1>形式一:

if(条件)

语句(组)

执行:

条件成立,执行语句(组),

条件不成立,执行if结构后面其它语句(组)

if语句的管辖范围:

在缺少大括号的情况下,if只管到第一个分号,如果有大括号,则管大括号内的所有语句

2>形式二:

if(条件)例:

z=x>y?

x:

y;

语句(组)if(x>y)

elsez=x;

语句(组)else

z=y;

 

3>形式三:

if(条件)

语句

elseif(条件)语句

elseif(条件)语句

else语句

4>if语句的嵌套:

在缺少大括号的情况下,else总是与它上面最近的未配对的if配对

4.switch语句(多分支选择结构)

格式:

swith(表达式)

case常量1:

语句1;break;

case常量2:

语句2;break;

………………

case常量n:

语句n;break;

default:

语句n+1;

}

例:

学生分数分ABCDE等级,求对应的分数

#include

voidmain()

{

chargrade;

scanf(“%c”,&grade);

swith(grade)

{

case‘A’:

printf(“score>=90\n”);break;

case‘B’:

printf(“score>=80\n”);break;

case‘C’:

printf(“score>=70\n”);break;

case‘D’:

printf(“score>=60\n”);break;

case‘E’:

printf(“score<60\n”);break;

default:

printf(“error!

”);

}break:

终止

第六章循环结构

1.if-goto构成的循环

2.while循环

格式:

while(循环条件)

循环体语句

执行过程:

首先判断循环条件是否成立,成立执行循环体语句再判断循环条件。

不成立,循环体语句不运行,循环结束。

注:

(1)while循环是先判断后执行,循环体有可能一次也不运行。

(2)循环结束的条件:

a.循环条件不成立,循环正常结束

例:

intn=1;

while(n++<=2);

printf(“%d”,n);

b.循环体中有break,循环提前结束。

例:

如上n=4

c.while

(1)无限循环(死循环)

3.do-while

格式:

do例:

求1—100所有数的和;

循环体语句{inti=1,sum=0;

while(条件);do

{sum=sum+i;

do-while循环的特点:

i++;

先执行,后判断}

循环至少执行一次while(i<=100);

printf(“%d”,sum);

}

4.for循环

格式:

for(表达式1;表达式2;表达式3)

循环体语句

表达式1:

循环变量赋初值

表达式2:

循环条件

表达式3:

循环变量增(减)值

执行过程:

abd

for(表达式1;表达式2;表达式3)例:

1—100求和,

循环体语句for(i=1;i<=100;i++)

csum=sum+i;

for:

先判断,后执行

b

a

cd

注:

(1)表达式1可以省略,在for前面有所赋值(;不能省)

(2)表达式2可以省略,认为循环条件永远为“真”值

(3)表达式3可以省略,把表达式3放在循环体里

(4)表达式1可放与循环变量无关的参数

for(sum=0,i=1;i<=100;i++)

循环次数确定(5)for(i=1;i<=100;)

sum=sum+(i++);sum=sum+i;for(i=1;i<=100;sum=sum+(i++))

i++;;

表达式3可以放不是循环变量的表达式

循环次数不确定(6)for(;(ch=getchar())!

=’#’;)

‘当’型循环…………whilefor

‘直到’循环………………do-while

5.循环嵌套九九乘法表

{inti,j;

for(i=1;i<=9;i++)

{for(j=1;j<=9;j++)

printf(“%d*%d=%-3d”,j,i,i*j);

printf(“\n”);

}

}

6.循环控制语句

1>break语句

作用:

终止并跳出最内一层的结构

break可用于switch和循环中

例:

判断m是否为素数

main()

scanf(“%d”,&m);

for(i=2;i

if(m%i==0)

break;prime素数

if(i

printf(“%disn’taprime“,m);

else

printf(“%disaprime”,m);

}

2>continue语句

作用:

结束本次循环,跳过循环体中尚未执行的语句,进行下一次循环的判定。

 

第七章数组

1.一维数组(数值)

1>概述:

数组:

一组具有相同数据类型的数.

数组元素:

数组中每一个数

2>数组的定义:

格式:

数据类型数组名[元素个数]

例:

inta[5];

注:

(1)数组名的含义:

数组名代表数组的起始地址,是地址常量。

a++错误a+1正确,代表着下一个元素的地址

aa+1a+2a+3a+4

 

a[0]a[1]a[2]a[3]a[4]

(2)数组元素:

格式:

数组名[下标标号]

下标标号是从0开始的

数组元素实际上是变量,所有变量能参加的运算,数组元素都可以参加

a[0]=10

a[0]+

3>数组的初始化:

数据类型数组名[元素个数]={值,值,…………值};

inta[5]={1,3,4,5,6};

注:

(1)部分元素赋初值,没有赋值的元素自动填充0

inta[5]={1,4,5};

(2)如果全部元素赋初值,可省略数组长度

inta[]={1,3,45,7,4,2};

数组的长度由赋初值的元素个数来确定。

4>数组的使用:

输入:

inta[5],i;

for(i=0;i<=5;i++)

scanf(“%d”,&a[i]);

输出:

for(i=o;i<5;i++)

printf(“%d”,a[i]);

2.二维数组:

1>定义格式:

数据类型数据名[行数][列数]

intb[3][4];

二维数组是以行优先的顺序来存储的。

bb[0]&b[0][0]值相同,但含义不同

b+1表示下一行的地址

b[0]+1表示b[0]这一行的下一个元素的地址

b[i]+j表示b[i][j]元素的地址

bb+1b+2

b[0]b[1]b[2]

b[0]+1b[0]+3

b[0][0]

2>初始化

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

当前位置:首页 > 农林牧渔 > 林学

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

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