c语言基础知识点
1.C语言知识总结
c语言概要 第一章、概述1、c语言的基本知识1.1、c语言的执行步骤 编辑-程序代码的录入,生成源程序*.c 编译-语法分析查错,翻译生成目标程序*.obj (语法或逻辑错误,从第一个开始改,变量定义,语句格式,表达式格式等) 链接-与其他目标程序或库链接装配,生成可执行程序*.exe 执行1.2、main函数的基本知识 main()函数的位置 c程序总是从main( )函数开始执行 一个c程序可以包含一个主函数,即main()函数;也可以包含一个main()函数和若干其它函数1.3、c程序的结构 函数与主函数 程序由一个或多个函数组成 必须有一个且只能有一个主函数main() 程序执行从main开始,在main中结束,其他函数通过嵌套调用得以执行 程序语句 C程序由语句组成 用“;”作为语句终止符 注释// 或/* */ 为注释,不能嵌套 不产生编译代码1.4、c 程序书写的规则 习惯用小写字母,大小写敏感 不使用行号,无程序行概念:通常一个语句占一行 可使用空行和空格 常用锯齿形的书写格式;同一层次结构的语句上下对齐。
第二章、基本数据类型与运算2.1、c程序的数据类型 注意类型和变量含义的不同(类型是固定好的名字,变量是自己起的名字) 变量占用的存储空间 数据类型 基本类型:整型、字符型、浮点型(单精度型,双精度型) 构造类型:数组类型、结构体类型 指针类型 空类型 注意基本类型赋初值的方式 基本数据类型的表示形式 整形数据 十进制:以非0数字开头,如:123,-9,0 八进制;以0数字开头,如:0123,067 十六进制:以0x开头,如:0x123,0xff 实型数据 十进制:必须带小数点,如:123.0,-9.0 指数形式;如:1.23E3,0.9e-2,5e2 字符型数据 普通字符:如:'a','2','H','#' 转义字符:如:'\n','\167','\xlf,'\\' (实现几列的对齐:指定宽度。如%100\ '\t'制表位) (字符串长度。
“abc\n\t\\” strlen 6; sizeof 7) 基本数据类型的存储长度 整型 Int 字节数 2 位数 16 数的表示范围 -32768—32767 Short 2 16 -32768—32767 Long 4 32 -2147483648—2147483647 实型 Float 4 32 3.4e-38---3.4e38 Double 8 64 1.7e-308---1.7e308 字符型 Char 1 8 -128----1272.2、标识符命名规则 C语言标志符命名规则 标识符有数字,字母,下划线组成 标识符的首字符必须为字母和下划线 标识符不能为c语言的保留字(关键字) 如:auto extern sizeof float static case for struct char goto switch continue in typedef const if union default long unsigned do register void double return else short while enum signed 算术运算符 + - * / % 关系运算符 > < == >= <= != 逻辑运算符 ! && || 位运算符 << >> ~ | ^ & 赋值运算符 = 及其扩展赋值运算符 条件运算符 ? :逗号运算符 ,指针运算符 * & 求字节数运算符 sizeof 强制类型转换运算符 (类型) 分量运算符 . -> 下标运算符 [ ] 其他 如函数调用运算符() 运算符的优先级 由高到低:单目运算符,算数运算符,关系运算符,赋值运算符 说明:单目运算符:自增运算符,自减运算符,类型装换运算符。结合方向:自右至左 如:++--I 先—i.。
算术运算 结合方向自左至右2.3基本运算和表达式 关系表达式和逻辑表达式(a>b)&&(x>y) (a==b)||(x==y) !=a||(a>b) A&&b.a为0.不执行b A||b a为1.不执行b 在 c 中逻辑运算结果:1代表“真”,0代表“假”;判断一个表达式是否真:0代表“假”,非0代表“真” 条件表达式 逗号表达式 如:k=5,k++ 逗号值为5;k为6.表达式1?表达式2 :表达式3 K=5>6 ? 1 : 02.4、混合运算的数据类型转换2/3+0.5 双精度浮点型 第三章、顺序结构程序设计3.1、c语句的分类 简单语句 表达式语句 表达式+分号 空语句 只有分号的语句 复合语句 用花括号将若干语句括起来 流程控制语句 选择语句 if ,switch 循环语句 while, do while , for 转移语句 break ,continue ,return goto3.2、格式输入函数scanf 一般形式:scanf(“格式控制字符串“,地址列表);使用scanf函数时,需要注意:格式字符的个数必须与输入项的个数相同,数据类型必须一一对应,非格式字符串(说明性的)要原封不动的输入。输入实行数据时,可以不带小数点,即按整型数据输入 数值型数据与字符或字符串混合输入时,需要注意输入方式。
3.3、格式输出函数printf Printf(“格式控制字符串“,输出列表);指定输出格式,由格式字符串和非格式字符串两种组成,非格式字符串照原样输出。%[标志][输出最小宽度][.精度][长度]类型 标志:- 左对齐;+ 右对齐;%f, %d, %c, %s3.4、其他输入输出函数 Putchar getchar puts gets 第四章、选择结构程序设计 If选择结构 单分支 If(表达式) 语句 双分支 If(表达式) 语句1 Else 语句2 多分支 If (表达式1) 语句1 Else if(表达式2) 语句2 。
Else if(表达式m) 语句m Else 语句n Switch(表达式) { Case 常量表达式1:语句1;break;Case 常量表达式2:语句2;break;。
Case 常量表达式m:语句m;break; Default:语句n;break; } 注意break的使用 第五章、循环结构程序设计 循环三要素 初始条件 ;终止条件 ;在初始条件和终止条件间反复做某件事情(循环体) While(表达式) 语句 Do 语句 While(表达式); For(循环体变。
2.C语言入门知识
<21天学通C语言>(第六版) Bradley L. Jones, Peler Aitken 著. 信达工作室 译. 人民邮电出版社 这本书对初学者很好, 如果有点基础那就更好了.建议选择谭浩强谭老师的书,简单易学,理论与实践结合的很好,而且如果能认真学的话,你会发现你的C语言基础非常的实。
也不是说其他的书不好,但是有些书只是为了让读者入门,没有前途呀。先读谭浩强的《C语言程序设计》,这是公认的中文入门级教材。
但是书中的代码风格不敢恭维。看完这本,推荐《21天学通C语言》,这本书比较好,个人感觉。
看完这两本,你就可以进阶C++了。 C语言只要把基础打好就好,你要是想精通的话,最好是精通C++,这样比较有前途。
但不要操之过急。
3.C语言的各种知识
/%C3%EE%D2%F4%C4%F1/blogc语言 C语言是一种计算机程序设计语言。
它既有高级语言的特点,又具有汇编语言的特点。它可以作为系统设计语言,编写工作系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。
因此,它的应用范围广泛。 C语言对操作系统和系统使用程序以及需要对硬件进行操作的场合,用C语言明显优于其它解释型高级语言,有一些大型应用软件也是用C语言编写的。
C语言具有绘图能力强,可移植性,并具备很强的数据处理能力,因此适于编写系统软件,三维,二维图形和动画。它是数值计算的高级语言。
常用的C语言IDE(集成开发环境)有Microsoft Visual C++,Borland C++,Watcom C++ ,Borland C++ ,Borland C++ Builder,Borland C++ 3.1 for DOS,Watcom C++ 11.0 for DOS,GNU DJGPP C++ ,Lccwin32 C Compiler 3.1,Microsoft C,High C,TurboC等等。
C语言的发展历史 C语言的原型ALGOL 60语言。(也称为A语言) 1963年,剑桥大学将ALGOL 60语言发展成为CPL(Combined Programming Language)语言。
1967年,剑桥大学的Matin Richards 对CPL语言进行了简化,于是产生了BCPL语言。 1970年,美国贝尔实验室的Ken Thompson将BCPL进行了修改,并为它起了一个有趣的名字“B语言”。
意思是将CPL语言煮干,提炼出它的精华。并且他用B语言写了第一个UNIX操作系统。
而在1973年,B语言也给人“煮”了一下,美国贝尔实验室的D.M.RITCHIE在B语言的基础上最终设计出了一种新的语言,他取了BCPL的第二个字母作为这种语言的名字,这就是C语言。 为了使UNIX操作系统推广,1977年Dennis M.Ritchie 发表了不依赖于具体机器系统的C语言编译文本《可移植的C语言编译程序》。
1978年Brian W.Kernighian和Dennis M.Ritchie出版了名著《C语言程序》(The C Programming Language),从而使C语言成为当时世界上流行最广泛的高级程序设计语言。 1988年,随着微型计算机的日益普及, C语言出现了许多版本。
由于没有统一的标准,使得这些C语言之间出现了一些不一致的地方。为了改变这种情况,美国国家标准研究所(ANSI)为C语言制定了一套ANSI标准, 成为现行的C语言标准3.C语言的主要特点 。
C语言发展迅速, 而且成为最受欢迎的语言之一, 主要因为它具有强大的功能。许多著名的系统软件, 如DBASE Ⅲ PLUS、DBASE Ⅳ 都是由C 语言编写的。
用C语言加上一些汇编语言子程序, 就更能显示C语言的优势了,象PC- DOS 、WORDSTAR等就是用这种方法编写的。 C语言版本 目前最流行的C语言有以下几种: ·Microsoft C 或称 MS C ·Borland Turbo C 或称 Turbo C ·AT&T C 这些C语言版本不仅实现了ANSI C标准,而且在此基础上各自作了一些扩充。
C语言的优点 1. 简洁紧凑、灵活方便 C语言一共只有32个关键字,9种控制语句,程序书写自由,主要用小写字母表示。它把高级语言的基本结构和语句与低级语言的实用性结合起来。
C 语言可以象汇编语言一样对位、字节和地址进行操作, 而这三者是计算机最基本的工作单元。 2. 运算符丰富 C的运算符包含的范围很广泛,共有种34个运算符。
C语言把括号、赋值、强制类型转换等都作为运算符处理。从而使C的运算类型极其丰富表达式类型多样化,灵活使用各种运算符可以实现在其它高级语言中难以实现的运算。
3. 数据结构丰富 C的数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型等。能用来实现各种复杂的数据类型的运算。
并引入了指针概念,使程序效率更高。另外C语言具有强大的图形功能, 支持多种显示器和驱动器。
且计算功能、逻辑判断功能强大。 4. C是结构式语言 结构式语言的显著特点是代码及数据的分隔化,即程序的各个部分除了必要的信息交流外彼此独立。
这种结构化方式可使程序层次清晰, 便于使用、维护以及调试。C语言是以函数形式提供给用户的,这些函数可方便的调用,并具有多种循环、条件语句控制程序流向,从而使程序完全结构化。
5. C语法限制不太严格,程序设计自由度大 虽然C语言也是强类型语言,但它的语法比较灵活,允许程序编写者有较大的自由度。 6. C语言允许直接访问物理地址,可以直接对硬件进行操作 因此既具有高级语言的功能,又具有低级语言的许多功能,能够象汇编语言一样对位、字节和地址进行操作,而这三者是计算机最基本的工作单元,可以用来写系统软件。
7. C语言程序生成代码质量高,程序执行效率高 一般只比汇编程序生成的目标代码效率低10へ20%。 8. C语言适用范围大,可移植性好 C语言有一个突出的优点就是适合于多种操作系统, 如DOS、UNIX,也适用于多种机型。
C语言的缺点 1. C语言的缺点主要是表现在数据的封装性上,这一点使得C在数据的安全性上做的有很大缺陷,这也是C和C++的一大区别。 2. C语言的语法限制不太严格,对变量的类型约束不严格,影响程序的安全性,对数组下标越界不作检查等。
从应用的角度,C语言比其他高级语言较难掌握。 [C语言指针] 指针就是C语言的。
4.C语言基础的几个难点解析
一、整型数据的范围 不同类型的数据在内存中占用的存储单元长度不同,以VC++6.0的编译环境为例,基本整型(int)数据分配4个字节,短整型(short int)数据分配2个字节。
我们以short int为例。1个字节为8个二进制位,每个短整型数据分配2个字节,即16位。
对于有符号位的短整型(signed short int,默认的),最左面一位作为符号位,0表示正,1表示负。即能存储的最大数为0111111111111111,第一位是0,表示正数,后边15位都是1,转换为十进制为32767;最小数为1000000000000000,转换为十进制为-32768。
超出此范围,即为“溢出”。例如: short int a,b,c,d; a=32767;b=a+1; c=-32768;d=b-1; printf("b=%d\t",b); printf("d=%d\n",d); 输出结果为b=-32768 d=32767 对于无符号的短整型(unsigned short int),最小为0000000000000000,最大为1111111111111111,范围0~65535。
例如: unsigned short int e=65535,f; f=e+1; printf("f=%d\n",f); 输出结果为f=0 二、运算符 算术运算符有+,-,*,/,%,++,--。其中,*号在表达式中不可以省略,如b2-4ac,写成表达式为b*b-4*a*c。
/和%要区分好,/为商,%为余。如a可以被b整除,表示为a%b==0。
++,--的使用方法有两种:一种i++,i--,先使用i原值,再使i的值加或减1;第二种++i,--i,先使i的值加或减1,再使用i的新值。例如: int i=11; printf("%d\n",i++ * 1/3); 输出结果为3。
int i=11; printf("%d\n",++i * 1/3); 输出结果为4。 自加自减运算符在后边的学习中会经常用到,要好好理解。
逻辑运算符有&&,||,。在逻辑表达式中,不是所有的逻辑运算符都执行,只在必须执行下一个逻辑运算符才能求出表达式的解的时候,才执行该运算符。
a && b只有a为真时,才判断b的值。换句话说,a如果为假,b就不执行。
同理,a || b,a如果为真,b就不用执行。例如: int m=1,n=1,a=1,b=1; printf(“表达式=%d\t”,(m=a>b)&&(n=a>b)); printf("m=%d,n=%d\n",m,n); 输出结果为 表达式=0 m=0,n=1 常用的运算符的优先级别从高到低排序为:!,算术运算符(++,--高于*,/,%高于+,-),关系运算符(>,>=,<,<=高于==,!=),&&,||,赋值运算符,逗号运算符。
三、比较数的大小 例如:编写程序,输出三个整数的最大值。刚接触C语言的学生,大部分学生上机实践都可以完成这个程序,但是思路不太好。
调整算法思路,便于以后程序的编写。 main( ) { int a,b,c,max; max=a; if(b>max) max=b; if(c>max) max=c; printf("max=%d\n",max);} 同理,编写程序,输出10个整数的最大值。
main( ) { int a[10],max,i; for(i=0;i<=9;i++) scanf("%d",&a[i]); max=a[0]; for(i=1;i<=9;i++) if(a[i]>max) max=a[i]; printf("max=%d",max); } 四、switch语句 处理选择结构有if语句和switch语句。switch语句用于处理多分支选择结构,在使用时有多个注意点,这里强调两点。
1.case后边的常量,不能写成表达式。 例如:编写程序,评判学生成绩score的等级grade,90~100为A,80~90为B,70~80为C,60~70为D,60以下为E。
5.求c语言基本知识
教了多年《C程序设计》课程,大多学生觉的这门课程难学。
其实,按照我们现在的教学大纲和教学要求,只要同学们掌握一些方法,克服心理上畏难、不轻言放弃,是完全可以学好的。 《C程序设计》的内容很丰富,按照我们现在的教学大纲,教学的主要内容是基础知识、四种结构的的程序设计、函数与数组的应用和一些简单的算法。
在学习时,同学们应该把主要精力放在这些部分,通过实践(练习和上机调试等熟练掌握。当然,在初学C语言时,可能会遇到有些问题理解不透,或者表达方式与以往数学学习中不同(如运算符等),这就要求不气馁,不明白的地方多问多想,鼓足勇气进行学习,待学完后面的章节知识,前面的问题也就迎刃而解了,这一方面我感觉是我们同学最欠缺,大多学不好的就是因为一开始遇到困难就放弃,曾经和好多同学谈他的问题,回答是听不懂、不想听、放弃这样三个过程,我反问,这节课你听过课吗?回答又是没有,根本就没听过课,怎么说自己听不懂呢?相应的根本就没学习,又谈何学的好? 学习C语言始终要记住“曙光在前头”和“千金难买回头看”,“千金难买回头看”是学习知识的重要方法,就是说,学习后面的知识,不要忘了回头弄清遗留下的问题和加深理解前面的知识,这是我们学生最不易做到的,然而却又是最重要的。
比如:在C语言中最典型的是关于结构化程序设计构思,不管是那种教材,一开始就强调这种方法,这时也许你不能充分体会,但是学到函数时,再回头来仔细体会,温故知新,理解它就没有那么难了。学习C语言就是要经过几个反复,才能前后贯穿,积累应该掌握的C知识。
那么,我们如何学好《C程序设计》呢? 一.学好C语言的运算符和运算顺序 这是学好《C程序设计》的基础,C语言的运算非常灵活,功能十分丰富,运算种类远多于其它程序设计语言。在表达式方面较其它程序语言更为简洁,如自加、自减、逗号运算和三目运算使表达式更为简单,但初学者往往会觉的这种表达式难读,关键原因就是对运算符和运算顺序理解不透不全。
当多种不同运算组成一个运算表达式,即一个运算式中出现多种运算符时,运算的优先顺序和结合规则显得十分重要。在学习中,只要我们对此合理进行分类,找出它们与我们在数学中所学到运算之间的不同点之后,记住这些运算也就不困难了,有些运算符在理解后更会牢记心中,将来用起来得心应手,而有些可暂时放弃不记,等用到时再记不迟。
先要明确运算符按优先级不同分类,《C程序设计》运算符可分为15种优先级,从高到低,优先级为1 ~ 15,除第2、3级和第14级为从右至左结合外,其它都是从左至右结合,它决定同级运算符的运算顺序。下面我们通过几个例子来说明: (1) 5*8/4%10 这个表达式中出现3种运算符,是同级运算符,运算顺序按从左至右结合,因此先计算5 *8=40,然后被4除,结果为10,最后是%(求余数)运算,所以表达式的最终结果为10%10 = 0; (2)a = 3;b = 5;c =++ a* b ;d =a + +* b; 对于c=++a*b来说,按表中所列顺序,+ +先执行,*后执行,所以+ + a执行后,a的值为4,由于+ +为前置运算,所以a的值4参与运算,C的值计算式为4*5=20而不是3*5=15了;而对于d=a++*b来说,由于a + +为后置运算,所以a值为4参与运算,使得d的值仍为20,而a参与运算后其值加1,值为5。
这个例子执行后,a的值为5,b的值为5,c的值为20,d的值也是20; (3)(a = 3,b = 5,b+ = a,c = b* 5) 例子中的“,”是逗号结合运算,上式称为逗号表达式,自左向右结合,最后一个表达式的结果值就是逗号表达式的结果,所以上面的逗号表达式结果为40,a的值为3,b的值为8,c的值为40。 (4)a=5;b=6;c=a>b?a:b; 例中的a>b?a:b是一个三目运算,它的功能是先做关系运算a>b部分,若结果为真,则取问号后a的值,否则取冒号后b的值,因此c的值应该为6,这个运算可以用来代替if…else…语句的简单应用。
二.学好C语言的四种程序结构 (1)顺序结构 顺序结构的程序设计是最简单的,只要按照解决问题的顺序写出相应的语句就行,它的执行顺序是自上而下,依次执行。 例如;a = 3,b = 5,现交换a,b的值,这个问题就好象交换两个杯子水,这当然要用到第三个杯子,假如第三个杯子是c,那么正确的程序为: c = a; a = b; b = c; 执行结果是a = 5,b = c = 3如果改变其顺序,写成:a = b; c = a; b = c; 则执行结果就变成a = b = c = 5,不能达到预期的目的,初学者最容易犯这种错误。
顺序结构可以独立使用构成一个简单的完整程序,常见的输入、计算,输出三步曲的程序就是顺序结构,例如计算圆的面积,其程序的语句顺序就是输入圆的半径r,计算s = 3.14159*r*r,输出圆的面积s。不过大多数情况下顺序结构都是作为程序的一部分,与其它结构一起构成一个复杂的程序,例如分支结构中的复合语句、循环结构中的循环体等。
(2) 分支结构 顺序结构的程序虽然能解决计算、输出等问题,但不能做判断再选择。对于要先做判断再选择的问题就要使用分支结构。
分支结构的执行是依据一定的条件选择执行路径,而不是严格按照语句出现的物理顺序。分支结构的程。
6.c 语言的基本知识
1.C提供了三种主要的预处理功能,分别是__宏定义_______、___文件包含______、____条件编译____。
2.C语言中,数组元素下标下限为___0_____。 3.数组名作函数参数传递时是__数组首地址______传递。
变量作函数参数时是_值_______传递, 4.一个编辑好的*.C源程序,必须经过编译、_连接_______、后才能运行。 5.在C语言中可以用__逐个引用______法和________法引用数组元素。
6.C语言的程序结构有_顺序___、_选择___、循环____三种。 7.在C中,Char类型变量值可以赋值给___int_____类型变量。
8.使指针P指向数组int a[ ]的首址,写作 __p=a______ ,*(P+1)是a[ _1__ ]的值 9.所谓指针是指_______;指针变量是用于存放___变量地址___的变量;字符串的指针是指__字符串的首地址________ ;函数的指针是指__函数首地址____________。 10.在函数调用中,一个函数无论直接还是间接地调用自身,该调用称为__递归_____调用。
7.c 语言的基本知识
1.C提供了三种主要的预处理功能,分别是__宏定义_______、___文件包含______、____条件编译____。
2.C语言中,数组元素下标下限为___0_____。
3.数组名作函数参数传递时是__数组首地址______传递。变量作函数参数时是_值_______传递,
4.一个编辑好的*.C源程序,必须经过编译、_连接_______、后才能运行。
5.在C语言中可以用__逐个引用______法和________法引用数组元素。
6.C语言的程序结构有_顺序___、_选择___、循环____三种。
7.在C中,Char类型变量值可以赋值给___int_____类型变量。
8.使指针P指向数组int a[ ]的首址,写作 __p=a______ ,*(P+1)是a[ _1__ ]的值
9.所谓指针是指_______;指针变量是用于存放___变量地址___的变量;字符串的指针是指__字符串的首地址________ ;函数的指针是指__函数首地址____________。
10.在函数调用中,一个函数无论直接还是间接地调用自身,该调用称为__递归_____调用。