《C语言程序设计II》期末复习

发布 2021-04-19 22:29:28 阅读 8430

一、 复习内容:

第1~4讲指针。

指针的概念:内存单元的排列方式、地址的概念、不同数据类型内存单元的个数、存储方式不同,两种变量的存取方式,指针即是地址,null;

指针变量:概念和定义方法(空悬指针、空类型与空指针),指针的两个特殊运算符(*与&),指针变量作为函数参数(通过函数调用得到n个要改变的值);

指针运算:指针与整数的运算、++比较、相减;

指针与一维数组:对数组名的理解,指针与一维数组(指向数组元素的指针、引用数组元素时的指针运算、通过指针引用数组元素的几种方法、用数组名作函数参数);

指针与二维数组:理解二维数组中行指针、列指针的类型,加减1所移动的字节数,如何利用它们访问二维数组元素,用作函数参数参数时在主调函数中如何给出实参。

通过指针引用字符串:字符串的引用方式,字符指针作函数参数,使用字符指针变量和字符数组的比较;

指向函数的指针:什么是函数指针,怎样定义和使用指向函数的指针变量,用指向函数的指针作函数参数;

返回指针值的函数:函数的返回值是一个地址,定义格式,使用;

指针数组和多重指针:什么是指针数组,指向指针数组的指针,指针数组作main函数的形参;

动态内存分配:动态内存分配的概念、必要性,与动态内存分配相关的4个函数,动态数组的建立;

有关指针的小结:指针、指向、指针变量,void *类型与null的比较,指针与数组的关系,各类指针类型的比较,指针的几类运算;

结构体指针:什么是结构体指针,用结构体指针访问成员的简便写法,指向结构体数组的指针,结构体变量与结构体指针作函数参数;

用指针处理链表:什么是链表,建立静态链表,建立动态链表,输出链表。(理解链表的概念,本次考试不包含这一部分内容)。

第5讲位运算和预处理指令。

位运算与位运算符:位运算概念,6种基本的位运算符(&、和^运算符的一些用法,位运算的复合赋值运算符;

位段:问题的提出,位段的概念与定义,位段的使用,注意事项;(这一部分内容不考)

预处理:概念,主要工作,功能类型,书写要求;

宏定义:不带参数的宏定义,带参数的宏定义;

“文件包含”处理:格式,作用,带<>与””的差别;

条件编译:概念,好处,几种基本格式。

理解条件编译的概念,本次考试不包含这一部分内容)。

第6~8讲文件操作与综合案例。

c文件的有关基本知识:文件的概念与组成,文件的分类,读文件与写文件,缓冲文件系统,文件类型指针;

文件的打开与关闭:文件打开与关闭的含义,文件打开的多种方式,打开文件出错时处理,fopen()、fclose()的使用;

顺序读写数据文件:顺序读写的概念,文件操作的主要步骤,fputc()与fgetc()、fputs()与fgets()、fprintf()与fscanf()、fread()与fwrite()的使用,文件是否结束的判断(eof和feof())

随机读写数据文件:文件读写位置指针,文件定位函数(rewind()、fseek()和ftell())的用法;

文件读写出错检测函数 (ferror()和clearerr())的用法;(这一部分内容不考)

综合案例:设计与实现的基本思路。

二、 考核的知识点:

考核的主要知识点:指针、结构体、位运算、预处理、文件操作、综合案例。

涉及的知识点:程序结构、表达式、程序控制结构、数给、字符串、函数等。

三、 样题。

单选题:1、变量的指针,其含义是该变量的【 】

a)值 b)地址 c)名 d)一个标志。

2、下面程序段的运行结果是【 】

char *s=”abcde”;

s+=2; printf(“%d”,s);

a)cde b)字符’c’ c)字符’c’的地址 d)无确定的输出结果是。

3、 现有定义:int (*p)[4];下列关于标识符中,正确的是。

a) 定义不合法b) 是一个指向整型变量的指针。

c) 是一个指针,它指向一个函数,该函数的形参、返回值均为int类型

d) 是一个指针变量,该变量指向由4个int型元素组成的一维数组。

4、数字9与14进行“位异或”运算(即9^14)的结果是【 】

a) 9b) 15c) 7d) 8

填空题。1、设变量a的二进制数是11010010,若想通过运算a^b使结果中高四位是a对应位取反、低四位不变,则b的二进制数应是。

2、能使用两字节变量x的低8位全置1、高8位不变的表达式是。

3、一个函数的原型是 void func(int),现要求定义一个函数指针p指向该函数,那么p的正确定义格式是。

写出下列程序的运行结果。

#include <>

int main()

int i, a[10] ;

int *p;

p = a;

for (i=0 ; i<10 ; i++

scanf ("d" ,p++

for (p=a; p if((*p)%3==0)

printf ("3d",*p);

return 0;

运行时假定键盘输入数据为:1 3 5 7 9 11 13 15 17 21

则程序运行后的输出结果是。

程序填空。以下程序的功能是:将一个已经存在的文本文件内容复制到一个目标文件中,即进行文本文件拷贝。

#include <>

#include <>

int main()

file *in, *out;

char ch,infile[80],outfile[80];

printf("请输入源文件名:")

gets(infile);

printf("请输入目标文件名:")

gets(outfile);

in = fopen(infile,"r");

if (in==null)

out =fopen(outfile, (1) )

if (out==null)

ch=fgetc(in);

while ( 2) )判断是否到源文件尾。

printf("文件复制完毕!");

fclose(in);

fclose(out);

return 0;

编程题:(说明:加颜色的题目与考题相似度大一些)

1、课件第1讲例3:对输入的两个整数按大小顺序输出。现用函数处理,而且用指针类型的数据作函数参数。

2、课件第1讲例4: 对输入的两个整数按大小顺序输出。

3、课件第1讲例5: 输入3个整数a,b,c,要求按由大到小的顺序将它们输出,用函数实现。

4、实验_1 5、(基础题)请参考教材p226-229图示,请说明下列函数中,哪些能实现主函数的实参数据交换功能,哪些不能实现或程序存在问题,为什么?(最好上机验证)

void swap1(int *p1,int *p2)

int temp;

temp=*p1;

*p1=*p2;

*p2=temp;

void swap2(int *p1,int *p2)

int *temp;

*temp=*p1;

*p1=*p2;

*p2=*temp;

void swap3(int x,int y)

int temp;

temp=x; x=y; y=temp;

void swap4(int *p1,int *p2)

int *p;

p=p1;p1=p2;

p2=p;5、课件第2讲例1: 验证不同数据类型,每一数据单元所占用的存储空间不同。

6、课件第2讲例2: 用自增运算改写前一程序(部分)

7、课件第2讲例4: 将数组a中n个整数按相反顺序存放。

8、课件第2讲例5: 用指针方法对10个整数按由大到小顺序排序。

9、课件第2讲例6: 有一个3×4的二维数组,要求用指向元素的指针变量输出二维数组各元素的值。

10、课件第2讲例7: 有一个3×4的二维数组,要求用指向一维数组元素的指针变量输出任一行任一列元素的值。

11、课件第2讲例8: 有一个班,3个学生,各学4门课,计算总平均分数以及第n个学生的成绩。

12、实验_2 2、基础题)使用指针编程实现:输入3个正整数,按由小到大顺序输出。程序运行结果如下所示:

13、实验_2 3、(基础题)分析、运行下列程序,理解二维数组“行指针”、“列指针”的类型,加减1所移动的字节数,熟悉二维数组元素的间接访问方法,并回答相关问题。

14、课件第3讲例1: 通过字符指针变量输出一个字符串。

15、课件第3讲例3: 用函数调用实现字符串的复制。

16、课件第3讲例7:将若干字符串按字母顺序(由小到大)输出。

17、课件第3讲例9: 有一个指针数组,其元素分别指向一个整型数组的元素,用指向指针数据的指针变量,输出整型数组各元素的值。

18、实验_3 1、(基础题)以下程序的功能是:在主函数中定义一个int型4行5列的数组并初始化,然后调用print_array()、change_values()来输出、修改数组元素的值,请根据题意填写所缺**,再运行程序,体会数组元素的不同访问方法。程序运行结果如下所示:

#include <>

#include <>

#include <>

int main()

int a[4][5]=;

void change_values(int *p, int n);

void print_array(int (*p)[5],int m);

printf("修改前,二维数组各行各列元素:");

《C语言程序设计II》期末复习

一 复习内容 第1 4讲指针。指针的概念 内存单元的排列方式 地址的概念 不同数据类型内存单元的个数 存储方式不同,两种变量的存取方式,指针即是地址,null 指针变量 概念和定义方法 空悬指针 空类型与空指针 指针的两个特殊运算符 与 指针变量作为函数参数 通过函数调用得到 个要改变的值 指针运算...

《C语言程序设计II》期末复习

一 复习内容 第1 4讲指针。指针的概念 内存单元的排列方式 地址的概念 不同数据类型内存单元的个数 存储方式不同,两种变量的存取方式,指针即是地址,null 指针变量 概念和定义方法 空悬指针 空类型与空指针 指针的两个特殊运算符 与 指针变量作为函数参数 通过函数调用得到 个要改变的值 指针运算...

C语言程序设计期末重点程序设计复习

1 将华氏温度转化为摄氏温度和绝对温度。include int main double f,c,k printf 华氏温度为 scanf lf f c 5.0 9 f 32 k 273.16 c printf c fk f c,k return 0 2 将大写字母转为小写字母。include int...