C++程序设计 试题及答案(二)
时间:2011-07-17点击:次
C++程序设计 试题及答案(二)
学号 学习中心名称__ _____ 专业 层次 姓名____ ______
题号 | 一 | 二 | 三 | 四 | 五 | 总分 |
得分 |
|
|
|
|
|
|
注意:所有答案都要写在答题卡上
一、填空题(20分,每空1分)
1.当使用关键字__(1)_ 作为函数返回类型时,该函数不返回任何值。
2.在类中必须声明成员函数的__(2)__,成员函数的_(3)_部分可以写在类外。
3.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是_(4)_类型或__(5)__类型。
4.当一个变量被声明为另一个变量的引用时,此变量就成为被引用变量的__(6)__。此时,对其中一个变量值的修改,__(7)_(会/不会)影响到另一个变量的值。
5.友员不是类的成员,但必须在___(8)__予以声明,它具有存取类的_(9)__成员的特权。
6.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是__(10)__类型或___(11)_类型。
7.友员不是类的成员,但必须在___(12)__予以声明,它具有存取类的_(13)__成员的特权。
8.如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是__(14)__类型或___(15)_类型。
9.下面程序将字符数组a复制到字符数组b中。
main()
{
char a[]="I am a boy.",b[20];
int i;
for(i=__(16)_;a[i]!='\0';i++)
{
___(17)___;
}
____(18)___;
}
10.下面程序的功能是计算1-3+5-7+…-99+101的值存在s中,请填空。
#include <stdio.h>
main()
{
int i,t=1,s=0;
for(i=1;i<=101;__(19)__)
{
s=s+i*t;
t=_(20)__;
}
}
二、判断以下说法的正确性,正确的划√,错误的划×(10分,每个题目2分)
1.如果派生类的成员函数的原型与基类中被定义为虚函数的成员函数原型相同,那么,这个函数自动继承基类中虚函数的特性。
2.在C++中,关键字class与struct具有完全相同的作用。
3.若有定义:double x[3][5];则x数组行下标的上限是3,下限是 1。
4.说明函数原型时不需要指明每个参数的类型,只需要说明每个参数的名字就可以了。
5.如果在一个程序块中有两个变量具有相同的名字,并且都有效,只是它们的作用域不同,则优先访问作用域较大的那个变量。
三、单项选择题(30分,每题2分)
1.程序段
int a,b;
a=5;
b=a++;
cout << b;
的输出应为:
A) 4 B) 5 C) 6 D) 7
2.程序段
int i,a;
for(i=0;i<=10;i++)
a=i;
cout << i;
的输出应为:
A) 0 B) 9 C) 10 D) 11
3.下列有关函数重载的叙述中,错误的是______。
A) 函数重载就是用相同的函数名定义多个函数
B) 重载函数的参数列表必须不同
C) 重载函数的返回值类型必须不同
D) 重载函数的参数可以带有默认值
4. int *p1,*p2,a[10];
p1=a;
p2=&a[5];
则p2-p1的值为:
A) 无法确定 B) 10 C) 5 D) 12
5.变量的指针,其含义是指该变量的:
A) 值 B) 地址 C) 名 D) 一个标志
6. 派生类的成员函数不能访问基类的______。
A) 公有成员和保护成员 B) 公有成员
C) 私有成员 D) 保护成员
7.数字字符0的ASCII值为48,若有以下程序
void main()
{
char a='1', b='2';
cout << b++ << ”,”;
cout << b-a << endl;
}
程序运行后的输出结果是:
A) 3,2 B)50,2 C)2,2 D)2,50
8.有以下程序
void main()
{
int a[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)
p[i]=i;
for(i=0;i<3;i++)
cout << a[1][i];
}
程序运行后的输出结果是:
A)012 B)123 C)234 D)345
9.以下叙述中错误的是:
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)程序执行中,数组元素的下标越界时,系统给出“下标越界”的出错信息
D)可以通过赋初值的方式确定数组元素的个数
10.有以下程序
void main()
{
int a[]={1,2,3,4,5,6,7,8,9,0},*p;
for(p=a;p<a+10;p++)
cout << *p << “,”;
}
程序运行后的输出结果是:
A)1,2,3,4,5,6,7,8,9,0, B)2,3,4,5,6,7,8,9,10,1,
C)0,1,2,3,4,5,6,7,8,9, D)1,1,1,1,1,1,1,1,1,1,
11.有以下程序
void main()
{
int c=35;
int b=c&c;
cout << b;
}
程序运行后的输出结果是:
A)0 B)70 C)35 D)1
12.执行下列程序段后,正确的结果是:
int i=0, s=1;
while(i<3)
{
s+=i;
i++;
}
cout << s;
A) 5 B) 6 C) 4 D) 3
13.执行下列程序段后,正确的结果是:
char a[7]=”abcdef”;
char b[4]=”ABC”;
strcpy(a,b);
cout << a[5];
A) e B) f C) 0 D) 无输出
14.下列带缺省值参数的函数说明中,正确的说明是
A) int Fun(int x,int y=2,int z=3);
B) int Fun(int x=1,int y,int z=3);
C) int Fun(int x,int y=2,int z);
D) int Fun(int x=1,int y,int z);
15.拷贝构造函数的作用是:
A) 进行数据类型的转换
B) 用对象调用成员函数
C) 用对象初始化对象
D) 用一般类型的数据初始化对象
四、写出程序的运行结果(20分,每题10分)
1.函数sub的功能是什么?写出运行结果。
1.函数sub的功能是什么?写出运行结果。
#include <iostream.h>
long sub(int num)
{
int i;
long subsum=1;
for(i=1;i<=num;i++)
subsum *= i;
return( subsum );
}
void main()
{
int i; long sum=0;
for(i=1;i<=5;i++)
{
sum += sub(i);
cout << i << "," << sum << endl;
}
}
2.写出程序运行结果
#include <iostream.h>
class Base
{
public:
void WhoAmI()
{
cout << "Class Bass" << endl;
}
virtual void Who()
{
cout << "Class Bass" << endl;
}
};
class Derived:public Base
{
public:
void WhoAmI()
{
cout << "Class Derived" << endl;
}
void Who()
{
cout << "Class Derived" << endl;
}
};
void main()
{
Base *p;
Base b;
Derived d;
p = &b;
p->WhoAmI();
p->Who();
p = &d;
p->WhoAmI();
p->Who();
}
五、编程(根据要求填上程序缺少的部分)(20分,每题10分)
1.函数Convert()将一个数字字符串转换为对应的整数,请填空,实现函数的功能。
#include <iostream.h>
int Convert(char *str);
void main()
{
char s[10] = "12345";
int n = Convert(s);
cout << n << endl;
}
int Convert(char *str)
{
int num=0,digit;
for(int i=0; (1) ; i++)
{
digit = (2) ;
num = num*10 + digit;
}
return num;
}
2.函数Convert()将一个数字字符串转换为对应的整数,请填空,实现函数的功能。
#include <iostream.h>
int Convert(char *str);
void main()
{
char s[10] = "12345";
int n = Convert(s);
cout << n << endl;
}
int Convert(char *str)
{
int num=0,digit;
for(int i=0; (3) ; i++)
{
digit = (4) ;
num = num*10 + digit;
}
return num;
}
C++程序设计 试题及答案(二)
一、填空题
1.void
2. 函数头, 函数体
3. 引用, 指针
4. 别名, 会
5. 类中, 私有
6. 引用, 指针
7. 类中, 私有
8. 引用, 指针
9. a[i]=b[i] a[i]='\0'
10. i=i+2
二、判断以下说法的正确性
1.√
2. ×
3. ×
4. ×
5. ×
三、单项选择题
1.C
2.B
3.A
4.D
5.B
6. D
7. B
8. A
9. D
10. B
11. D
12. B
13. A
14. C
15.D
四、写出程序的运行结果
1. 从1连乘到num
5,153
2.Class Bass
Class Bass
Class Derived
Class Derived
五、编程(根据要求填上程序缺少的部分)
1.(1) i < strlen(str)
(2) str[i]
2.(1) i<10
(2) s[i]
联系客服