




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、C语言程序设计II期末复习一、 复习内容:n 第14讲 指针l 指针的概念:内存单元的排列方式、地址的概念、不同数据类型内存单元的个数、存储方式不同,两种变量的存取方式,指针即是地址,NULL;l 指针变量:概念和定义方法(空悬指针、空类型与空指针),指针的两个特殊运算符(*与&),指针变量作为函数参数(通过函数调用得到个要改变的值);l 指针运算:指针与整数的运算、+(-)、比较、相减;l 指针与一维数组:对数组名的理解,指针与一维数组(指向数组元素的指针、引用数组元素时的指针运算、通过指针引用数组元素的几种方法、用数组名作函数参数);l 指针与二维数组:理解二维数组中行指针、列指针的类型,
2、加减1所移动的字节数,如何利用它们访问二维数组元素,用作函数参数参数时在主调函数中如何给出实参。l 通过指针引用字符串:字符串的引用方式,字符指针作函数参数,使用字符指针变量和字符数组的比较;l 指向函数的指针:什么是函数指针,怎样定义和使用指向函数的指针变量,用指向函数的指针作函数参数;l 返回指针值的函数:函数的返回值是一个地址,定义格式,使用;l 指针数组和多重指针:什么是指针数组,指向指针数组的指针,指针数组作main函数的形参;l 动态内存分配:动态内存分配的概念、必要性,与动态内存分配相关的4个函数,动态数组的建立;l 有关指针的小结:指针、指向、指针变量,void *类型与NUL
3、L的比较,指针与数组的关系,各类指针类型的比较,指针的几类运算;l 结构体指针:什么是结构体指针,用结构体指针访问成员的简便写法,指向结构体数组的指针,结构体变量与结构体指针作函数参数;l 用指针处理链表:什么是链表,建立静态链表,建立动态链表,输出链表。(理解链表的概念,本次考试不包含这一部分内容)。n 第5讲 位运算和预处理指令l 位运算与位运算符:位运算概念,6种基本的位运算符(&、|、),&和运算符的一些用法,位运算的复合赋值运算符;l 位段:问题的提出,位段的概念与定义,位段的使用,注意事项;(这一部分内容不考)l 预处理:概念,主要工作,功能类型,书写要求;l 宏定义:不带参数的宏
4、定义,带参数的宏定义;l “文件包含”处理:格式,作用,带与”的差别;l 条件编译:概念,好处,几种基本格式。(理解条件编译的概念,本次考试不包含这一部分内容)。n 第68讲 文件操作与综合案例l C文件的有关基本知识:文件的概念与组成,文件的分类,读文件与写文件,缓冲文件系统,文件类型指针;l 文件的打开与关闭:文件打开与关闭的含义,文件打开的多种方式,打开文件出错时处理,fopen()、fclose()的使用;l 顺序读写数据文件:顺序读写的概念,文件操作的主要步骤,fputc()与fgetc()、 fputs()与fgets()、 fprintf()与fscanf()、 fread()与
5、fwrite()的使用,文件是否结束的判断(EOF和feof();l 随机读写数据文件:文件读写位置指针,文件定位函数(rewind()、fseek()和ftell()的用法;l 文件读写出错检测函数 (ferror()和clearerr()的用法;(这一部分内容不考)l 综合案例:设计与实现的基本思路二、 考核的知识点:l 考核的主要知识点:指针、结构体、位运算、预处理、文件操作、综合案例l 涉及的知识点:程序结构、表达式、程序控制结构、数给、字符串、函数等三、 样题单选题:1、变量的指针,其含义是该变量的【 】A)值B)地址C)名D)一个标志2、下面程序段的运行结果是【 】 char *s
6、=”abcde”; s+=2; printf(“%d”,s);A)cdeB)字符cC)字符c的地址D)无确定的输出结果是3、现有定义:int (*p)4;下列关于标识符中,正确的是【 】A) 定义不合法 B) 是一个指向整型变量的指针C) 是一个指针,它指向一个函数,该函数的形参、返回值均为int类型 D) 是一个指针变量,该变量指向由4个int型元素组成的一维数组4、数字9与14进行“位异或”运算(即914)的结果是【 】A) 9B) 15C) 7D) 8填空题1、设变量a的二进制数是11010010,若想通过运算ab使结果中高四位是a对应位取反、低四位不变,则b的二进制数应是_。2、能使用
7、两字节变量x的低8位全置1、高8位不变的表达式是_。3、一个函数的原型是 void func(int),现要求定义一个函数指针p指向该函数,那么p的正确定义格式是_ _。写出下列程序的运行结果#include int main() int i, a10 ; int *p;p = a; for (i=0 ; i10 ; i+ ) scanf (%d , p+ ); for (p=a; pa+10; p+ )if(*p)%3=0) printf (%3d,*p); return 0;运行时假定键盘输入数据为:1 3 5 7 9 11 13 1517 21则程序运行后的输出结果是 程序填空以下程序的
8、功能是:将一个已经存在的文本文件内容复制到一个目标文件中,即进行文本文件拷贝。 #include #include int main()FILE *in, *out;char ch,infile80,outfile80;printf(请输入源文件名:);gets(infile);printf(请输入目标文件名:);gets(outfile);in = fopen(infile,r);if (in=NULL)printf(不能打开源文件!n);exit(0);out =fopen(outfile, (1) );if (out=NULL)printf(不能打开目标文件!n);exit(0);ch=
9、fgetc(in);while ( (2) ) /判断是否到源文件尾 (3) (ch, out);/将读取的源文件内容写入目标文件中ch=fgetc(in);printf(n文件复制完毕!nn);fclose(in); fclose(out);return 0;编程题:(说明:加颜色的题目与考题相似度大一些)1、课件第1讲 例3:对输入的两个整数按大小顺序输出。现用函数处理,而且用指针类型的数据作函数参数。2、课件第1讲 例4: 对输入的两个整数按大小顺序输出3、课件第1讲 例5: 输入3个整数a,b,c,要求按由大到小的顺序将它们输出,用函数实现。4、实验_1 5、(基础题)请参考教材P22
10、6-229图示,请说明下列函数中,哪些能实现主函数的实参数据交换功能,哪些不能实现或程序存在问题,为什么?(最好上机验证)(1)void swap1(int *p1,int *p2)int temp;temp=*p1;*p1=*p2;*p2=temp;(2)void swap2(int *p1,int *p2)int *temp;*temp=*p1;*p1=*p2;*p2=*temp;(3)void swap3(int x,int y) int temp; temp=x; x=y; y=temp;(4)void swap4(int *p1,int *p2)int *p;p=p1;p1=p2;p
11、2=p;5、课件第2讲 例1: 验证不同数据类型,每一数据单元所占用的存储空间不同6、课件第2讲 例2: 用自增运算改写前一程序(部分)7、课件第2讲 例4: 将数组a中n个整数按相反顺序存放。8、课件第2讲 例5: 用指针方法对10个整数按由大到小顺序排序。9、课件第2讲 例6: 有一个34的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。10、课件第2讲 例7: 有一个34的二维数组,要求用指向一维数组元素的指针变量输出任一行任一列元素的值11、课件第2讲 例8: 有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。 12、实验_2 、(基础题)使用指针编程实现:
12、输入3个正整数,按由小到大顺序输出。程序运行结果如下所示:13、实验_2 3、(基础题)分析、运行下列程序,理解二维数组“行指针”、“列指针”的类型,加减1所移动的字节数,熟悉二维数组元素的间接访问方法,并回答相关问题14、课件第3讲例1: 通过字符指针变量输出一个字符串。 15、课件第3讲例3: 用函数调用实现字符串的复制16、课件第3讲例7:将若干字符串按字母顺序(由小到大)输出。17、课件第3讲 例9: 有一个指针数组,其元素分别指向一个整型数组的元素,用指向指针数据的指针变量,输出整型数组各元素的值。18、实验_3 1、(基础题)以下程序的功能是:在主函数中定义一个int型4行5列的数
13、组并初始化,然后调用print_array()、change_values()来输出、修改数组元素的值,请根据题意填写所缺代码,再运行程序,体会数组元素的不同访问方法。程序运行结果如下所示:#include #include #include int main()int a45=0;void change_values(int *p, int n);void print_array(int (*p)5,int m);printf(修改前,二维数组各行各列元素:n); (1) (2) /调用change_values函数修改数组元素的值printf(修改后,二维数组各行各列元素:n); (3)
14、return 0;/函数change_values功能:生成1-100之间的随机整数修改数组各元素的值/形参:p是数组的首地址,n是数组元素个数void change_values(int *p, int n)srand(time(0);/代码段1 /函数print_array功能:输出二维数组各行各列元素的值/形参:p是数组的首行地址,m是数组的行数(列数为5,以下不再重复)void print_array(int (*p)5,int m)int i,j;/代码段2 printf(n);19、实验_3 4、(基础题)指针数组的应用:学院现有10系2部,建立一个char型指针数组指向这些单位名
15、称,之后用冒泡排序法排序,并输出排序后的单位名称,如下图所示:补充程序所缺代码:#include #include int main()void bubble_sort(char *name ,int n);/函数声明,下同void print(char *name ,int n);char *dept =管理系,国际经贸系,财会系,计算机系,电子系,数码媒体系,外语系,软件工程系,网络技术系,游戏系,基础部,思政部; (1) ;/调用冒泡排序函数 (2) ;/调用输出多个字符串函数printf(n);return 0;void bubble_sort(char *name ,int n)/冒
16、泡排序函数/程序代码段1void print(char *name ,int n)/输出多个字符串函数/程序代码段220、课件第4讲 例1: 建立动态数组,输入5个学生的成绩,另外用一个函数检查其中有无低于60分的,输出不合格的成绩。21、课件第4讲 例2: 通过指向结构体变量的指针变量输出结构体变量中成员的信息。22、课件第4讲 例4: 有n个结构体变量,内含学生学号、姓名和3门课程的成绩。要求输出平均成绩最高的学生的信息(包括学号、姓名、3门课程成绩和平均成绩)23、课件第5讲 例2: 输入一个整数,使它扩大16倍,不允许用乘法。24、课件第5讲 例4: 取一个整数a从右端开始的47位。2
17、5、课件第5讲 例5: 循环移位。要求将a进行右循环移n位26、课件第5讲 例7: 输入半径,计算圆的周长、面积和球体的体积。27、实验_5 1、(基础题) 编写程序实现:先输入两个整数x、y,然后计算出x&y、x|y、xy、x、x2 六种基本的位运算的结果,并输出。28、课件第6讲 例1:从键盘输入一些字符,逐个把它们送到磁盘上去,直到用户输入一个“”为止29、课件第6讲 例2: 编写一个程序,实现文本文件的复制功能。30、课件第6讲 例5: 编程序构成一个九九表,写入文件file99.txt。再从该文件把九九表中的数据读入二维数组a99,并显示输出。 31、课件第6讲 例6: 从键盘输入1
18、0个学生的有关数据,然后把它们转存到磁盘文件上去32、课件第6讲 例7: 将上题生成的f:stu.dat文件内容读出,然后在屏幕上显示33、实验_6 1、(基础题)以下程序的功能是从键盘输入一个文件名,然后再输入一些字符,依次存放到该文件中,用作为输入结束标志。请先填充程序所缺代码,之后按要求操作,最后回答问题:#include #include int main()FILE * fp;char ch,fname51;printf(请输入文件名: );_(2)_;if(fp=_(3)_)=NULL)printf(文件不能打开!n);exit(0);while(_(4)_)fputc(_(5)_
19、);printf(文件保存完毕!nn);_(6)_;/关闭文件return 0;操作要求:(1)文件指定为F:盘根目录下test.txt,请输入以下内容:1234567890abcdefghijC语言(2)请查看test.txt文件的长度,用“记事本”打开该文件,再用UltraEdit查看该文件各字节的内容;问题:(1)文件操作的顺序是什么?怎样打开、关闭文件?(2)文件类型指针有什么作用?(3)当打开文件不成功时,该如何处理?(4)怎样向文件写入字符?34、实验_6 2、(基础题)以下文件的功能是进行文本文件的复制。源文件名、目标文件名由键盘输入。请将程序所缺代码补充完整,之后按要求操作,最
20、后回答问题:#include #include int main( )FILE *in,*out;char ch,infile60,outfile60;printf(输入源文件的名字:);scanf(%s,infile); printf(输入目标文件的名字:);scanf(%s,outfile); if(in=fopen(_(1)_)=NULL) / 打开输入文件 printf(无法打开源文件n);exit(0);if(out=fopen(_(2)_)=NULL) / 打开输出文件 printf(无法打开目标文件n);exit(0);ch=fgetc(_(3)_);while(_(4)_) f
21、putc(_(5)_);ch=fgetc(in);printf(n文件复制完毕nn);_(6)_; / 关闭输入文件 _(7)_; / 关闭输出文件 return 0;操作要求:(1)请将实验6目录下的文件myfile.txt、test.exe拷贝到F:目录中;(2)运行程序,输入源文件名:F:myfile.txt,目标文件名:F:myfile2.txt。查看myfile.txt与myfile2.txt是否完全相同?(可通过比较文件大小、用UltraEdit比较两文件的内容来判定);(3)再次运行程序,输入源文件名:F:test.exe,目标文件名:F:test2.exe。这两个文件完全相同吗
22、?请分析其中的原因,并加以改进。问题:(1)打开源文件、目标文件时,打开方式各是什么?(2)文本文件、二进制文件的打开方式有什么不同?(3)对于文本文件、二进制文件,如何判断遇到了文件尾? 35、实验_6 3、(基础题)分析、运行下列程序,指出其功能,熟悉文件读写函数的使用:(1)#include #include #include int main() FILE *fp;char str101; int i,n=5;if(fp=fopen(F:strings.txt,w)=NULL) printf(不能打开此文件!n);exit(0);printf(请输入几个字符串:n);while(str
23、len(gets(str)0)fputs(str,fp);fputs(n,fp); printf(n字符串内容已保存!n);fclose(fp);if(fp=fopen(F:strings.txt,r)=NULL) printf(不能打开此文件!n);exit(0);printf(n文件中保存的字符串有:n);while(fgets(str,101,fp)!=NULL)printf(%s,str);fclose(fp);printf(n);return 0;(2)#include #include int main()FILE *fp;int i,k;int num=100,101,102,1
24、03,104,105,106,107,108,109;if(fp=fopen(F:myarray.txt, w)=NULL)printf(不能将数据保存到myarray.txt文件中!n);exit(0);for(i=0; i=9; i+)fprintf(fp,%5d, numi);fprintf(fp,n);fclose(fp); if(fp=fopen(F:myarray.txt, r)=NULL)printf(不能打开myarray.txt文件!n);exit(0);for (i=0; i=9; i+)fscanf(fp, %d, &k);printf(%-5d,k);printf(nn);fclose(fp);return 0; (3)#include #include int main()FILE
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 【艺恩】2025短剧女演员图鉴
- 工业废水处理与环保技术
- 工业安全与智能制造的协同发展
- 工业机器人系统的教学与应用
- 工业机器人与生产效率的提升
- 工业污染防治与可持续发展
- 工业机器人技术发展趋势及产业应用
- 工业机器人的人机交互技术
- 工业机械设备的维护与保养
- 工业自动化领域智能硬件的发展
- 对发生爆炸及发现可疑爆炸物品事件的防范与处理预案
- 整体施工劳务服务方案
- DBJT13-119-2010 福建省住宅工程质量分户验收规程
- 2025年贵州盘江精煤股份有限公司招聘笔试参考题库含答案解析
- 2025湖南财经工业职业技术学院招聘教师和辅导员31人历年高频重点提升(共500题)附带答案详解
- 废弃物焚烧炉安全操作规程
- 职业技术学院“第二课堂成绩单”制度实施办法
- 胃十二指肠溃疡瘢痕性幽门梗阻病因介绍
- 元宇宙期刊产业政策-洞察分析
- 【MOOC】运输包装-暨南大学 中国大学慕课MOOC答案
- 2024ESC心房颤动管理指南解读
评论
0/150
提交评论