2011《C语言》复习提纲
- 格式:doc
- 大小:59.50 KB
- 文档页数:4
☐第1章C语言概述1.了解C语言的特点、C程序的构成、开发过程2.熟悉常用的关键字,掌握标识符的命名规则;☐第2章数据类型、运算符与表达式数据的描述规则与操作规则1.掌握基本的数据类型的存储方式及特点;2.掌握变量及常量的特点和区别,熟悉不同类型的常量;3.掌握常用运算符的用法及其优先级和结合性;✧算术运算符及其表达式运算;✧赋值运算符及复合赋值运算符;✧自增和自减运算符;✧其他运算符:逗号;✧数据类型的转换和混合运算规则☐第3章顺序结构1.输入输出函数及格式控制2.顺序结构程序设计举例☐第4章选择结构1.关系运算符、逻辑运算符和条件运算符及其表达式;理解构成逻辑条件的判断表达式和条件语句的应用;2.用if语句实现选择结构掌握if 语句的形式和执行流程,if-else嵌套的表示与执行;3.利用switch语句实现多分支选择结构☐第5章循环结构1.理解两种循环结构,循环结构两要素:循环体和循环条件;2.掌握三种循环语句的语句形式及流程,循环控制的方法;3.掌握多重循环,即循环嵌套的应用;4.掌握break和continue转向语句跳出循环的方法;5.结构化程序的特点6.控制结构的综合应用✧判断闰年,求方程根,数据排序,✧累乘累加,级数逼近,求公约数,✧判断素数,百鸡问题,字符图形☐第6章数组1.理解数组存储特点,掌握一维数组和二维数组的定义、初始化和元素访问的方法;2.理解数值数组和字符数组的区别3.掌握向函数传递数组的方法,理解其实质;4. 掌握数组的基本应用,如排序与查找算法。
☐第7章函数1.理解函数的概念,掌握各种类型函数的定义方法;2.理解函数原型的作用,掌握函数的声明方法;3.掌握函数的调用方法:嵌套调用和递归调用;4.掌握传递数据的不同方式:按值传递和按地址传递5.理解各种变量的作用域与生命期的区别与特点:自动和静态变量,全局变量和局部变量;☐第8章指针1.理解地址和指针的概念,学会指针变量的定义和初始化方法;2.掌握指针运算符,学会用指针间接引用数据对象的方法;3.理解指针与数组的联系,熟悉用其操作数组及其元素的方法;4.掌握处理字符串的方法,使用并定义各种字符串函数理解字符数组和字符指针存储字符串的区别5.理解指针数组的意义,掌握其应用方法;6.理解二级指针和用指针处理二维数组的方法;7.掌握动态申请内存的函数用法。
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语言》课程阶段复习提纲(第1‐4章)史大光、王宝仁1.什么是计算机语言;什么是计算机程序。
2.简要总结C语言的特点。
3.对于用C语言编写的计算机程序,需要哪几个过程最终才能被计算机执行(P12‐14)4.理解函数(包括main()函数)构成与格式(函数类型、函数名、形式参数、函数体)(P11‐12)5.了解C语言程序一般结构,及其main函数的作用(P10‐12)6.变量名和函数名统称为标识符,合法的标识符由字母数字和下划线组成,但不能以数字开头。
关键字(if、 while、for、switch等)不能作为标识符(教材P42)7.掌握如何对C源程序注释。
方法一:/*….*/ 方法二: //8.常量和变量、整型和实型的概念(图3.4)9.记住整形变量int、unsigned int 、short、unsigned short、long、unsigned long占用内存字节和数值的表示(参考教材表3.2和3.3)10.记住float和double数据类型占用的字节数、表示范围和有效数字位数。
(参考教材表3.4)11.理解字符型变量与ASCII,记住大小写字母(A‐Z,a‐z)和数字(0‐9)的ASCII码 ,知晓char x=’C’ 与 char x=67等效 putchar(‘C’)与putchar(67)在屏幕上打印同样的字符 char x=’1’ 与 char x=49等效 putchar(‘1’)与putchar(49)在屏幕上打印同样的字符 char x=’\n’ 与 char x=10等效, putchar(‘\n’)与putchar(10)在屏幕产生同样动作char x=’\b’ 与 char x=8等效 putchar(‘\b’)与putchar(8)在屏幕产生同样动作char x=’\0’ 与char x=0等效,与char x=’0’ 意义完全不同char x=’0’ 与char x=48等效。
复习提纲:第一章:C语言概述1、C程序的构成。
(C程序由函数构成,一个main函数加若干个子函数)2、函数的结构。
(函数首部+函数体)3、C程序(结构化程序)的三种基本结构。
(顺序、选择、循环)4、C程序的执行流程。
(从main函数开始,在main函数结束)5、C程序的上机步骤。
(编辑.c,编译.obj,连接.exe,执行)6、main函数有关知识。
(main函数可以调用其他子函数,子函数不能调用main函数;main函数可以放在任何位置)7、分号是C语句的必要组成部分。
第二章:程序的灵魂——算法1、算法的特性。
(有穷性、确定性、零个或多个输入、一个或多个输出、有效性)2、算法的表示。
(流程图)3、结构化程序设计方法。
(自顶向下;逐步细化;模块化设计;结构化编码)第三章:数据类型、运算符与表达式1、C语言数据类型的划分。
(课本P37图)2、标识符的命名规则。
(包含字母、数字和下划线,且开头必须是字母或下划线)3、符号常量的定义。
(例如:#define PRICE 30)4、整型、实型、字符型三种类型常量的书写格式。
(课本P40到P48,注意转义字符的书写)5、整型、实型、字符型三种变量的定义形式、赋值及空间分配。
(int, long int, float, double, char)6、算术运算符的优先级、结合方向及算术表达式的运算方法。
(注意++,--运算法的运算方法)7、赋值运算符的优先级、结合方向及赋值表达式的书写。
(注意复合赋值运算符的含义,课本P63)8、逗号运算符的优先级、结合方向及逗号表达式的计算步骤。
(课本P65)重点课后习题:习题3.9, 3.10, 3.12。
(应熟练掌握计算的方法)第四章:顺序程序设计1、C语句的分类。
(控制语句、函数调用语句、表达式语句、空语句、复合语句)2、putchar函数的应用,getchar函数的应用。
(例如:ch=getchar( ); putchar(ch); )3、printf函数的格式及应用;scanf函数的格式及应用。
第一部分C语言基础1、C语言是一个函数式语言,有且仅有一个叫MAIN的主函数,程序从MAIN中开始,在MAIN中结束。
2、C语言的特点。
3、C语言程序运行的方式。
4、C语言有32个关键字,34种运算符,9种控制语言,三种基本结构。
5、C语言的数据类型有哪几种,每一种类型的数据范围。
6、C语言的运算符的使用,优先级,结合律,含义等。
7、C语言中数据类型的转换规则。
8、C语言中数据表示形式。
9、C语言修饰符的含义及使用。
10、C语言的标识符的组成。
11、三种基本结构的语句和语法格式。
12、函数的定义格式。
13、模块化设计的要求。
14、C语言程序在内存中运行的情况。
15、二种程序分析的方法。
16、实参和形参的关系。
17、实参向形参传递参数的规则。
18、变量的属性有哪几种,以及它们在程序中的用途。
19、C语言库函数的使用。
20、局部变量和全局变量的定义和作用范围。
21、数组的定义,含义和理解。
22、一维数组的定义和引用。
23、一维数组中常用算法(插入,删除,查询,排序等)24、二维数组的理解,元素的引用。
25、二维数组中的常用算法。
26、字符串的定义和使用以及注意事项、库函数的使用等。
27、指针的含义28、指针与变量之间的关系29、指针与一维数组的关系。
30、指针与二维数组的关系,特别注意行指针,和列指针以及指向指针的使用。
31、指针与函数之间的关系,以及返回指针值的函数。
32、结构体数据类型的定义和数据项元素的引用。
第二部分相关复习题C语言复习题A一、单项选择题1、C语言提供的合法关键字是_______。
A、AUTOB、includeC、unsignedD、dafault2、合法的C语言标识符是__________。
A、2aB、sumC、defaultD、a+b3、下面四个选项中,不是C语言整型常量的是。
A、01B、0x11C、081D、-327684、下面四个选项中正确的实型常量是。
A、0x12B、-12345.e-3C、Ie0.5D、e-55、若a为整型变量,则下面语句。
题型一、单项选择题(共40分,每题2分,共20小题)。
二、填空题(共20分,前面各小题每空1分,后两题每空2分)。
三、程序阅读题(共12分,每题3分,共4题)。
四、程序改错题(共8分,每处2分,共4处有错)。
五、程序设计题(共20分,每题10分,共2题)。
c程序设计语言复习提纲说明:建议学生按提纲提供的知识要点,回顾这些内容是否掌握,再阅读教材相关部分内容,要注重知识的理解与应用。
当然学生可根据自己的学习情况和学习习惯,选择适用自己的学习方法。
c程序设计的常用算法一、累加求和、求阶乘等简单算法此类问题都要使用循环,要注意根据问题确定循环变量的初值、终值或结束条件,更要注意用来表示累加求和、阶乘的变量的初值。
例p66 4-27 ; P68 3; P101 例6-10二、求两个整数的最大公约数:辗转相除法求最大公约数。
P103 例6-12三、排序问题:选择法排序(升序):P71 例5-3四、矩阵(二维数组)运算(1)矩阵周边元素求和for (I=0;I<n;I++)for(j=0;j<m;j++)if(I==0)||(j===0)||(I==n)||(j==m)s=s+a[I][j];(2)矩阵转置:P78 例5-7五、迭代法算法思想:对于一个问题的求解x,可由给定的一个或多个初值,根据某一迭代公式得到一个新的值。
例:求斐波那契数列前40项p70六、字符串的一般处理1.字符串的连接:p85 例5-122.字符串中某特定字符的删除、统计:p84 例5-11 p66 例4-263.字符串中大小写字母相互转换:p82 例5-104.字符串的复制:p143 例8-18七、穷举法穷举法(又称“枚举法”)的基本思想是:一一列举各种可能的情况,并判断哪一种可能是符合要求的解。
例:百元买百鸡p65例4-25;例:求水仙花数p59 例4-20八、判断素数只能被1或本身整除的数称为素数基本思想:把m作为被除数,将2—INT (m)作为除数,如果都除不尽,m就是素数,否则就不是。
各位C语言任课老师:临近期末考试,现将期末复习的考试类型及复习范围告诉各位,请安排学生进行及时的复习一、考试类型上机考试二、复习范围选择题目:涉及的都是基本概念、简单读程序写结果(文件不考,指针、结构共用体只考简单的概念)操作题:主要类型(1)打开指定文件,编译、运行、存盘(2)新建一.c文件,编译、运行、按指定程序名存盘主要考学生对于程序的建立、编译、运行过程的操作以及能否读懂程序,并按照程序要求输入数据程序改错题目:主要类型(1)数据类型是否定义正确(2)变量的初值设置是否正确(3)输入输出语句的格式及类型控制符是否使用正确(4)程序的主要算法关键语句的赋值是否正确(5)主要语句体中是否有缺失的条件、循环的条件是否正确等(6)函数调用的参数是否正确主要考察学生调试程序的能力,并能够根据要求改正错误,运行程序、存盘程序填空题目:主要类型(1)填写程序的赋初值语句(2)填写循环条件、选择条件中的条件(3)填写主要语句体中缺失的语句(4)填写函数调用语句主要考察学生读程序的能力,读懂程序后,根据上下文,填写缺失的语句,并运行出正确的结果,运行程序、存盘编程题目:主要类型因为程序中涉及一些给定的初值的设定,有些学生可以根据给定的初值,推算出结果进而直接用return语句返回结果而省略了主要程序段的编写,因此在题库中使用了随机函数生成一个或多个整数的语句。
(1)要求学生掌握随机数产生函数rand()的用法(2)考试的主要算法有求素数用辗转相除法求最大公约数求和、求积(阶乘)(可根据实验手册、书P131的一些求和公式给学生复习)(1)求公式的前1000项,求π的近似值:(2)直到最后一项中的分数小于1e-6为止(不包括最后一项)求最大值最小值(n个数、一维数组、二维数组)二维数组对角线元素之和字符串逆序(数组元素逆序存放)数组(字符数组)元素的查找、替换、统计、求平均值等其他:如(1)已知某企业今年的产值为100万元,如果产值的年均增长率为5%,经过5年后,企业的产值达到多少万元?(或求经过多少年后,企业产值达150万元)三、复习资料:实验手册上(分支、循环、数组、函数)的所有填空、改错的题目都具有代表性可以给学生附件中的题目复习,有很大的参考价值(除选择题以外,考题与这些题目不一样)书上讲过的一些典型的比较简单的例题(排序、递归等不在考试范围内)四、复习模拟练习机房即将安装模拟考试练习,模拟考试练习只用于学生熟悉考试环境用(里面只有3套题目)17~18周教师可以在课内安排学生模拟练习考试环境,但是大量的练习还是在课后。
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语言程序设计复习提纲第1章C语言程序设计概述1、程序和语言:(1)程序:用计算机语言描述的某一问题的解决步骤,符合一定语法规则的符号序列(2)程序设计语言:描述问题的有规则的符号程序设计语言有:■机器语言――机器直接识别,与机器密切相关,用二进制代码描述低级语言■汇编语言――机器语言的助记符,通常和英文字符接近■算法语言:使用与自然语言接近的表示方式来表示程序,面向算法过程Fortran ALGOL PASCAL C COBLE等■面向任务的语言:描述问题,用程序语言来实现。
数据库操作语言,如SQL-SERVER,VFP等■面向对象的程序设计语言:是一种分析方法、设计方法和思维方法的综合。
程序是相互协作的对象的集合。
2、算法什么叫算法:用计算机解决问题的步骤称之算法程序=数据结构+算法算法的描述方法:自然语言、流程图、NS图、伪代码、计算机语言(C语言)3、C语言程序的基本结构(1)由函数构成,必须且只有一个主函数main()(2)“/* */”之间的内容构成C语言程序的解释部分(3)预处理命令:#include<stdio.h> #include “stdio.h”的区别#include<math.h>#include<string.h>(4)大小写字母在C程序中是有区别的4、C语言字符集、标识符与关键字字符集:英文字母,数字,下划线其他符号标识符:用来表示函数、类型、变量的名称32个关键字,9种控制语句,书写自由运算符丰富:34种运算符数据结构丰富:数据类型有:整型、实型、字符型、数组类型、指针类型、结构体类型、共用体类型5、C语言的文件:原文件、目标文件、可执行文件(扩展名是什么?)6、C语言的优点:第二章结构化控制语句:if else do while for 等语法限制不太严格位运算目标代码质量高可移植性好第2章C语言的基本数据类型、运算符与表达式1、数据类型:基本类型:整型、字符型、实型(单精度、双精度)、枚举类型构造类型:数组类型、结构体类型、共用体类型指针类型空类型掌握的概念:(1)各类型数据得字节数(2)取值范围(3)不同数据类型的数据赋值产生的结果的变化(4)输出格式的区别(5)字符的表示2、常量与变量常量:整型、实型、字符、字符串变量:变量的定义变量的初始化3、运算符:运算符种类:P19各运算符的优先级与结合性变量的定义方法强制类型转换的方法及数据变化自增自减运算4、表达式:(1)什么是表达式(2)赋值运算:a+=5,a=b=c=2,a=(b=4)+(c=6)(3)逗号运算和逗号表达式(4)复合赋值运算(5)逻辑值的表示和使用:真为1,假为0。
基本知识要求一、语法基础1、记住C语言常量的定义方法(#define 名称值),理解符号常量与变量的区别;2、记住C语言标识符的要求(只能由数字、英文字母、下划线组成,第一个字符不能是数字);3、理解计算机存储整数的方法(什么是补码?怎样计算?程序实现补码提取的方法?);理解计算机存储字符的方式(ASCII码),区分数字字符与数字,掌握相互转换的方法。
同时理解大小写字符的转换方法及与自然数的映射方法;4、了解(unsigned)char、(unsigned)(short)int、(unsigned)long、float、double常量表达方法,掌握怎样求各类整数范围,以及在printf及scanf中对应的格式控制符;(注意char也可以当作整数使用,用的是什么?)5、理解转义字符的含义,掌握常见转义字符:\0、\n、\t、\\、\’、\”、\ddd、\xhh;6、记住常量字符串的表示方法(与常量字符表示区别?),理解字符串在C语言中的存储方式及特点,由此掌握字符串在C语言中的访问及遍历方式。
7、理解C语言中的不同类型数据在同一个表达式中的运算规则,能手动计算简单表达式;8、理解C语言的常用运算符,掌握++、--运算符的简单使用(前置与后置的区别),掌握/和%的使用规则,掌握指针[] 与*(指针) 的关系;9、理解强制类型转换的含义及使用场合;10、理解赋值规则(注意有符号数赋给无符号变量的使用);理解复合赋值;(注意赋值号左边必须是一个存储单元,实际上常常就是一个变量);11、了解逗号运算符和三元运算符。
二、控制结构1、记住C语言中的关系运算符与逻辑运算符(注意==与!=),掌握关系和逻辑表达式的运算规则和方式;理解C语言对逻辑值的判断方式(非零作为真);2、熟练掌握if语句的使用,注意{}的使用及if-else的配对;3、理解C语言中的常用的三种循环(while、do-while和for),特别注意for循环的表达方式及循环执行流程;4、掌握for循环的常见使用方法(与一维数组、二维数组和字符结合各自的使用方式,一些数组使用的技巧);5、理解break、continue的含义及使用方式及场合(break在循环和switch中)。
三、数组1、掌握一维数组和二维数组的声明方式与初始化方法(特别注意初始化元素不足的情形),会用memset函数进行数组初始化;2、理解数组名称的意义与使用规则;3、掌握一维数组和二维数组的遍历方法;(注意二维数组在C语言中是按行存储的)4、掌握数组的常见应用,比如排序(冒泡和简单选择排序)、字符串的存储等;5、掌握C语言字符数组与字符串的关系,能对字符串进行遍历和简单操作;6、掌握gets、puts、strlen、strcmp、strcat、strcpy的使用,区分gets函数与scanf函数读取字符串的区别。
四、函数1、掌握函数声明的格式,理解形参与实参的含义与之间的传递规则(理解形参变量内容的改变不会影响实参变元内容),理解函数最多能返回一个值及返回方式;2、注意几类函数的区别:库函数、main函数、用户自定义函数;记住模块化的程序正常运行时总是从main函数进入,从main函数退出;3、理解函数可以嵌套调用,它的特殊情形是递归调用;4、理解并能熟练使用数组作为形参的声明方式(如int a[]和int* a、int a[][5]和int (*a)[5])及对应实参的传递方式;(注意理解:数组作为参数传递过去的是数组的首地址,在函数中可以通过该地址访问数组的元素,从而实现改变元素的目的,但这不是改变实参)5、理解全局变量、局部变量的声明方式及使用特点;6、理解静态变量(static)、寄存器变量(register)变量特点,特别注意理解static。
五、指针1、理解指针(即地址)、指针变量(存储指针的变量)、指向的含义;掌握指针变量的声明方式和使用(怎样得到地址、怎样取到内容);注意指针变量依然占存储单元,它用来存储指针(内存地址),而其它简单类型变量也占存储单元,但是只用来存储内容);注意指针与数的加法含义,比如p+1、p++分别表示什么。
2、理解指针作为参数传递的方法及意义(可以通过传递的指针即地址找到主调函数中变量,从而改变其内容);把地址传递给函数称为传址调用,把内容传递给函数称为传值调用;3、掌握指针与数组的关系,并能利用指针访问数组;4、了解行指针与列指针(了解之间的转化关系),能计算两类指针加上一个数的结果,知道行指针的定义(如int (*p)[4]),能利用二维数组首地址计算某行某列元素的地址;5、理解字符指针,注意字符指针赋常量字符串初值与字符数组赋常量字符串初值的区别;6、掌握函数指针的定义方式,了解函数指针的赋值,与作为参数传递的方式;7、注意指针作为返回类型时,不要返回在函数中声明的局部变量的地址。
(为什么?)8、掌握malloc函数的free函数的使用格式,以及它们的标准使用方法(动态内存声明成功后,通常可以作为一维数组使用,也可模拟为二维数组,但最后一定要用free函数释放)9、了解指针数组和指向指针的指针,了解能接收命令行参数的main函数的声明方式。
六、构造数据类型1、理解结构体与数组的区别与联系;2、掌握结构体的声明方式与使用结构体声明结构体变量的方式,掌握怎样访问结构体成员变量;3、掌握结构体作为整体使用的两种情形:两个同类型的结构体变量进行赋值运算时和当结构体变量作为函数的参数进行传递和返回值时;4、掌握结构体数组的使用(实质与一般数组的使用方法相同);5、掌握结构体指针的声明方式(注意结构体指针加上一个数的含义);掌握利用结构体指针访问结构体成员的方法(两种);记住运算符优先级为1级的4个运算符:()、[]、->、.。
(分析:p->math、p->math++、++p->math、(++p)->math、(p++)->math)6、会声明链表结点的结构体类型,会构造链表,能进行链表的遍历;会绘图演示链表中元素的删除和插入过程;7、了解共用体、枚举类型,能对typedef进行简单的使用。
七、文件1、了解文件的定义,了解文本文件和二进制文件的区别与特点;2、了解FILE结构体;能用fopen、fclose写出文件操作的标准过程;3、记住并理解:fgetc和fputc、feof、fread和fwrite、fscanf和fprintf、fgets和fputs、rewind、fseek、ftell函数的含义与使用方法;4、能进行简单的文件操作。
八、OJ平台使用1.掌握OJ 平台做题的基本过程; 2.会用freopen 进行输入和输出的重定向; 3.掌握几种数据输入格式的标准程序框架; 4.掌握函数qsort 、memset 和sprintf 函数的使用方式。
5.编程问题举例1. 内存编码显示问题:(1)从外部读入一个整数,输出这个数在内存中的存储编码(以十六进制),并且输出若直接把该编码当作原数的值;(2)以二进制方式显示存储编码。
2. 字符转换问题:从外部读入一个字符,如果是小写字母,则转换为大写字母输出;如果是大写字母,则转换为小写字母输出;如果是数字字符,则转换为对应的数字输出。
3. 随机数的简单使用、偶数的判断问题:(1)产生一随机整数,若该数为偶数,则输出字符串“学习”,否则输出“锻炼”。
(2)产生位于整数a 和整数b 之间的随机整数。
4. switch 的使用:写一段程序,利用switch 语句把学生成绩(整型分数)转换为等级,规则如下:'' 90100()'' 8090'' 80 A x f x B x C x ≤≤⎧⎪=≤<⎨⎪<⎩,,,5. 循环的使用:(1)最大公约数问题:写一个函数,用辗转相除法求整数a 、b 的最大公约数;(2)最小公倍数:写一个函数,求两数的最小公倍数,函数原型为:int lcm(int a,int b);(3)3n +1问题:任选一个自然数,如果该数为偶数,就将它变为自身的1/2;如果奇数,那就将它变为原来的3倍再加1。
按照这样的方法进行运算,经过若干次计算后,无论最初是什么数,得到的结果总是“1”。
试用程序输出该数的变化过程。
6. 素数问题:求出1~100之间所有的素数。
7. 遍历数组:(1)给出一个整型数组,找出该数组中的最大元素,同时求出它们的平均值,输出结果;(2)写一个函数,找出字符串中指定的字符的位置(即下标),比如’\\’,注意如果不存在,则返回-1,函数原型可参考:int findchar(char* str, char ch);(3)写一个函数,实现列数为5的矩阵的转置,原型可为:int transpose(int (*ma)[5]);或者:int transpose(int ma[][5]);8. 构造特殊矩阵:(1)构造一个5阶希尔伯特矩阵;(2)构造一个5行的杨辉三角矩阵。
⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡9/18/17/16/15/18/17/16/15/14/17/16/15/14/13/16/15/14/13/12/15/14/13/12/11 ⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡1464101331001210001100001 5阶希尔伯特矩阵 5行杨辉三角矩阵9. 字符串的使用:(1)遍历字符串,计算它的长度(不含’\0’);(2)假设一字符数组存储了一个字符串(全为小写英文字符),按以下规则变换:a->b ,…,y ->z,z->a(提示:%运算符):char* trans(char* str);(3)编写一个函数,取字符串的左子串(返回值为子串首地址):char* left(char* str, int n, char* d);(4)编写一个函数,删除字符串左边的所有空格(返回值字符串首地址):char* ltrim(char* str);(5)编写一个函数,取字符串的任意子串:char* mid(char* s,int start,int n,char* d);例:char str[]=”aaercg ”; trans(str);则str 中应为字符串”bbfsdh ”; char str[]=”asdfsa fsdf ”, d[20]; left(str,3,d);则d 中为”asd ”; 若left(str,100,d);则d 中为” asdfsa fsdf ”;若left(str,-2,d);则d 为空,即d=”\0”。
char str[]=” asd ”; ltrim(str);则str 中为”asd ”。