ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:24.50KB ,
资源ID:2008514      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2008514.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(少英C语言自学笔记.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

少英C语言自学笔记.docx

1、少英C语言自学笔记一、运算符1、算数运算符: + * / (除) %(取余数)2、关系运算符: = 关系 逻辑 赋值二、什么是字节字节就是存储数据的单位,并且是硬件所能访问的最小单位。1字节 = 8位 1K = 1024字节 1M = 1024K 1G = 1024M三、常量以什么样的二进制代码存储在计算机中的1、整数是以补码的形式转化为二进制代码存储在计算机中的2、实数是以IEEE754标准转化为二进制代码存储在计算机中的3、字符的本质实际也是与整数的存储方式相同四、格式输出函数( printf ) printf函数的作用是向终端(输出设备)输出若干任意类型的数据。其一般格式为:printf

2、(格式控制,输出列表) 格式控制是用双引号括起来的字符串(称为转换控制子符串),包括格式字符、普通字符。格式字符是将输出的数据转化为指定的格式输出,以“%”字符开头;普通字符是需要原样输出的字符,包括双引号内的逗号、空格和换行符。printf( )的4种用法:1、printf(“字符串”)2、printf(“输出控制符”,输出参数)3、printf(“输出控制符1 输出控制符2 .”,输出参数1,输出参数2.) 输出控制符与输出参数的个数必须一一对应4、printf(“输出控制符 非输出控制符”,输出参数) Printf函数的附加格式说明字符: l 用于长整型整数,可加在格式符d、o、x、u前

3、面 m (代表一个整数) 数据最小宽度 n (代表一个整数) 对实数,表示输出n位小数;对字符串,表示截取的字符个数 - 输出的数字或字符在域内向左靠 %ms 即 %10s 表示输出字符串占m列,如果字符串本身长度大于m,则将字符串全部输出,若字符串长度小于m,则在字符串的左侧用空格补全。 %m.ns 即 %10.3s 表示输出占m列,但只取字符串左端n个字符,这n个字符输出在m列的右侧,左补空格。 %-ms 即 %-10s 表示如果字符串长度小于m,则在m列范围内,字符串向左靠,右补空格。 %-m.ns 即 %-10.3s 表示n个字符输出在m列范围内的左侧,右补空格;如果nm则m自动取n值

4、,即保证n个字符正常输出。五、格式输入函数( scanf )scanf函数的功能是指固定的格式,并按照指定的格式接收用户在键盘上输入的数据,最后将数据存储在指定的变量中。其一般格式为:scanf(格式控制,地址列表),取地址符&。scanf函数的附加格式说明字符 l 用于输入长整型数据(可用于%ld、%lo、%lx、%lu)及double型数据(%lf、%le) h 用于输入短整型数据(可用于%hd、%ho、%hx) n (整数) 指定输入数据所占宽度 * 表示指定的输入项在读入后不赋给相应的变量 输入/输出控制符:%d int 输入/输出(有符号)十进制整型%ld long int 输入/输

5、出(有符号)十进制长整型%u 用来输入/输出(无符号)十进制整型%c char 输入/输出单个字符%f float 输入/输出单精度浮点型%lf double 输入/输出长双精度浮点型%x (或者 %X 或者 %#X) int 或 long int 或 short int 十六进制输入/输出%o int 或 long int 或 short int 八进制输入/输出%s 输出字符串五、if的用法 if语句有3中形式,分别为:if语句形式、if.else语句形式、else if语句形式。 (if默认的只能控制一个语句的执行或不执行。) if语句形式: if(表达式) 语句 ifelse语句形式:

6、 if(表达式) 语句块1; else 语句块2;else if语句形式:if(表达式1) 语句1; 表达式1成立,执行语句1 else if(表达式2) 语句2; 表达式1不成立,表达式2成立,执行语句2 else if(表达式3) 语句3; 表达式1、2不成立,表达式3成立,执行语句3 : else 语句n; 以上表达式均不成立,执行语句nif的嵌套形式: if(表达式1) if (表达式2) 语句块1; else 语句块2; else if(表达式3) 语句块3; else 语句块4; 在使用if语句嵌套时,应注意if与else的配对情况;else总是与其上面的最近的未配对的if进行配对

7、。六、常用转义字符表n 回车换行 t 横向跳到下一制表位置v 竖向跳格 b 退格r 回车 f 走纸换页 反斜线符“” 单引号符a 鸣铃 ddd 13 位八进制数所代表的字符xhh 12 位十六进制数所代表的字符七、条件运算符( ? )条件运算符对一个表达式的真或假值进行,然后根据检验结果返回另外两个表达式中的一个。条件运算符的一般形式:表达式1?表达式2:表达式3;在运算中,先对表达式1的值进行检验,如果只为真,则返回表达式2的结果值;如果为假,则返回表达式3的结果值。八、switch语句switch语句是多分支选择语句(提高可读性),switch语句检验的条件必须是一个整型表达式(可包含运算

8、符和函数调用);而case语句检验的值必须是整型常量(可以是常量表达式或常量运算)。switch语句的一般形式为: switch(表达式) case情况1: 语句块1; break; case情况2: 语句块2; break; case情况n: 语句块n; break; default: 默认情况语句块; break;在每一个case或default语句后都有一个break关键字,break语句用于跳出switch结构,不再执行switch下面的代码。如果将case后面的(break)去掉,则会将case检验相符情况后的所有语句进行输出;任意两个case语句都不能使用相同的常量值。在使用swi

9、tch语句时,如果没有一个case语句后面的值能匹配switch语句的条件,就执行default语句后面的代码,每一个switch结构只能有一个default语句。 九 、循环语句 1、while语句: 使用while语句可以执行循环结构,其一般形式为: while(表达式)语句 。while语句先检验一个条件,即括号中的表达式;当表达式为真时,则执行紧跟其后的语句或语句块。每完成一遍循环,程序都将回到while语句处,重新检验条件是否为真。若为真,那么循环将一直执行,直到条件为假时,循环终止。若一开始条件就为假,则循环一次也不执行,直接执行后面的程序代码。 2、do-while语句: do-

10、while语句先执行循环体语句中的内容,再判别表达式,若表达式为真,返回重新执行循环体语句,执行循环;直到表达式的判断为假时,循环终止。其一般形式为: do 循环体语句 while(表达式);while语句与do-while语句的区别:while语句在每次循环之前检验条件,do-while语句则在每次循环之后检验条件。 3、for语句: for语句的一般形式为: for(表达式1;表达式2;表达式3)当执行for语句时,程序先计算表达式1的值,再计算表达式2的值,若表达式2的值为真,则执行循环体的内容,并计算表达式3的值;然后检验表达式2,为真,执行循环,如此反复,直到表达式2的值为假,退出循

11、环。十、转移语句 1、goto语句: goto语句为无条件转向语句,可以使程序立即跳转到函数内部的任意一条可执行语句;其一般形式为:goto 标识符; 。goto后的标识符就是要跳转的目标,当然这个标识符要在程序的其它位置给出,但是其标识符要在函数内部。 如: goto Show; printf(“第一个”); Show: printf(“第二个”); goto后的Show为跳转的标识符,而其后的Show:代码表示goto语句要跳转的位置;因此,上面语句中的第一个printf函数不会执行,而会执行第二个printf函数。跳转的方向可向前、可向后;可跳出一个循环,也可跳入一个循环。十一、数组 1

12、、一维数组 (用以存储一维数列中数据的集合) 一般形式为: 数据类型 数组名 常量表达式 ; 如:int Array5; 类型说明符表示数组中所有元素的类型。 数组标识符就是数组变量的名称,命名规则与变量名一致。 常量表达式定义了数组中存放的数据元素的个数,即数组长度。如:int Array5;5表示数组中有5个元素,下标从0开始,到4结束 = 【不可使用元素Array5,否则会出现下标越界的错误】。 一维数组的初始化: 在定义数组时可直接对数组元素赋初值,如:int Array6=1,2,3,4,5,6; 可以只给一部分元素赋值,未赋值的部分元素值为0。(赋值顺序由前至后) 在对全部数组元素

13、赋初值时可以不指定数组长度,如:int Array=1,2,3,42、二维数组 一般形式为: 数据类型 数组名 常量表达式1 常量表达式2 ;其中:“常量表达式1”被称为行下标,“常量表达式2”被称为列下标。如:二维数组 int Array n m ; 其行下标取值范围为0 (n-1),列下标取值范围为 0 (m-1)。 二维数组的最大下标元素是Array n-1 m-1 。 下标可以是整型常量或整型表达式。 不管是行下标还是列下标,其索引都是从0开始的。二维数组的初始化跟一维数组一样,也可以在声明时对其进行初始化3、字符数组 字符数组的定义与其他数据类型的数组定义类似,一般形式为: char

14、 数组名常量表达式;十二、字符处理函数 1、字符串复制 strcpy函数功能:把源字符数组中的字符串复制到目的字符数组中,字符串结束标志“0”也一同复制。 其语法格式为:strcpy(目的字符数组名,源字符数组名); 要求目的字符数组有足够的长度,否则不能全部装入所复制的字符串。“目的字符数组”必须写成数组名形式;而“源字符数组”可以是字符数组名,也可以是一个字符串常量,这时相当于把一个字符串赋予一个字符数组。2、字符串连接 strcat函数功能:把源字符数组中的字符串连接到目的字符数组中字符串的后面,并删去目的字符数组原有的结束标志“0”。其语法格式为:strcat(目的字符数组名,源字符数

15、组名); 要求目的字符数组有足够的长度,否则不能全部装入所复制的字符串。3、字符串比较 strcmp函数功能:两个字符串从首字母开始,按照ASCLL码顺序比较两个数组中的字符串,并由函数返回值返回比较结果。其语法格式为:strcmp(字符数组名1,字符数组名2);返回值如: 字符串 1 = 字符串 2,返回值为0; 字符串 1 字符串 2,返回值为正数; 字符串 1 字符串 2,返回值为负数;4、字符串大小写转换 strupr函数功能:将字符串中的小写字母变成大写字母,其他字母不变。其语法格式为:strupr(字符串); strlwr函数功能:将字符串中的大写字母变成小写字母,其他字母不变。其

16、语法格式为:strlwr(字符串);5、获取字符串的长度 strlen函数功能:计算字符串的实际长度(不含字符串结束标志“0”),函数返回值为字符串的实际长度。其语法格式为: strlen(字符数组名);十三、函数的调用 1、函数调用方式 (包括:函数语句调用、函数表达式定义、函数参数定义3种方式) 函数语句调用:把函数的调用作为一个语句就叫函数语句调用。程序如下: # include void Display() /定义函数 printf(“just show this message。”);输出信息int main() Display(); /函数语句调用 ruturn 0; /程序结束

17、函数表达式定义:函数出现在一个表达式中,这时要求函数带回一个确定的值,这个值做为参加表达式的运算。程序如下:#includeint AddTwoNum(int iNum1, int iNum2); /*声明函数,函数进行加法计算*/int main() int iResult; /*定义变量用来存储计算结果*/ int iNum3=10; /*定义变量,赋值为10*/ iResult=iNum3*AddTwoNum(3,5); /*在表达式中调用函数AddTwoNum*/ printf(The result is : %dn,iResult); /*将计算结果进行输出*/ return 0;

18、/*程序结束*/int AddTwoNum(int iNum1, int iNum2) /*定义函数*/ int iTempResult; /*定义整型变量*/ iTempResult=iNum1+iNum2; /*进行加法计算,并将结果赋值给iTempResult*/ return iTempResult; /*返回计算结果*/函数参数调用:函数调用作为一个函数的实参,这样讲函数返回值作为实参传递到函数中使用。程序如下:#includeint AddTwoNum(int iNum1, int iNum2); /*声明函数,函数进行加法计算*/int main() int iResult; /

19、*定义变量用来存储计算结果*/ iResult=AddTwoNum(10,AddTwoNum(3,5);/*在参数中中调用函数AddTwoNum*/ printf(The result is : %dn,iResult); /*将计算结果进行输出*/ return 0; /*程序结束*/ int AddTwoNum(int iNum1, int iNum2) /*定义函数*/ int iTempResult; /*定义整型变量*/ iTempResult=iNum1+iNum2; /*进行加法计算,并将结果赋值给iTempResult*/ return iTempResult; /*返回计算结

20、果*/2、函数的嵌套调用 在C语言中,函数的定义都是平行的、独立的,即在定义函数时,一个函数体内不能包含“定义”的另一个函数;但可以嵌套调用函数。程序代码如下: int main() void Display() /错误!不能在函数内定义函数 printf(“This function is wrong”); void ShowMess( ) /定义函数 printf(“The ShowMessage funtion ”);void main( ) ShowMessage( ); /正确,在函数体内进行函数的嵌套调用3、递归调用 C语言的函数都支持递归,即每个函数都可以直接或间接地调用自己;所

21、谓的间接调用指在递归函数调用的下层函数中再调用自己。十四、内部函数和外部函数 1、内部函数 定义一个函数,该函数只被所在的源文件所使用,称这样的函数为内部函数,内部函数又称为静态函数。定义内部函数,只需在函数返回值类型和函数名前加上关键字static进行修饰: static 返回值类型 函数名 (参数列表)使用内部函数的好处是:可以使函数只局限在函数所在的源文件中,如果在不同的源文件中有同名的内部函数,则这些同名的函数是互不干扰的。 2、外部函数 外部函数就是可以被其他源文件调用的函数,定义外部函数,只需在函数返回值类型和函数名前加上关键字extern进行修饰: extern 返回值类型 函数

22、名 (参数列表) 在C语言中定义函数时,若不指明函数是内部函数、还是外部函数,那么默认外部函数,即定义外部函数时可以省略关键字extern。十五、局部变量和全局变量 1、局部变量 在一个函数的内部定义的变量(或函数的形式参数)是局部变量,局部变量的作用范围仅限于函数内部的所有语句块。在语句块内声明的变量仅在该语句块内部起作用,当然也包括嵌套在其中的子语句块。 局部变量的屏蔽作用:内层作用域中的变量间屏蔽外层作用域中的那个变量,直到结束内层作用域为止。 2、全局变量 在所有函数外部声明的变量,称为全局变量;全局变量可以在程序中的任何位置进行访问。全局变量不属于某个函数,而属于整个源文件,但如果外

23、部文件要进行使用,则要用extern进行引用修饰。 (全局变量的值的改变会影响所有引用该全局变量的函数)十六、指针 (指针的本质就是一个操作受限的非负整数) 1、指针变量的一般形式: 数据类型 * 变量名 ; 2、地址 :地址就是内存区对每个字节的编号。(指针就是地址,地址就是指针) 3、指针变量:专门用来存放另一个变量地址的变量是指针变量。 不同类型的指针变量所占的字节一样,都占4个字节。4、指针变量的运算 不能相加、相乘和相除,但可以相减。 只有当两个指针变量指向同一块连续的空间中的不同存储单元时,两个指针变量可进行相减 (程序如下) # include # include int mai

24、n()int a5,*p,*q; /定义一个一维数组和两个指针变量p = &a0; /将一维数组a的首地址赋给p q = &a4; /将一维数组a的末地址赋给q printf(“p和q所指向的单元隔%d个单元n”,q-p ); /将p-q运算的结果输出system(“pause”); /冻结屏幕,便于观察程序执行的结果reyurn 0; /程序结束5、指针的自加、自减运算假设指针p指向变量i的地址,如果i数据类型为整型,则执行p+(p-)后,p的值增加(减少)4(4个字节),如果i的数据类型为字符型,则执行p+(p-)后,p的的值增加(减少) 1(1个字节),即指针按照它所指向的的变量的数据类

25、型的直接长度进行增或减。 使用指针变量之前需先定义且赋予具体的值,未经赋值的指针变量不能使用。 给指针变量赋值只能赋予地址,若赋予任何其他数据,将引起错误。注意: 1、处理用户非法输入的代码 (即错误的代码) : while (ch=getchar() !=n) continue ; 2、除法/的运算符结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分。 如:16/5=3 16/5.0=3.20000 -13/4=-4 3/5=0 3、取余%的运算对象必须是整数,结果是整除后的

26、余数,其余数的符号与本除数相同。 如: 13%3=1 13%-3=1 -13%3=-1 -13%23= -13 4、scanf(“%d”,&ai);指从键盘获取一个十进制整数,并赋值给一维数组ai。 5、用C语言生成的可执行文件(.exe),运行结果一闪就没了,可在ruturn的语句的上面加system(pause);这条语句解决。 6、如果用 +、-、*、/ 运算的两个数中有一个为实数,那么结果是double型,这是由于所有实数都按double型进行运算的。 7、在C语言中,可以用逗号将多个表达式分隔开来,其中,用逗号分隔的表达式被分别计算,并且整个表达式的值是最后一个表达式的值。逗号表达式

27、称为顺序求值运算符,一般形式为:“ 表达式1,表达式2,表达式n ” 先求解表达式1,再求解表达式2,一直求解到表达式n,整个逗号表达式的值是表达式n的值。 8、printf函数使用的是变量的标示符,而不是变量的地址;scanf函数使用的是变量的地址,而不是变量的标示符。 9、大写字符与小写字符的ASCII码值相差32。如字符A的ASCII值为65,a的ASCII值为97,即 a的ASCII值 = A的ASCII值 + 32。 10、getcharputchar函数用于单个字符的输入输出,而getsputs函数则用于字符串的输入输出 11、srand和rand函数都包含在stdio.h头文件中

28、,srand函数的功能是设定一个随机发生数的种子,rand函数式根据设定的随机发生数种子产生特定的随机数。若在使用rand函数之前不提供种子值,也即不用srand设定种子值,则rand函数总是默认以1为种子,每次产生同样的随机数序列。 12、使用while和do-while语句循环时,循环变量初始化的操作应在while和do-while语句之前完成。 13、break语句不能用于循环语句和switch语句之外的任何其他语句中。break语句是结束整个循环过程,不再判断执行循环的条件是否成立。 14、continue语句的作用是结束本次循环,即跳过循环体中尚未执行的部分,接着执行下一次循环操作。

29、continue语句只结束本次循环,并非终止整个循环的执行。15、排序算法的比较:插入法、冒泡法、交换法排序的速度较慢,但参加排序的序列局部或整体有序时,这种排序能达到较快的速度;在这种情况下,择半法排序反而会显得速度慢了。当排序的数量n较小时,对稳定性不作要求时宜用选择排序,对稳定性有要求时宜用插入或冒泡排序。16、C程序中,不管main()函数在程序的哪个位置,程序都是从此处开始执行、在此结束;若遇到调用其他函数,则转去执行被调用的函数,该函数执行完毕后,重新返回main();只有在main()函数的所有课执行语句执行完毕时,整个C程序才执行完成。17、函数是C语言的基本单元,在函数内不可再定义其他函数。18、

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2