问答题如何用递归方法求一个整数数组的最大元素
问答题如何进行希尔排序
问答题C/C++头文件中的ifndef/define/endif的作用有哪些
问答题不能用sizeof()函数,如何判断操作系统是16位还是32位的
问答题JSP中include指令和include动作有什么区别
问答题 阅读下列算法说明和流程图,将应填入(n)处的字句写在对应栏内。
【算法说明】
本算法按照算符优先关系,实现对算术四则混合运算表达式(可含小括号)的求值。处理对象是以字符串形式给出的、语法正确且不含变量的整数表达式。
算符优先关系见表5.1(§1,§2为按顺序出现的两个运算符){{B}}
表5.1{{/B}}
§1,§2
+
-
*
/
(
)
#
+
>
>
<
<
<
>
>
-
>
>
<
<
<
>
>
*
>
>
>
>
<
>
>
/
>
>
>
>
<
>
>
(
<
<
<
<
<
=
)
>
>
>
>
>
>
#
<
<
<
<
<
= 说明:“#”是假设的表达式开始符和结束符,不可用。 为实现算法,使用了两个堆栈分别寄存运算符和运算数(中间结果值)。算法基本思路如下:首先置操作数栈S1为空,表达式起始符“#”设为运算符栈S2的栈底元素;依次读入表达式的各符号,若是数字字符则连接在一起转换为int型操作数进S1栈;若是运算符§2,则和S2栈的栈顶运算符51比较优先级后作相应操作,直至整个表达式求值结束。算法流程图5.1如下: 【问题】请将流程图补充完整。
问答题引用还是指针
问答题EJB的角色和三个对象
问答题如何求解数组中反序对的个数
问答题什么是霍夫曼编解码
问答题什么是Servlet
问答题已知随机数函数rand7(),如何构造rand10()函数
问答题 阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。
【算法说明】
某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。
本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单问及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。
【算法】
第一步读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENGLISH中,将相应的汉语解释依次存放在字符串数组CHN中。数组元素CHN(i)给出了数组元素ENGLISH(i)的解释。
第二步输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。
第三步根据变量E的值,用二分法在数组ENGLISH中查找。具体步骤如下: 1.1→L,N→H
2.INT((L+H)/2)→K 3.若E=ENGLISH(K),则C→(1),转向第二步
若E<ENGLISH(K),则K-1→H;若E>ENGLISH(K),则K+1→(2)
4.若H<L则 对I=N,L,-1(始值,终值,增量)循环执行:
ENGLISH(1)→ENGLISH(I+1) CHN(I)→CHN(I+1)
然后,将E和C分别存入(3)和(4),N+1→N最后转向第二步 否则,转向(5)
第四步将数组ENGLISH和CHN输出,形成新的英汉词典文件,算法结束。
问答题阅读下列程序说明和C++程序,把应填入其中(n)处的字句,写对应栏内。
【说明】 下面的程序实现了类String的构造函数、析构函数和赋值函数。
已知类String的原型为:class String{
public: String(coust char * str = NULL);
//普通构造函数 String( const String
//拷贝构造函数 ~String(void); //析构函数
String
//赋值函数 private: char *
m_data; // 用于保存字符串};//String 的析构函数String:: ~String
(void){ {{U}} (1) {{/U}};}//String
的普通构造函数String: :String( const char * str){ if{{U}}
(2) {{/U}} {
m_data = new char[1];
*m_data = '/0'; } else
{ int length =
strlen(str); m_data = new ehar[
length + 1 ]; strepy(m_data,
str); }}//拷贝的构造函数String:: String( const String
m_data = new char[ length + 1 ];
strepy(m_data, other, m_data); //赋值函数String
delete [] m_clara; //释放原有的内存资源 int length = strlen(
other, m_data); m_data = new chart length + 1
]; {{U}} (4) {{/U}};
return {{U}}(5) {{/U}};}
问答题阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【说明】下面程序的功能是计算并输出某年某月的天数,函数IsLeap Year()能够判断是否是闰年。【C++程序】#
include < iostream >using namespace std; {{U}}(1)
{{/U}} Month {Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec
};class Date { public: Date(
int year, Month m_ month) {
this→year = year; if(
{{U}}(2) {{/U}}) month: Jan;
else month = m_ month; };
~Date(){}; bool IsLeap Year( ) {
return ((year%4= =0 }; int
CaculateDays( ) { switch(m_month )
{ case {{U}}(3)
{{/U}};{
if {{U}}(4) {{/U}}return 29;
else return 28;
}
case Jan: case Mar: case May: case Jul: case Aug: case Oct: case Dec:
return 31; case Apr: case Jun: case
Sop: case Nov: return 30;
} } private:
int year;
Month month; }; void
main( ) { Date day(2000,Feb); cout
< <day.{{U}} (5) {{/U}}( );}
问答题输入一个整数和一棵二元树。从树的根结点开始往下访问一直到叶结点所经过的所有结点形成一条路径。打印出和与输入整数相等的所有路径。例如输入整数22和如下二元树 10 / 5 12 / / 4 7 则打印出两条路径:10, 12和10, 5, 7。二元树结点的数据结构定义为:struct BinaryTreeNode // a node in the binary tree{ int m_nValue; // value of node BinaryTreeNode *m_pLeft; // left child of node BinaryTreeNode *m_pRight; // right child of node};
问答题如何在O(n)的时间复杂度内找出数组中出现次数超过了一半的数
问答题试题二(共15分)阅读以下代码,回答问题:1至问题3,将解答填入答题纸的对应栏内。
问答题如何使用非递归算法求二叉树的深度
问答题C++里面是不是所有的动作都是main()函数引起的