国家二级(C++)机试模拟试卷204附答案解析

国家二级(C++)机试模拟试卷204

选择题

1.有如下类定义:

class Foo

{

public:

Foo(int V):value(v){}//①

-Foo(){}//②

private:

Foo(){}//③

int value=0;//④

};

其中存在语法错误的行是( )。(D)

A. ①

B. ②

C. ③

D. ④

解析:本题考查对象的初始化,类的数据成员是不能在声明类时初始化的,所以本题答案为D。

2.下列队列的描述中,正确的是( )。(D )

A. 队列属于非线性表

B. 队列在队尾删除数据

C. 队列按“先进后出”进行数据操作

D. 队列按“先进先出”进行数据操作

解析:队列是只允许在一端删除,在另一端插入的顺序表,允许删除的一端叫做队头,允许插入的一端叫做队尾。队列的操作数是依据先进先出的原则进行的。因此队列亦称作先进先出的线性表,或后进后出的线性表。

3.下列情况中,不会调用拷贝构造函数的是( )。(B)

A. 用一个对象去初始化同一类的另一个新对象时

B. 将类的一个对象赋值给该类的另一个对象时

C. 函数的形参是类的对象,调用函数进行形参和实参结合时

D. 函数的返回值是类的对象,函数执行返回调用时

解析:本题考查复制构造函数,在以下3种隋况下使用:

①程序中需要新建立一个对象,并用另一个对象对它初始化;

②函数的参数为类的对象;

③函数的返回值是类的对象。其中B选项是由赋值运算符重载实现的。

4.对关系S和关系R进行集合运算,结果中既包含关系S中的所有元组也包含关系R中的所有元组,这样的集合运算称为( )。(A )

A. 并运算

B. 交运算

C. 差运算

D. 除运算

解析:关系的并运算是指,由结构相同的两个关系合并,形成一个新的关系,其中包含两个关系中的所有元组。

5.下列排序方法中,最坏情况下比较次数最少的是( )。(D)

A. 冒泡排序

B. 简单选择排序

C. 直接插入排序

D. 堆排序

解析:冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是nlog2n。

6.下面程序输出的结果为( )。

#inchde

voidfun(rota,intb)

{

int temp;

temp=a;

a=b:

b=temp;

}

voidmain()

{

int:m,n;

m=1;

n=2;

fun(m,n);

cout<<m<<“”<<n<<endl;

}

(A )

A. 12

B. 21

C. 22

D. 程序有错误

解析:函数fun中定义的参数a和b为形式参数,它们并不是实际存在的数据,只有在发生函数调用时才被分配内存空间,结束后,形参所占有的内存单元也被释放。并且函数fun没有返回值,它做的交换操作,并不能影响实际参数m和n。所以输出值保持不变,仍然是1和2,即输出:12。

7.有如下程序:

#inchde

using namespace std;

int i=1:

class Fun

{

public:

static int i:

int value(){return i-1;)

int valueoconst{return i+1;}

};

int Fun::i=2:

int main()

{

int i=3:

Fun fun1;

const Fun fun2;

return 0:

}

若程序的输出结果是:123

则程序中横线处的语句是( )。(A)

A. cout<<fun 1.value0<<Fun::i<<fun2.value();

B. cout<<Fun::i<<fun1.value()<<fun2.value();

C. cout<<fun1.value0<<fun2.value()<<Fun::i;

D. cout<<fun2.value0<<Fun::i<<funl.value();

解析:此题因为定义的变量i是static类型的(main()函数内部的i只是一个局部变量),所以,选项A)中funl.value()的返回值是1,Fun::i引用的是外部变量会输出2:fun2.value();会调用常成员函数int value()const{retun i+l;}使得外部静态变量i的值增加为3,故输出3。

8.层次型、网状型和关系型数据库划分原则是( )。(D)

A. 记录长度

B. 文件的大小

C. 联系的复杂程度

D. 数据之间的联系方式

解析:层次模型的基本结构是树形结构.网状模型是一个不加任何条件限制的无向图,关系模型采用二维表来表示,所以三种数据库的划分原则是数据之间的联系方式。

9.下列语句中错误的是( )。(A)

A. const int a;

B. const int a=10;

C. const int*point=0;

D. const int*point=new int(10);

解析:const是一个C++语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。限定符声明变量只能被读,必须初始化。A选项没有初始化,B、C、D选项都正确。

10.有如下类声明:

class MyBASE

{

int k:

public:

void set(int n){k=n;}

int getoconst{return k;}

};

class MyDERIVED:protected MyBASE

{

protected:

intj;

public:

void set(int m,int n){MyBASE::set(m);j=n;}

int geto(B )

A. 4

B. 3

C. 2

D. 1

解析:因为在保护继承的情况下,基类中的公有成员void set(int n)和int get()const在派生类中是保护成员,再加上派生类自身的保护成员j,一其是二三个保护成员。

11.有以下程序:

#include

void fun(int a,int b,int c)

{a=456,b=567,c=678;}

void main()

{

int x=10,y=20,z=30;

fun(x,y,z);

cout<<x<<’,’ <<y<<’,’ <<z<<endl;

}

输出结果是( )。(B)

A. 30,20,10

B. 10,20,30

C. 456,567,678

D. 678,567,456

解析:本题考查函数中变量的作用范围,在主函数中给变量x、y、z赋值,然后将其作为实参传递给了函数fun(),虽然在函数fun()中改变了这3个变量的值,但只是同名的局部变量,不影响函数中变量的值,所以在调用函数fun()结束后,主函数3个变量的值未改变。

12.以下叙述正确的是( )。(D)

A. 函数可以嵌套定义但不能嵌套调用

B. 函数既可以嵌套调用也可以嵌套定义

C. 函数既不可以嵌套定义也不可以嵌套调用

D. 函数可以嵌套调用但不可以嵌套定义

解析:在C++语言中,所有的函数都是平行的,即在定义函数时是互相独立的,一个函数并不从属于另一个函数,即函数不能嵌套定义,但可以互相调用。但是不能调用main()函数。

13.下列关于return语句的叙述中,正确的是(C)

A. 任何函数的函数体中至少有一个return语句

B. 任何函数的函数体中最后一条语句必须是return语句

C. 如果函数的返回类型为void,则其函数体中可以没有return语句

D. 如果函数的返回类型为int,则其函数体中可以没有return语句

解析:本题考查函数返回类型,函数如果返回为void,那么函数体内可以没有return语句,如果函数有返回值,那么在函数体中就必须有return语句。

14.一个运动队有多个队员,一个队员仅属于一个运动队,一个队一般都有一个教练,则实体运动队和队员的联系是( )。(A)

A. 一对多

B. 一对一

C. 多对一

D. 多对多

解析:一般来说,实体集之间必须通过联系来建立联接关系,分为三类:一对一联系(1:1)、一对多联系(1:m)、多对多联系(m:n)。实体运动队和队员的关系为1:m联系,故A选项正确。

15.有如下类定义:

class Sample{

public:

Sample(int x):ref(x){} //1

private:

Sample(){ref=0;} //2

static int val=5; //3

const int ref; //4

};上述程序段中,有四个语句编号分别为1、2、3、4,其中错误的语句是( )。(C)

A. 1,3

B. 2,4

C. 2,3

D. 3,4

解析:C++中,不能在类中直接初始化const数据成员,因为在类没有被初始化时,成员是不存在的,所以const数据成员必须在构造函数初始化列表中初始化,语句1、4正确,语句2错误;另外类的static数据成员不能在类定义中初始化,也不能通过类的构造函数进行初始化,而必须在类定义体的外部定义,语句3错误;答案为C。

16.有下列程序:

#include

void fun(int a[],int n)

{ int i,t;

for(i=0;i<n/2;i++){t=a[i];a[i]=a[n-1-i];a[n-1-i]=t;}

}

void main()

{ int k[10]={1,2,3,4,5,6,7,8,9,10),i;

fun(k,5);

for(i=2,i<8;i++)print{(\(D)

A. 345678

B. 876543

C. 1.09877e+006

D. 321678

解析:在程序中,fun(k,5)的功能是将数组k的k[0]、k[1]分别与k[3]、k[4]交换,for循环从k[2]到k[8]输出,所以输出结果为321678。

17.数据库管理系统(DBMS)中用来定义模式、内模式和外模式的语言为( )。(C)

A. C

B. Basic

C. DDL

D. DML

解析:数据定义语言Data Delinition Language(DDL)是SQL语言的一部分,用来定义模式、内模式和外模式。

18.在语句\(B)

A. 类名

B. 对象名

C. 函数名

D. C++的关键字

解析:本题考查提取运算符<<,cout为对象名,所以B选项正确。

19.关系模型允许定义3类数据约束,下列不属于数据约束的是( )。(C)

A. 实体完整性约束

B. 参照完整性约束

C. 属性完整性约束

D. 用户自定义完整性约束

解析:关系模型允许定义3类数据约束,即实体完整性约束、参照完整性约束和用户自定义完整性约束。其中前两种完整性约束由关系数据库系统支持,用户自定义完整性约束则由关系数据库系统提供完整性约束语言,用户利用该语言给出约束条件,运行时由系统自动检查。

20.有如下程序段:

int i=0;

while(1) {

i++;

if(i == 30) break;

if(i/20 == 0) cout << ’*’;

}

执行这个程序段输出字符*的个数是(C)

A. 0

B. 9

C. 19

D. 29

解析:程序首先定义一个整型变量i并初始化为0,while循环条件为1,所以循环结束时,必然执行break语句;while循环体中,首先对i自增1,接着判断i == 30时退出循环,最后判断i/20 == 0(即,i < 20)时输出\

21.有如下类定义:

class B{

private: void fun1(){ }

protected: void fun2(){ }

public: void fun3(){ }

};

class D : public B {

protected: void fun4(){ }

};

若obj是类D的对象,则下列语句中正确的是(D)

A. obj.fun1();

B. obj.fun2();

C. obj.fun4();

D. obj.fun3();

解析:派生类对基类成员的访问权限由基类成员的访问标识和类派生列表中的访问标识共同决定的,类D公有继承类B,所以类B中成员函数fun1对类D不可见;成员函数fun2为类D的protected成员;成员函数fun3为类D的public成员;综上所述fun1,fun2,fun4对类D对象obj均不可见,fun3对obj可见,答案为D。

22.下列关于C++函数的叙述中,正确的是(D)

A. 函数不能自己调用自己

B. 每个函数都必须返回一个值

C. 每个函数至少要有一个参数

D. 函数在被调用之前必须先进行声明或定义

解析:函数可以自己调用自己,称为递归调用;函数返回类型为void时,没有返回值;函数的参数列表中可以没有参数;函数在被调用前必须先进行函数声明或定义。A、B、C错误,D正确;答案为D。

23.有如下的类声明:

#include

using namespace std;

class AA{

public:

virtual void disp(){ cout<<’A’; }

};

class BB: public AA{

public:

void disp(){ cout<<’B’; }

};

class CC: public BB{

public:

virtual void disp(){ cout<<’C’; }

};

void plot(AA &a){ a.disp(); }

int main(){

BB bb;

CC cc;

BB &rb=cc;

plot(bb);

plot(cc);

rb.disp();

return 0;

}

运行这个程序的输出是(C)

A. AAC

B. AAB

C. BCC

D. BCB

解析:程序定义了类AA,成员函数disp()为虚函数;类BB公有继承AA,重新定义了disp()函数;类CC公有继承BB,同样重新定义了disp()函数;类BB中,虽然disp()未用virtual修饰,但是由虚函数性质可知,BB中的disp()函数仍然是虚函数;main()函数中,创建BB对象bb,CC对象cc,使用cc初始化BB类引用rb,然后调用plot函数;plot函数的形参是AA类的引用,通过AA类引用调用disp函数,满足多态性条件,将根据引用所指对象的类型来决定调用哪个disp函数;所以plot(bb)调用类BB中的disp函数,plot(cc)调用CC中的disp函数;输出分别为:\

24.下列叙述中正确的是(B)

A. 结点中具有两个指针域的链表一定是二叉链表

B. 结点中具有两个指针域的链表可以是线性结构,也可以是非线性结构

C. 二叉树只能采用链式存储结构

D. 循环链表是非线性结构

解析:具有两个指针域的链表可能是双向链表,A选项错误。双向链表是线性结构,二叉树为非线性结构,二者结点中均有两个指针域,B选项正确。二叉树通常采用链式存储结构,也可采用其他结构,C选项错误。循环链表是线性结构,D选项错误。

25.在公有继承的情况下,允许派生类直接访问的基类成员包括( )。(B)

A. 公有成员

B. 公有成员和保护成员

C. 公有成员、保护成员和私有成员

D. 保护成员

解析:本题考查公用继承对基类成员的访问属性。在公用继承中,基类的公用成员和保护成员在派生类中保持原有的访问属性,其私有成员仍为基类私有。所以本题答案为B。

26.有如下程序:

#include

#include

using namespace std;

class Father{

public:

Father(string s):name(s) { }

~Father() { cout<<’F’; }

private:

string name;

};

class Mother{

public:

Mother(string s):name(s) { }

~Mother() { cout<<’M’; }

private:

string name;

};

class Child:public Mother,public Father{

public:

Child(string s1,string s2,string s3,int a):Father(s1),Mother(s2),name(s3),age(a) { }

~Child() { cout<<’C’; }

private:

string name;

int age;

};

int main(){

Child son(\(C)

A. C

B. CMF

C. CFM

D. 20CMF

解析:执行派生类构造函数的顺序是:

1、调用基类构造函数,2、调用子对象构造函数,3、再执行派生类析构函数,4、执行基类的析构函数。所以本题中执行析构函数为派生类的析构函数、Father的析构函数、Mother的析构函数,所以输出CFM,答案C正确。

27.设c1和c2是类MyClass的对象,若将前缀运算符\(B)

A. operator/(c1.operator–(),c2)

B. operator/(operator–(c1),c2)

C. c1.operator–().operator/(c2)

D. c2.operator/(operator–(c1))

解析:友元函数不是类的成员函数,所以友元函数的调用不需要使用类对象;另外运算符重载不改变运算符的优先级,所以先执行\

28.若 Pay 是一个类名,则执行语句

Pay p1,p2[2],*p3;

时Pay的构造函数被调用的次数是(C)

A. 1

B. 2

C. 3

D. 4

解析:程序定义了Pay对象p1,Pay对象数组p2和Pay对象指针p3,编译器自动生成默认构造函数初始化p1对象和p2的两个对象元素;p3没有初始化,没有调用构造函数,答案为C。

29.有如下程序:

#include

using namespace std;

class Base {

public:

void output() { cout<<1; }

virtual void Print() { cout<<′B′; }

};

class Derived : public Base {

public:

void output() { cout<<2; }

void Print() { cout<<′D′; }

};

int main()

{

Base *ptr=new Derived;

ptr->output();

ptr->Print();

delete ptr;

return 0;

}

执行这个程序的输出结果是( )。(B)

A. 1B

B. 1D

C. 2B

D. 2D

解析:在某基类中声明为virtual并在一个或多个派生类中被重新定义的成员函数,本题中定义了一个指向派生类对象的基类指针ptr,执行ptr->output后,会执行基类的output函数,输出1,由于Print是虚函数,所以ptr->Print()会执行派生类的Print,即输出D,所以本题答案为B。

30.已知Bag是一个类,并有函数FBag定义如下:

Void FBag(){

Bag *ptr, my, colleage[2], &sister=my;

}

则在调用函数FBag()后,Bag 类的析构函数被调用的次数是(B)

A. 2次

B. 3次

C. 4次

D. 5次

解析:本题考查默认析构函数,题中定义了一个对象、包含2个元素的一维对象数组,所以析构函数执行3次,而对象指针数组并没有实际占用空间,所以不执行析构函数。

31.下面属于白盒测试方法的是(B)

A. 等价类划分法

B. 逻辑覆盖

C. 边界值分析法

D. 错误推测法

解析:白盒测试法主要有逻辑覆盖、基本路径测试等。逻辑覆盖测试包括语句覆盖、路径覆盖、判定覆盖、条件覆盖、判断-条件覆盖,选择B。其余为黑盒测试法。

32.在进行逻辑设计时,将E-R图中实体之间联系转换为关系数据库的(A)

A. 关系

B. 元组

C. 属性

D. 属性的值域

解析:E-R模型和关系模式的对照表如下:

33.设二叉树如下:

(C)

A. ABDEGCFH

B. DBGEAFHC

C. DGEBHFCA

D. ABCDEFGH

解析:二叉树遍历可以分为3种:前序遍历(访问根结点在访问左子树和访问右子树之前)、中序遍历(访问根结点在访问左子树和访问右子树两者之间)、后序遍历(访问根结点在访问左子树和访问右子树之后)。本题中前序遍历为ABDEGCFH,中序遍历为DBGEAFHC,后序遍历为DGEBHFCA,故C选项正确。

34.下列有关内联函数的叙述中,正确的是( )。(C)

A. 内联函数在调用时发生控制转移

B. 内联函数必须通过关键字inline来定义

C. 内联函数是通过编译器来实现的

D. 内联函数函数体的最后一条语句必须是return语句

解析:一般函数进行调用时,要将程序执行权转到被调用函数中,然后再返回到调用它的函数中;而内联函数在调用时,是将调用表达式用内联函数体来替换,所以在调用时不发生控制转移。在类内部实现的函数都是内联函数,可以不用inline定义;只有函数外部定义的内联函数才必须加关键字inline。编译系统并非对内联函数必须使用内联,而且根据具体情况决定。内联函数不是必须要有返回值的。

35.有如下程序:

#include

using namespace std;

class A {

public:

static int a;

void init() { a = 1; }

A(int a = 2) { init(); a++; }

};

int A::a = 0;

A obj;

int main()

{

cout << obj.a;

return 0;

}

运行时输出的结果是( )。(B)

A. 0

B. 1

C. 2

D. 3

解析:本题考查构造函数,本题中对类中的a数据成员先是赋值为0,当定义了对象obj时,执行构造函数,将a的值变为了1,所以输出1。

36.结构化程序所要求的基本结构不包括(  )。(B)

A. 顺序结构

B. GOTO跳转

C. 选择(分支)结构

D. 重复(循环)结构

解析:1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结构就足以表达出各种其他形式结构的程序设计方法。

37.下列关于类的析构函数的叙述中,错误的是(C)

A. 定义析构函数时不能指定返回值

B. 析构函数的函数名就是类名前加上字符 ~

C. 析构函数可以重载

D. 在一个类中如果没有定义析构函数,系统将自动生成一个析构函数

解析:本题考查类的析构函数的定义,析构函数(destructor) 与构造函数相反,当对象脱离其作用域时(例如对象所在的函数已调用完毕),系统自动执行析构函数。析构函数往往用来做\

38.有如下类定义:

class Bag{

public:

Bag(); //①

void SetSize(string s); //②

string GetSize() const; //③

friend void Display(Bag& b); //④

private:

string size;

};

在标注号码的 4 个函数中,不具有隐含this指针的是(D)

A. ①

B. ②

C. ③

D. ④

解析:当在类的非静态成员函数中访问类的非静态成员的时候,编译器会自动将对象本身的地址作为一个隐含参数传递给函数,所以①②③正确使用this指针。

39.有如下类声明:

class What{

int n;

public:

double d;

private:

char c;

};

类What的公有数据成员和私有数据成员的数量分别是(B)

A. 1 和 1

B. 1 和 2

C. 2 和 1

D. 2 和 2

解析:class关键字定义的类,成员默认的访问级别是私有的,所以类What中公有成员有d,私有成员有n,c;答案为B。

40.有下列类模板声明中,出现语法错误的是(D)

A. template class A;

B. template class A;

C. template class A;

D. template class A;

解析:在类模板声明中,每个模板类型形参前面都必须用关键字class和typename来修饰;选项D错误,答案为D。

基本操作题

41.给定程序中,函数fun的功能是:将不带头结点的单向链表结点数据域中的数据从小到大排序。即若原链表结点数据域从头至尾的数据为10,4、2、8、6,排序后链表结点数据域从头至尾的数据为2、4、6、8、10。

请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。

注意:部分源程序给出如下。

不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#include

#define N 6

typeclef struct node{

int data;

struer node,*next;

}NODE;

void fun(NODE*h)

{ NODE*p,*q;int t;

p=h;

while(P){

/*********found*********/

q=【1】;

/*********found*********/

while(【2】)

{if(p一>data>q一>data)

{t=p一>data;

p一>data=q一>data;

q一>data=t;}

q=q一>next;

}

/*********found*********/

p=【3】;

}

}

NODE*creatiist(int a[])

{ NODE*h,*p,*q;int i;

h=NULL;

for(i=0;i<N;i++)

{ q=(NODE*)malloc(sizeof

(NODE));

q一>data=a[i];

q一>next=NULL;

if(h==NULL)h=p=q;

else{p一>next=q;p=q;}

}

return h;

}

void outlist(NODE*h)

{ NODE*p;

P=h;

if(P==NULL)

printf(\

(1)p一>next (2)q (3)p一>next

解析:填空1:从第2个while循环可知,q的初值应该为p的next,故此空应该填写p一>next。

填空2:第2个while循环表示的是每次从链表剩下的树中找出最小的数,因此此空应该以q是否为空来判断循环是否结束,所以此空应该填写q。

填空3:当找到一个最小的数时p应该向后移,因此此空应该填写p一>next。

简单应用题

42.请打开考生文件夹下的解决方案文件proj2,该工程中包含一个程序文件main.cpp,其中有“书”类Book及其派生出的“教材”类TeachingMaterial的定义,还有主函数main的定义。请在程序中“//********found********”下的横线处填写适当的代码,然后删除横线,以实现上述类定义和函数定义。此程序的正确输出结果应为:

教材名:C++语言程序设计

页 数:299

作 者:张三

相关课程:面向对象的程序设计

注意:只能在横线处填写适当的代码,不要改动程序中的其他内容,也不要删除或移动“//********found********”。

#include

using namespace std;

class Book { //“书”类

char * title; //书名

int num pages; //页数

char*writer; //作者姓名

public:

Book(const char*the_title,int pages , const char*the_writer):num pages(pages){

title=new char[strlen(the titie)+1];

strcpy(title,the title);

//********found********

strcpy(writer,the writer);

}

//********found********

~Book(){__________}

int numOfPages()const { return num pages;} //返回书的页数

const char*theTitle()const

{ return title;} //返回书名

const char * theWriter()

const{return writer;} //返回作者名

};

class TeachingMaterial:public

Book{

//“教材”类

char*course;

public:

TeachingMaterial(const char*the_title,int pages,const char*the writer,const char*the course)

//********found********

:______________{

course=new char[strlen(the course)+1];

strcpy(course,the course);

}

~TeachingMaterial(){delete[]

course;)

const char * theCourse ( )

const{return course;} //返回相关课程的名称

};

int main(){

TeachingMaterial a book (\

(1)writer=new char[strlen(the_writer)+1};

(2)delete [ ] title,writer;

(3)Book(the_title,pages,the_writer)

(4)a_book.theCourse()<<endl

解析:(1)主要考查考生对动态分配空间的掌握,在填空前可以参考title的初始化,即先分配空间,再使用strepy函数复制字符串,因此这里使用writer=new char[strlen(the_writer)+1]语句给writer分配空间,注意分配空间的大小应为字符串长度加1。

(2)主要考查考生对析构函数的掌握,要填写的内容是析构函数的函数体,因为有两个动态数组title和writer.所以要释放两个动态数组空间,使用语句~Book(){delete[]title,writer;}来完成。

(3)主要考查考生对派生类的构造函数的掌握,派生类必须使用成员初始化列表法来先给基类进行初始化。

(4)主要考查成员函数调用,题目要求输出“相关课程:面向对象的程序设计”。可以知道这里要显示的是course,但course是私有成员不能直接调用,要使用成员函数凋用,即theCourse()。

综合应用题

43.请编写函数fun,其功能是:移动一维数组中的内容,若数组中有n个整数,要求把下标从0~P(含p,p小于等于n—1)的数组元素平移到数组的最后。

例如,一维数组中的原始内容为:1、2、3、4、5、6、7、8、9、10;P的值为3。移动后,一维数组中的内容应为:5、6、7、8、9、10、1、2、3、4。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的内容,仅在函数fun的花括号中填入你编写的若干语句。

试题程序:

#inCiude

#define N 80

void fun(int*w,int o,int n)

{

}

main()

( int a[N]=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};

int i,p,12=15;

printf(\

void fun(int*w,int p,int n)

{ int x,j,ch;

for(x=0;x<=p;x++)

( ch=w[0];

for(j=1;j<n;j++)/*通过for循环语句,将p+1到n一1(含n一1)之间的数细元素依次向前移动p+1个存储单元*/

{

w[j一1]=w[j];

}

w[n—1]=ch;/*将0到p个数组元素逐一赋给数组w[n一1]*/

}

}

解析:本题要求把下标从0~p(含p,p小于等于n一1)的数组元素平移到数组的最后,可以根据输入的p值,通过for循环语句,将p+1~n一1(含n一1)之间的数组元素依次向前移动p+1个存储单元,即w[j一1]=w[j];,同时将0~p个数组元素逐一赋给数组w[n—1],也就是通过语句w[n一1]=ch;来实现此操作的。

资源下载《国家二级(C++)机试模拟试卷204附答案解析.doc》 文档下载价格为50下载币,请先
将本套试题Word文档或文章下载到电脑,方便收藏和打印
资源下载
《国家二级(C++)机试模拟试卷204附答案解析.doc》
试题含答案和解析word文档下载价格:50 下载币
《国家二级(C++)机试模拟试卷204附答案解析.doc》
试题含答案和解析word文档VIP优惠:免费
将本套试题Word文档或文章下载到电脑,方便收藏和打印
0

评论0

没有账号? 注册  忘记密码?