练习13_结点



练习13


考试规则:点击你认为正确的选项


1.以下叙述中正确的是( )。

A.函数的返回值不能是结构体类型

回答错误 ✕

B.在调用函数时,可以将结构体变量作为实参传给函数

回答正确 √

试题解析

本题考查结构体变量作为函数参数,函数返回可以是结构体类型,也可以是结构体类型的指针,结构体数组可以作为参数传给函数。选项B正确


C. 函数的返回值不能是结构体指针类型

回答错误 ✕


D.结构体数组不能作为参数传给函数

回答错误 


点击答题丨点击选项查看对错丨展开动画


2.有以下程序:



#include
struct S
{inta, b;
}
data[2]= {10,100,20,200};
main()
{
struct S p= data[1];
print("%d\n",+ + (p.a));
}

程序运行后的输出结果是( )。

A.10

回答错误 ✕

B.11

回答错误 ✕

C.20

回答错误 ✕

D.21

回答正确 √

试题解析

声明data是结构S数组。初始化data[0].a= 10; data[0].b= 100; data[1].a= 20; data[1].b= 200。主函数中p =data[1];即p.a= data[1].a; p.b= data[1].b;执行语句printf(%d\n",+ +(p.a));打印输出时p.a先增1再打印。p.a= data[1].a=20,先增1等于21。选项D正确



点击答题丨点击选项查看对错丨展开动画


3.有以下程序



#include
main()
{ int k,j,s;
for( k=2; k<6; k++,k++ )
{ s=1;
for (j=k; j<6;j++)
S+=j; .
}
printf(%d\n" ,s);
}

程序运行后的输出结果是( )。

A.6

回答错误 ✕

B.24

回答错误 ✕

C.10

回答正确 √

试题解析

本题重点考查for语句循环嵌套,首先k=2,进行一-次循环后,k自增两次,变成4,这时s为1。即当k=4的时候,s=1, j=4,执行内层循环,s=1+4, j自增1后等于5,s=5+5, j再自增1后即为6,跳出内层循环。k自增两次后等于6,不成立,跳出外层循环。最后输出s的值,即为10。因此C选项正确。



D.40

回答错误 ✕

点击答题丨点击选项查看对错丨展开动画


4.设数据元素的集合D={1, 3, 5, 7, 9}, D上的关系为R,下列数据结构B= (D, R)中为非线性结构的是()。选项B正确

A.R={ (5,1), (7,9), (1,7), (9,3)}

回答错误 ✕

B.R={ (1,3), (3,5), (5,9)}

回答正确 √

试题解析

线性结构要求只有一一个根结点和一一个叶子结点,除根结点和叶子结点外,其它结点只有一-个前件也只有一个后件。A选项的结构可以写成5-→1→7→9→3,B选项是1→3→5-→9,元素7没有前件和后件, C选项是9-→>7-→1→3-→5, D选项是1→9-→7-→5-→3.三者都是线性结构,故本题答案为B。


C.R={ (9,7), (1,3), (7,1),(3,5) }

回答错误 ✕


D.R={ (1,9), (9,7), (7,5), (5,3)}

回答错误 


点击答题丨点击选项查看对错丨展开动画