C++中,能够解决程序中代码量不大,但却被频繁调用的函数的调用效率问题的是()。
A.重载函数
B.友元函数
C.内联函数
D.虚函数
A.重载函数
B.友元函数
C.内联函数
D.虚函数
阅读下列说明,回答问题1至问题3。
[说明]
基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执行一次。以下代码由C++语言书写,请按要求回答问题。
void ReadPara(CString temp)
{
if(temp==">=")
m_oper.SetCurSel(0);
else
{
if(temp==">")
m_oper.SetCurSel(1);
else
{
if(temp=="==")
m_oper.SetCurSel(2);
else
{
if(temp=="<=")
m_oper.SetCurSel(3);
else
{
if(temp=="<")
m_oper.SetCurSel(4);
else
m_oper.SetCurSel(5);
}
}
}
}
return;
}
请画出以上代码的控制流图。
请计算上述控制流图的环路复杂度V(G)。
请使用基本路径测试法为变量temp设计测试用例,使之满足基本路径覆盖要求。
请帮忙给出每个问题的正确答案和分析,谢谢!
阅读以下说明和C++代码。
[说明]
已知类SubClass的getSum方法返回其父类成员与类SubClass成员j的和,类 SuperClass中的getSum为纯虚拟函数。程序中的第23行有错误,请修改该错误并给出修改后的完整结果,然后完善程序中的空缺,分析程序运行到第15行且尚未执行第15行的语句时成员变量j的值,最后给出程序运行后的输出结果。
[C++代码]
下列关于结构化设计方法的特点描述中,不正确的是()。
A.采用逐步求精的方法进行详细设计,由于相邻步之间变化小,易于验证其等效性和设计正确性
B.程序清晰和模块化使得修改和重新设计一个软件时使用的代码量不大
C.在进行程序设计时不能使用goto语句
D.良好清晰的控制结构使设计容易阅读和理解
阅读下列说明、c++代码和运行结果,填补代码中的空缺(1)~(6),将解答填入
答题纸的对应栏内。
【说明】
很多依托扑克牌进行的游戏都要先洗牌。下面的c++程序运行时先生成一副扑克牌,
洗牌后再按顺序打印每张牌的点数和花色。
【c++代码】
inciude <iostream>
4Finclude <stdlib. h>
include <ctime>
inciude <aigorithm>
include <string>
Using namespace std
Const string Rank[13]={”A”,”2”,”3”,”4“,“5”,”6,”’“7”8“,9”,”10,”J”,
”Q”,”K”}j//扑克牌点数
阅读以下应用说明、图和C++代码,根据要求回答问题1至问题3。
[说明]
已知以下C++程序运行时的输出结果如下。
1:1
1:1
1:1
[C++程序]
01 include <iostream>
02 using namespace std;
03 class Stock{
04 protect:
05 (1) { };
06 Stock(int n, int pr=1) {
07 shares = n; share_val=pr;
08 };
09 void ~Stock() { };
10 public:
11 //成员函数
12 void output() {
13 (2)<< shares << ":" << share_val << endl;
14 }
15 private:
16 //成员变量
17 int shares;
18 int share_val;
19 };
20
21 void main() {
22 Stock a(1); a.output
23 Stock b; b.output
24 Stock c = Stock (); c.output
25 }
请根据C++程序运行时的输出结果,将代码中(1)、(2)空缺处的内容补充完整。
试题一(15 分)
阅读下列说明,回答问题1 至问题3,将解答填入答题纸的对应栏内。
[说明]
基本路径法设计出的测试用例能够保证在测试中程序的每一条可执行语句至少执
行一次。以下代码由C++语言书写,请按要求回答问题。
void ReadPara(CString temp )
{
if (temp == ">=" )
m_oper.SetCurSel(0 );
else
{
if (temp == ">" )
m_oper.SetCurSel(1 );
else
{
if (temp == "==" )
m_oper.SetCurSel(2 );
else
{
if (temp == "<=" )
m_oper.SetCurSel(3 );
else
{
if (temp == "<" )
m_oper.SetCurSel(4 );
else
m_oper.SetCurSel(5 );
}
}
}
}
return;
}
[问题1](6 分)
请画出以上代码的控制流图。
[问题2](3 分)
请计算上述控制流图的环路复杂度 V(G)。
[问题3](6 分)
请使用基本路径测试法为变量 temp 设计测试用例,使之满足基本路径覆盖要求。
阅读以下说明和C++代码,将解答写入对应栏内。
[说明]
类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1)~(3),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。
[C++程序]
01 include<iostream.h>
02 using namespace std;
03 class Stock{
04 protected:
05 Stock(){shares=0; share_val=0.0;Output();}
06 Stock(int n=0,double pr=3.5): (1) {//初始化shares值为n
07 share_val=pr;
08 Output();
09 };
10 void~Stock(){};
11 void Output()(cout<<shares<<';'<<share val<<endl;}
12 public:
13 //成员函数
14 private:
15 //成员变量
16 int shares;
17 double share_val;
18 };
19
20 void main(){ //构造三个Stock对象a,b,C
21 Stock a(1);
22 Stock b;
23 Stock C;Stock();
24 //其他代码省略,且代码无输出
25 }
程序运行后的输出结果为:
1:3.5
(2)
(3)
试题六(共 15 分)
阅读以下说明和 C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
C++标准模板库中提供了 vector 模板类,可作为动态数组使用,并可容纳任意数据类型,其所属的命名空间为 std。vector模板类的部分方法说明如下表所示:
[C++代码]
include <iostream>
include <vector>
using namespace (1) ;
typedef vector< (2) > INTVECTOR;
const int ARRAY_SIZE = 6;
void ShowVector(INTVECTOR &theVector);
int main(){
INTVECTOR theVector;
// 初始化 theVector,将 theVector的元素依次设置为 0 至 5
for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)
theVector.push_back((3) );
ShowVector(theVector); // 依次输出 theVector中的元素
theVector.erase(theVector.begin() + 3);
ShowVector(theVector);
}
void ShowVector(INTVECTOR &theVector) {
if (theVector.empty()) {
cout << "theVector is empty." << endl; return;
}
INTVECTOR::iterator (4) ;
for (theIterator = theVector.begin(); theIterator != theVector.end(); theIterator++){
cout << *theIterator;
if (theIterator != theVector.end()-1) cout << ", ";
}
cout << endl;
}
该程序运行后的输出结果为:
0, 1, 2, 3, 4, 5
(5)
A.投入产出分析是表现性经济量值和经济关系的基本方法
B.投入产出分析法不适合解决具有结构性的经济问题
C.运用投入分析法对研究国名经济中的连锁反应和波及效应意义不大
D.能够提高研究的精细化程度
●试题七
阅读以下说明和C++代码,将解答写入答题纸的对应栏内。
【说明】
请编写一个函数int SeqSearch(int list[],int start,int n,int key),该函数从start开始,在大小为n的数组list中查找key值,返回最先找到的key值的位置,如果没有找到则返回-1。请修改程序中画线部分的错误并将不同情况下的输出结果补充完整。
【程序】
文件search.cpp的内容如下:
#include <iostream.h>
int SeqSearch(int list[],int start,int n,int key)
{
for(int i=start;i<=n;i++)// (1)
{
if(list[i]=key) // (2)
{
return i;
}
}
return -1;
}
void main()
{
int A[10];
int key,count=0,pos;
cout<<" Enter a list of 10 integers: ";
for(pos=0;pos<10;pos++)
{
cin>>A; // (3)
}
cout<<"Enter a key: ";
cin>>key;
pos=0;
while((pos=SeqSearch(A,pos,10,key))!=-1)
{
count++;
pos++;
}
cout<<key<<" occurs "<<count<<(count!=1?" times":" time")<<" in the list."<<endl;
}
第一种情况:输入2 3 12 6 8 45 8 33 7 输入key:8
输出: (4)
第二种情况:输入2 3 12 6 8 45 8 33 7 输入key:9
输出: (5)