一、选择题
1、设数据元素的集合D={1,2,3,4,5},则满足下列关系R的数据结构中为线性结构的是______。
A.R={(1,2),(3,4),(5,1)} B.R={(1,3),(4,1),(3,2),(5,4)}
C.R={(1,2),(2,3),(4,5)} D.R={(1,3),(2,4),(3,5)}
2、下列叙述中正确的是______。
A.链表节点中具有两个指针域的数据结构可以是线性结构,也可以是非线性结构
B.线性表的链式存储结构中,每个节点必须有指向前件和指向后件的两个指针
C.线性表的链式存储结构中,每个节点只能有一个指向后件的指针
D.线性表的链式存储结构中,叶子节点的指针只能是空
3、一个栈的初始状态为空。现将元素A,B,C,D,E依次入栈,然后依次退栈三次,并将退栈的三个元素依次入队(原队列为空),最后将队列中的元素全部退出。则元素退队的顺序为______。
A.ABC &nbs ……此处隐藏39556个字…… 中的字符变量,循环条件是当r和p所指向的字符相同时,进行指针后移操作,故此处应为if(*r==*p)。
四、程序设计题
43、void fun(int a,int b,long*c)
{
/*b%10获取b的个位,a/10获取a的十位,a%10获取a的个位,b/10获取b的十位*/
*c=b%10+(a%10)*10+(b/10)*100+(a/10)*1000;
}
[考点] 本题考查:如何取出数n的各个位数值;知道数n的各个位数值,又如何表示该数;指针型变量的使用。
[解析] 本题主要的问题是如何取出a和b的个位数和十位数,取出后如何表示成e中相应的位数。由于a和b都是只有两位的整数,所以分别对它们除10可得到它们的十位数,分别用10对它们求余可得到它们的个位数。得到后对应乘以1000、100、10、1即可得到c的千位数、百位数、十位数和个位数。注意使用c时要进行指针运算。
如果知道某两位数n,需要表示其个位数值和十位数值,可以采用求余和除法操作,例如n%10(取个位),n/10(取十位)。