一、程序填空题
1下列给定程序中已建立了一个带头结点的单向链表,在main函数中将多次调用fun函数,每调用一次,输出链表尾部结点中的数据,并释放该结点,使链表缩短。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)next (2)t->data (3)t
【考点分析】
本题考查:链表数据结构,结点的表示方法,掌握链表数据结构的基本思想;释放内存空间函数free0
【解题思路】
填空1:因为是链表操作,所以要使t逐一往后移动,语句为t=t一>next;。
填空2:输出链表结点的数据域,即t一>data。
填空3:使用free函数将t所指向的内存空间释放。释放内存空间函数free的调用形式为:free(void*P);。功能:释放P所指向的一块内存空间,P是一个任意类型的指针变量,它指向被释放区域的首地址。被释放区是由malloc或calloc函数所分配的区域。
二、程序改错题
2下列给定程序中函数fun的功能是:将字符串中的字符逆序输出,但不改变字符串中的内容。
例如,若字符串为“abcd”,则应输出:“dcba”。
请改正程序中的错误,使它能得出正确的结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)void fun(char*a)
(2)prinff(”%e”,*a);
【考点分析】
本题考查:函数定义,本题为有参函数定义。printf函数,其一般形式为prinf(“格式控制字符串”,输出表列)。
“%d”表示按十进制整型输出;
“%ld”表示按十进制长整型输出;
“%C”表示按字符型输出。
非格式字符串在输出时原样输出,起提示作用。
【解题思路】
(1)定义函数时形参的类型要与调用函数中实参的类型一致,主函数中fun传递的是字符串s的首地址,所以此处形参应为指针类型。
(2)根据prinf函数格式,很容易找到错误之处。
三、程序设计题
3编写函数fun,其功能是:将所有大于1小于整数m的非素数存入xx所指数组中,非素数的个数通过k返回。
例如,若输入17,则应输出:4 6 8 9 10 12 14 15 16。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
参考解析:
【参考答案】
【考点分析】
本题考查:如何判断非素数;循环判断结构;数组的引用。
【解题思路】
题目要求将1一m之间的非素数存入数组中,应使用循环判断结构。循环语句用来遍历l一m之间的每个数,判断语句用来判断该数是否为素数,若不是素数,则将其存入数组中。本题是考查一个数是否为素数的简单延伸,只要掌握了判断素数的方法,问题便能顺利解决。
【解题宝典】
判定一个数是否为素数,即判断该数是否除了能被l和它本身整除外,不能被任何数整除。
代码实现如下:
此语句需要熟记,很多判断素数的题目可通过此法解决。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |