C程序设计模拟试题

  • 格式:docx
  • 大小:38.95 KB
  • 文档页数:18

C++ 程序设计模拟试题

、选择和填空:

1. C++程序的基本单位是()

A. 程序行 B. 语句 C. 函数 D. 字符

2. 假设所有变量均为整型.则表达式(a=4,b=6,a++,a+b的值是

3. 下列程序段运行后x的值是: ____________

a=b=c=0;

x=35;

if (!a) x--;

else if (b);

if ( c) x=3;

else x=5;

4. 若有定义 : float w;

int a, b;

则合法的 switch 语句是

A. switch(w)

{ case 1.0: cout<<"*\\n"; case 2.0: cout<<"**\\n";

}

B. switch(a);

{ case 1 cout<<"*\\n"; case 2 cout<<"**\\n";

}

C. switch(b)

{ case 1: cout<<"*\\n";

default: cout<<"\\n";

case 1: cout<<"**\\n";

}

D. switch(a+b)

{ case 1: cout<<"*\\n";

case 2: cout<<"**\\n"; default: cout<<"\\n";

}

5. 有以下程序段

int k=0;

while(k=1) k++;

while 循环执行的次数是

A. 无限次 B.有语法错,不能执行 C. 一次也不执行

6. ________________________________ 下面程序的输出结果是:

void main() { int y=9;

for( ; y>0; y--)

{ if(y%3==0)

{ cout<<- -y;continue;}

} D. 执行 1 次 }

7. 关于内嵌函数,以下说法正确的是 :

A. 内嵌函数中可以存在循环结构和 SWITCH结构.

B. 内嵌函数可以在调用之后定义,只要在调用前声明即可 .

C. 使用内嵌函数可节省函数调用与返回时的开销,能够提高程序的运行速度

D. 内嵌函数可长可短.

8. 下列程序的输出结果是: ____________

int rfact(int n) { int c;

if (n==1) c=1;

else c=n*rfact(n-1);

return ( c );}

void main( ) {cout<

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

int x=3;

void incre( )

{ static int x=1;

x++; cout<

}

void main( )

{ int i;

for (i=1;i<=x;i++)

incre( );

}

10. 请选出以下程序的输出结果 : __________

#define MIN(x,y) (x)<(y)? (x):(y)

void main()

{ int i,j,k;

i=10; j=15;}

k=10*MIN(i,j);

cout<

11若有下面的说明和定义,贝U sizeof (ua和sizeof(aa)的值分别是 _____________

struct aa

{ short r1; double r2; float r3; union uu { char u1[5];

long u2[2];

} ua;

}mya;

12. 合法的数组定义是

A. int a[ ]=”string”

C. char a=”string”

13. 若有以下说明:

int w[3][4]={{0,1},{2,4},{5,8}};

int (*p)[4]=w;

贝数值为 4 的表达式是

A. *w[1]+1 B. p++, *(p+1)

14. 设有说明语句 int (*ptr)[m]; 其中的标识符 ptr 是

A. m 个指向整型变量的指针

B. 指向m个整型变量的函数指针

C. 一个指向具有m个整型元素的一维数组的指针

D. 具有m个指针元素的一维指针数组,每个元素都只能指向整型变量

15. 若有以下说明:

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

贝数值为 6 的表达式是

A . *p+6 B. *(p+6) C. *p+=5 D. P+5

16. 有如下程序

# include void main()

{char ch[2][5]={ “6937”, “8254”}, *p[2]; int i, j, s=0;

for (i=0; i<2; i++) p[i]=ch[i];

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

for (j=0; p[i][j]> '\0'; j+=2) s=10*s+p[i][j]- ‘0'; cout<

D. char a[ ]={0,1,2,3,,4,5}

C.w[2][2] D. P[1][1] 该程序的输出结果是

17. 下面程序的输出是 # include sub1(char a, char b) {char c; c=a;

a=b; b=c;} sub2(char *a, char b) {char c; c=*a; *a=b; b=c;} sub3(char *a, char *b)

{char c; c=*a; *a=*b; *b=c;} void main() { char a,b;

a='A '; b='B'; sub3(&a,&b); cout<

cout<

}

A. BABBAB B. ABBBBA

C. BABABA D. BAABBA

18. struct sk {int a; float b;} data, *p;

若有p=&data,则对data中的a成员的正确引用是

A. (*P).data B.(*p).a C. p->data.a D. p.data

19. 以下程序的输出结果是 ___________

# include

fun(int n,int *s) { int f1,f2;

if(n==1||n==2) *s=1;

else

{ fun(n-1,&f1); fun(n-2,&f2); *s=f1+f2; } } void main() { int x; fun(6,&x);

cout<

20. 以下程序的输出结果是 ___________

# include

main()

{ char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k])

{ case '1':i=0;

case '2':i=1;

case '3':i=2;

case '4':i=3;

}

v[i]++;

} for(k=0;k<4;k++) cout<

}

21. ________________________________________ 在C++类中,一个保护成员是通过关键字 ____________________________________ □以说明的

A.virtual B. protected C. public D.protect

22. 每个类( )构造函数。

A.只能有一个B.只可有公有的C.可以有多个D.只可有缺省的

23. 假定一个类的构造函数为 A(int aa,int bb){a=aa--;b=a*bb--;}, 则执行

A x(8,9);语句后,x.a和x.b的值分别为 ________________ 24. 类的释放函数是在什么时间被自动调用的 ?

A.类创建时 B.创建对象时 C.删除对象时D.不自动调用

25. 若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定

是基类中的 ( )

A.私有成员 B.公有成员 C.保护成员 D.保护成员或私有成员

26. 在C++中,对于基类的public成员,当以protected方式派生一个新类时,该

成员将成为派生类的 _____ 成员。

A.private B.protected C.public D.非法

27. C++对C语言作了很多改进,即从面向过程变成为面向对象的主要原因是 ()

A. 增加了一些新的运算符

B. 允许函数重载,并允许设置缺省参数

C. 规定函数说明符必须用原型

D. 引进了类和对象的概念

28. 继承机制的作用是

A.信息隐藏 B.数据圭寸装 C.定义新类 D.数据抽象

29. 下列哪一个不是类的特性()

A.多态性 B.继承性 C.封装性 D.虚拟性

30若类丫是类X的友元类,则下列哪种访问关系是正确的

A. 类 Y 的成员不能访问类 X 的私有成员

B. 类丫的成员可以访问类X的私有成员

C. 类X的成员可以访问类丫的私有成员

D. 只有类X的公共成员才能访问类丫的私有成员

31、在每个C++S序中都必须包含有这样一个函数,该函数是整个应用程序的入

口,该函数的函数名为 ____________ 。

32、设x和y均为bool量,则x&&y为假的条件是 ______________ 。

A.它们均为真 B.其中一个为真

C.它们均为假 D.其中一个为假

33、 下面的哪个保留字不能作为函数的返回类型? ____________ 。