下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基本知识要求一、 语法基础1、 记住c语言常量的定义方法(#define 名称 值),理解符号常量与变量的区别;2、 记住c语言标识符的要求(只能由数字、英文字母、下划线组成,第一个字符不能是数字);3、 理解计算机存储整数的方法(什么是补码?怎样计算?程序实现补码提取的方法?);理解计算机存储字符的方式(ascii码),区分数字字符与数字,掌握相互转换的方法。同时理解大小写字符的转换方法及与自然数的映射方法;4、 了解(unsigned)char、(unsigned)(short)int、(unsigned)long、float、double常量表达方法,掌握怎样求各类整数范围,以及在pri
2、ntf及scanf中对应的格式控制符;(注意char也可以当作整数使用,用的是什么?)5、 理解转义字符的含义,掌握常见转义字符:0、n、t、”、ddd、xhh;6、 记住常量字符串的表示方法(与常量字符表示区别?),理解字符串在c语言中的存储方式及特点,由此掌握字符串在c语言中的访问及遍历方式。7、 理解c语言中的不同类型数据在同一个表达式中的运算规则,能手动计算简单表达式;8、 理解c语言的常用运算符,掌握+、-运算符的简单使用(前置与后置的区别),掌握/和%的使用规则,掌握 指针 与 *(指针) 的关系;9、 理解强制类型转换的含义及使用场合;10、 理解赋值规则(注意有符号数赋给无符号
3、变量的使用);理解复合赋值;(注意赋值号左边必须是一个存储单元,实际上常常就是一个变量);11、 了解逗号运算符和三元运算符。二、 控制结构1、 记住c语言中的关系运算符与逻辑运算符(注意=与!=),掌握关系和逻辑表达式的运算规则和方式;理解c语言对逻辑值的判断方式(非零作为真);2、 熟练掌握if语句的使用,注意的使用及if-else的配对;3、 理解c语言中的常用的三种循环(while、do-while和for),特别注意for循环的表达方式及循环执行流程;4、 掌握for循环的常见使用方法(与一维数组、二维数组和字符结合各自的使用方式,一些数组使用的技巧);5、 理解break、cont
4、inue的含义及使用方式及场合(break在循环和switch中)。三、 数组1、 掌握一维数组和二维数组的声明方式与初始化方法(特别注意初始化元素不足的情形),会用memset函数进行数组初始化;2、 理解数组名称的意义与使用规则;3、 掌握一维数组和二维数组的遍历方法; (注意二维数组在c语言中是按行存储的)4、 掌握数组的常见应用,比如排序(冒泡和简单选择排序)、字符串的存储等;5、 掌握c语言字符数组与字符串的关系,能对字符串进行遍历和简单操作;6、 掌握gets、puts、strlen、strcmp、strcat、strcpy的使用,区分gets函数与scanf函数读取字符串的区别。
5、四、 函数1、 掌握函数声明的格式,理解形参与实参的含义与之间的传递规则(理解形参变量内容的改变不会影响实参变元内容),理解函数最多能返回一个值及返回方式;2、 注意几类函数的区别:库函数、main函数、用户自定义函数;记住模块化的程序正常运行时总是从main函数进入,从main函数退出;3、 理解函数可以嵌套调用,它的特殊情形是递归调用;4、 理解并能熟练使用数组作为形参的声明方式(如int a和int* a、int a5和int (*a)5)及对应实参的传递方式;(注意理解:数组作为参数传递过去的是数组的首地址,在函数中可以通过该地址访问数组的元素,从而实现改变元素的目的,但这不是改变实参
6、)5、 理解全局变量、局部变量的声明方式及使用特点;6、 理解静态变量(static)、寄存器变量(register)变量特点,特别注意理解static。五、 指针1、 理解指针(即地址)、指针变量(存储指针的变量)、指向的含义;掌握指针变量的声明方式和使用(怎样得到地址、怎样取到内容);注意指针变量依然占存储单元,它用来存储指针(内存地址),而其它简单类型变量也占存储单元,但是只用来存储内容);注意指针与数的加法含义,比如p+1、p+分别表示什么。2、 理解指针作为参数传递的方法及意义(可以通过传递的指针即地址找到主调函数中变量,从而改变其内容);把地址传递给函数称为传址调用,把内容传递给函
7、数称为传值调用;3、 掌握指针与数组的关系,并能利用指针访问数组;4、 了解行指针与列指针(了解之间的转化关系),能计算两类指针加上一个数的结果,知道行指针的定义(如int (*p)4),能利用二维数组首地址计算某行某列元素的地址;5、 理解字符指针,注意字符指针赋常量字符串初值与字符数组赋常量字符串初值的区别;6、 掌握函数指针的定义方式,了解函数指针的赋值,与作为参数传递的方式;7、 注意指针作为返回类型时,不要返回在函数中声明的局部变量的地址。(为什么?)8、 掌握malloc函数的free函数的使用格式,以及它们的标准使用方法(动态内存声明成功后,通常可以作为一维数组使用,也可模拟为二
8、维数组,但最后一定要用free函数释放)9、 了解指针数组和指向指针的指针,了解能接收命令行参数的main函数的声明方式。六、 构造数据类型1、 理解结构体与数组的区别与联系;2、 掌握结构体的声明方式与使用结构体声明结构体变量的方式,掌握怎样访问结构体成员变量;3、 掌握结构体作为整体使用的两种情形:两个同类型的结构体变量进行赋值运算时和当结构体变量作为函数的参数进行传递和返回值时;4、 掌握结构体数组的使用(实质与一般数组的使用方法相同);5、 掌握结构体指针的声明方式(注意结构体指针加上一个数的含义);掌握利用结构体指针访问结构体成员的方法(两种);记住运算符优先级为1级的4个运算符:(
9、)、-、.。(分析: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函数的含义与使
10、用方法;4、 能进行简单的文件操作。八、 oj平台使用1. 掌握oj平台做题的基本过程;2. 会用freopen进行输入和输出的重定向;3. 掌握几种数据输入格式的标准程序框架;4. 掌握函数qsort、memset和sprintf函数的使用方式。5.编程问题举例1. 内存编码显示问题:(1)从外部读入一个整数,输出这个数在内存中的存储编码(以十六进制),并且输出若直接把该编码当作原数的值;(2)以二进制方式显示存储编码。2. 字符转换问题:从外部读入一个字符,如果是小写字母,则转换为大写字母输出;如果是大写字母,则转换为小写字母输出;如果是数字字符,则转换为对应的数字输出。3. 随机数的简单
11、使用、偶数的判断问题:(1)产生一随机整数,若该数为偶数,则输出字符串“学习”,否则输出“锻炼”。(2)产生位于整数a和整数b之间的随机整数。4. switch的使用:写一段程序,利用switch语句把学生成绩(整型分数)转换为等级,规则如下:5. 循环的使用:(1)最大公约数问题:写一个函数,用辗转相除法求整数a、b的最大公约数;(2)最小公倍数:写一个函数,求两数的最小公倍数,函数原型为:int lcm(int a,int b);(3)3n+1问题:任选一个自然数,如果该数为偶数,就将它变为自身的1/2;如果奇数,那就将它变为原来的3倍再加1。按照这样的方法进行运算,经过若干次计算后,无论
12、最初是什么数,得到的结果总是“1”。试用程序输出该数的变化过程。6. 素数问题:求出1100之间所有的素数。7. 遍历数组:(1)给出一个整型数组,找出该数组中的最大元素,同时求出它们的平均值,输出结果;(2)写一个函数,找出字符串中指定的字符的位置(即下标),比如,注意如果不存在,则返回-1,函数原型可参考:int findchar(char* str, char ch);(3)写一个函数,实现列数为5的矩阵的转置,原型可为:int transpose(int (*ma)5);或者:int transpose(int ma5);8. 构造特殊矩阵:(1)构造一个5阶希尔伯特矩阵;(2)构造一
13、个5行的杨辉三角矩阵。 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(cha
14、r* s,int start,int n,char* d);例:char str=”aaercg”; trans(str);则str中应为字符串”bbfsdh”;char str=”asdfsa fsdf”, d20; 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”。10. 简单排序:编写一个函数,实现对浮点数组的排序:int sort(float* f, int n);11. 静态变量的使用:编写一个函数,在该函数中打印出自身已被调用的次数。12. 指针的简单使用:(1)用指针实现两个数交换;(2)用指针访问数组中的每个元素(通过指针加法);13. 动态分配内存的简单使用:从键盘读入n(),生成一个长度为n的字符数组,并赋值a,b,。14. 链表的简单使用:(1)若链表结构体类型已给出,建立一个含n个有效结点的链表;(2)若链表已建立(头结点不含有效数据),输出每个结点的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 深入解析技术服务合同范本模板
- 保安服务提供商合同
- 延期还款协议
- 物资招标文件写作技巧
- 水利建设合同协议
- 货品购买合同格式
- 专业合同协议合规管理方法服务
- 联营共营合同范例
- 心理辅导与咨询服务
- 节能改造合同能源
- 供应商质量问题处理流程范文
- 班组长管理能力提升培训
- 装饰装修施工方案
- 中班语言《新房子》3--完整版PPT课件(24页PPT)
- 高电压技术:5-2绝缘电阻、吸收比、泄漏电流的测量
- 王守仁英国文学选读课后答案
- (完整版)20以内带括号加减法口算练习
- 奥星-计算机化系统验证要点分析与校准管理
- 北京九强生物技术股份有限公司新建研发中心及参考试验室项目环境影响评价报告书简本
- 中国国际商会入会申请表
- 心脏彩超电子病例检查模块
评论
0/150
提交评论