资源描述
大学计算机基础部份(共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
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)按位逻辑异或
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´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. 栈是线性数据组织,只是对数据进栈和出栈做了些限制,其特点是 。
12. 每一种不同类型的CPU都有自己独特的一组指令,一个CPU所能执行的
全部指令称为______________。
13. “啊”字的区位码是1601,则汉字国标码是 H。
14. 为了便于对内存储器中存放的信息进行管理,整个内存被划分成许多存储
单元,每个存储单元都有一个编号,此编号称为 。
15. 有八位二进制编码为11111111,如将其作为带符号整数的补码,它所表示
的整数值为 。
C++程序设计部分(共85分)
二. 选择题(每题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’ && 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, 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(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. 在类定义的外部,可以被访问的成员有
A. 所有类成员 B. private或protected的类成员
C. public的类成员 D. public或private的类成员
9.下面对构造函数的不正确描述是
A. 系统可以提供默认的构造函数
B. 构造函数可以有参数,所以可以有返回值
C. 构造函数可以重载
D. 创建对象时,一定会调用某个构造函数(包括默认构造函数)
10.以下对于运算符的重载的申明,正确的是
A. CPoint operator / (CPoint & 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,那么最简单的做法是:(每行一个语句,只能写两行)
switch(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 << ',' << p.y;};
运行同样的语句将创建 个对象。
4. 假设有语句:CPoint p(3, 4); CPoint p2 = p;
则创建p2时调用的构造函数是 构造函数。
5. 程序中要对某个函数的调用次数进行统计,方法(1)至(5)中,可行的
是 ;如果要统计某个类,创建对象的次数,在以下所有方法中,
最佳的方法是: 。
(1)在该函数中创建普通变量 (2)在该函数中创建静态变量
(3)在该函数中创建const常量 (4)创建全局变量
(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 <iostream>
using namespace std;
int main( )
{
int n=1;
cout<<"取1元,2元,5元纸币10张,支付18元的付法:"<<endl;
for (int x=0;x<=10;x++)
for (int y=0;y<=9;y++)
if(x+2*y+5*(10-x-y)==18)
cout<<n++<<":1元币"<<x<<"张,2元币"
<<y<<"张,5元币"<<(10-x-y)<<"张\n";
return 0;
}
程序的输出结果为:
2. 假设程序运行时输入2个整数:1 0 (此题每空1分)
#include <iostream>
using namespace std;
const int PI=3.14 ;
double CaculateArea( double radius )
{
return PI * radius * radius;
}
int 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;
}
程序的输出结果为:
3. 写出下列程序的输出结果。 (此题最后一空2分,其它空1分)
#include <iostream>
using namespace std;
int total = 0;
int func( int x )
{
int i;
static int n = 0;
n++;
total++;
cout << x << ',' << 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;
}
(此空2分)
4. 写出下列程序的输出结果。(此题每空1分)
#include <iostream>
using namespace std;
int f( int x ){ cout << "f1 ="; return x; }
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 );
cout << y << endl;
y = f( a, c );
cout << y << endl;
f( y );
cout << y << endl;
return 0;
}
5. 写出下列程序的输出结果。(此题每空0.5分)
#include <iostream>
using namespace std;
char gid = 'A';
class Number
{
private:
int i;
char id;
public:
Number( int x = 0 )
{
i = x;
id = gid++;
cout << "Constructor Number:" << id << i << endl;
}
Number( const Number &x )
{
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()
{
Number x(1), y;
y = x + 2;
return 0;
}
(每空0.5分)
五.完善程序题(每空1.5分,共20空,计30分)
1、要求程序运行后的输出结果为:
*
***
*****
*******
*****
***
*
请在程序中的横线处填入适当的语句,将程序补充完整
#include <iostream>
using namespace std;
void main( )
{ ;
for(i=1;i<=4;i++)
{
for(j=1;j<=4-i; )
cout<<" ";
for(k=1; ;k++)
cout<<"*";
cout<<endl;
}
for(i=3;i>0; )
{
for(j=1; ;j++)
cout<<" ";
for(k=1;k<=2*i-1;k++)
cout <<"*";
cout<<endl;
}
}
2、东南大学举行歌曲比赛,由9位评委给参赛选手打分,满分为10分。评分规则是:去掉1个最高分和1个最低分,余下的7个分数的平均值为选手最后得分。试编程计算并输出选手去掉最高分和最低分后的总分及最后得分。
#include <iostream>
using namespace std;
int main( )
{
float s, maxs, mins, sum=0;
maxs=0; mins=10; //用于存贮最高分和最低分,为变量赋初值
cout<<"Input 9 scores:"<<endl;
for(int i=1;i<=9;i++)
{
cin>>s;
;
if(s>maxs) ;
if(s<mins) mins=s;
}
sum= ;
cout<<"总分:"<<sum<<endl;
cout<<"最后得分:"<< <<endl;
return 0;
}
3、下列程序的功能是用函数的递归调用求1!+2!+3!+4!+5!请将程序补充完整。
#include <iostream>
using namespace std;
long jiecheng(int n)
{ if (n==1)
return 1;
else
;
}
int main( )
{ int s;
;
for (int i=1;i<=5;i++)
;
cout<<"1!+2!+3!+4!+5!="<<s<<endl;
return 0;
}
4.下面程序中定义了一个复数类,请将程序补充完整。
#include <iostream>
using namespace std;
class Complex{
private:
;
public:
Complex(double r=0.0, double i=0.0) //定义构造函数
{ Real=r; Image=i; }
Complex( ) //定义拷贝构造函数
{
Real=com.Real ;
Image=com.Image ;
}
void Print( )
{ cout<<"Real="<<Real<<'\t'<<"Image="<<Image<<'\n';
}
Complex operator+=(Complex c)
{ Complex temp( );
Real=temp.Real;
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)。下面程序求100到999之间的所有水仙花数,试补充完整。
#include <iostream>
using namespace std;
void main( )
{
int num, sum, temp;
int i, j;
int bit, bit_n_power;
for (num = 100; num <= 999; num++)
{
;
temp=num;
for (i=1; i<=3; i++)
{
bit = temp%10 ;
bit_n_power = 1;
for (j=1; j<=3; j++)
; //计算一位数字的3次幂
sum = sum + bit_n_power ;
;
}
if ( )
{
cout << "The number " << num << "是水仙花数!"<<endl;
}
}
}
共 11 页 第 11 页
展开阅读全文