1[填空题] 下列给定程序中已建立一个带头结点的单向链表,链表中的各结点按结点数据域中的数据递增有序链接。函数fun的功能是:把形参X的值放入一个新结点并插入链表中,使插入后各结点数据域中的数据仍保持递增有序。
请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。
注意:部分源程序给出如下。
不得增行或删行,也不得更改程序的结构!
试题程序:
参考解析:
【参考答案】
(1)x (2)P (3)s
【考点分析】
本题考查:链表的基本操作。了解链表的基本思想和相关算法,理解有关链表插入及删除时指针移动的先后顺序问题,注意指针的保存和归位。
【解题思路】
填空l:将形参X赋值给结点的数据域。
填空2和填空3:将新的结点和原有链表中的结点进行比较。
2[单选题]若有以下程序
则程序的输出结果是
A.3,3.3,7.7,7B.3,7,7,7,7,7C.7.7,7,3,3,3D.7,7,7,3,7,7
参考答案:D
参考解析:在主函数中分别给整型变量i.指针型变量P和指向指针的指针变量r赋初值;调用f函数,并将实参变量r的值传递给形参变量s,在f函数中,通过prind("%d,%d,%d,",k,*t,**s);语句输出7,7,7;返回主函数,通过pfinff("%d,%d,%d\n",i,*P,**r);输出3,7,7。因此D选项正确。
3[单选题] 若有以下程序
则程序的输出结果是
A.6-5-4-3-2-1-B.6-5-4-3-2-1C.1-2-3-4-5-6D.1-2-3-4-5-6-
参考答案:D
参考解析:本题重点考查函数的递归调用,程序首先初始化整型变量z为123456,调用函数f。 f函数中首先通过if条件语句判断x是否大于等于l0,如果条件成立,求x除以10的余数并输出,同时将变量x进行x/10运算,同时调用函数f。如果条件不成立,直接输出变量x。因此第l次调用函数,变量x为123456,条件成立,输出余数6;第2次调用函数,变量x为12345,条件成立,输出余数5;第3次调用函数,变量x为1234,条件成立,输出余数4;第4次调用函数,变量x为123,条件成立,输出余数3;第5次调用函数,变量x为12,条件成立,输出余数2;第6次调用函数,变量x为12345,条件不成立,输出1。因此B选项正确。
4[单选题] 若变量已正确定义,在if(W)埘ntf(”%d\n”,k);中,以下不可替代w的是( )。
A.a<>b+CB.ch=getcharC.a==b+CD.a++
参考答案:A
参考解析:选项A是非法的表达式,C语言中没有<>运算符。
5[简答题]请编写一个函数proc(),它的功能是:求出一个4×N整型二维数组中最大元素的值,并将此值返回调用函数。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在函数proc的花括号中填入所编写的若干语句。
试题程序:
参考解析:
【解析】要求出二维数组中最大元素的值,需要比较二维数组中每一个元素的值。首先,定义变量max用来存放最大元素的值,将其初始化为二维数组中第一个元素的值。然后将其与后面的每一个元素进行比较,将二维数组中最大元素的值放到变量max当中,并将其返回给主函数。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |