考研数据结构与程序设计在线题库每日一练(二十三)
以下是希赛网给大家分享考研数据结构与程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研数据结构与程序设计在线题库每日一练,以下为具体内容
1、以下不正确的说法为( )。
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有效
D、在函数内的复合语句中定义的变量在本函数范围内有效
2、在一个具有n个结点的有序单链表中插入一个新结点并保持单链表仍然有序的时间复杂度是( )。
A、
B、
C、
D、
3、若元素入栈次序为ABCD,以下不可能的出栈次序是( )。
A、ABCD
B、DCBA
C、DCAB
D、BACD
4、以下C语言程序运行结果是( )。#include <stdio.h>void main(){ int num=0; do { num++; printf("=%d",num); }while(num<3);}
A、=1
B、=1=2
C、=1=2=3
D、=1=2=3=4
5、已知p为指向带头结点的单链表的头指针,以下表达式说明该单链表为空的是( )。
A、
B、
C、
D、
1、试题答案:D
试题解析:
对于A和C,在不同函数内定义的变量其作用域仅在该函数范围内有效,可以定义相同名字的变量,因此A和C正确。对于B,形式参数是函数定义中的局部变量,当函数被调用时,实参的值将被传递给函数的形参,因此B正确。对于D,当在函数内部的复合语句中定义变量时,这些变量的作用范围限于该复合语句块及其嵌套的子块内,因此D错误。故本题选D。
2、试题答案:B
试题解析:
在该单链表中插入结点时,需要从头开始遍历链表,找到结点待插入的位置,这个操作的时间复杂度为O(n),之后在该位置插入结点,这个操作的时间复杂度为O(1),上述操作的综合时间复杂度为O(n)。注意,折半查找仅适用于有序的顺序表,不适用于链表,因此本题不能采用折半查找。故本题选B。
3、试题答案:C
试题解析:
栈是受限的线性表,其操作具有“后进先出”的特点,若D是第一个出栈的元素,则对应的出栈序列只有一种,即DCBA。其余选项的出栈次序均有可能得到,故本题选C。
4、试题答案:C
试题解析:
本题中的循环是一个do-while结构,在循环中首先执行循环体,之后判断循环条件,循环执行过程如下:
① 执行num++,num=1。打印输出=1,判断num<3成立,循环继续;
② 执行num++,num=2。打印输出=2,判断num<3成立,循环继续;
③ 执行num++,num=3。打印输出=3,判断num<3不成立,循环结束。故本题选C。
5、试题答案:B
试题解析:
对于A,这是不带头结点的单链表的判空操作,因此A错误。对于B,p->next为NULL代表单链表只有一个头结点,因此B正确。对于C,是判断不为空的常见表达而非判断为空,因此C错误。对于D,这是判断单循环链表为空的表达式,而非单链表,因此D错误。故本题选B。
点击查看【完整】试卷>>

