VC++程序设计模拟试题1.docx

上传人:b****8 文档编号:28366105 上传时间:2023-07-10 格式:DOCX 页数:16 大小:19.60KB
下载 相关 举报
VC++程序设计模拟试题1.docx_第1页
第1页 / 共16页
VC++程序设计模拟试题1.docx_第2页
第2页 / 共16页
VC++程序设计模拟试题1.docx_第3页
第3页 / 共16页
VC++程序设计模拟试题1.docx_第4页
第4页 / 共16页
VC++程序设计模拟试题1.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

VC++程序设计模拟试题1.docx

《VC++程序设计模拟试题1.docx》由会员分享,可在线阅读,更多相关《VC++程序设计模拟试题1.docx(16页珍藏版)》请在冰豆网上搜索。

VC++程序设计模拟试题1.docx

VC++程序设计模拟试题1

VC++程序设计

一、选择题:

(1题1分)

1.以下选项中,哪一个是合法的字符常量

A."N"  B.'\010'C.AD.65

2.表达式"(a=3*2,b=a/2),b-a,a+=2"的值是

A.-3B.6C.8D.12

3.有以下的程序段,其输出结果是

intx,y,z;

x=y=z=0;

x=++x||++y&&++z;

cout<

A.1,1,1B.1,1,0C.1,0,0D.0,0,0

4.以下程序的执行结果是

#include

classOBJ

{intn;

public:

OBJ(inti=0){n=i;}

operator++(){n++;}

voidShow(){cout<

};

voidmain()

{OBJobj(3);

++obj;

obj.Show();

}

A.3B.4C.0D.1

5.设有以下程序段:

inta[5]={0},*p,*q;

p=a;

q=a;

则下列选项中,合法的运算表达式是

A.p-qB.p+qC.p*qD.p%q

6.假设MyClass为一个类,则该类的拷贝的构造函数的声明语句为

A.MyClass&(MyClassx);B.MyClass(MyClassx);

C.MyClass(MyClass&x);D.MyClass(MyClass*x);

7.以下程序的执行结果是

#include

voidmain()

{chars[]="1234356";

S[3]='\0';

cout<

}

A.12B.123C.1234D.123456

8.下面关于纯虚函数与抽象类的描述中,错误的是:

A.纯虚函数是一种特殊的虚函数,它没有具体的体现

B.抽象类是指具有纯虚函数的类

C.一个基类中如果具有纯虚函数,该基类的派生类不能再是抽象类

D.抽象类只能作为基类来用,其纯虚函数的实现由派生类给出

9.以下程序段的输出结果是:

intx=5;

do{

x--;

}while(!

x);

cout<

A.5B.4C.0D.-1

10.下列虚基类的声明中,正确的是

A.classvirtualB:

publicAB.virtualclassB:

publicA

C.classB:

publicAD.classB:

virtualpublicA

11.以下四组语句中不符合C++语法规则的是

A.chars[]="Nanjing";B.chars[20];s="Nanjing";

C.char*p="Nanjing";C.char*p;p="Nanjing";

12.类MyClass的定义如下:

classMyClass

{intvalue;

public:

MyClass(){value=0;}

SetVariable(inti){value=i};

};

则以下各项对下面语句的描述中,正确的是:

MyClass*p,my;p=&my;

A.语句"p=&my;"是把对象my赋值给指针变量p

B.语句"MyClass*p,my;"调用了两次构造函数

C.语句"*p.SetVariable(5);"是正确的调用形式

D.语句"p→SetVariable(5)"与语句"my.SetVariable(5)"是等价的

13.下面函数的功能是

intfun(char*x)

{char*y=x;

while(*y++);

return(y-x-1);

}

A.求字符串长度B.比较两个字符串的大小

C.将字符串x复制到字符串yD.将字符串x连接到字符串y后面

14.有如下程序段

int**p,*s,k=20;

s=&k;

p=&s;

请指出**p所代表的是

A.&sB.&kC.sD.k

15.有以下程序:

#include

#include

voidmain()

{chars[]="\n123\\";

cout<

}

该程序执行后的结果是

A.赋初值的字符串有错B.4,6C.0,6D.5,6

16.若有定义:

int*p;

则下列各选项中,不同于表达式"*p=*p+1;"的是

A.*p++;B.++*p;C.*p+=1;D.++(*p);

17.定义如下枚举类型:

enumDay{Monday,Tuesday,Wednesday,Thursday,Friday=2};

则下列语句正确的是:

A.表达式Wednesday==Friday的值是1B.Dayday;day=3;

C.Dayday;day=Monday+3;D.Dayday;day=Tuesday+10;

 

18.以下程序的执行结果是

#include

voidmain()

{inta[9]={1,2,3,4,5,6,7,8,9},*p[3];

for(inti=0;i<3;i++)

p[i]=&a[i*3];

cout<

}

A.9B.6C.3D.2

19.下列程序段的输出结果是

#include

voidfun(int*x,int*y)

{cout<<*x<<*y;

*x=3;

*y=4;

}

voidmain()

{intx=1,y=2;

fun(&y,&x);

cout<

}

A.2143B.1212C.1234D.2112

20.对于运算符>>,其重载函数是一个

A.用于输入的友元函数B.用于输入的成员函数

C.用于输出的友元函数D.用于输出的成员函数

二、基本概念填空题(1题2分)

1.在用class定义一个类时,数据成员和成员函数的默认权限是【1】。

2.常量'\t'的数据类型是【2】。

3.已有声明"floatx;doubley;inta;",表达式:

x+y/2+'a'-a的值的类型是【3】。

4.C++的编译预处理的功能分为三种:

宏定义、【4】和文件包含。

5.若已知a=2,b=0,则表达式a

b的值为【5】。

6.在VisualC++6.0系统中,常数50存储在内存中,它占用【6】个字节。

7.C++语言的基本控制结构为顺序结构、【7】和循环结构。

8.在C++中,将多态性分为静态多态性和动态多态性两种。

函数重载属于【8】多态性。

9.变量按其作用域分全局变量和局部变量两种。

形式参数是【9】。

10.C++程序是从【10】函数开始执行的。

三、阅读程序(1题3分)

注:

以下程序开始均有语句:

#include

1.#defineMIN(x,y)(x)<(y)?

(x):

(y)

voidmain()

{inti,j,k;

i=10;j=15;

k=10*MIN(i,j);

cout<

}

2.intf(void)

{inta=10,b=0;

staticintc=1;

a+=b;b+=c;

returnc=a+b;

}

voidmain(void)

{cout<

cout<

}

3.#defineN5

intfun(char*s,chara,intn)

{intj;

*s=a;j=n;

while(a

j--;

returnj;

}

voidmain()

{chars[N+1];

intk;

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

s[k]='A'+k+1;

cout<

}

4.intf(intn)

{if(n==1)

return1;

else

returnf(n-1)+1;

}

voidmain()

{for(inti=1,j=0;i<3;i++)

j=j+f(i);

cout<

}

5.voidmain()

{intx=1,y=3;

x++;

{intx=0;

x+=y*2;

cout<

}

cout<

}

6.intx;

voidfunA(int&a,intb)

{intfirst;

first=a+b;

a=2*b;

b=first+4;

}

voidfunB(intu,int&v)

{intsecond;

second=x;

v=second+4;

x=u+v;

}

voidmain()

{intfirst=0;

intsecond=5;

x=6;

funA(first,second);

funB(first,second);

cout<

}

7.voidmain()

{char*str=''12123434'';

intx1=0,x2=0,x3=0,x4=0,i;

for(i=0;str[i]!

='\0';i++)

switch(str[i])

{case'1':

x4++;

case'2':

x3++;

case'3':

x2++;

case'4':

x1++;

}

cout<

}

8.classA

{

public:

A(){cout<<''CLASSA''<

~A(){}

};

classB:

publicA

{

public:

B(){cout<<''CLASSB''<

~B(){}

};

voidmain()

{A*p;

p=newA;

B*q;

q=newB;

}

9.classBase

{

public:

virtualvoidwho(){cout<<''classBase''<

};

classDerived1:

publicBase

{

public:

voidwho(){cout<<''classDerived1''<

};

classDerived2:

publicBase

{

public:

voidwho(){cout<<''classDerived2''<

}:

 voidmain()

{Base*p;

Derived1obj1;

obj1.who();

Derived2obj2;

p=&obj2;

p→who();

}

10.classMyClass

{intm;

public:

staticintn;

MyClass(){m=0;}

voidsetvalue(){m++;n++;}

voidoutput(){cout<<''m=''<

};

intMyClass:

:

n=2;

voidmain()

{MyClassobj1,obj2;

obj1.setvalue();

obj1.output();

obj2.setvalue();

obj2.output();

};

四、完善程序(1空2分)

1.将下面语句段(b)补充完整,使其和语句段(a)在功能上完全一样

(a)doubles=1.0;

for(intk=1;k<=10;k++)

s+=1.0/(k*(k+1));

(b)doubles=0.0;

【1】;

intk=0;

do{s+=d;

k++;

d=1.0/(k*(k+1));

}while(【2】);

2.如果一个两位整数是质数,将组成它的两个数字交换位置后形成的整数仍然是质数,则称这样的数为绝对质数。

例如,13就是一个绝对质数。

以下的程序用于找出所有两位绝对质数。

注:

质数,又称素数,指只能被自身和1整除的整数,如11,13,17等。

#include

intprime(intn)//判断整数n是否为质数,若是返回1,否则返回0

{for(inti=2;i

if(【3】)

return0;

return1;

}

voidmain()

{intm[2];

for(inti=10;i<100;i++)

{m[0]=i;

m[1]=【4】;

if(prime(【5】)&&prime(m[1]))

cout<

}

}

3.以下程序通过调用函数scat()将两个字符串连接起来,程序输出是Nanjing,China。

请填空。

#include

voidscat(char*p,char*q)

{while(*p++)

p=p-1;

while(*q)

{【6】;}

*p=0;

}

voidmain()

{charstr[20]=''Nanjing,'';

char*s=''China'';

【7】;

cout<

}

4.设已建立了一条链表,链表上结点的数据结构是:

structnode{

floatEnglish,Math;//表示英语和数学成绩

node*next;

};

以下函数ave()的功能是求出该链表上的结点个数、英语和数学的总成绩,并在链首增加一个新结点,其分量English和Math分别存放这两门课的平均成绩。

若链表为空链表时,直接返回空指针。

请填空。

node*ave(node*head,int&count)//head是链首地址,count存放求出的结点个数

{node*p1;

floatsume=0;summ=0;

count=0;

if(head==NULL)//空链表

returnNULL;

p1=head;

while(p1)

{sume+=p1→English;

summ+=p1→Math;

count=count+1;

【8】;

}

p1=newnode;

p1→English=sume/count;

p1→Math=【9】;

【10】;

head=p1;

returnhead;

}

五、编程题(10分)

建立一个数组类ARR,求一个整型数组中正数和负数的个数,具体要求如下:

(1)私有数据成员:

intn:

数组实际元素个数

inta[100]:

存放数组元素

intpos:

存放整型数组中正数的个数

intneg:

存放整型数组中负数的个数

(2)公有成员函数:

ARR(intx[],intsize):

构造函数,用参数size初始化n,用x数组初始化a数组,将pos和neg初始化为0。

voidNum():

求整型数组中正数和负数的个数。

voidShow():

将数组以每行5个数的形式输出到屏幕上,同时输出数组中正数和负数的个数。

(3)在主函数中完成对该类的测试,定义一个整型数组b[]={3,-4,6,-8,10,-34,2,

80,-100},定义一个ARR类的对象,用b数组及其元素个数初始化该对象,统计数组中正数和负数的个数并输出程序的运行结果。

程序的运行结果应为:

3-46-810

-34280-100

pos=5neg=4

 

 

 

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1