C语言复习纲要
- 格式:doc
- 大小:252.00 KB
- 文档页数:12
1、main函数在C语言中的位置:任意2、C语言中合法的标识符:复习标识符取名规则,尤其注意标识符中不能出现“空格”、关键字、“负号”等3、字符常量的表示:不能是“双引号”4、函数的相关概念:形参和实参的关系,只能把实参的值传给形参,形参的值不能传送给实参5、指针数组的概念:如int *f[10];说明f是一个数组,数组元素是类型为int的指针变量,而“*”不是地址运算符6、各种数据类型占用内存空间的大小是由C语言编译系统决定的7、条件表达式中的条件的意义:如(X)?a:b; (X)表达式的意义相当于:(X!=0)8、数组的初始化语句:注意在给数组初始化赋值时,大括号中的数据不能超过数组定义的长度9、指针变量的操作:通常要先确定该指针的地址,即它指向谁,然后再给它赋值,如:Int *f,x,y=10;F=&x;*f=y;下面操作则不对:Scanf(“%d”,&x); *f=x;10、数组元素下标的使用:注意下标不能超出定义的长度,通常从“0”开始编码的。
另外各个下标都可以是一个常量表达式,即可以有运算,如:3+4,5>6, !5 等表达式。
11、能正确计算负数的补码,通常用8位二进制表示12、只有在使用时才占用内存单元的变量是”auto”型13、以”#”开始的语句是预处理语句14、一个C语言的源程序经过编译、连接后生成可执行程序方可执行15、函数返回值的类型取决于函数类型16、输出格式控制的作用要清楚:如%d %c17、条件运算符是唯一一个三目运算符18、三种循环结构的流程要清楚,哪个是先执行循环体一次,然后再进行条件判断19、gets函数可以从键盘输入含有空格字符的字符串,scanf()函数则不行20、fread()函数各个参数的意义是什么,尤其是第一个21、多项式累加问题:如1/2、2/3、3/4-------,注意累加项的规律要弄清楚,可能是一个相对复杂的规律,建议掌握Fibonnaci数列22、解决一维数组的移动问题:如所有数据向左移动一位,原来头元素移动最后23、掌握字符串的操作,如:统计字符串中数字或字母的个数。
c语言知识点大纲以下是C语言的知识点大纲,适用于初学者和中级水平的学习者:基础概念1.数据类型:整型、浮点型、字符型等2.变量和常量:声明、定义、初始化3.运算符:算术、关系、逻辑、赋值等4.控制流:条件语句(if-else)、循环语句(for、while、do-while)5.函数:声明、定义、调用、参数传递、递归6.数组:声明、初始化、访问、多维数组、数组与指针关系7.指针:地址、指针变量、指针运算、指针和数组、指针和函数8.字符串:字符数组、字符串处理函数、字符串常用操作9.结构体:定义、访问结构成员、结构体数组、结构体指针高级概念10.内存管理:动态内存分配((malloc、calloc、realloc、free)、内存泄漏和内存错误11.文件操作:文件读写、文件指针、文件操作函数12.预处理器:宏定义、条件编译、头文件13.位运算:位操作、位掩码、位运算符14.函数指针:指向函数的指针、回调函数高级主题15.数据结构:链表、栈、队列、树、图等16.算法:排序算法((冒泡排序、快速排序等)、搜索算法((线性搜索、二分搜索等)17.指针与内存:内存布局、内存对齐、指针算术18.多线程编程:线程、同步与互斥、线程安全性19.网络编程:Socket编程、TCP/IP、HTTP协议20.C标准库函数:常用函数库((stdio.h、stdlib.h、string.h(等)实践和应用21.项目开发:使用C语言构建小型项目或工具22.调试和优化:学习调试技巧、代码优化技巧以上列举的知识点可以帮助你建立起对C语言的基础认识并逐渐深入。
实践是掌握编程语言的关键,因此建议在学习过程中不断地练习并尝试编写各种类型的程序,以加深对C语言的理解和掌握。
数据与运算1.一.数据类型:1.整型(int),短整型(short),长整型(long)表示形式:①十进制形式:(0-9)②八进制形式:整常数以0作为前缀(0-7)③十六进制形式:整常数以0X或0x作为前缀(0-9,A-F或a-f)如:158L:表示十进制长整常数2.实型(浮点型):包括单精度型(float)和双精度型(double)表示形式:①十进制数形式:如:0.0;300.;0.13;-267.8230;(必须有小数点)②指数形式:a E n或a e n(a为十进制数,n为十进制整数,等于)如:2.1E5(等于)3.字符型(char)字符书写形式是用单引号括起来的单个字符,如…a‟字符串书写形式是用双引号括起来的一串字符,如:“a”常用转义字符:\n表示回车换行\t表示向右走8列\b表示退格4.各种类型数据占用储存空间情况:long:4字节int:4字节 short:2字节char:1字节float:4字节 double:8字节(可用sizeof测试,求值结果是字节数)二.标识符,常量,变量1.标识符:只能由字母,数字和下划线组成,且第一个字符必须为字母或下划线。
且大小写敏感,不能使用关键字。
2.常量:①整型常量②实型常量③字符常量:一般一个字符常量的值是该字符集中对应的ASCLL码值。
如:…0‟~…9‟的ASCLL 码值是48~57;…A‟~…Z‟的ASCLL码值是65~90,…a‟~…z‟的ASCLL码值是97~122,小写—大写=32;…\0‟(字符串结束标记)的ASCLL码值是0,显然字符…0‟与数字0是不同的。
④字符串常量:字符常量由单引号括起来,字符串常量由双引号括起来;字符串常量在内存中储存时有串尾结束标记…\0‟,所以字符串常量占的内存字节数等于字符串中字符所占的字节数加1;不能把一个字符串常量赋给一个字符变量。
⑤符号常量(宏定义):用一个指定的标识符(宏名)来代表一个字符串(内容)。
C语言复习提纲一、基本概念及语法1.C语言的起源和发展历程2.C语言的优点和特点3.C语言的数据类型和变量4.C语言的运算符和表达式5.C语言的程序结构和语句流6.C语言的函数和库函数二、数据类型和变量1.基本数据类型:整型、浮点型、字符型等2.变量的声明和赋值3.变量的作用域和存储类别4.常量的定义和使用5.数据类型转换和类型限定符三、控制流程和循环结构1. 分支结构:if语句、switch语句2. 循环结构:for循环、while循环、do-while循环3. 循环控制语句:break语句、continue语句四、数组和指针2.一维数组和多维数组3.指针的基本概念和运算4.指针和数组的关系5.指针与函数的关系五、函数和递归1.函数的定义和调用2.函数的参数和返回值3.函数的递归调用4.函数的存储类别与作用域5.常见库函数的使用六、字符串和字符处理1.字符串的定义和使用2.字符串的输入输出3.字符串的操作:拼接、复制、比较、查找等4.字符串的处理函数七、结构体和共用体1.结构体的定义和使用2.结构体数组和指针4.结构体与指针的关系八、文件操作1.文件的打开和关闭2.文件的读写操作3.文件的复制、删除和重命名4.文件的定位和截断九、动态内存管理1.动态内存分配和释放2.动态分配数组和结构体3.内存泄露和内存溢出的处理十、预处理器1.预处理器的作用和功能2.宏定义的使用和注意事项3.条件编译和头文件的使用以上为C语言复习提纲,内容涉及C语言的基本概念、语法、数据类型和变量、控制流程和循环结构、数组和指针、函数和递归、字符串和字符处理、结构体和共用体、文件操作、动态内存管理以及预处理器等方面的知识点,帮助学生系统地复习C语言的基础知识。
十分感谢您的提问,希望以上信息对您有所帮助。
C语言复习提纲第一、二章*********函数的基本结构程序流程基本结构分类第三章**常量表示方法(字符/字符串/整数(10、16进制) /实数(小数型/指数型)转义字符常量(\n \t \”\xhh \\)变量类型名/变量定义方法/初始化/赋值。
注意大小写的不同。
算术运算符的作用(++ -- + - * / %)及特点关系运算符(= =,>= ,<= , != , < ,> )的运算结果及特点逻辑运算符(!&& ||)的运算特点,短路特性(教材90页)条件运算符的使用(?:)“,”运算符+=, -=, *=, /= 运算符的作用强制类型转换运算第四章************************scanf ( ) 函数和printf ( )的命令格式执行scanf ( )的输入格式格式符的作用(%md %m.nf %m.ns %mc)putchar( ),getchar( )第五章***********************关系运算和逻辑运算if 语句结构及应用,if 的嵌套使用原则switch结构及应用,break的必要性。
第六章************************while 语句应用do while 语句应用,与while结构的区别for语句的应用,表达式省略的效果。
循环嵌套的应用。
break , continue 的使用方法第七章************************定义一维数组,引用一维数组,元素下标范围,元素初值和数组初始化,利用循环语句处理数组元素定义二维数组,引用二维数组元素,元素下标范围,二维数组元素初值和数组初始化,利用循环嵌套语句处理数组元素字符数组定义,用字符数组保存字符串,字符串的结束标志。
字符串操作函数使用(puts( ) gets ( ) strcat( ) strcmp( ) strcpy( ) strlen( ) strlwr( ) strupr( ) )第八章******************main()函数的作用函数定义的方法,形参定义,实参与形参的对应关系(个数、类型一致)return 语句的使用,函数数据类型与return 返回的表达式类型一致。
☐第5章数据类型与输入输出1.熟悉常用的关键字,掌握标识符的命名规则;2.理解各种基本的数据类型, 包括描述符号、表述范围及存储方式;3.理解变量与常量的特点,掌握各种类型变量与常量的使用方法;4.掌握各种类型数据的基本输入输出方式,了解格式IO操作;5.各种编程错误,掌握基本调试方法;☐第6章运算符与表达式1.算术运算符及其表达式运算;(/ 整除,除零;%运算数为整数除零)2.赋值运算符及复合赋值运算符,理解左值表达式;3.自增和自减运算符,理解前置与后置的区别;4.关系运算符、逻辑运算符及其表达式,注意短路问题;5.其他运算符:逗号、条件运算符、sizeof;6.数据类型的转换和混合运算规则☐第7章选择结构1.掌握if语句实现单选结构,注意逻辑条件的构造;2.掌握if-else语句实现双选结构,if-else嵌套的表示与配对;3.掌握if-else if-else语句实现多选结构4.掌握利用switch语句实现多分支选择结构,注意break语句5.各种选择结构的嵌套☐第8章循环结构1.理解两种循环结构,循环结构三要素:循环初始条件/ 循环体/循环条件;2.掌握for、while与do..while语句,理解其区别与共性3.掌握循环控制的方法,注意循环条件的设计;4.理解循环嵌套,掌握双重、三重循环算法5.掌握break和continue转向语句跳出循环的方法;6.了解结构化程序的特点,熟练应用控制结构设计程序。
☐第9章数组1.理解一维数组存储特点,掌握数组定义、初始化和元素访问的方法;区别数组定义与元素的引用,避免数组越界访问(下标范围[0,n-1] );2. 理解二维数组,一维数组的一维数组,行优先存储,掌握二维数组定义、初始化和元素访问的方法(二重循环遍历);3. 掌握字符数组的定义与初始化,理解字符串的特点与存储方式(‘\0’);掌握字符数组的整体与局部访问,理解其和数值数组和区别6.掌握向函数传递数组的方法,理解其实质(传递指针);7. 掌握数组的基本算法,如排序(冒泡/选择/插入排序)与查找(顺序与二分查找)算法。
一、基本概念1.标识符的合法定义;能够判别定义的变量名、函数名是否合法。
2.书写规则,语句的写法,注释语句的写法;3.逗号运算符的使用方法,注意与赋值运算的优先级;4.数学表达式的C语言书写;5.掌握四则混合运算。
(1)+-*/%的运动优先级(2)整数除法与实数除法的区别;(3)%运算对操作数的要求(4)运算中隐性类型转换6.x++,++x, x--,--x 的区别;7.条件表达式的运算结果(**?** : ** )& printf函数功能;⑴各种输出类型的格式控制符%£1, %c, %f, %lf, %u, %o, %x(2)小数位控制,宽度控制(3)格式控制符数目与输出参数列表中输出项数目不一致的处理。
(4)输出参数列表的计算顺序9.scanf的输入数据方法;10.getchar,putchar 的使用方法;11.转义字符的使用方法;(1)常用的转义字符:^、X、’Q等(2)八进制表示的转义字符、ddd‘(3)十六进制表示的转义字符5\xhh'(4)能够计算包含转义字符的字符串长度12.复合赋值语句的使用方法;13.强制转换数据类型方法;14.辻语句嵌套的使用以及else的匹配原则15.关系运行,逻辑运算,这些运算符间的优先级;16.条件语句和逻辑运算中的短路计算;17.判断真假时:(!x)和(x==0); (x)和(x! =0)等价;类似(x=5)条件永远为真;18.switch的使用方法以及break在语句中的作用;19.整除判断,比如偶数判断,某整数倍判断;20.利用if语句对两个数,或三个数进行从小到大或从大到小排序;21.for语句的使用方法,掌握各语句的执行顺序,特别是语句4的位置和功能;for(语句1;语句2;语句4){语句3;}22.while语句的使用方法;23.几种循环语句的区别;24.根据循环条件判别循环执行次数;25.continue 和break 的用法;26.区分函数定义、函数声明和函数调用;27.函数输入参数和返回值的类型如何设置,由什么决定;28.函数的调用和返回的应用;29.函数缺省返回值类型;30.函数形参列表中参数类型和数目;31.main函数的功能;32.函数嵌套和调用的方法;33.简单的递归函数使用;34.在C程序中,默认形参存储类型;35.全局变量的使用方法,局部变量对全局变量的屏蔽作用;36.局部静态变量的使用方法;37.宏定义和宏替换;38.数组定义、初始化和元素的引用;(1)一维数组的初始化方法(2)二维数组的初始化方法39.数组引用的下标越界问题;40.数组名作函数实参,形参和实参的作用;41.指针的指向运算符功能和使用;42.指针变量之间的运算符有哪些;43.指针调用数组元素的几种方法;44.指针做函数形参,地址做实参;45.二级指针访问数组元素;46.区分*(++p),++(*p), (*p) ++, *(p++)的运算结果;47.字符型数组初始化,字符串初始化;48.字符串赋值操作;49.字符数组和字符串的区别;50.字符串中字符长度和存储空间长度;注意:(i)\(r位置(2)用八进制、十六进制表示的转义字符51.指针在字符串操作中的应用方法;52.字符串三种输入方法及其特点;(1)%c的循环实现(2)%s(3)gets(char * str)函数53.字符串三种输出方法及其特点;⑷%c的循环实现(5)%s(6)putsfchar * str)函数54.字符串元素的使用;55.字符串复制函数,比较运算函数,连接函数、计算字符串长度函数;char * strcpy(char * str 1,char *str2)int strcmp(char * stri,char *str2)char * strcat(char * stri,char *str2)int strlen(char * str 1,char *str2)56.结构类型变量定义和初始化;57.位运算符;58.«和»运算;59.常见文件操作方式;60.打开和关闭文件的方法;二、基本算法61.数据交换;62.利用循环结果实现累乘,累和;63.双重循环,内层循环与外层循环的循环变量之间的关系;64.利用双重循环对数组进行排序;65.结合/和%运算,提取整数各位数字的方法;66.未知位数的整数的各位数字的和;67.根据给出的通项表达式计算近似结果,如sin(x)或e;68.根据分段函数设计C程序;69.最大公约数;70.判断是否为素数;71.统计数组中满足条件的元素个数;72.掌握函数定义方法,并在主函数中进行调用。
C语言复习提纲:第一章 C语言程序设计概述一、Visual C++6.0开发环境1、了解Visual C++6.0的安装过程;2、了解Visual C++6.0的工作界面,菜单和工具栏的使用;▲二、掌握C语言程序运行的过程1、编辑:是指把按照C语法规则编写的程序代码通过编辑器(Visual C++ 6.0,Turbo C 3.0)输入计算机,并存盘。
在存盘时,C源文件的扩展名为 .c2、编译:将C语言源程序编译成目标程序,即对源程序进行编译,并将源程序转换为扩展名为.obj的二进制目标代码(即把已经编辑好的源程序翻译成二进制目标代码的过程)。
3、连接:将用户程序生成的目标代码文件(.obj)和系统提供的库文件(.lib)中的某些代码连接在一起,生成一个可执行文件(.exe)。
4、执行:执行生成的可执行代码,并输出结果。
5、调试:是将编制的程序投入实际运行前,用手工或编译程序等方法进行测试,修正语法错误和逻辑错误的过程。
▲三、结构化程序设计的基本概念1、概念以模块化设计为中心,将待开发的软件系统划分为若干个相互独立的模块,将原来较为复杂的问题化简为一系列简单模块的设计,任何模块都可以使用一些基本的结构来实现,任何复杂的程序,都可以使用这些基本结构按一定的顺序组合起来,这些基本结构的特点都是只有一个入口、一个出口,这样的程序设计方法称为结构化程序设计。
2、基本思想结构化程序设计的基本思想是采用"自顶向下,逐步细化、模块化设计、结构化编码"的程序设计方法和"单入口单出口"的控制结构。
3、三种基本结构⑴顺序结构⑵选择结构⑶循环结构4、三种基本结构的特点⑴只有一个入口⑵只有一个出口⑶每一个基本结构中的每一部分都有机会执行到⑷结构内不存在“死循环”5、设计原则⑴自顶向下⑶逐步细化⑶模块化设计⑷结构化编码▲四、C程序的基本组成:C程序是由若干个函数构成的,至少有一个主函数main(),main()的位置可以任意,其他各函数在程序中的前后位置也是可以任意的。
C语言复习纲要题型:选择、程序填空、写出运行结果、程序改错、编程代码风格:一行写一条;定义同时初始化;花括号各占一行;if,for,while”。
各占一行;分支循环用大括号;梯形书写。
第一部分:数据类型、运算符与表达式(基础)1.函数是C程序的基本单位,即C程序是由函数构成的;函数由函数首部(返回值类型、函数名、形参类型、形参名)和函数体构成;书写格式与规则(分号结束,不限制语句与行数的关系,合理的注释)2.常见符号:关键字(C语言中预先规定的具有固定含义的单词,int, return);标示符(系统预定义标示符,main,scanf, printf,不提倡重新定义;用户自定义标示符,函数名Add,变量名x, y, sum);运算符(算数、关系、逻辑、赋值、增减1、条件、强制类型转换、指针和地址、计算字节数、下标、结构体成员、位、逗号);分隔符(空格、回车、逗号);其他符号;数据(变量和常量)3.为什么引入数据类型:不同类型的数据在数据表示形式、合法的取值范围、占用内存储器的空间人小、可以参与的运算种类等方面有所不同。
4.标示符命名规则:字母数字下划线,字母或下划线开头;不和关键字和库函数名重复;长度有限制;见名知意;明明风格;不要仅依靠大小写区分。
5.整型常量,实型常量,字符常量(可打印字符和转义字符),字符串常量,宏常量,枚举常量&变量:%1声明与初始化:所有变量必须在第一条可执行语句前声明,不赋值是随机值,多个变量一一赋初值类型关键字变量名1,[变量名2..J;类型关键字变量名“常量1,[变量名2二常量2・・・];%1Const修饰符:确保标示符不被任何程序修改,和宏常量比有数据类型%1使用原则:先定义,后使用;用sizeof获得长度最保险;一个char型变量既能以字符格式输出,也能以整形格式输出(ASCII 码)7.运算符的优先级和结合性:先按优先级,同级的看结合性。
&算术运算符:两个整数相除结果还是整数;两个整数才能求余;标准数学函数include <math.h>;只能用圆括号9.关系运算符:比较运算,结果为真假(非0为真,0为假),<><= >=优先级高于=!二10.逻辑运算符:非(!)与(&&)或(||),结果只有真假。
C语言复习纲要1.合并字符串(已知为升序,合并为升序)程序:#include<stdio.h>int main ( ){ char str1[80], str2[80], str[80];//str存放合并后的字符串,注意//str要足够大int i, j, n;gets ( str1 );//用gets( )函数读取字符串str1.gets ( str2 );//用gets( )函数读取字符串str2.n = 0;for ( i=0,j=0; str1[i]!='\0' && str2[j]!='\0'; )if ( str1[i] < str2[j] ) str[n++] = str1[i++];else str[n++] = str2[j++];while ( str1[i]!='\0' ) str[n++] = str1[i++];while ( str2[j]!='\0' ) str[n++] = str2[j++];str[n]='\0';//在合并后的字符串后面添加‘\0’,表示字符串结束。
puts ( str ); //用puts()函数输出字符串。
return 0;}算法分析:由于已经确定str1和str2为升序排列,在str1[i]!='\0' &&str2[j]!='\0'的条件下从i=0,j=0,n=0,开始对str(i)和str(j)的值进行比较,将其中小的值赋给str(n),并且同时令相应的n和对应的i或j加一,继续比较,就可以依次将str1和str2字符中较小的字符赋给str,当str1或者str2中有一方的值为’\0’时,循环终止,此时,只需将另一字符串的值依次赋给str即可,最后在str结尾添加‘\0’.重要语法:if ( str1[i] < str2[j] ) str[n++] = str1[i++];else str[n++] = str2[j++];用来将str1和str2中较小值赋给str,并同时令n和i或j加一,继续循环。
c语言期末复习题纲C语言期末复习题纲一、C语言基础1. C语言的发展历程2. C语言的特点3. C语言的基本组成4. C语言的编译和运行过程二、数据类型与变量1. 基本数据类型- 整型(int)- 浮点型(float, double)- 字符型(char)2. 变量的定义和声明3. 变量的初始化4. 常量的定义和使用三、运算符与表达式1. 算术运算符2. 赋值运算符3. 比较运算符4. 逻辑运算符5. 位运算符6. 条件运算符7. 表达式的求值和类型转换四、控制结构1. 顺序结构2. 分支结构- if语句- switch语句3. 循环结构- while循环- do-while循环- for循环4. 控制语句- break- continue- goto五、数组1. 一维数组的定义和使用2. 二维数组的定义和使用3. 数组的初始化4. 数组的内存分配5. 数组的遍历和搜索六、函数1. 函数的定义和声明2. 函数的参数传递- 值传递- 地址传递3. 函数的返回值4. 递归函数5. 函数的嵌套调用6. 函数的指针七、指针1. 指针的基本概念2. 指针的声明和初始化3. 指针与数组4. 指针与函数5. 指针的指针6. 动态内存分配八、结构体与联合体1. 结构体的定义和使用2. 结构体数组3. 结构体与指针4. 结构体作为函数参数5. 联合体的定义和使用九、预处理指令1. 宏定义(#define)2. 文件包含(#include)3. 条件编译(#ifdef, #ifndef)十、文件操作1. 文件的打开和关闭2. 文件的读写操作3. 文件的定位4. 文件的错误处理十一、C语言中的高级特性1. 位域2. 枚举类型3. 静态存储类4. 动态存储类5. 自动存储类6. 外部存储类十二、C语言的应用1. C语言在系统编程中的应用2. C语言在嵌入式编程中的应用3. C语言在图形编程中的应用结束语:本复习题纲涵盖了C语言的主要知识点,希望能够帮助同学们系统地回顾和巩固C语言的学习内容,为期末考试做好充分的准备。
《计算机软件基础》复习大纲第1章程序设计语言与程序设计方法重点:基本概念:机器语言、汇编语言、高级语言、算法;结构化程序设计;面向对象程序设计难点:算法;结构化程序设计知识点:1、机器语言和汇编语言由计算机硬件系统可以识别的指令组成的语言称为机器语言。
汇编语言是将机器指令映射为一些可以被人读懂的助记符。
由于计算机只能识别机器语言,所以汇编语言通常需要通过汇编程序翻译为机器语言。
汇编语言的翻译软件称为汇编程序,它可以将程序员写的助记符直接转换为机器指令,然后由计算机去识别和执行。
用机器语言编写的程序是计算机可以直接执行的程序。
2、高级语言像自然语言一样描述程序的语言。
高级语言源程序翻译为指令代码有两种做法:编译或者解释。
编译通过编译程序来完成。
解释则是通过解释程序完成。
解释的结果产生可以直接执行的指令。
编译的结果是得到目标程序。
目标程序也是要经过连接才会得到可执行程序目前应用比较广泛的几种高级语言由FORTRAN/BASIC/PASCAL/C等。
3、算法的定义:算法是一组明确的可执行步骤的有序集合。
算法的5个特征:(1)有穷性一个算法必须保证执行有限步之后结束(2)确定性算法的每一步骤必须有确切的定义(3)可行性(4)输入(5)输出4.结构化程序设计的原则:✧采用自顶向下、逐步求精的方法程序结构✧模块化把一个大型的程序按照功能分解为若干相对独立的、较小的子程序(即模块),并把这些模块按层次关系进行组织。
✧限制使用goto语句严格遵循每个程序段“只有一个入口和一个出口”的原则5、结构化基本结构:顺序结构、选择结构、循环结构6、结构化程序的描述工具(1)程序流程图(2)N-S图(3)伪码7. 面向对象的程序设计♣对象:在现实生活中,所有东西都是对象,例如某一辆车就是一个对象,指具体的一辆车,某个人也是一个对象,指具体的一个人。
对象既可以很简单,也可以很复杂,复杂的对象可以由若干简单的对象构成。
任何对象都有两个共同的特点:对象的属性和对象的操作。
总体上必须清楚的: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)整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节:考试时候一般会说,在16位编译系统,或者是32位系统。
碰到这种情况,不要去管,一样做题。
掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。
C语言程序设计复习提纲基本的知识点1.C语言基础知识1.1.C语言的发展历史1.2.C语言的特点和优势1.3.C语言的语法规则和规范1.4.C语言的数据类型和变量1.5.C语言的运算符和表达式1.6.C语言的流程控制语句2.函数和模块化编程2.1.函数的定义和调用2.2.函数的参数传递和返回值2.3.函数的声明和定义2.4.函数库的使用和自定义函数的编写2.5.模块化编程的概念和实现方法2.6.头文件的使用和函数库的链接3.数组和指针3.1.数组的定义和操作3.2.一维数组和多维数组3.3.数组作为函数参数的传递3.4.字符串和字符数组3.5.指针的概念和基本操作3.6.指针和数组的关系4.文件操作和输入输出4.1.文件的打开和关闭4.2.文件读写操作和数据类型的转换4.3.格式化输入和输出4.4.错误处理和异常处理4.5.标准输入输出和文件输入输出的区别5.动态内存管理5.1.内存的分配和释放5.2.堆和栈内存的概念和区别5.3. 动态内存分配函数malloc、calloc、realloc和free的使用5.4.内存泄漏和悬空指针问题的预防5.5.内存管理的注意事项和最佳实践6.结构体和联合体6.1.结构体的定义和使用6.2.结构体的嵌套和成员的访问6.3.结构体作为函数参数的传递6.4.结构体的对齐和内存对齐原则6.5.联合体的概念和使用方法6.6.结构体和联合体的区别和应用场景7.指针和链表7.1.指针和内存地址的概念和操作7.2.指针的自增和自减运算7.3.指针的加法和减法运算7.4.链表的定义和基本操作7.5.单链表、双链表和循环链表7.6.链表的插入、删除和查找操作8.排序和算法8.1.冒泡排序和选择排序8.2.插入排序和快速排序8.3.归并排序和堆排序8.4.顺序和二分8.5.效率分析和优化策略9.数据结构和算法9.1.栈和队列的概念和操作9.2.树和图的概念和操作9.3.查找和排序算法的实现和分析9.4.动态规划和贪婪算法的应用9.5.算法复杂度的计算和比较总结:本次复习提纲主要包括C语言的基础知识、函数和模块化编程、数组和指针、文件操作和输入输出、动态内存管理、结构体和联合体、指针和链表、排序和算法、数据结构和算法等方面的内容。
C 语言程序设计复习提纲---基本的知识点2011.6.一、应知1.C程序的结构:(P5、笔记)例1:构成C程序的基本单位是什么?例2:一个C程序有几个main()函数?(P5)例3:一个C“语句”什么情况下用分号“;”结尾,什么情况下不用分号“;”结尾?(一个典型的例子是:函数定义P131与函数声明P137) (p5)2.C语言中的运算符及其运算优先级:算术运算符(P35) 自增自减运算符(P43)关系运算符(P41) 逻辑运算符(P43)条件运算符(P85) 复合运算符(P38)3.C语言中的表达式、表达式的求值及其与对应的数学表达式的相互转换:算术表达式(P36) 赋值表达式(P40)关系表达式(P41) 逻辑表达式(P43)A.表达式的求值例:例1:P33No23、P39、P45、P55No4、P55No8例2:若有int a=1,b=2,c=3;则表达式a<b && b<c 的值是什么? (Attion :p44)表达式a<b && b<c 即为:1<2 && 2<3→1 && 1→1B .C 语言表达式与对应的数学表达式的相互转换例:例1:∣x 2-y 2∣+ab b a b a ++: C 库函数例2:P55No.74. C 语言中标识符的命名规则:(P13、笔记)例1:-e ,e-03,1e3,e ,e1,(a+b)++,qwe ,if例2:P32No.55. C 语言中允许的基本数据类型:(P17)6. scanf 函数和printf 函数的正确使用方法7. C 语言中各语句的G.F.、PP 以及NE8. 字符常量与字符串常量的区别:(P28、P30、P177)9. C 程序的三种基本控制结构、执行过程及其相关语句10. break 语句和continue 语句的作用与区别:(P109、P110、笔记)11. 当型循环与直到型循环的区别:(笔记)12. 循环的三要素(笔记)13. 嵌套循环的执行过程:(笔记)14. 一维数组和二维数组的定义、初始化规则与引用:(P161~P172、笔记)15.函数的定义和函数的调用均可嵌套吗?(P131~p133、P135笔记)16.函数定义与函数说明的区别:(P130、P135、笔记)17.函数的三种调用方式:(笔记)18.递归调用的二个关键和二个阶段:(笔记)19.函数调用中的数据传递方式:(值传递和地址传递:P138~P143、笔记)20.地址、指针、指针变量、指针运算符、指针运算的基本概念:(P51~P54、P200~P205、笔记)21.编译预处理的基本概念⑴编译预处理命令不是C语言中的语句。
一:选择题(共40分每题2分)二:填空题(共15分每题1分)三:程序阅读题(共9分每题3分)四:程序填空题(共9分每题3分)五:编程题(共27分4题)第一章 C语言概述一、C程序的主要结构特点如下:(1)所有的c程序都是由一个或多个函数组成的程序模块构成的。
(2)必须有且仅有一个main()主函数。
c程序总是从主函数main()开始执行,结束于主函数。
(3) c语言程序是由语句组成,使用“;”作为语句的中止符或分隔符。
(4) c语言程序中用{}将函数体括起来。
(5) c语言中注释的格式:/*注释内容*/。
二、上机步骤:第二章数据类型、运算符及表达式一、关键字(会识别):共32个:auto break case char const continue default do double else enum extern float for goto if int long register return short signed static sizeof struct switch typedef union unsigned void volatile while例:下列是C语言提供的合法的数据类型关键字()。
A)unsign B)defalut C)integer D)Char二、自定义标识符:是用户定义的用来标识语句中的成份。
如函数名、变量名、数组名等。
标识符定义的规则:(1)第一个字符必须是字母或下划线_;(2)后跟字母、下划线_或数字组成;(3)标识符中的大小写字母有区别(4)不能与c编译系统已经预定义的关键字同名。
例:选出下列标识符中不是合法的标识符的是()。
A. hot_doB. cat1C. _priD. 2ab三、常量:在程序运行过程中,其值不能被改变的量。
(1)整型常量:十进制、八进制(以0开头)、十六进制(以0x开头)(2)字符常量:用单撇号‘’括起来的一个字符,可以使用转义字符。
(3)实型常量(浮点型常量):小数形式、指数形式(小数e指数)。
(4)字符串常量:用双撇号括起来的字符序列。
(5)符号常量定义:#define 标识符名常量例:在C语言中,非法的八进制是:()A.016B.018C.017D.02例:不是C语言实型常量的是:()A.55.0B.0.0C.5.5e-3D.55e2.5四、变量:程序运行期间数据的值不确定。
1、变量的声明和定义:类型名变量标识符名[,变量…,变量];*变量使用前要先定义如:double x ; //定义(声明)了x*变量的使用——引用如:x+2*y //表达式中引用了x,y2、变量的操作:(1)存数据:初始化、赋值语句和键盘输入函数(2)取数据:用变量参与表达运算例:下面的变量说明中正确的是____________。
A.int:a, b, c; B.int a; float b;C.int a, float b; D.int 2;五、数据类型:常用基本类型的类型符及占用空间基本型所占字节对应格式符char 1 %c int 4 %dfloat 4 %f、%e double 8 %lf、%le六、运算符:规定数据执行特定操作的符号:掌握常用的运算符七表达式:是用括号将常量、运算符、函数连接起来的有意义的式子。
表达式的运算顺序:从左往右依次取出运算数据和运算符,不同运算符按优先级由高到低顺序进行,同级按运算符的结合性决定运算的先后。
例5、计算下列表达式的值:(1)(a+b)/2+(int)x%(int)y a=4,b=3.x=8.6,y=3.5(2) a+b>c&&c-1 a=2,b=3,c=4(3) !(a<b)||&&-a a=2,b=3,c=4(4) b=a++ b=3 a=4; b=? a?(5) a=2 a*=a+2 的值(6) sizeof(char) 的值第三、四章顺序、选择、循环结构程序设计一语句:它由一个词或句法上有关连的一组词构成,表达计算机执行的一个动作或声明定义一个符号的名称。
赋值语句等号左边为变量例:下面不正确的赋值语句是_____________。
A.a=a+1 B、a+5=b C、a+=b D、a=1 例:下列程序的输出结果是( )。
#include <stdio.h>void main(){int a=3,b=5;printf("a=%d,b=%d",x,y);}(A) a=3,b=5 (B) a=%3,b=%5(C) a%%d,b=%%d (D) a=%d,b=%d例:for语句执行过程:for(表达式1;表达式2;表达式3){循环体语句;}表达式13;例:循环语句:for(i=1;i<4;i++) s=s+i; 循环体执行的次数_________; 例:多重循环(循环的嵌套),循环体中包含循环int i,j;for(i=1;i<5;i++){printf(“i=%d”,i);for(j=0;j<5;j++){printf(“j=%d”,j); 内层循环体外层循环体}printf(“\n”);}二、编程程序结构:按执行语句的次序: 顺序; 选择; 循环编排语句的次序: 声明数据和输入数据; 处理数据; 输出数据;例:C程序设计时,当求解问题中出现条件判断时应该用选择结构,若出现连续重复时应该用循环结构,若出现功能上重复时可以设计函数来实现程序的模块化设计。
第五章数组一.数组的概念由相同数据类型的变量按照一定的次序组织起来,就是数组。
构成数组的变量称为数组元素。
用一个数组名和下标来唯一确定数组中的元素。
数组类型属于构造数据类型。
二.一维数组1、定义类型标识符数组名 [常量表达式];例: int a[5];2、初始化⑴对数组的全部元素赋初始值。
如: int m[5]={1,21,35,4,58};⑵对数组的部分元素赋初始值。
如:int num[5]={1,24,3};⑶对数组的全部元素赋初始值时,可以将数组定义为一个不确定长度的数组。
如:int num[ ]={19,2,32,4,51};3、引用:数组名[下标] a[2]=3;三.二维数组1、定义数据类型数组名 [常量表达式1] [常量表达式2];例: float a[3][4];二维数组中元素的排列顺序是按行排列2、初始化(1) 分行对二级数组初始化。
如: int a[3][4]={{1,28,3,4},{15,62,7,8},{9,100,111,12}};(2) 按数组排列的顺序对各元素赋初值。
如: int a[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};(3) 可以对部分元素赋初值。
如: int a[3][4]={{1},{5},{9}};(4) 如果对全部元素赋初值,则定义数组时对第一维的长度可以不指定,但第二维的长度不能省略。
如: int a[ ][4]={1,2,3,4,5,6,7,8,9,10,11,12};3、引用:数组名[行下标][列下标]四、字符数组:用来存放和处理字符数据的数组变量。
1、定义char 数组名[常量表达式];例char c[10];2、初始化⑴用字符逐个给字符数组中的元素赋值如:char c[5]={‘H’,’e’,’l’,’l’,’o’};⑵用字符串常量给字符数组赋值。
如:char c[6]=“Hello”;或char c[ ]=“Hello”c这个数组总共分配6个字节的存贮空间,在c[5]中存入的是‘\0’。
3、字符串的输入输出⑴在scanf中利用“%s”实现对字符串的整体输入如: char str[20]; scanf(“%s”,str));⑵在printf中利用“%s”实现对字符串的整体输出4、常用字符串处理函数⑴字符串输入函数gets(字符数组名)⑵字符串输出函数puts(字符数组名)⑶字符串连接函数strcat(s1,s2)⑷字符串比较函数 strcmp(s1,s2)⑸字符串复制函数 strcpy(s1,s2)⑹字符串求长度 strlen(字符数组名)例:以下一维整型数组array的正确说明是()。
(A)int a(5); (B)int n=5,a[n];(C)int n; (D)#define SIZE 10;scanf("%d",&n); int array[SIZE];int array[n];例:若有定义:int a[2][3],则对数组a元素的正确引用是()。
(A)a[2][3] (B)a[1,3] (C)a(1)(3) (D)a[1][2]例:下面是对s的初始化,其中不正确的是()。
(A)char str[5]={“you”}; (B)char str[5]={‘y’,’o’,’u’};(C)char s[5]=“”; (D)char s[5]=“abcdef”例:定义字符数组char str[20];,则不能对字符数组正确输入的语句是()。
(A)scanf("%s",str);(B)gets(str);(C)scanf("%c",str);(D)for(i=0;i<20;i++) scanf("%c",&str[i]);例:定义字符数组char str[10]={“string”};,则不能对字符数组正确输出的语句是()。
(A)printf("%s\n",str);(B)puts(str);(C)printf("%c",str);(D)for(i=0;i<10;i++) printf("%c",str[i]);第六章函数1、函数定义形式:函数类型函数名(形参表列){ 函数体 }例:int max(int x,int y){int z;z=x>y?x:y;return z;}函数的参数:形参和实参,作用是实现数据传送函数返回值与return语句有参函数的返回值,是通过函数中的return语句来获得的。
return语句的一般格式:return ( 返回值表达式);函数类型在定义函数时,对函数类型的说明,应与return语句中、返回值表达式的类型一致。
以下错误的函数定义是。
A)void fun(int x, int y) B)double fun(int x){ int z=x+y ; return ; } { int y,z ; return z=x+y ;}C)fun (int x,int y) D)int * fun (int * x, int * y){ double z ; { double z ;z=x+y ; return z ; } return z=*x+*y ; }2、函数的调用函数调用的一般形式为:函数名([实际参数表])(1)函数表达式。