1 / 29
文档名称:

C语言学习大纲--郝斌(讲解)(1).doc

格式:doc   大小:93KB   页数:29页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言学习大纲--郝斌(讲解)(1).doc

上传人:mama 2024/6/26 文件大小:93 KB

下载得到文件列表

C语言学习大纲--郝斌(讲解)(1).doc

相关文档

文档介绍

文档介绍:该【C语言学习大纲--郝斌(讲解)(1) 】是由【mama】上传分享,文档一共【29】页,该文档可以免费在线阅读,需要了解更多关于【C语言学习大纲--郝斌(讲解)(1) 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。C语言概述:,这特别有助于将来对面对对象思想的学****能看懂程序会调试程序驾驭将大问题转化为一系列小问题来求解的思想为学****c++、数据结构、c#、java打下良好的基础常见的学****问题学****java为什么建议先学****C语言没学过计算机专业的课程能够学懂C语言英语和数学不好能学好C吗32个关键词:(有系统定义,不能重做其他定义)autobreakcasecharconstcontinuedefaultdodoubleelseotoifintlongregisterreturnshortsignedsizeofstaticstructswitchtypedefunsignedunsignedunionvoidvolatilewhile课程规划c语言简介第一讲、基本编程学问其次讲、数据类型第三讲、运算符和表达式第四讲、流程限制(全部语言都一样的)第五讲、函数(体现出面对过程和面对对象的区分)第六讲、数组第七讲、指针(c语言的灵魂)第八讲、变量的作用域和存储方式第九讲、扩展数据类型第十讲、专题:字符串的处理进制转换补码动态内存安排(java、数据结构必学)综合应用:链表的运用举例子:一元二次方程#include<>#include<>intmain(void){//把三个系数保存到计算机中inta=1;//=不表示相等,表示赋值intb=2;intc=3;doubledelta;//delta存放的是b*b-4*a*cdoublex1;//存放一元二次方程的其中一个解doublex2;//存放一元二次方程的其中一个解delta=b*b-4*a*c;if(delta>0){x1=(-b+sqrt(delta))/(2*a)x2=(-b-sqrt(delta))/(2*a)printf("该一元二次方程有两个解,x1=%f,x2=%f\n",x1,x2);}elseif(delta==0){x1=(-b)/(2*a);x1=x2;//右边赋给左边printf("该一元二次方程有一个唯一解,x1=x2=%f\n",x1);}else{printf("无解\n");}}Helloword程序举例#include<>intmain(void){printf("欢迎大家学****C语言!");return0;}C语言编写的病毒举例:龌龊的程序:/*龌龊的程序!/*#include<>#include<>#include<>intmain(void){intc;inti;intj;Nihao:printf("1:死机\n");printf("2:机房爆炸\n");printf("请选择:");scanf("%d,&c");If(c==1){System("shutdown-s-t60")}elseif(2==c){printf("你太坏了我要惩处你!\n");for(j=0;j<10;++j)System("start");}else{printf("你敲错了,请重新输入!\n")gotonihao;}return0;}内存泄露(占满内存)程序导致死机实例#include<>#include<>intmain(void){while(1){ int*p=(int*)malloc(1000);}return0;}C语言编程预备学问cpu内存条硬盘显卡主板显示器之间的关系Helloworld程序如何运行起来的什么是数据类型基本类型数据整数整型——int --4字节短整型——shortint ——2字节长整型——longint ——8字节浮点数【实数】单精度浮点数——float ——4字节双精度浮点数——double ——8字节字符char ——1字节复合类型数据结构体枚举共用体(已淘汰)什么是变量变量的本质是内存中一段存储空间cpu内存条vc++=要赋的值;等价于数据类型变量名;变量名=要赋的值;举例子:inti=3;等价于inti;i=3;inti,j;等价于inti;intj;inti,j=3;等价于inti;intj;j=3;inti=3,j=5;等价于inti,j;i=5;j=5;inti,j;i=j=5;等价于inti,j;i=5;j=5;什么是进制十进制就是逢十进一二进制就是逢二进一生活中用到进制的例子:一周七天:七进制一年十二个月:十二进制一小时六特别钟:六十进制电脑中的数据:二进制进制转化:什么叫进制进制就是逢几进一我们说的N进制实际就是指逢N进一我们的计算机只识别二进制人类最****惯运用的是十进制为了实际须要我们又建立了八进制和十六进制C语言规定八进制前要加0(留意是零不是字母o),十六进制前要加0X或0x,十进制前什么都不加!在汇编中:在数字后加字母B表示二进制数,加字母O表示八进制数,加字母D表示十进制,加字母H表示十六进制。例:1011B为二进制数1011,也记为(1011)21357O为八进制数1357,也记为(1357)82049D为十进制数2049,也记为(2049)103FB9H为十六进制数3FB9,也记为(3FB9)16什么叫n进制十进制十个基数,逢10进一基数:0123456789二进制二个基数逢二进一基数:01八进制8个基数逢8进一基数:01234567十六进制16个基数逢16进一基数:0123456789abcdef或0123456789ABCDEF十进制(D)二进制(B)八进制(O)十六进制(0x)00001常用计数制比照表23456789101112131415常量在c语言中如何表示的整数十进制:传统的写法十六进制:前面加0x或0X,是数字0加x八进制:前面加数字0浮点数:传统写法floatx=;//传统科学计数法floatx=;//x的值是3200floatx=-2;//'A'表示字符A'AB'是错误的"AB"是正确的字符串用双引号括起来"A"正确,因为"A"代表了'A''\0'的组合常量以什么样的二进制代码存储在计算机中整数是以补码的形式转化为二进制代码存储在计算机中的实数是以IEEE754标准转化为二进制代码储存在计算机中的具体可参见末尾的穿插在课堂中的零散学问笔记字符的本质实际也是与整数的存储方式相同代码规范化代码的可读性更高【简洁让别人和自己看懂】是程序更不简洁出错林锐《高质量C/C++编程》代码要成对的敲什么是字节字节就是存储数据的单位,并且是硬件所能访问的最小单位1字节=8位1K =1024字节1M =1024K1G =1024M买硬盘时的换算是以1000为单位的不同类型的数据之间相互赋值的问题暂不考虑inti=45;longj=102345;i=j;printf("%d%d\n",i,j);floatx=;doubley=;printf("%f%lf\n",x,y);什么是ASCIIASCII不是一个值,而是一种规定,ASCII规定了不同的字符是运用哪个整数值去表示它规定了'A'--65'B'--66'a'--97'b'--98字符的存储【字符本质上与整数的存储方式相同】基本的输入和输出函数的用法printf()----(重点讲)将变量的内容输出到显示器上四种用法printf("字符串\n")printf("输出限制符",输出参数);printf("输出字符1输出字符2。。。。",输出参数1,输出参数2,。。。);输出限制符和参数的个数必需一一对应printf("输出限制符非输出限制符",输出参数);输出限制符包含如下%d--int(十进制)%ld--longint%c--char%f--float%lf--double%x(或者%X或者%#X)--int或longint或shortint%o--同上%s--,那么同样的01代码组合以不同的输出格式输出就会有不同的输出结果scanf()----Java中已经没有了两种用法:用法一:scanf("输入限制符",输入参数);功能:将从键盘输入的字符转化为输入限制符所规定格式的数据,然后存入已输入参数的值为地址的变量中。用法二:scanf("非输入限制符输入限制符",输入参数);功能:将从键盘输入的字符转化为输入限制符所规定格式的数据,然后存入以输入参数的值为地址的变量中非输入限制符必需原样输入如何运用scanf编写出高质量代码运用scanf之前最好先运用printf提示用户以什么样的方式来输入Scanf中尽量不要运用非输入限制符,尤其是不要用\n应当编写代码对用户的非法输入做适当的处理【非重点】while((ch=getchar())!='\n') continue;运算符算术运算符+-*/(除)%(取余数)除法的运算结果和运算对象的数据类型有关,两个数都是int,则商就是int,若商有小数,则截取小数部分;被除数和除数中只要有一个或两个都是浮点型数据,则商也是浮点型,不截取小数部分。如:16/5==316/==-13/4==-4-13/-3=43/5=05/3==1最经典的例题就是求s=1+1/2+1/3+1/4+1/5......+1/100的值。取余的运算对象必需是整数,结果是整除后的余数,其余数的符号与被除数相等。如:13%3==113%-3==1-13%3==-1-13%23==-133%5==3关系运算符>>=<<=!=(不等于)==(等于)逻辑运算法!(非)&&(并且)||(或)!真假!假真真&&真真真&&假假假&&真假假&&假假真||假真假||真真真||真真假||假假C语言对真假的处理非零是真零是假真是1表示假使0表示&&左边的表达式为假右边的表达式确定不会执行||左边的表达式为真右边的表达式确定不会执行赋值运算符=+=*=/=-=优先级别算术>关系>逻辑>赋值 附录一些琐碎的运算符学问自增自减三目运算符逗号表达式流程限制(学****c语言的第一个重点) ,也可能不执行,有选择的执行某些代码分类ifif最简洁的用法格式:if(表达式)语句功能:假如表达式为真,执行语句假如表达式为假,语句不执行if的范围问题(重点)(表达式)语句A;语句B;说明:if默认只能限制语句A的执行或不执行if无法限制语句B的执行或不执行或者讲:(表达式){语句A;语句B;}此时if可以限制语句A和语句B由此可见:if默认只能限制一个语句的执行或不执行,假如想限制多个语句的执行或不执行就必需把这些语句用{}括起来。if...else...的用法if...elseif...else...的用法格式:if(表达式1)A;elseif(表达式2)B;if(表达式3)C;elseD;C语言对真假的处理非零是真零就是假真用一表示假用零表示if举例---求分数的等级if的常见问题解析空语句的问题if(3>2);等价于if(3>2);//(表达式1)A;elseB;是正确的if(表达式1);A;elseB;是错误的3. if(表达式1) A; elseif(表达式2) B; if(表达式3) C; else D;即便表达式1和2都成立,也只会执行A语句4. if(表达式1) A;elseif(表达式2) B;if(表达式3) C;这样些语法不会错,但逻辑上有漏洞、 5. if(表达式1) A;elseif(表达式2) B;if(表达式3) C;else(表达式4)//7行