电类程序设计C++上A.docx

上传人:b****7 文档编号:26132010 上传时间:2023-06-17 格式:DOCX 页数:18 大小:29.01KB
下载 相关 举报
电类程序设计C++上A.docx_第1页
第1页 / 共18页
电类程序设计C++上A.docx_第2页
第2页 / 共18页
电类程序设计C++上A.docx_第3页
第3页 / 共18页
电类程序设计C++上A.docx_第4页
第4页 / 共18页
电类程序设计C++上A.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

电类程序设计C++上A.docx

《电类程序设计C++上A.docx》由会员分享,可在线阅读,更多相关《电类程序设计C++上A.docx(18页珍藏版)》请在冰豆网上搜索。

电类程序设计C++上A.docx

电类程序设计C++上A

东南大学考试卷(A卷)

课程名称

程序设计与算法语言(上)

考试学期

09-10-2

得分

适用专业

09级电类专业

考试形式

闭卷

考试时间长度

120分钟

大学计算机基础部份(共15分)

一、选择与填充题:

(每题1分,共15题,共15分)

1.计算机语言的发展经历几个阶段?

下列描述正确的是。

A)机器语言、汇编语言和高级语言三个阶段

B)机器语言、算法语言、对象语言和高级语言等4个阶段

C)高级语言和机器语言两个阶段

D)机器语言和汇编语言两个阶段

2.假设在线性数据组织中,数据连续存储,每个数据占4个存储单元,第3个数据的存储地址为S,则第6个数据的存储地址为。

A)S+(6-1)*4B)S+6*4

C)(S-2*4)+(6-1)*4D)6*4

3.完整的计算机系统应包括_________  。

 A.)CPU和外部设备    B)硬件系统和软件系统

C)主机和外部设备    D)系统软件和应用软件

4.在表示硬盘容量时,一般用GB作为单位,1GB准确的含义是。

A)1000MBB)1024百万

C)1024MBD)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.十进制算式(3210+728+524+1)/16的结果是。

A)(310)10B)(466)8

C)(135)16D)(100110111)2

自觉遵守考场纪律如考试作弊此答卷无效

8.采用某种进位制时,如果4×5=17,那么,6×3=。

A)15B)21C)20D)19

9.将计算机软件分为系统软件和应用软件,应用软件是指面向特定问题处理的

软件,是解决特殊性问题,而系统软件是面向计算机硬件系统,是解决问题。

10.数据的逻辑组织方法有简单数据组织、线性数据组织、和网状数据组织。

11.栈是线性数据组织,只是对数据进栈和出栈做了些限制,其特点是。

12.每一种不同类型的CPU都有自己独特的一组指令,一个CPU所能执行的

全部指令称为______________。

13.“啊”字的区位码是1601H,则汉字国标码是H。

14.为了便于对内存储器中存放的信息进行管理,整个内存被划分成许多存储

单元,每个存储单元都有一个编号,此编号称为。

15.有八位二进制编码为11111111,如将其作为带符号整数的补码,它所表示

的整数值为。

C++程序设计部分(共85分)

二.选择题(每题1.5分,共15分)

1.以下标识符,不合法的是:

A.IfB.PhotoshopC.3DMaxD.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)doubleAdd(doublea)

(2)doubleAdd(doublea,doubleb)

(3)intAdd(doublea,doubleb,doublec=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.intA[10]={1};

B.intA[10];for(inti=0;i<10;i++)A[i]=1;

C.intA[10];for(inti=0;i<10;i++)A[1]=i;

D.intA[10]=1;

6.语句:

if((A&0x0001)!

=0)的作用是:

A.判断A的最低位是否为1B.判断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.CPointoperator/(CPoint&p,doubled);

B.voidoperator+(CPointp1,CPointp2,CPointp3);

C.bool==(CPoint&p1,CPoint&p2);

D.void*(CPointp1,CPointp2);

三.填空题(每空1.5分,共15分)

1.常量'\x41'所表示的字符的ASCII码是(填写十进制数字)。

2.在switch语句中,当整数变量val遇到常量1或2时,都只需要调用函数F,那么最简单的做法是:

(每行一个语句,只能写两行)

switch(val)

{

F();break;

……

}

3.有函数定义:

voidPrintPoint(CPointp){cout<

运行语句:

CPointp;p.x=p.y=4;PrintPoint(p);会创建个对象。

函数定义修改为:

voidPrintPoint(CPoint&p){cout<

运行同样的语句将创建个对象。

4.假设有语句:

CPointp(3,4);CPointp2=p;

则创建p2时调用的构造函数是构造函数。

5.程序中要对某个函数的调用次数进行统计,方法

(1)至(5)中,可行的

是;如果要统计某个类,创建对象的次数,在以下所有方法中,

最佳的方法是:

(1)在该函数中创建普通变量

(2)在该函数中创建静态变量

(3)在该函数中创建const常量(4)创建全局变量

(5)创建全局的const常量(6)创建这个类的普通成员变量

(7)创建这个类的静态成员变量

6.求n!

的函数定义:

intF(intn){if(n<=1)return1;returnF(n-1)*n;};该

函数所采用的程序结构是:

;调用F(20),函数返回:

-2102132736,

这个结果显然是错误的,原因是。

四.阅读填空题(共25分)

1.写出下列程序的输出结果。

(此题每空1分)

#include

usingnamespacestd;

intmain()

{

intn=1;

cout<<"取1元,2元,5元纸币10张,支付19元的付法:

"<

for(intx=0;x<=10;x++)

for(inty=0;y<=9;y++)

if(x+2*y+5*(10-x-y)==18)

cout<

1元币"<

<

return0;

}

程序的输出结果为:

2.假设程序运行时输入2个整数:

10(此题每空1分)

#include

usingnamespacestd;

constintPI=3.14;

doubleCaculateArea(doubleradius)

{

returnPI*radius*radius;

}

intmain()

{

intd;

doublearea;

while

(1)

{

cout<<"输入直径:

"<

cin>>d;

if(d>0)

{

area=CaculateArea(d/2);

cout<<"直径为"<

"<

}

else

break;

}

return0;

}

程序的输出结果为:

3.写出下列程序的输出结果。

(此题最后一空2分,其它空1分)

#include

usingnamespacestd;

inttotal=0;

intfunc(intx)

{

inti;

staticintn=0;

n++;

total++;

cout<

if(x<=0)return1;

i=x+func(x-1);

cout<

returni;

}

intmain()

{

inti;

i=func

(2);

cout<<"result="<

return0;

}

(此空2分)

4.写出下列程序的输出结果。

(此题每空1分)

#include

usingnamespacestd;

intf(intx){cout<<"f1=";returnx;}

intf(chara,charb=0)

{cout<<"f2=";return(a>b?

1:

-1);

}

doublef(double&x)

{cout<<"f3=";x+=sizeof(x);return0;

}

intmain()

{

shorta=0;

charc='A';

doubley;

y=f(0);

cout<

y=f(a);

cout<

y=f(c);

cout<

y=f(a,c);

cout<

f(y);

cout<

return0;

}

5.写出下列程序的输出结果。

(此题每空0.5分)

#include

usingnamespacestd;

chargid='A';

classNumber

{

private:

inti;

charid;

public:

Number(intx=0)

{

i=x;

id=gid++;

cout<<"ConstructorNumber:

"<

}

Number(constNumber&x)

{

i=x.i;

id=gid++;

cout<<"CopyNumber:

"<

}

~Number(){cout<<"DestructorNumber:

"<

Numberoperator+(constNumber&x);

};

NumberNumber:

:

operator+(constNumber&x)

{

Numberresult(i+x.i);

returnresult;

}

intmain()

{

Numberx

(1),y;

y=x+2;

return0;

}

(每空0.5分)

五.完善程序题(每空1.5分,共20空,计30分)

1、要求程序运行后的输出结果为:

*

***

*****

*******

*****

***

*

请在程序中的横线处填入适当的语句,将程序补充完整

#include

usingnamespacestd;

voidmain()

{;

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

{

for(j=1;j<=4-i;)

cout<<"";

for(k=1;;k++)

cout<<"*";

cout<

}

for(i=3;i>0;)

{

for(j=1;;j++)

cout<<"";

for(k=1;k<=2*i-1;k++)

cout<<"*";

cout<

}

}

2、东南大学举行歌曲比赛,由9位评委给参赛选手打分,满分为10分。

评分规则是:

去掉1个最高分和1个最低分,余下的7个分数的平均值为选手最后得分。

试编程计算并输出选手去掉最高分和最低分后的总分及最后得分。

#include

usingnamespacestd;

 

intmain()

{

floats,maxs,mins,sum=0;

maxs=0;mins=10;//用于存贮最高分和最低分,为变量赋初值

cout<<"Input9scores:

"<

for(inti=1;i<=9;i++)

{

cin>>s;

;

if(s>maxs);

if(s

}

sum=;

cout<<"总分:

"<

cout<<"最后得分:

"<<<

return0;

}

 

3、下列程序的功能是用函数的递归调用求1!

+2!

+3!

+4!

+5!

请将程序补充完整。

#include

usingnamespacestd;

longjiecheng(intn)

{if(n==1)

return1;

else

;

}

intmain()

{ints;

;

for(inti=1;i<=5;i++)

;

cout<<"1!

+2!

+3!

+4!

+5!

="<

return0;

}

4.下面程序中定义了一个复数类,请将程序补充完整。

#include

usingnamespacestd;

classComplex{

private:

;

public:

Complex(doubler=0.0,doublei=0.0)//定义构造函数

{Real=r;Image=i;}

Complex()//定义拷贝构造函数

{

Real=com.Real;

Image=com.Image;

}

voidPrint()

{cout<<"Real="<

}

Complexoperator+=(Complexc)

{Complextemp();

Real=temp.Real;

Image=temp.Image;

;

}

};

intmain(void){

Complexc1(1.0,1.0),c2(2.0,2.0),c3(3.0,3.0);

c3+=c1+=c2;

c3.Print();

return0;

}

5、水仙花数(Armstrongnumber)是一个3位数字的数,它等于每个数字的3次幂的和。

例如153是水仙花数(具有3位数字且等于1*1*1+5*5*5+3*3*3)。

下面程序求100到999之间的所有水仙花数,试补充完整。

#include

usingnamespacestd;

voidmain()

{

intnum,sum,temp;

inti,j;

intbit,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<<"Thenumber"<

"<

}

}

}

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

当前位置:首页 > 高等教育 > 理学

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

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