考研数据结构与程序设计在线题库每日一练(一十四)
以下是希赛网给大家分享考研数据结构与程序设计在线题库每日一练,希望通过刷题可以帮助大家巩固重要知识点,对知识点查漏补缺,祝愿大家能顺利通过考试!
本文提供考研数据结构与程序设计在线题库每日一练,以下为具体内容
1、设变量a是整型,f是实型,i是双精度型,则表达式10+a+i*f的值的数据类型为( )。
A、int
B、float
C、double
D、不确定
2、以下程序有错,错误的原因是( )。main(){ int*p,I; char*q,ch; p=&I; q=&ch; *p=40; *p=*q; ...}
A、p和q的类型不一致,不能执行*p=*q;语句
B、*q中存放的是地址值,因此不能执行*p=40
C、q没有指向具体存储单元,所以*q没有意义
D、q虽然指向了存储单元,但对应单元没有确定的值,所以不能执行*p=*q;语句
3、当C语言调用函数时,实参是一个数组名,则向函数传送的是( )。
A、数组的首地址
B、数组的长度
C、数组全部元素的拷贝
D、数组第一个元素的值
4、设某棵二叉树共有2000个结点,则该二叉树的最小高度为( )。
A、9
B、10
C、11
D、12
5、在带头结点的单链表中查找x应选择的程序体是( )。
A、node *p=head->next; while(p&&p->info!=x) p->next;if(p->info==x) return p; else return NULL;
B、node *p=head; while(p&&p->info!=x) p=p->next; return p;
C、node *p=head->next;while(p&& p->info!=x) p=p->next; return p;
D、node *p=head; while(p->info!=x) p=p->next; return p;
1、试题答案:C
试题解析:
不同数据类型进行混合运算时,遵循以下规则:
(1)+、-、*、/运算的两个数中有一个数为float型或double型,运算结果为double型,系统会将所有float型转换为double型再计算;
(2)如果int型、float型、double型进行混合运算,先把int和float型转换为double型再计算,结果是double型。
因此最终运算结果是double型,故本题选C。
2、试题答案:D
试题解析:
对于A,p和q的类型虽然不同,但p和q之间可以相互赋值,因此A错误。对于B,*q表示解引用q指针所得到的值,而不是地址值。所以,*q可以用于赋值操作,因此B错误。对于C,在程序中,我们给q赋值为变量ch的地址,所以q确实指向了一个具体的存储单元,因此C错误。对于D,这个选项是正确的。在程序中,变量ch没有被初始化,它没有一个确定的值。因此,将未初始化的变量的值赋给指针p所指向的内存位置是不合法的操作。故本题选D。
3、试题答案:A
试题解析:
在主调函数中调用另一个函数时,函数名后面括号中的参数称为“实际参数”。数组作为实参向函数传递时,传送的是数组的首地址,故本题选A。
4、试题答案:C
试题解析:

5、试题答案:A
试题解析:
由于该单链表带头结点,初始时p应当指向首元结点,即p=head->next,因此B和D错误。选项A步骤正确。选项C要注意while循环结束的条件,当p==NULL时循环也会结束,若循环结束直接返回p,此时的p可能是空,而不是指向值为x的结点,故本题选A。
点击查看【完整】试卷>>

