基于C++的面向对象程序设计习题库共11份.docx

上传人:b****5 文档编号:8379097 上传时间:2023-01-30 格式:DOCX 页数:49 大小:79.79KB
下载 相关 举报
基于C++的面向对象程序设计习题库共11份.docx_第1页
第1页 / 共49页
基于C++的面向对象程序设计习题库共11份.docx_第2页
第2页 / 共49页
基于C++的面向对象程序设计习题库共11份.docx_第3页
第3页 / 共49页
基于C++的面向对象程序设计习题库共11份.docx_第4页
第4页 / 共49页
基于C++的面向对象程序设计习题库共11份.docx_第5页
第5页 / 共49页
点击查看更多>>
下载资源
资源描述

基于C++的面向对象程序设计习题库共11份.docx

《基于C++的面向对象程序设计习题库共11份.docx》由会员分享,可在线阅读,更多相关《基于C++的面向对象程序设计习题库共11份.docx(49页珍藏版)》请在冰豆网上搜索。

基于C++的面向对象程序设计习题库共11份.docx

基于C++的面向对象程序设计习题库共11份

习题1

1.1选择题

1.在一个C++程序中,main函数的位置()

A必须在程序的开头B必须在程序的后面

C可以在程序的任何地方D必须在其他函数中间

2.用C++语言编制的源程序要变为目标程序必须要经过()

A解释B汇编C编辑D编译

3.C++程序基本运行单位是()

A数据B字符C函数D语句

4.C++程序中的语句必须以()结束

A冒号B分号C空格D花括号

5.执行C++程序时出现的”溢出”错误属于()错误.

A编译B连接C运行D逻辑

6.下列选项中,全部都是C++关键字的选项为()

AwhileIFStaticBbreakchargo

CsizeofcaseexternDswitchfloatinteger

7.按C++标识符的语法规定,合法的标识符是()

A_abcBnewCint1D"age"

8.下列选项中,()不是分隔符

A标识符B ;C:

D()

9.下列正确的八进制整型常量表示是( )

A 0a0B015C080D0x10

10.下列错误的十六进制整型常量表示是( )

A 0x11B0xafC0xg D0x1f

11.在下列选项中,全部都合法的实型数据的选项为( ),全部都不合法的实型数据选项是( )

A-1e3,15.,2e-4B12.34,-1e+5,0.0

C0.2e-2.5,e-5D5.0e-4,0.1,8.e+2

12.下列正确的字符常量为( )

A "a"  B '\0'  C aD'\101'

13.下列选项中,( )能交换变量a和b的值

At=b;b=a;a=t;Ba=a+b;b=a–b;a=a–b;

Ct=a;a=b;b=t;Da=b;b=a;

14.执行语句

  inti,*p=&i;

后,下面描述错误的是( )

A p的值为10    B p指向整型变量i

C *p表示变量i的值  D p的值是变量i的地址

15.执行语句

inta=5,b=10,c;

int*p1=&a,*p2=&b;

后,下面不正确的赋值语句是( )

A*p2=b;Bp1=a;

Cp2=p1;Dc=*p1*(*p2);

16.执行语句

inta=10,b;

int&pa=a,&pb=b;

后,下列正确的语句是( )

A&pb=a;Bpb=pa;C&pb=&pa;D*pb=*pa;

17.执行下面语句后,

inta=5,b=3,t;

int&ra=a;

int&rb=b;

t=ra;ra=rb;rb=t;

a和b的值分别为( )

A 3和3  B 3和5  C 5和3 D 5和5

18.在下列运算符中,( )优先级最高

A <=   B *=   C +    D *

19.在下列运算符中,( )优先级最低

A !

    B &&   C !

=   D *

20.设I=1,J=2,则表达式I+++J的值为( )

A 1    B 2    C 3    D 4

21.设I=1,J=2,则表达式++I+J的值为( )

A 1    B 2    C 3    D 4

22.下列表达式选项中,( )是正确

A ++(a++)Ba++bCa+++bDa++++b

23.已知i=0,j=1,k=2,则逻辑表达式

++i||--j&&++k

的值为( )

A 0    B 1   C 2     D 3

24.执行下列语句后,

intx,y;

x=y=1;++x||++y;

x的值是( ),y的值是( ) 

A 不确定  B 0   C 1    D 2

25.设X为整型变量,能正确表达数学关系1<X<5的C++逻辑表达式是( )

A 1<X<5   B X==2||X==3||X==4

C 1<X&&X<5   D !

(X<=1)&&!

(X>=5)

26.已知,则执行语句

x+=x-=x*x;

后,x的值为( )

A25B40C-40D20

27.设a=1,b=2,c=3,d=4,则条件表达式a

a:

c

c:

d的值为( )

A 1  B 2  C 3  D 4

28.逗号表达式

(x=4*5,x*5),x+25

的值为( )

A25B20C100D45

1.2 把下列数学表达式写成C++算术表达式

1、

2.x{x[x(ax+b)+c]+d}+e

3、ln(1+

)4、

5、ctg(

)6、lg(a2+ab+b2)

1.3 用关系表达式或逻辑表达式表示下列条件

1.i整除j      2.n是小于正整数k的偶数

3.1<=x<10   4.X,Y其中有一个小于Z

5.Y

[-100,-10],并且Y

[10,100]

6.坐标点(X,Y)落在以(10,20)为圆心,以35为半径的圆内

7.三条边A,B和C构成三角形

9.年份Year能被4整除,但不能被除数100整除或者能被400整除

1.4 阅读下列程序,写出执行结果

1.#include

voidmain()

{

inta=1,b=2,x,y;

cout<

cout<

x=!

a>b;y=x--&&b;

cout<

cout<

}

2.#include

voidmain()

{intx,y,z,f;

x=y=z=1;

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

cout<<"x="<

cout<<"y="<

cout<<"z="<

cout<<"f="<

}

1.5编程题

1.输入一个三位整数,将它反向输出.

2.输入平面上某点横坐标X和纵坐标Y,若该点在由图形1.11表示的正方形区域内,则输出1;否则,输出0.

3.输入三个整数,求出其中最小数(要求使用条件表达式).

 

  图1.11 正方形

习题2

2.1选择题

1.已知inti,x,y;在下列选项中错误的是( )

Aif(x&&y)i++;

Bif(x=y)i――;

Cif(xy)i――;

Dif(x+y)i++;

2.设有函数关系为y=

,下面选项中能正确表示上述关系为( )

Ay=1;By=-1

if(x>=0)if(x!

=0)

  if(x==0)y=0;if(x>0)y=1;

  elsey=-1;elsey=0;

Cif(x<=0)DY=-1

if(x<0)y=-1;if(x<=0)

  elsey=0;if(x<0)y=-1;

elsey=1;elsey=1;

3.I=2,执行下列语句后的值为( )

switch(i)

{case1:

i++;

case2:

i――;

case3:

++i;break;

case4:

――i;

default:

i++;

}

A1B2C3D4

4.已知inti=0,x=0;下面while语句执行时循环次数为( )

while(!

x&&i<3){x++;i++;}

A4B3C2D1

5.已知inti=3;下面do_while语句执行时循环次数为( )

do{i--;cout<

=1);

A 1    B 2   C 3   D 无限

6.下面for语句执行时,循环次数为( )

for(inti=0,j=5;i=j;)

{cout<

i++;j――;

}

A 0    B 5   C 10  D 无限

7.以下为死循环的程序段是( )

Afor(intx=0;x<3;){x++;};

Bintk=0;

do{++k;}while(k>=0);

Cinta=5;while(a){a――;};

Dinti=3;for(;i;i――);

2.2阅读下列程序,写出执行结果

1.#include

voidmain()

{inta,b,c,d,x;

a=c=0;b=1;d=20;

if(a)d=d–10;

elseif(!

b)

if(!

c)

x=15;

elsex=25;

cout<

}

2. #include

  voidmain()

  {inta=0,b=1;

  switch(a):

{case0:

switch(b)

 {case0:

cout<<"a="<

 case1:

cout<<"a="<

 }

  case1:

a++;b++;cout<<"a="<

}

  }

3.#include

  voidmain()

  {inti=1;

  while(i<=10)

  if(++i%3!

=1)

continue;

  elsecout<

  }

4.#include

  voidmain()

  {inti=0,j=5;

  do

{i++;j――;

  if(i>3)break;

}while(j>0);

  cout<<"i="<

  }

5.#include

  voidmain()

  {inti,j;

  for(i=1,j=5;i

{j――;}

   cout<

  }

6.#include

  voidmain()

  {inti,s=0;

  for(i=0;i<5;I++)

  switch(i)

   {case0:

s+=i;break;

  case1:

s+=i;break;

case2:

s+=i;break;

default:

s+=2;

}

  cout<<"s="<

  }

7.#include

  voidmain()

  {inti,j,x=0;

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

{x++;

 for(j=0;j<=3;j++)

 {if(j%2)continue;

 x++;

 }

 x++;

}

cout<<"x="<

 }

2.3编程题

1.输入某学生成绩,若成绩在通常情况下85分以上输出"verygood",若成绩在60分到85分之间输出"good",若成绩低于60分输出"nogood"。

2.输入三人数,按从小到大的大顺序输出。

3.输入三角形的三条边,判别它们能否形成三角形。

若能,则判断是等边,等腰,还是一般三角形。

4.输入百分制成绩,并把它转换成五级分制,转换公式为:

grade(级别)=

5.编程序模拟剪刀,石头和纸游戏。

游戏规则为:

剪刀剪纸,石头砸剪刀,纸包石头.玩游戏者从键盘上输入S(表示剪刀)或R(表示石头)或P(表示纸),要求两个游戏者交替输入,计算机给出输赢的信息。

6.输入一个整数,输出该整数的所有素数因子。

例如,输入120,输出为2,2,2,3,5。

7.使用迭代公式xn+1=(xn+a/xn)/2(n=0,1,2,…,x0=a/2),编程求某一正整数的平方根。

8.已知X=0°,10°,20°,…,180°,求sinx,cosx和tgx的值。

9.在100~200中找出同时满足3除余2,用5除余3和用7除余2的所有整数。

10.求100~999中的。

所谓水仙花数是指一个三位数,它的每位数字的立方之和等于该数。

例如,因为153=13+53+33,所以153为水仙花数。

11.求1000之内的所有完事数。

所谓完数是指一个数恰好等于它的所有因子之和。

例如,6=1+2+3,所以6为完数。

12.编一程序显示如下图案:

*

***

*****

*******

*********

13.已知XYZ+YZZ=532,其中X,Y和Z为数字,编一程序求出X,Y和Z。

 

习题3

3.1选择题

1、以下正确的函数原型为()

(a)f(intx;inty);(b)void(x,y);

(c)void(intx,y);(d)voidf(int,int);

2、有函数原型voidfun1(int),下面选项中,不正确的调用是()

(a)doublex=2.17;fun1(x);(b)inta=15;fun1(a*3.14);

(c)intb=100;fun1(&b);(d)fun1(256);

3、有函数原型voidfun2(int*),下面选项中,正确的调用是()

(a)doublex=2.17;fun2(&x);(b)inta=15;fun2(a*3.14);

(c)intb=100;fun2(&b);(d)fun2(256);

4、有函数原型voidfun2(int&),下面选项中,正确的调用是()

(a)intx=2.17;fun3(&x);(b)inta=15;fun3(a*3.14);

(c)intb=100;fun3(b);(d)fun3(256);

5、有声明

Intfun4(int);int(*pf)(int)=fun4;

下面选项正确的是()

(a)inta=15;intn=fun4(&a);(b)inta=15;cout<

(c)cout<<(*pf)(256);(d)cout<<*pf(256);

6、在VC中,若定义一个函数的返回类型为void,以下叙述正确的是()

(a)用语句调用函数(b)用表达式调用函数

(c)没有返回值(d)通过return语句可能返回指定值

7、函数参数的默认值不允许为()

(a)全局常量(b)全局变量

(c)局部变量(d)函数调用

8、使用重载函数编程序的目的是()

(a)使用相同的函数名调用功能相似的函数(b)共享程序代码

(c)提高程序的运行速度(d)节省存储空间

9、下列的描述中()是错误的。

(a)使用全局变量可以从被调用函数中获取多个操作结果

(b)局部变量可以初始化,若不初始化,则系统默认它的值为0

(c)当函数调用完后,静态局部变量的值不会消失

(d)全局变量若不初始化,则系统默认它的值是0

10、下列选项中,()具有文件作用域。

(a)语句标号(b)局部变量(c)全局变量(d)静态全局变量

3.2阅读下列程序,写出执行结果

1、#include

#include

Intf(int);

Voidmain()

{inti;

For(i=0;i<3;i++)

Cout<

}

Intf(inta)

{intb=0,c=1;

b++;c++;

return(a+pow(b,2)+c);

}

2、voidfunc(inta,intb,intc=3,intd=4);

#include

Voidmain()

{func(10,15,20,30);

func(10,11,12);

func(12,12);

}

Voidfunc(inta,intb,intd)

{cout<

3、#include

Voidfunc(int,int,int*)

{intx,y,z;

func(5,6,&x);

func(7,x,&y);

func(x,y,&z);

cout<

}

Voidfunc(inta,intb,int*c)

{b+=a;*c=b-a;}

4、#include

Voidfunc(int,int,int&)

Voidmain()

{intx,y,z;

func(1,2,x);

func(x+y,y,y);

func(z,x+y,z);

cout<

}

Voidfunc(inta,intb,int&c)

{b+=a;c=b-a;}

5、#include

Intf2(int,int);

Intf1(inta,intb)

{intc;

a+=a;b+=b;

c=f2(a+b,++b);

returnc;

}

Intf2(inta,intb)

{intc;

c=b%2;

returna+c;

}

Voidmain()

{inta=3,b=4;

Cout<

}

6、#include

Intage(intn)

{intf;

If(n==1)f=10;

Elsef=age(n-1)+2;

Returnf;

}

Voidmain()

{cout<<“age:

”<

7、#include

intf1(inta,intb){returna+b;}

intf2(inta,intb){returna-b;}

intf3(int(*t)(int,int),inta,intb){return(*t)(a,b);}

voidmain()

{int(*p)(int,int);

p=f1;

cout<

p=f2;

cout<

}

8、intf1(inta,intb){returna+b;}

Intsub(int,int)

Inta=1;

Voidmain()

{intm=1,n=2,f;

f=sub(m,n);

cout<

f=sub(m,n);

cout<

}

Intsub(intc,intd)

{staticintm=2,n=5;

Cout<

a=++a;c=m++;d=n++;

returnc+d;

}

3.3编程题

1、已知y=sh(1+shx)/sh2x+sh3x,其中sh为双曲正弦函数,即sh(t)=et–e–t/2。

编一程序输入x的值,求y的值。

2、输入m、n和p的值,求s=1+2+…+m+13+23+…+n3/15+25+…+p5的值。

注意判断运算中的溢出。

3、输入a,b和c的值,编写一个程序求这三个数的最大值和最小值。

要求把求最大值和最小值编写成函数,并使用指针或引用作为形式参数把结果返回函数main。

4、用线性同余法生成随机数序列的公式为:

rk=(multiplier*rk-1+increment)%modulus

序列中的每一个数rk可以由它的前一个数rk-1,计算出来。

例如,如果有:

rk=(25173*rk-1+13849)%65536

可以产生65536个各不相同的整型随机数。

设计一个函数作随机数生成器,生成一位或两位的随机数。

利用这个随机数生成器,编写一个小学生四则运算的练习程序:

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

当前位置:首页 > 党团工作 > 党团建设

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

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