C主要知识点总结
大一c语言期末必备知识点

大一c语言期末必备知识点C语言作为计算机科学和编程领域中最为基础和重要的编程语言之一,在大一的学习中扮演着重要的角色。
掌握C语言的核心知识点对于顺利通过期末考试至关重要。
本文将为大一同学总结C语言期末考试中的必备知识点,帮助大家提高复习效率和考试成绩。
知识点一:基本语法1. 注释:单行注释以"//"开头,多行注释以"/*"开头,以"*/"结尾。
2. 标识符:变量名、函数名、标签等的命名规则和规范。
3. 数据类型:包括整型、浮点型、字符型和指针型等。
4. 变量和常量:定义变量和常量的方式以及使用的规范。
5. 运算符:包括算术运算符、赋值运算符、逻辑运算符等。
6. 控制语句:包括条件语句(if-else语句)和循环语句(while循环、do-while循环和for循环)等。
7. 函数:函数的定义、函数的调用以及函数的返回值。
1. 数组:一维数组和多维数组的定义、初始化和使用等。
2. 指针:指针的概念、指针的运算、指针和数组的关系等。
3. 字符串:字符串的定义、字符串的操作和字符串的输入输出等。
知识点三:文件操作1. 文件指针:文件指针的定义、文件指针的定位等。
2. 文件读写:打开文件、关闭文件、读取文件内容、写入文件内容等。
知识点四:内存管理1. 动态内存分配:使用malloc、calloc和realloc等函数进行动态内存分配。
2. 内存释放:使用free函数释放动态分配的内存。
1. 结构体:结构体的定义、结构体数组和结构体指针等。
2. 链表:单链表和双链表的定义、插入节点、删除节点和遍历链表等。
知识点六:预处理指令1. 宏定义:使用#define进行宏定义。
2. 条件编译:使用#ifdef、#ifndef、#endif和#elif等来控制代码的编译。
知识点七:函数库1. 标准输入输出库:使用stdio.h中的函数进行输入输出操作。
2. 数学库函数:使用math.h中的函数进行数学计算。
c语言的知识点,难点

C语言的知识点和难点总结C语言是一种基础编程语言,广泛应用于系统软件、嵌入式系统、游戏开发等领域。
在学习C语言的过程中,我们会遇到一些知识点和难点。
下面,我们将对C语言的知识点和难点进行总结。
一、知识点:1.数据类型:C语言支持多种数据类型,包括整型、浮点型、字符型等。
这些数据类型的使用是C语言编程的基础,需要熟练掌握。
2.运算符:C语言提供了丰富的运算符,如算术运算符、关系运算符、逻辑运算符等。
理解并正确使用这些运算符是编写高效代码的关键。
3.控制结构:C语言中的控制结构包括条件语句(如if-else)、循环语句(如for、while)等。
掌握这些控制结构是实现程序逻辑的关键。
4.函数:函数是C语言的基本模块,用于实现特定的功能。
了解如何定义函数、调用函数以及传递参数是十分重要的。
5.指针:指针是C语言的特色之一,它允许我们直接访问内存地址。
理解指针的概念和用法对于深入学习C语言至关重要。
6.结构体与联合:结构体和联合是C语言中处理复杂数据结构的重要工具。
通过它们,我们可以组合不同类型的数据并进行操作。
二、难点:1.指针操作:由于指针直接涉及内存地址,因此对初学者来说可能较难理解。
掌握指针的基本概念、声明、初始化和使用是C语言学习的难点之一。
2.内存管理:在C语言中,程序员需要直接管理内存。
如何正确地分配和释放内存是避免内存泄漏和段错误的关键,也是学习C语言的难点。
3.深度递归:深度递归可能导致栈溢出或性能问题,因此在实际应用中需要谨慎处理。
理解递归原理并在合适的场景下应用是C语言学习的一个难点。
4.多线程编程:多线程编程涉及线程的创建、同步和通信等复杂概念,对于初学者来说可能较难掌握。
理解多线程的原理和应用是多线程编程的难点之一。
C语言知识点总结

C知识点(徐向前整理)数据类型:整型:基本整型—int--%d长整型---long--%ld短整型—short--%d实型:单精度—float--%f双精度—double--%lf长双精度--long double字符型:--char--%c[‘A’表示字符A]【char cha; cha=’A’(只能这样)】变量定义:单个变量:int a;(关键词加变量名,以分号结尾)多个变量:int a,b,c;(关键词加变量名1,变量名2,…)运算符:算术运算符+ - * /(除) %(取余)关系运算符> >= < <= !=(不等于) ==(等于)逻辑运算符!(非) &&(且) ||(或)赋值运算符= += *= /= -=Eg: s+=i等于s=s+I S*=i等于s=s*i优先级别算数>关系>逻辑>赋值特别注意:(1)除法运算:除法的运算结果和运算对象的数据类型有关【整数整数=整数、浮点数整数=整数浮点数=浮点数】(2)取余运算:商与被除数符号相同(同正或者同负)(3)C语言对在真假的处理:非0是真,0是假;真用1,假用0;&&左边表达式为假,则右边不执行;||左边表达式为真,则右边不执行,左边为假,则执行右边;数据的输入与输出:printf作用:将变量的内容输入到显示器上。
用法:1.printf (“字符串\n”);2. printf (“输出控制符\n”,输出参数);eg: printf (“%d\n”,a);3. printf (“输出控制符1\n输出控制符2\n…输出控制符m\n”,输出参数1, 输出参数2,…输出参数m,);【输出控制符与输出参数一一对应】eg: printf (“%d\n%d\n%d\n”,a,b,c);4. printf (“输出控制符非输出控制符”,输出参数);Scanf作用:通过键盘将数据输入到变量中用法:1.scanf(“输入控制符”,输入参数);功能:将从键盘中输入的字符转化为输入控制符所规定格式的数据,然后存入以输入参数的值为地址的变量中。
c程序设计基础知识点总结

c程序设计基础知识点总结C程序设计是计算机科学中最基础的一门课程,它涵盖了许多重要的知识点和技能。
本文将对C程序设计的基础知识进行总结,以帮助读者掌握C语言的核心概念和编程技巧。
一、程序基础在开始学习C语言之前,我们需要了解一些基本的概念和术语。
首先是程序的基本结构,一个C程序由多个函数组成。
主函数(main)是程序的入口,它负责执行程序的主要逻辑。
其他函数可以被主函数调用,用来实现具体的功能。
二、变量和数据类型C语言中有多种基本数据类型,包括整型(int)、浮点型(float/double)、字符型(char)和布尔型(bool)。
我们可以定义变量来存储这些数据类型的值,并对其进行操作和处理。
变量在使用前需要先声明,并且可以赋初始值。
三、运算符和表达式在C语言中,有许多运算符可以用来操作变量和表达式。
比如加法运算符(+)、减法运算符(-)、乘法运算符(*)、除法运算符(/)等。
我们可以使用这些运算符对变量进行算术运算、比较运算和逻辑运算。
四、条件语句和循环结构条件语句和循环结构是C程序设计中非常重要的控制结构。
条件语句(if-else语句)可以根据条件的真假选择不同的执行路径。
循环结构(for循环、while循环、do-while循环)可以重复执行一段代码,直到满足特定的条件为止。
五、数组和字符串数组是一种用来存储多个相同类型数据的结构。
在C语言中,我们可以使用数组来存储一系列的值,并对其进行遍历和操作。
字符串是由字符组成的数组,C语言提供了一组字符串操作函数,方便我们对字符串进行处理。
六、函数和指针函数是C程序设计中模块化编程的基础。
我们可以定义自己的函数,并在需要的时候调用它们。
函数可以接收参数并返回结果,可以提高代码的可读性和可维护性。
指针是C语言中的重要概念,它可以指向内存中的某个地址,并对地址中的数据进行读写操作。
七、文件操作C语言提供了一组文件操作函数,用来读写文件和处理文件流。
我们可以使用这些函数来打开和关闭文件,读取和写入文件内容,并进行文件的操作和管理。
c语言程序设计知识点总结

《C语言程序设计》教学基本知识点第一章C语言基本知识1。
C源程序的框架尽管各个C源程序的功能千变万化,但框架是不变的,主要有:编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。
2.C语言源程序的书写规则:(1)C源程序是由一个主函数和若干个其它函数组成的。
(2)函数名后必须有小括号,函数体放在大括号内。
(3)C程序必须用小写字母书写。
(4)每句的末尾加分号.(5)可以一行多句。
(6)可以一句多行。
(7)可以在程序的任何位置加注释。
3.语句种类语句是程序的基本成分,程序的执行就是通过一条条语句的执行而得以实现的,根据表现形式及功能的不同,C语言的基本语句可以分为五大类.(1)流程控制语句流程控制语句的功能是控制程序的走向,程序的流程有三种基本结构:顺序结构、分支结构和循环结构,任何复杂的程序都可以由这三种基本结构复合而成。
其中后两种结构要用特定的流程控制语句实现。
(2)表达式语句表达式语句的形式是:表达式;,即表达式后跟一分号“;”,分号是语句结束符,是一个语句必不可少的成分.表达式和表达式语句的区别在于表达式代表的是一个数值,而表达式语句则代表一种动作。
最常见的表达式语句是赋值语句。
(3)函数调用语句函数调用语句实际上也是一种表达式语句,形式为:在一次函数调用的小括号后面加上一个分号。
(4)空语句空语句的形式就是一个分号,它不代表任何动作,常常作为一个意义转折点使用。
(5)复合语句复合语句从形式上看是多个语句的组合,但在语法意义上它只相当于一个语句,在任何单一语句存在的地方都可以是复合语句。
注意复合语句中最后一个语句末尾的分号不能少。
复合语句右大括号后面没有分号.4。
运算符用来表示数据各种操作的符号称为运算符。
运算符实际上代表了一种类型数据的运算规则。
不同的运算符具有不同的运算规则,其操作的数据类型必须符合该运算符的要求,运算结果的数据类型也是固定的。
C语言各章节知识点总结

C语⾔各章节知识点总结第⼀部分“C语⾔基础知识”知识点1、C程序的基本结构C程序是由函数构成的。
每个程序由⼀个或多个函数组成,其中必须有且仅有⼀个主函数main( )。
main函数是⼀个可执⾏C语⾔程序的⼊⼝和正常出⼝,⽽不论其在整个程序中书写的位置如何。
在C语⾔中,⼤⼩写字母是有区别的。
(例如习惯使⽤⼩写字母定义变量,⽤⼤写字母定义常量)。
C程序的注释有两种⽅法,⼀种是⾏注释,使⽤“//”;另外⼀种是块注释,使⽤“/* */”,注意“/*”与“*/”不能嵌套使⽤。
C语⾔书写较为灵活,但是提倡采⽤缩进格式进⾏程序书写,以体现语句之间的层次感。
C程序每条语句以“分号”作为结束标志。
以下⼏种情况不得使⽤分号:(1)所定义的函数名称后不得使⽤分号;(2) if…else…语句是⼀个整体,中间不能使⽤分号将其分隔开;(3)预编译命令后不能使⽤分号。
2、C程序开发步骤C语⾔在计算机上的开发过程主要由以下四个步骤组成:第⼀步:编辑。
⽣成后缀名为“.c”的源⽂件第⼆步:编译。
⽣成后缀名为“.obj”的⽬标⽂件第三步:连接。
⽣成后缀名为“.exe”的可执⾏⽂件第四步:运⾏。
3、VC++6.0开发⼯具的使⽤按下功能键Ctrl+F7编译程序;按下功能键F7连接程序;按下功能键Ctrl+F5运⾏程序;若程序在编译和连接过程中有语法错误,则按下功能键F4定位错误所在⾏并根据错误提⽰信息改正错误(原则是先解决error,再解决warning)。
4、C语⾔中标识符的命名规则标识符由字母、数字、下划线组成;规定第⼀个字符必须为字母或下划线。
标识符定义的变量名、函数名、常量名等最好做到“见名知义”;⼤⼩写代表不同含义;不能使⽤关键字;最好不要与C语⾔的库函数同名。
5、C语⾔的数据类型C语⾔的数据类型由基本类型和复杂类型构成。
其中基本数据类型包括字符型(char)、整型(int,short,long)、实型(float,double);复杂数据类型包括指针类型、数组、结构体、联合体。
C语言知识点总结(正式版)

C语言知识点总结C语言知识点总结 (1)一、常量 (2)二、标识符 (2)三、变量 (2)四、表达式 (3)五、输入输出函数 (4)六、C语言的语句 (5)七、C程序的基本结构 (5)八、选择结构语句 (6)➢if(表达式) 语句1 else 语句2 (6)➢条件运算符表达式1? 表达式2 : 表达式3 (6)➢switch语句 (6)九、循环结构 (7)➢for循环语句 (7)➢while循环语句do while循环语句 (7)十、数组 (8)十一、字符串函数 (8)十二、函数 (9)十三、指针 (10)十四、宏定义 (11)十五、结构体,共用体,枚举类型 (11)十六、Turbo C的使用 (13)一、常量➢数字常量i.普通数字:1,35,2.7ii.指数形式:2.45e-2等价于2.45*10-2注意e大小写皆可,e前面的数字不能省,就算是1也不能省,后面的数字一定要是整数iii.长整型,单精度浮点型:3235L,32.5F 分别表示3235是长整型数据,32.5是单精度浮点型左,若不写上L,F则表示3235是整型,32.5是双精度浮点型,L,F大小写皆可➢字符常量i.普通字符常量:用单引号把一个字符括起来,如’A’,’@’ii.转义字符常量:一对单引号括起来并以“\”开头的字符序列,如’\n’(回车)、’\123’(8进制123对应的字符), ’\x23’(16进制23对应的字符)➢字符串常量用一对双引号把一个字符序列括起来,如“ABCef”,系统存放字符串常量,每个字符分配一个字节,各字符所占字节紧邻,并且字符串末尾会给再开一个字节里面放一个’\0’做为结束标志。
➢符号常量定义格式#define 符号常量名符号常量值,如#define N 20则定义了符号常量N,其值为20,注意符号常量名和符号常量值之间是用空格隔开,而不是写上=号,#define和符号常量名之间也有空格的。
二、标识符➢命名规则以数字,字母,下划线这三类字符组成,但只能以字母或下划线开头,而不能也数字开头,另外不能将关键字做为标识符。
c语言重点知识点总结

c语言重点知识点总结c语言重点知识点总结上学的时候,说起知识点,应该没有人不熟悉吧?知识点是指某个模块知识的重点、核心内容、关键部分。
还在苦恼没有知识点总结吗?下面是小编帮大家整理的c语言重点知识点总结,欢迎大家分享。
c语言重点知识点总结篇1◆知识点1:交换两个变量值的方法1)采用第三方变量(最容易想到的方法)2)采用加减法进行值得交换(面试时常用**)代码如下:b = a - b;a = a - b;b = a + b;3)采用按位异或的位方式代码如下:a = a^b;b = a^b;a = a^b;◆知识点2:取语言重点知识点总结余运算%的结果与被除的符号相同,结果为两个正数取余后前面加符号◆知识点3:sizeof的使用sizeof是一种运算符不要想当然理解为函数sizeof使用时可以不加()sizeof可以加变量、常量、数据类型跟数据类型是必须加()◆知识点4:static和 extern区别是能否进行跨文件访问①函数②变量1、对函数的作用:外部函数:定义的函数能被本文件和其他文件访问内部函数:定义的函数只能被本文件访问默认情况下,所有函数都是外部函数(相当于带关键字extern),所以可以省略extern作用:完整的定义和引用一个外部函数都加extern引用时也是默认是外部函数所以也省略externstatic作用:定义一个内部函数使用:static返回类型函数名(参数列表)不能被其他文件调用一个项目中,本文件的外部函数名不能和其他文件的外部函数同名(error)本文件中的内部函数(static)可以和其他文件的函数名同名的2、对变量的作用:全局变量分为两种:外部变量:定义的变量可以被其他文件访问①默认情况下所有的全局变量都是外部变量②不同文件中的同名外部变量都代表同一个③定义一个外部变量不加extern,声明才加extern同样的声明是没有错误的内部变量:定义的变量不能被其他文件访问不同文件的同名内部变量互不影响◆知识点5:数组的几种初始化方式如下:int a[3] = {10, 9, 6};int a[3] = {10,9};int a[] = {11, 7, 6};int a[4] = {[1]=11,[0] = 7};(知道有此种初始化方式即可)◆知识点6:数组的内存分析和注意点存储空间的划分(内存的分配是从高地址到低地址进行的,但一个数组内部元素又是从低到高进行的)【注:对于以后学习重要】数组名的作用,查看元素地址注意数组不要越界◆知识点7:字符串知识点"123”其实是由’1’、’2’、’3’、’’组成字符串的输出”%s”,’’是不会输出的◆知识点8 :字符串处理函数:strlen()计算的是字符数,不是字数计算的字符不包括’’,一个汉字相当于3个字符例子:"哈haha" 字符数为7从某个地址开始的数字符个数,知道遇到’’为止指针部分在C语言中占据重要地位,所以重点学习与整理了指针的知识:◆知识点9:指针定义的格式变量类型 *变量名如:Int *p◆知识点10:指针作用能够根据一个地址值,访问对应的.存储空间例:Int *p;Int a = 90;P = &a;*p = 10;//把10赋值给p所指的存储空间◆知识点11:指针使用注意Int *p只能指向int类型的数据指针变量只能存储地址指针变量未经初始化不要拿来间接访问其他存储空间◆知识点12:指针与数组遍历数组int ages[5] = {10, 4, 9, 44, 99};for(int i = 0; i<5; i++){printf("%d ", ages[i]);}使用指针遍历数组:int *p;// 指针变量P指向了数组的首地址p = &ages[0];// 使用指针遍历数组for(int i = 0; i<5; I++){printf("ages[%d] = %d ", i, *(p + i));}注:指针+ 1取决于指针的类型注:数组的访问方式数组名[下标]指针变量名[下标]*(p + i)◆知识点12:指针与字符串定义字符串的两种方式:1、利用数组Char name[] = “Andyzhao”特点:字符串里的字符可以修改适用场合:字符串内容需要经常修改2、利用指针Char *name = “itcast”特点:字符串是一个常量,字符串里面的字符不能修改使用场合:字符串的内容不需要修改,而这个字符串经常使用◆知识点13:预处理指令(三种):宏定义条件编译文件包含1、宏定义的配对使用和带参数的宏:#define#undef带参数的宏:#define sum(v1,v2) ((v1) + (v2))//括号是必须的例如:#define pingfang(a) a*a#define pingfang(a) (a*a)调用时pingfang(10)/pingfang(2)//不正确pingfang(5+5)//不正确带参数的宏效率比函数高2、条件编译(一般是判断宏的值)#if 条件#elif 条件#else#endif(非常重要)不然后面的代码全部无效3、文件包含:<>表示系统自带的文件,""表示自定义文件不允许循环包含,比如ah包含bh,bh又包含ah◆知识点14:typedef 只是给类型起了个别名并不是定义新类型struct Student{int age;char *name;};typedef struct Student Student;等价于typedef struct Student{int age;char *name;}Student;也等价于typedef struct {int age;char *name;}Student;类似的给枚举类型起名typedef enum Sex{Man,Women}Sex;下面这种情况的写法比较特殊//下面是函数指针类型的自定义数据类型,返回值类型和参数类型要匹配#includetypedef int (*TypeFuncPointer)(int, int);int add(int a, intb){return a + b;}int minus(int a, intb){return a - b;}int main(){TypeFuncPointer p = add;//使用自定义类型TypeFuncPointer p2 = minus;//使用自定义类型printf("add = %d ",p(1, 2));printf("minus = %d ",p2(1, 2)); return 0;}下面是定义结构体的指针类型typedef struct Student{int age;char *name;}*PtrStu;//使用方式Student stu ={18, "zhangsan"}; PtrStu p = &stu;宏定义也是可以为类型起名的#define Integer int相当于typedef int Integer注意和typedef的区别例如:typedef char * String#define String2char *。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言最重要的知识点复习资料!(2010-04-18 09:54:14)总体上必须清楚的:1)程序结构是三种: 顺序结构 , 循环结构(三个循环结构), 选择结构(if 和 switch)2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。
3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址.4)bit是位是指为0 或者1。
byte 是指字节, 一个字节 = 八个位.5)一定要记住二进制如何化成十进制。
概念常考到的:1、编译预处理不是C语言的一部分,不再运行时间。
C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。
2、每个C语言程序中main函数是有且只有一个。
3、在函数中不可以再定义函数。
4、算法的是一定要有输出的,他可以没有输入。
5、break可用于循环结构和switch语句。
6、逗号运算符的级别最低。
第一章1)合法的用户标识符考查:合法的要求是由字母,数字,下划线组成。
有其它元素就错了。
并且第一个必须为字母或则是下划线。
第一个为数字就错了。
关键字不可以作为用户标识符号。
main define scanf printf 都不是关键字。
迷惑你的地方If是可以做为用户标识符。
因为If中的第一个字母大写了,所以不是关键字。
2)实型数据的合法形式:2.333e-1 就是合法的,且数据是2.333×10-1。
考试口诀:e前e后必有数,e后必为整数。
.3)字符数据的合法形式::'1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。
'0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。
4) 16位机子中,整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:32位中,4,1,8; 考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
5)转义字符的考查:在程序中 int a = 0x6d,是把一个十六进制的数给变量a 注意这里的0x必须存在。
在程序中 int a = 06d, 是一个八进制的形式。
在转义字符中,’\x6d’ 才是合法的,0不能写,并且x是小写。
‘\141’ 是合法的, 0是不能写的。
‘\108’是非法的,因为不可以出现8。
6)算术运算符号的优先级别:同级别的有的是从左到右,有的是从右到左。
7)强制类型转换:一定是(int)a 不是 int(a),注意类型上一定有括号的。
注意(int)(a+b)和(int)a+b 的区别。
前是把a+b转型,后是把a转型再加b。
8)表达式的考查:是表达式就一定有数值。
赋值表达式:表达式数值是最左边的数值,a=b=5;该表达式为5,常量不可以赋值。
自加、自减表达式:假设a=5,++a(是为6), a++(为5);运行的机理:++a 是先把变量的数值加上1,然后把得到的数值放到变量a中,然后再用这个++a表达式的数值为6,而a++是先用该表达式的数值为5,然后再把a的数值加上1为6,再放到变量a中。
进行了++a和a++后在下面的程序中再用到a的话都是变量a中的6了。
考试口诀:++在前先加后用,++在后先用后加。
逗号表达式:优先级别最低;表达式的数值逗号最右边的那个表达式的数值。
(2,3,4)的表达式的数值就是4。
9)位运算的考查: 会有一到二题考试题目。
总的处理方法:几乎所有的位运算的题目都要按这个流程来处理(先把十进制变成二进制再变成十进制)。
例1: char a = 6, b; b = a<<2; 这种题目的计算是先要把a的十进制6化成二进制,再做位运算。
例2: 一定要记住,例3: 在没有舍去数据的时候,<<左移一位表示乘以2;>>右移一位表示除以2。
10)018的数值是非法的,八进制是没有8的,逢8进1。
11)%符号两边要求是整数。
不是整数就错了。
12) 三种取整丢小数的情况: 1、int a =1.6; 12、(int)a; 3、 第二章1)printf函数的格式考查:%d对应整型;%c对应字符;%f对应单精度等等。
宽度的,左对齐等修饰。
%ld对应 long int;%lf 对应double。
2)scanf函数的格式考察:注意该函数的第二个部分是&a这样的地址,不是a;Scanf(“%d%d%*d %d”,&a,&b,&c); 跳过输入的第三个数据。
3)putchar ,getchar 函数的考查:char a = getchar() 是没有参数的,从键盘得到你输入的一个字符给变量a。
putchar(‘y’)把字符y输出到屏幕中。
4)如何实现两个变量x ,y中数值的互换(要求背下来)不可以把 x=y ,y=x; 要用中间变量 t=x;x=y;y=t。
5)如何实现保留三位小数,第四位四舍五入的程序,(要求背下来)这个有推广的意义,注意 x = (int)x 这样是把小数部分去掉。
float x=121.4923;x=(int)(x*1000+0.5)/1000.0;printf("%.3f\n",x);第三章特别要注意:c语言中是用非0表示逻辑真的,用0表示逻辑假的。
1)关系表达式:表达式的数值只能为1(表示为真),或0(表示假)当关系的表达是为真的时候得到1。
如 9>8这个是真的,所以表达式的数值就是1;2)逻辑表达式:只能为1(表示为真),或0(表示假)a) 共有&& || !三种逻辑运算符号。
b) !> && > || 优先的级别。
c) 注意短路现象。
考试比较喜欢考到。
d) 要表示 x 是比0大,比10小的方法。
0<x<10是不可以的(一定记住)。
是先计算0<x 得到的结果为1或则0;再用0,或1与10比较得到的总是真(为1)。
所以一定要用(0<x)&&(x<10)表示比0大比10小。
3)if 语句else 是与最接近的if且没有else的相组合的。
4)条件表达式: 表达式1 ?表达式2 :表达式3 注意是当非0时候是表达式2的数值,当为0是就是表达式3的数值。
考试口诀:真前假后。
5)switch语句:a)一定要注意有break 和没有break的差别,书上(34页)的两个例子,没有break时候,只要有一个case匹配了,剩下的都要执行,有break则是直接跳出了swiche语句。
b)switch只可以和break一起用,不可以和continue用。
第四章1)三种循环结构:a)for(); while(); do- while()三种。
b)for循环当中必须是两个分号,千万不要忘记。
c)写程序的时候一定要注意,循环一定要有结束的条件,否则成了死循环。
d) do-while()循环的最后一个while();的分号一定不能够丢。
(当心上机改错)2) break 和 continue的差别记忆方法:break:是打破的意思,(破了整个循环)所以看见break就退出真个一层循环。
continue:是继续的意思,(继续循环运算),但是要结束本次循环,就是循环体内剩下的语句不再执行,跳到循环开始,然后判断循环条件,进行新一轮的循环。
3)嵌套循环就是有循环里面还有循环,这种比较复杂,要一层一层一步一步耐心的计算,一般记住两层是处理二维数组的。
4) while((c=getchar())!=’\n’)和 while(c=getchar() !=’\n’)的差别先看a = 3 != 2 和(a=3)!=2 的区别:(!=号的级别高于=号所以第一个先计算 3!=2)第一个a的数值是得到的1;第二个a的数值是3。
考试注意点:括号在这里的重要性。
第五章函数:是具有一定功能的一个程序块;1) 函数的参数,返回数值(示意图):main(){int a = 5,b=6,c;c = add(a,b);printf(“%d”,c);}调用函数a,b是实参整个函数得到一个数值就是Add函数的返回数值。
int add ( int x, int y){int z;z=x+y;return z;}被调用函数x,y是形式参数函数返回数值是整型z就是这个add函数计算后得到的结果,就是函数返回给主程序的返回数值。
程序是在从上往下顺序执行,当碰到了函数add后,把a,b的数值穿给调用函数,程序暂时中断等待返回数值。
当得到了返回数值后,再顺序的往下执行2)一定要注意参数之间的传递实参和形参之间传数值,和传地址的差别。
(考试的重点)传数值的话,形参的变化不会改变实参的变化。
传地址的话,形参的变化就会有可能改变实参的变化。
3)函数声明的考查:一定要有:函数名,函数的返回类型,函数的参数类型。
不一定要有:形参的名称。
第六章指针变量的本质是用来放地址,而一般的变量是放数值的。
int *p 中 *p和p的差别:*p可以当做变量来用;*的作用是取后面地址p里面的数值p是当作地址来使用。
*p++ 和(*p)++的之间的差别:改错题目中很重要*p++是*(p++),地址会变化。
(*p)++ 是数值会要变化。
三名主义:(考试的重点)数组名:表示第一个元素的地址。
数组名不可以自加,他是地址常量名。
(考了很多次)函数名:表示该函数的入口地址。
字符串常量名:表示第一个字符的地址。
第七章1一维数组的重要概念:对a[10]这个数组的讨论。
1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。
3、a是一维数组名,所以它是列指针,也就是说a+1是跳一列。
对a[3][3]的讨论。
1、a表示数组名,是第一个元素的地址,也就是元素a[10]的地址。
2、a是地址常量,所以只要出现a++,或者是a=a+2赋值的都是错误的。
3、a是二维数组名,所以它是行指针,也就是说a+1是跳一行。
4、a[0]、a[1]、a[2]也都是地址常量,不可以对它进行赋值操作,同时它们都是列指针,a[0]+1,a[1]+1,a[2] +1都是跳一列。
5、注意a和a[0] 、a[1]、a[2]是不同的,它们的基类型是不同的。
前者是一行元素,后三者是一列元素。
二维数组做题目的技巧:如果有a[3][3]={1,2,3,4,5,6,7,8,9}这样的题目。
步骤一:把他们写成: 第一列 第二列 第三列 a[0]à 1 2 3 ->第一行a[1]à 4 5 6 —>第二行a[2]à 7 8 9 ->第三行步骤二:这样作题目很简单: *(a[0]+1)我们就知道是第一行的第一个元素往后面跳一列,那么这里就是a[0][1]元素,所以是2。