1、大学计算机基础部份(共15 分) 一、 选择与填充题:(每题 1分,共15 题,共15 分) 1.计算机语言的发展经历几个阶段?下列描述正确的是 。 A)机器语言、汇编语言和高级语言三个阶段 B)机器语言、算法语言、对象语言和高级语言等4个阶段 C)高级语言和机器语言两个阶段 D)机器语言和汇编语言两个阶段 2.假设在线性数据组织中,数据连续存储,每个数据占4个存储单元,第3个数据的存储地址为S,则第6个数据的存储地址为 。 A)S+(6-1)*4 B)S+6*4 C)(S-2*4)+(6-1)*4 D)6*4
2、 3.完整的计算机系统应包括_________ 。 A.)CPU和外部设备 B)硬件系统和软件系统 C)主机和外部设备 D)系统软件和应用软件 4.在表示 硬盘容量时,一般用GB作为单位,1GB准确的含义是 。 A)1000MB B)1024百万 C)1024MB D)1024KB 5.已知字符8的ASCII码是38H,现通过另一个数0FH通过运算得到字符8所对应的数值8,则该运算应该是 。 A)按位逻辑非 B)按位逻辑与 C)按位逻辑或 D)按位逻辑
3、异或 6.假设:某学生基本信息为:女、团员、优秀学生干部、平均绩点等于4分,则下列表达式的结果分别是 。 ① .NOT. 团员 .AND. 优秀学生干部.OR. 团员 .AND. .NOT.优秀学生干部 ② 性别=“女”.AND. 平均绩点<4.AND. 团员.OR. 优秀学生干部 ③ (平均绩点>4 .OR. 性别=“女”) .AND. .NOT. 团员 A) .T. .F. .F. B) .F. .T. .F. C) .F. .F. .T. D) .T. .F. .T. 7.十进制算式(3´210+7´28+5
4、´24+1)/16的结果是 。 A)(310)10 B)(466)8 C)(135)16 D)(100110111)2 8. 采用某种进位制时,如果4×5=17,那么,6×3 = 。 A)15 B)21 C)20 D)19 9. 将计算机软件分为系统软件和应用软件,应用软件是指面向特定问题处理的 软件,是解决特殊性问题,而系统软件是面向计算机硬件系统,是解决 问题。 10. 数据的逻辑组织方法有简单数据组织、线性数据组织、 和网状数据组织。 11. 栈是线性
5、数据组织,只是对数据进栈和出栈做了些限制,其特点是 。 12. 每一种不同类型的CPU都有自己独特的一组指令,一个CPU所能执行的 全部指令称为______________。 13. “啊”字的区位码是1601,则汉字国标码是 H。 14. 为了便于对内存储器中存放的信息进行管理,整个内存被划分成许多存储 单元,每个存储单元都有一个编号,此编号称为 。 15. 有八位二进制编码为11111111,如将其作为带符号整数的补码,它所表示 的整数值为 。 C++程序设计部分(共85分) 二. 选择题
6、每题1.5分,共15分) 1.以下标识符,不合法的是: A. If B. Photoshop C. 3DMax D. seu 2. 对于for,do...while和while三个语句,以下描述错误的是: A. 这三个都是循环语句 B. 当条件不满足时,这三个语句的循环次数都可能是0次 C. 这三个语句中,都可以使用break和continue D. 这三个语句的循环体都可以是空的 3.判断字符c是是否是小写字母,并将其转为大写字母的语句是: A. if (c >= ‘a
7、’ && c <= ‘z’) c += ‘a’ - ‘A’; B. if (‘a’ <= c <= ‘z’) c = c - (‘a’ - ‘A’); C. c = (c >=‘a’ && c <=‘z’) ? (c - (‘a’ - ‘A’)) : c; D. c = (‘a’ <= c <= ‘z’) ? (c + (‘a’ - ‘A’)) : c; 4.现有三个函数: (1) double Add(double a) (2) double Add(double a, double b) (3) int Add(double a
8、 double b, double c = 0) 那么以下对Add函数调用过程中,编译出现错误的是: A. Add(3); B. Add(3.3, 3.4); C. Add(2.3, 3.1, 3.2); D. Add(3.4); 5.以下语句中,可以将数组A中的全部元素全部赋值为1的语句 是: A. int A[10] = {1}; B. int A[10]; for(int i = 0; i < 10; i++) A[i] = 1; C. int A[10]; for(
9、int i = 0; i < 10; i++) A[1] = i; D. int A[10] = 1; 6.语句:if ((A & 0x0001) != 0)的作用是: A. 判断A的最低位是否为1 B. 判断A是否是正数还是负数 C. 判断A和0x0001是否相等 D. 判断A是否是2的倍数 7. 关于类和对象不正确的说法是: A. 类是一种类型,它封装了数据和操作 B. 对象是类的实例 C. 一个对象必属于某个类 D. 一个类的对象只有一个 8. 在类定义的外部,可以被访问的
10、成员有 A. 所有类成员 B. private或protected的类成员 C. public的类成员 D. public或private的类成员 9.下面对构造函数的不正确描述是 A. 系统可以提供默认的构造函数 B. 构造函数可以有参数,所以可以有返回值 C. 构造函数可以重载 D. 创建对象时,一定会调用某个构造函数(包括默认构造函数) 10.以下对于运算符的重载的申明,正确的是 A. CPoint operator / (CPoint &
11、p, double d); B. void operator + (CPoint p1, CPoint p2, CPoint p3); C. bool == (CPoint & p1, CPoint & p2); D. void * (CPoint p1, CPoint p2); 三. 填空题(每空1.5分,共15分) 1. 常量'\x41'所表示的字符的ASCII码是 (填写十进制数字)。 2. 在switch语句中,当整数变量val遇到常量1或2时,都只需要调用函数F,那么最简单的做法是:(每行一个语句,只能写两行) swi
12、tch(val) { F( ); break; …… } 3. 有函数定义:void PrintPoint(CPoint p){ cout << p.x << ',' << p.y;}; 运行语句:CPoint p; p.x = p.y = 4; PrintPoint(p);会创建 个对象。 函数定义修改为:void PrintPoint(CPoint & p){ cout << p.x << ','
13、<< p.y;}; 运行同样的语句将创建 个对象。 4. 假设有语句:CPoint p(3, 4); CPoint p2 = p; 则创建p2时调用的构造函数是 构造函数。 5. 程序中要对某个函数的调用次数进行统计,方法(1)至(5)中,可行的 是 ;如果要统计某个类,创建对象的次数,在以下所有方法中, 最佳的方法是: 。 (1)在该函数中创建普通变量 (2)在该函数中创建静态变量 (3)在该函数中创建const常量 (4)创建全局变量 (
14、5)创建全局的const常量 (6)创建这个类的普通成员变量
(7)创建这个类的静态成员变量
6. 求n!的函数定义:int F(int n) { if (n <= 1) return 1; return F(n - 1) * n; };该
函数所采用的程序结构是: ;调用F(20),函数返回:-2102132736,
这个结果显然是错误的,原因是 。
四. 阅读填空题(共25分)
1. 写出下列程序的输出结果。(此题每空1分)
#include
15、in( )
{
int n=1;
cout<<"取1元,2元,5元纸币10张,支付18元的付法:"< 16、
2. 假设程序运行时输入2个整数:1 0 (此题每空1分)
#include 17、 main()
{
int d;
double area;
while( 1 )
{
cout << "输入直径:" << endl;
cin >> d;
if( d > 0 )
{
area = CaculateArea(d/2);
cout << "直径为" << d << "的圆面积为:" << area << endl;
}
else
break;
}
return 0;
}
程序的输出结果为:
18、
3. 写出下列程序的输出结果。 (此题最后一空2分,其它空1分)
#include 19、',' << n << endl;
if( x <= 0 ) return 1;
i = x + func( x - 1 );
cout << x << ',' << n << endl;
return i;
}
int main()
{
int i;
i = func( 2 );
cout << "result = "<< i << ',' << total << endl;
return 0;
}
20、
(此空2分)
4. 写出下列程序的输出结果。(此题每空1分)
#include 21、}
int f( char a, char b = 0 )
{ cout << "f2 ="; return ( a > b ? 1 : -1 );
}
double f( double &x )
{ cout << "f3 ="; x += sizeof(x); return 0;
}
int main( )
{
short a = 0;
char c = 'A';
double y;
y = f( 0 );
cout << y << endl;
y = f( a );
cout << y << endl;
y = f( c );
22、cout << y << endl;
y = f( a, c );
cout << y << endl;
f( y );
cout << y << endl;
return 0;
}
23、
5. 写出下列程序的输出结果。(此题每空0.5分)
#include 24、
{
i = x.i;
id = gid++;
cout << "Copy Number:" << id << i << endl;
}
~Number( ) { cout << "Destructor Number:" << id << i << endl; }
Number operator+( const Number &x );
};
Number Number::operator+( const Number &x )
{
Number result( i + x.i );
return result;
}
int main()
{ 25、
Number x(1), y;
y = x + 2;
return 0;
}
(每空0.5分)
26、
五.完善程序题(每空1.5分,共20空,计30分)
1、要求程序运行后的输出结果为:
*
***
*****
*******
*****
***
*
请在程序中的横线处填入适当的语句 27、将程序补充完整
#include 28、 {
for(j=1; ;j++)
cout<<" ";
for(k=1;k<=2*i-1;k++)
cout <<"*";
cout< 29、{
float s, maxs, mins, sum=0;
maxs=0; mins=10; //用于存贮最高分和最低分,为变量赋初值
cout<<"Input 9 scores:"< 30、 < 31、)
;
cout<<"1!+2!+3!+4!+5!="< 32、 Complex( ) //定义拷贝构造函数
{
Real=com.Real ;
Image=com.Image ;
}
void Print( )
{ cout<<"Real="< 33、
Image=temp.Image;
;
}
};
int main(void){
Complex c1(1.0, 1.0) , c2(2.0, 2.0) , c3(3.0, 3.0);
c3+=c1+=c2;
c3.Print();
return 0;
}
5、水仙花数(Armstrong number)是一个3位数字的数,它等于每个数字的3次幂的和。例如153是水仙花数(具有3位数字且等于1*1*1+5*5*5+3*3*3)。下面程序求1 34、00到999之间的所有水仙花数,试补充完整。
#include 35、 ;
bit_n_power = 1;
for (j=1; j<=3; j++)
; //计算一位数字的3次幂
sum = sum + bit_n_power ;
;
}
if ( )
{
cout << "The number " << num << "是水仙花数!"<
using namespace std;
class Complex{
private:
;
public:
Complex(double r=0.0, double i=0.0) //定义构造函数
{ Real=r; Image=i; }






