练习21
考试规则:点击你认为正确的选项
1.有以下程序
#include
main()
{
int a=0,b=0,c=0,d=0;
(++a II ++b) ? ++C: ++d;
printf(%d,%d,%d,%d\n", a,b,c,d);
}
程序的运行结果是( )。
A.1,0,1,0
回答正确 √
试题解析
条件表达式- -般形式: exp1?exp2:exp3, 执行规则为;若exp1为真,求解exp2,输出exp2的值,不计算exp3的值;若为假,求解exp3,输出exp3的值,不计算exp2的值。本题程序执行过程为:求解逻辑表达式(++all++b) ,先求解++a, a=1,则整个表达式为真,不计算++b,然后求解++C,不计算++d,最后得到a=1,b=0,c=1,d=0, A选项正确。
B.1,1,0,1
回答错误 ✕
C.1,0,0,1
回答错误 ✕
D.1,1,1,0
回答错误 ✕
点击答题丨点击选项查看对错丨展开动画
2.有以下程序
#include
main()
{
int a[10]={1,3,5,7,11,13,17 }, *p=a;
printf("%d,", *( p++ ));
printf("%d\n", *( ++p );
}
程序运行后的输出结果是( )。
A.3,7
回答错误 ✕
B.3,5
回答错误 ✕
C.1,5
回答正确 √
试题解析
程序执行过程:指针p指向数组第一个元素 ; *(p++)先取p,输出p指向的元素1,之后p加1,指向数组第二个元素; *(++p), 指针p加1指向数组第三个元素,之后输出所指元素5,C选项正确。
D.1,3
回答错误 ✕
点击答题丨点击选项查看对错丨展开动画
3. 下列叙述中正确的是( )。
A.有且只有一个根结点的数据结构一定是线性结构
回答错误 ✕
B.每一个结点最多有一个前件也最多有一个后件的数据结构一定是线性结构
回答错误 ✕
C.有且只有一个根结点的数据结构一定是非线性结构
回答错误 ✕
D.有且只有一个根结点的数据结构可能是线性结构,也可能是非线性结构
回答正确 √
试题解析
一个非空的数据结构如果满足以下两个条件:有且只有一个根结点;每-一个结点最多有一个前件,也最多有一个后件,称为线性结构,故A、B和C选项都错误;不同时满足以上两个条件的数据结构就称为非线性结构,其中树形结构只有一个根结点,D选项正确。
点击答题丨点击选项查看对错丨展开动画
4.设表的长度为n。下列查找算法中,在最坏情况下,比较次数最少的是( )。
A.有序表的二分查找
回答正确 √
试题解析
最坏情况下,有序表的二分查找需要比较log2n,顺序查找需要n/2次,寻找最大项、最小项都需要比较n-1次,故本题答案为A。
B.顺序查找
回答错误 ✕
C.寻找最小项
回答错误 ✕
D.寻找最大项
回答错误 ✕