8[单选题] 下列叙述中正确的是( )。
A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构
B.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D.循环队列中元素的个数是由队头指针和队尾指针共同决定
参考答案:D
参考解析:循环队列中元素的个数是由队首指针和队尾指针共同决定的,元素的动态变化也是通过队首指针和队尾指针来反映的,当队首等于队尾时,队列为空。
9[简答题]使用VC++6.0打开考生文件夹下的源程序文件1.cpp,该程序运行时有错误,请改正其中的错误,使得程序正确运行。
程序输出:
s1:n=20
s2:n=10
执行s3.add(s1,s2)
s3:n=30
s4:n=30
注意:不要改动main函数,不能增加或删除行,也不能更改程序的结构,错误的语句在//******error******的下面。
试题程序:
#include
classTC
{
intn;
public:
TC(){}
TC(intm)
{
n=m:
}
//********error********
TCadd(TCs1,s2)
{
this->n=s1.n+s2.n;
//********error********
return(this);
}
voiddisp()
{
cout<<"n一="<
}
//********error********
}
voidmain()
{
TCs1(20),s2(10),s3,s4;
cout<<"s1:";
s1.disp();
cout<<"s2:";
s2.disp();
s4=s3.add(s1,s2);
cout<("执行s3.add(s1,s2)\ns3:";
s3.disp();
COUt<<"s4:";s4.disp();
}
参考解析:
(1)应改为“TCadd(TCs1,TCs2)”。
(2)应改为“return(*this);”。
(3)应改为“};”。
【解析】本题中的变量“s2”没有声明类型,所以补充“s2”的类型,即“TCadd(TCs1,TCs2)”,“this->n=s1.n+s2.n;”语句中的this变量为指针变量,所以第2处的“return(this);”返回语句中的this变量,应该返回指针型,所以修改为“return(*this);”。C++中类的定义格式应为“class类名{};”,以分号为结尾,所以在第3处的类结尾处补充分号“;”,即修改为“};”。
10[简答题]使用VC++6.0打开考生文件夹下的源程序文件2.cpp。请完成函数fun(char*str,charch)的定义,本函数采用二分法,在已按字母次序从小到大排序的字符数组str中,查找字符ch,若ch在数组中,函数返回字符ch在数组中的下标,否则返回1。
二分法查找的思想是初始查找区间的下界为0,上界为len-1,查找区间的中部后,k=(下界+上界)/2;若list[k]等于ch,查找成功;若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。在新区间内继续用二分法查找。
注意:请勿改动主函数main与其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include(iostream.h>
intfun(char*str,charch)
{
}
voidmain()
{
charstr[]={'a','b','C','d','e','f','9','h','i,'
j','k');
charch;
cout<<"请输入一个字符:"<
cin>>ch;
cout<<"输入字符的位置是:"<
return;
}
参考解析:
intlow=0;//初始查找区间的下界
inthigh;
intk;
for(high=0;str[high]!=0;high++)//求字符串长度
while(10w
{
k=(low+high)/2;
if(str[k]==ch)
returnk;
elseif(str[k]>ch)
high=k-l:
elselow=k+1:
}
if(str[low]==ch)
returnlow;
return-1:
【解析】本题首先初始查找区间的下界为0,然后求得字符串长度len,上界为len-1,查找区间的中部后,k=(下界+上界)/2;若list[k]等于ch,查找成功。若list[k]>ch,则新的查找区间的下界不变,上界改为k-1;否则新的查找区间的下界改为k+1,上界不变。
相关推荐:
北京 | 天津 | 上海 | 江苏 | 山东 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
广东 | 河北 | 湖南 | 广西 | 河南 |
海南 | 湖北 | 四川 | 重庆 | 云南 |
贵州 | 西藏 | 新疆 | 陕西 | 山西 |
宁夏 | 甘肃 | 青海 | 辽宁 | 吉林 |
黑龙江 | 内蒙古 |