考研数据结构与程序设计在线题库每日一练(二十)
以下是希赛网给大家分享考研数据结构与程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研数据结构与程序设计在线题库每日一练,以下为具体内容
1、若运行以下程序时,从键盘输入数据2473<CR>(<CR>表示回车),则下面程序运行结果是( )。#include<stdio.h>int main(){ int c; while((c=getchar())!='\n') switch(c-'2') { case 0: case 1:putchar(c+4); case 2:putchar(c+4);break; case 3:putchar(c+3); default:putchar(c+2);break; } printf("\n");}
A、668977
B、668966
C、66778777
D、6688766
2、当C语言程序的循环体中使用break语句的作用是( )。
A、中止函数的执行
B、从一个循环体跳转至另一个循环体
C、中止本次循环(即跳过循环体剩余的语句),直接开始下一次循环
D、结束循环
3、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为( )。
A、
B、
C、
D、
4、下面正确的C语言标识符是( )。
A、
B、6a
C、z4x5c
D、a3/b4
5、以下关于C语言结构体的说法正确的是( )。
A、各成员变量共享存储空间
B、各成员变量首地址相同
C、结构体变量的存储长度为各成员变量存储长度的最大值
D、结构体变量的存储长度为各成员变量存储长度的和
1、试题答案:A
试题解析:
上述程序的执行过程如下:
故本题选A。
2、试题答案:D
试题解析:
对于A,return的作用是中止函数的执行而break语句没有该功能。对于B,goto语句可以实现从一个循环体跳到另一个循环体,而break语句不可以。对于C,continue语句可以提前结束本次循环,而进入下次循环,而break不行。对于D,break语句的作用是提前终止循环,故本题选D。
3、试题答案:D
试题解析:
在该单链表中插入结点时,需要从头开始遍历链表,找到结点待插入的位置,这个操作的时间复杂度为O(n),之后在该位置插入结点,这个操作的时间复杂度为O(1),上述操作的综合时间复杂度为O(n)。注意,折半查找仅适用于有序的顺序表,不适用于链表,因此本题不能采用折半查找。故本题选D。
4、试题答案:C
试题解析:
C语言的标识符是用来对变量名、函数名、标号及其它各种用户定义的对象命名的。标识符的第一个字符必须是字母(下划线属于字母),即标识符的第一个字符是字母或下划线,随后的字符可以是字母、数字或下划线。在标识符中,大小写是有区别的。对于A,标识符不包括&符号,因此A错误。对于B,标识符的第一个字母不能是数字,因此B错误。对于C,是正确的标识符,因此C正确。对于D,标识符无/符号,因此D错误。故本题选C。
5、试题答案:D
试题解析:
对于A,各成员变量共享存储空间的是union共用体,而非结构体,因此A错误。对于B,各成员变量的首地址是不同的,每个成员变量都有自己的地址,因此B错误。对于C和D,结构体的存储长度应当为各成员变量的存储长度之和,而union共用体的存储长度为成员变量的存储长度的最大值,因此C错误D正确。故本题选D。
点击查看【完整】试卷>>