C语言 学习记要.docx

上传人:b****4 文档编号:2952827 上传时间:2022-11-16 格式:DOCX 页数:19 大小:29.04KB
下载 相关 举报
C语言 学习记要.docx_第1页
第1页 / 共19页
C语言 学习记要.docx_第2页
第2页 / 共19页
C语言 学习记要.docx_第3页
第3页 / 共19页
C语言 学习记要.docx_第4页
第4页 / 共19页
C语言 学习记要.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言 学习记要.docx

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

C语言 学习记要.docx

C语言学习记要

C学习记要

C语言基础

1.C程序的基本概念:

.c-.obj.exe

2.C程序设计的步骤:

分析算法代码测试后续操作

3.算法:

就是对问题求解的步骤进行描述(程序流程图、伪代码、N-S流程图)

算法的基本特点:

有穷性、可行性、确定性、输入与输出。

例:

输入两个数,求其最大数。

输入两个数X和Y

Ifx>y

输出X;

否则输出Y;

结束

 

4.结构化的程序设计:

顺序、选择、循环、函数(模块)

5.一个基本的C语言程序:

#include/*stdreaminput&output.head*/

main()

{

intx,y;/*定义了两个整型数X和Y;*/

/*x=x+y;*/

scanf(“%d%d”,&x,&y);/*从键盘上输入两个整型数放入X和Y中;*/

if(x>y)/*判断两个数的大小*/

printf(“Themaxnumberis%d\n”,x);

else

printf(“Themaxnumberis%d\n”,y);

}

C语言的基本元素:

标识符、运算符、分隔符、其它特殊符号。

C语言的基本结构:

编译预处理部分、外部数据和类型定义、功能执行部分。

编译预处理:

在程序执行之前就预先操作的部分(用#打头的部分);

外部数据和类型定义:

全局变量和用户类型。

功能执行部分:

函数部分(主函数、系统函数、用户自定义函数)

C语言的语法单位:

语句、命令行、控制结构

语句的分类:

定义和说明语句、函数调用语句、功能语句(表达式语句)、注释语句、空语句、复合语句(除注释语句外其它语句都必须以;作为结束标志,并且;是属于语句,不是分隔符);

控制结构:

if-else、switch-case、for、while、break、continue、goto、exit、do-while

C标识符:

标识一个对象(给一个对象起的名字)

关键字:

系统保留字(由系统定义具有某些特殊意义的)35个;

预定义标识符:

大部分是系统定义的函数名;300个左右。

用户自定义标识符:

由用户自定义的一个长度不超过32/255个字符的;不能于关键字重复;区分大小写;有意义的;只能由字母、数字和下划线组成并且起始字符不能是数字。

运算符:

优先级、结合性。

算术运算符:

-(取负)*/%(取余mod)+-

关系运算符:

>>=<<===!

=

逻辑运算符:

!

(not)&&(and)||(or)运算时对于非零值做真处理。

赋值运算符:

=*=/=+=-=%=

运算符的左边必须是一个变量;左值(变量在赋值号的左边,代表的是变量的地址),右值(变量出现在赋值号的右边,代表的是变量的内容)。

运算的方向是右结合性;

当运算符两边的类型不一致时,使用赋值兼容规则:

Charshortintintlongfloatdouble

特殊运算符:

++--,*&().->[]?

:

++,--:

这种运算符有两种使用位置,

前缀:

运算符放在运算量的前面;

先把运算量的值增1,再取表达式的值参与运算。

后缀:

运算符放在运算量的后面;

先取表达式的值参与运算,再把运算量的值增1;

,:

逗号运算符,用逗号把多个表达式组成一个整体,逗号表达式的值用最后一个表达去描述。

位运算:

~|&<<>>^

运算量:

可以操作的变量、常量、表达式等。

表达式:

由运算量和运算符所构成一个有值的式子。

常量:

常数

文本常量:

整型、实型、字符型、字符串型。

整型常量:

十进制、八进制、十六进制三种表达方式。

十进制:

0~919023190x13

八进制:

0~701+07=010(前导符)0233*8^0+2*8^1=19

十六进制:

0~9a,b,c,d,e,f0x1+0x9=0xa0x1+0xf=0x10

对于N进制十进制:

XmXm-1Xm-2…..X1X0=Xm*N^m+Xm-1*N^(m-1)+….+X1*N^1+X0*N^0

整型常量在机器存储以补码的形式存储。

二进制原码、反码、补码;

最高位用来表示符号位,0表示正数,1表示负数;

对于正数原码=反码=补码;

对于负数反码是在原码的基础保持符号位不变,其它位取反;补码是在反码的基础上加1所的;

实型常量:

小数方式、科学计数法两种表达方式。

小数方式:

2.5.52.

科学计数法方式:

314.15E-2

符号常量:

ConstfloatPi=3.141593;

变量:

是用来描述一个可变化的量,使用前要定义;

因为两点:

定义之后可以明确变量的类型;可以知道变量的存储空间大小;

定义格式:

  [存储类型] 数据类型 变量名[=初值];

变量名称:

是一个合法的标识符即可;

变量类型:

数据类型(char,int,long,float,double)

变量内容:

变量中的值(如不赋初值则为随机值);

变量地址:

变量在内存所占空间的编号。

数据类型:

char:

  字符型,1B 0~255

int:

整型数  2B(4B)   -32768~32767-215~215-1

long:

  长整型 4B  -231~231-1

float:

浮点数  4B  -1038~1038有效位为6位

double:

双精度的定数  8B-10308~1030814位

C语言的输入与输出

输入与输出的机制:

借助函数来实现。

#include输入与输出头文件stdreaminput&output.head

输出函数:

格式:

printf(格式字符串[,输出列表];

功能:

把输出列表中对应项以格式字符串对应格式输出到屏幕上;

格式字符串:

用一对双引号括起来的一串字符;

包括两种字符:

普通字符、格式字符;

格式字符是以%打头的后面跟着如下一些的字符:

dioxegfspc%

格式项是用来对输出项进行格式化输出的;

场宽控制符:

总宽度和小数位宽度,小数位宽度始终起作用,总宽度可以自动突破。

左对齐:

-,如果有左对齐符号和前导符号,则左对齐起作用。

前导符0:

0。

让输出在右对齐的时候左边不够的地方用0去填充;

进制前导符:

#,让以八进制、十六进制格式输出的数据前自动带前导。

注意点:

1)格式项的个数应与输出项的个数一致;

2)格式项所描述的类型也应与输出项一一对应。

3)输出函数具有输出和计算的双重功能。

4)printf函数中计算的顺序是自右至左的。

5)函数具有返回值,是输出在屏

6)幕上的字符的个数。

输入函数:

Scanf:

Scanf(格式控制字符串,地址列表);

格式字符串:

同输出函数,用%打头,后接格式字符(d,c,f,s)组成一个格式项;

地址列表:

因为输入的数据要存放起来才可以使用,所以必须用地址值来描述具体应该存放的位置。

&(取地址运算);

也可以控制输入项的场宽。

但是不能控制小数位宽度。

注意点:

1)格式项的个数和类型要与对应的输入项一致。

2)输入项必须是地址值,用&来取对应变量的地址;

3)在输入多个值时要注意每个值之间的分隔符;

4)函数有返回值,是正确获得输入项的个数;

5)输入函数可以跳`w;

例1:

从键盘上输入两个整型数,把它们交换后输出;Swap

分析:

1)定义两个整型变量;

2)利用函数输入两个整型值;

3)把两个数相互交换;

4)把交换后的两个数输出;

代码:

#include

main()

{

intx,y;

scanf("%d%d",&x,&y);

intt;

t=x;

x=y;

y=t;

printf("交换前:

x=%d,y=%d\n",x,y);

x=x+y;

y=x-y;

x=x-y;

printf("交换后:

x=%d,y=%d\n",x,y);}

选择结构

1)使用的运算符一般就是关系和逻辑运算符;

1.逻辑运算符的运算规则:

,&&,||

&&:

当第一个运算量值为假时,第二个不用去计算。

||:

当第一个运算量值为真时,第二个不用去计算。

2.关系运算符中尽量不要对实型数进行等于比较;

2) if–else结构

1.完整格式:

if条件

真语句

[else

假语句]

2.嵌套的结构:

在某个子句内又出现IF结构。

在嵌套的IF结构中注意Else的配对问题。

3.条件表达式的结果一般是个逻辑值,若不是逻辑时也只需计算出值然后按照非0为真,0为假的原则即可。

3)条件运算符:

条件?

表达式1:

表达式2,

运算规则:

首先判断条件是否成立,若成立则取表达式1的值做为结果;否则取表达式2的值做为结果;结合性为右结合性。

4)多分支选择结构(switch-case)

格式:

switch(条件)

    {

       case情况1;语句1;[break;]

case情况2;语句2;[break;]

……

case情况n;语句n;[break;]

default:

语句n+1;

注意点:

条件应是整型值;当所有情况都不成立才去执行default部分;应在每个功能语句后加break结构让switch真正分支执行。

第五章

循环结构

1)while循环(当型循环)

格式:

while(条件)

循环体;[break;][continue;]

例2:

从键盘上输入若干个正整数,求其最大数。

输入以-1做为结束!

Main()

{intx,max;

scanf(“%d”,&x);max=0;//过滤非有效数据;只输入一个结束标志数时。

while(x!

=-1)

{

if(max

scanf(“%d”,&x);

}

if(max>0)

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

}

2)For 循环

格式:

for(初值表达式;条件表达式;循环控制变量改变)

循环体[break;][continue]

执行过程:

首先计算表达式1的值,接着去判断表达式2是否成立,若成立则转去执行循环体,若不成立就退出循环。

循环体执行完以后转去执行表达式3,接着继续判断表达式2是否成立一直到不成立退出循环。

3)do_while循环

格式:

do

循环体

[break;][continue]

while(条件表达式);

例3:

求两个整数的最大公约数;GCD(m,n)    辗转相除法。

算法:

1.首先把M除以N的余数放入T中;

2.判断T是否为0,若T为0则N为两个数的最大公约数;

3.若T不为0;把N的值放入M中,把T的值放入N中;再拿M除以N余数放入T中;

4.回到第二步去判断。

一直到T为0时结束,N中存放的就是两者最大公约数。

#include“stdio.h”

main()

{

intm,n,t,x,y;

scanf(“%d%d”,&m,&n);

x=

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

当前位置:首页 > 外语学习 > 日语学习

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

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