一、选择题
1、设循环队列为Q(1:m),其初始状态为front=rear=m。经过一系列入队与退队运算后,front=15,rear=20。现要在该循环队列中寻找最大值的元素,最坏情况下需要比较的次数为______。
A.4 B.6 C.m-5 D.m-6
2、下列叙述中正确的是______。
A.循环队列属于队列的链式存储结构 B.双向链表是二叉树的链式存储结构
C.非线性结构只能采用链式存储结构 D.有的非线性结构也可以采用顺序存储结构
3、某二叉树中有n个叶子节点,则该二叉树中度为2的节点数为______。
A.n+1 B.n-1 C.2n D.n/2
4、下列叙述中错误的是______。
A.算法的时间复杂度与算法所处理数据的存储结构 ……此处隐藏36940个字…… ;;s++) /*找出ASCII值为奇数的字符依次存入数组t中*/
if(*s%2==1)
t[i++]=*s;
t[i]='\0'; /*在字符串的末尾加上串结束符*/
}
[考点] 本题要求将s所指字符串中ASCII码值为偶数的字符删除,因此本题要求采用一个for循环来找出ASCII码值为奇数的字符依次存入数组t中,并使用if条件句来判断s所指字符串中ASCII码值是否为奇数。用‘\0’加在字符串的末尾来表示字符串的结束。
[解析] 要删除ASCII码值为偶数的字符,也就是要留下ASCII码值为奇数的字符。由于最终是要求出剩余字符(即ASCII码值为奇数)形成的新串,所以本题程序的算法是对原字符串从头到尾扫描,并找出ASCII码值为奇数的字符并将其依次存入数组t中。此外,还要注意数组t的下标变化和下标的初值(初值必须为0,即i=0),t[i++]的作用是先使用t[i],然后再使i自增1。