1、国家二级( C+)笔试模拟试卷 226 及答案与解析 1 结构化分析方法是面向 ( )的自顶向下、逐步求精进行需求分析的方法。 ( A)对象 ( B)数据结构 ( C)数据流 ( D)目标 2 下列叙述中,不属于软件需求规格说明书的作用的是 ( A)便于用户、开发人员进行理解和交流 ( B)反映出用户问题的结构,可以作为软件开发工作的基础和依据 ( C)作为确认测试和验收的依据 ( D)便于开发人员进行需求分析 3 下列有关运算符重载的叙述中,正确的是 ( A)运算符重载是多态性的一种表现 ( B) C+中可以通过运算符重载创造新的运算符 ( C) C+中所有运算符都可以作为非成员函数重载 (
2、 D)重载运算符时可以改变其结合性 4 已知 int a, *pa= class Stack public: Stack (unsigned n=10):size (n) rep_=new int size; top=0; Stack (stack for (int i=0;i size;i+ rip_i-s.rep_i; top=s.top; Stack() deleterep_; void poush (int a) rep_topj=a; top+; int pep() -top; return rep_top; bool isEmpty() cons5 return Top =0; p
3、rivate: int*rep_; unsigned size, top; ; int main() Stack s1; for(int i=1;i 5;i+) s1.push(i); Stack s2(s1); for(i=1;i 3;i+ cout s2.pop() ,; s2.push(6); s1.push(7); while(!s2.isEmpty() cout s2.pop() ,; return 0; 执行上面程序的输出是 ( A) 4,3,2,1, ( B) 4,3,6,7,2,1, ( C) 4,3,6,2,1, ( D) 1,2,3,4, 12 若有如下程序: #inclu
4、de iostream using namespaces std; int s=0; class sample static int n; public: sample(int i) n=i; static void add() s+=n; ); int sample: s=0; int main() sample a(2), b(5); sample: add(); cout s endl; return 0; 程序运行后的输出结果是 ( A) 2 ( B) 5 ( C) 7 ( D) 3 13 对于模板定义关键字 class 和 typename 说法不正确的是 ( )。 ( A)程序中的
5、 class 并不能都替换为 typename ( B) class 和 typename 都可互相替换 ( C)程序中的 typename 都能替换为 Class ( D)程 序中的部分 class 可以替换为 typename 14 下列程序的运行结果为 ( )。 #include iostream.h template class TT class FF TT a1, a2, a3; public: FF(TT b1, TT b2, TT b3)a1 b1;a2 b2; a3 b3; TT Sum()return a1+a2+a3; ; void main() FF int x(int(
6、1.1), 2, 3),y(int(4.2), 5, 6); cout x.Sum( ( A) 6.1 15.2 ( B) 6 15 ( C) 6 15.2 ( D) 6.1 15 15 定义如下枚举类型: enumMonday,Tuesday,Wednesday,Thrusday,Friday=2;表达式Wednesday=Friday 的值是 ( )。 ( A) false ( B)真 ( C) 2 ( D)异常 16 有如下类模板定义: template typename T class BigNumber long n; public: BigNumber(T i):n(i) BigN
7、umber operator+(BigNumber B) return BigNumber(n+b.n); 已知 b1、 b2 是 BigNumber 的两个对象,则下列表达式中错误的是 ( )。 A) b1+b2 B) b1+3 C) 3+b1 D) 3+3 17 下面的语句中错误的是 ( A) int a=5; int xa; ( B) const int a=5; int xa; ( C) int n=5; int *p=new int a; ( D) const int n=5; int *p=new int a; 18 下列符号中可以用作 C+标识符的是 ( )。 ( A) _rad
8、ius ( B) foo bar ( C) else ( D) 3room 19 类 MyClass 的定义如下,若要对 value 赋值,则下面语句正确的是 ( )。 class MyClass public: MyClass() MyClass(int I)value=new mki; int*value; ; ( A) MyClass my;my.value=10; ( B) MyClassmy;*my.alue=10; ( C) MyClass my;my.*value=10; ( D) MyClass my(10); 20 有以下程序: #include iostream using
9、 namespace std; int main() int x=15; while(x 10 int s=0; class sample static int n; public: sample (int i) n=i; static void add() s+=n; ; int sample:n=0; ( A) 2 ( B) 5 ( C) 7 ( D) 3 32 下列程序的输出结果是 #include“ iostream“ using namespace std; int Max(int a, int b) if(a b) else return a; else retum b; void
10、 main( ) int m, n; m=10, n=5; int max=Max(m, n); cout max end ( A) 10 ( B)程序有误 ( C) 1 ( D) 0 33 以下程序中, while 循环的循环次数是 main() int i=0; while(i 10) if(i 1)coBtlnlle; if(i= =5)break; i+; ( A) 1 ( B) 10 ( C) 6 ( D)死循环,不能确定次数 34 下列关于重载函数的调用时选择的依据中,错误的是 ( )。 ( A)根据函数参数个数不同 ( B)根据函数参数类型不同 ( C)根据函数名字不同 ( D)
11、根据函数的返回值不同 35 下列程序的输出结果是 #inClUde iostream using namespace std; intmain() Char a “HellO,World“; Char*ptr a; while(*ptr) if(*ptr a class Point public: Point(int xx=0,int yy=0)X=xx;Y=yy;countP+; Point()countP-; int GetX()return X; int GetY()return Y; static void GetC()cout “Object id=“ countP end1; pr
12、ivate: int X,Y; static int countP; ; _/静态数据成员的初始化 int main() Point:GetC(); Point A(4,5); A.GetC(); return 0; 43 执行下列程序的输出结果是 _: #include iostream using namespacestd; class TestClassl public: void funl()cout “TestClassln“; virtual void fun2() cout “TestClassln“; ; class TestClass2:public TestClass1 p
13、ublic: 44 下列程序运行时的输出结果是 _。 #include iostream using namespace std; int Xfun(int*a, int n); int main() int b6=-2, 6, 8, -3, 5, 4); cout Xfun(b, 6) end1; return 0; int Xfun(int*a, int n) int x=0; for(int*p=a; p a+n; p+)if(*p 0)x+=*p; return X; 45 头文件【 】中包含了处理用户控制的文件操作所需的信息。 46 下列程序的输出结果是【 】。 #include i
14、ostream.h void main() int i(1),j(2),k(3),a(10); if(!i) a-; else if(j) if(k)a=5; else a=6; a+; cout a endl; if(i j) if(i!=3) if(!k) a=1; else if(k) a=5; 6+=2; cout a endl; 47 求 1 100 的和,可写成 for(s=0,i=1;【 】; i+) s+=i;的形式 。 48 有以下程序 #include iostream using namespace std; class Base int a; public: Base(
15、int x) a=x; vuid show()cout a; ; class DeriVed: public Base int b; public: Derived (int i): Base(i+1), b(i) void show()cout b; ; int main() Base b(5), *pb; Derived d(1); pb=&d; pb- show(); return 0; 运行后的打印结果是【 】。 49 以下函数用来求出数组的最大元素在数组中的下标并存放在 k 所指的存储单元中。请填空。 #include iostream h void fun(int * s, int
16、 t, int * k) int i; * k=【 】; 【 】 if(s * k si) * k=i; void main( ) int al0= 876, 675, 896, 101, 301, 401, 980, 431, 451, 777 , k; fun(a, 10, &k); 50 已知数组 a 中的元素个数为 n,下列语句的作用是将下标为 i 的元素移动到下标为 i-1的单元,其中 1i n。例如,当 n 4, a 中原有数据为 1, 2, 3, 4 时,则移动后 a 中元素变为 2, 3, 4, 4。请将语句补充完整: for(int i=0; i n-1; i+) ai=a【 】 ; 国家二级( C+)笔试模拟试卷 226 答案与解析