C++上考试安排及模拟练习.docx
- 文档编号:28796574
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:45
- 大小:36.34KB
C++上考试安排及模拟练习.docx
《C++上考试安排及模拟练习.docx》由会员分享,可在线阅读,更多相关《C++上考试安排及模拟练习.docx(45页珍藏版)》请在冰豆网上搜索。
C++上考试安排及模拟练习
期末考试安排及模拟训练
期末考试安排:
成绩构成
笔试%60+机试30%+10%平时
题型与评分标准
a)笔试(卷面100分),考试时间120分钟
大学计算机基础(20分)
1.选择题(共10题,每题1分,共10分)
2.填空题(共10题,每题1分,共10分)
C++程序设计(80分)
3.选择、填空题(共20题,计30分)
4.阅读填空题(共4-5题,每空1-2分,共25分)
5.完善程序题(共4-5题,每空1-2分,共25分)
b)机试(卷面100分),考试时间70分钟
1.改错题(50分),类与对象
2.编程题(50分,需包含算法、文本文件操作)
第一套笔试练习
一、基础部分选择与填空(10+10共20分)
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++程序设计部分(共80分)
二.选择题(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);
三.填空题(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.写出下列程序的输出结果。
#include
usingnamespacestd;
intmain()
{
intn=1;
cout<<"取1元,2元,5元纸币10张,支付18元的付法:
"< 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 #include usingnamespacestd; constdoublePI=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.写出下列程序的输出结果。 #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; } 4.写出下列程序的输出结果。 #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.写出下列程序的输出结果。 #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; } 五.完善程序题(25分) 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"< "< } } } 第一套参考答案 一.计算机基础选择填空 ACBCBBCA 普遍性树(层次)先进后出指令集3621H地址-1 C++部分: 二.选择题 CBCBBADCBA 三.填空题 65 case1: case2: 2, 1 拷贝 2和4; 7 递归 溢出(或,将n的数据类型改为double) 四.阅读填空题 1、 取1元,2元,5元纸币10张,支付18元的付法: 1: 1元币2张,2元币8张,5元币0张 2: 1元币5张,2元币4张,5元币1张 3: 1元币8张,2元币0张,5元币2张 2、. 输入直径: 10 直径为1的圆面积为: 0 输入直径: 3、. 2,1 1,2 0,3 1,3 2,3 result=4,3 4、 f1=0 f1=0 f2=1 f2=-1 f3=7 5、 ConstructorNumber: A1 ConstructorNumber: B0 ConstructorNumber: C2 ConstructorNumber: D3 CopyNumber: E3 DestructorNumber: D3 DestructorNumber: E3 DestructorNumber: C2 DestructorNumber: E3 DestructorNumber: A1 五: 完善程序题 1、 1、inti,j,k 2、j++ 3、k<=2*i-1(或者k<2*i) 4、i-- 5、j<=4-i(或者j<5-i) 2、 1、sum+=s 2、maxs=s 3、sum-maxs-mins 4、sum/7 3、 1、returnn*jiecheng(n-1) 2、s=0 3、s=s+jiecheng(i) 4、 1、doubleReal,Image 2、Complex&com 3、Real+c.Real,Image+c.Image 4、returntemp 5、 1、sum=0 2、bit_n_power=bit_n_power*bit 3、temp=temp/10 4、sum==num 第二套笔试练习 一、应用基础选择与填空: (10+10共20分) 1.程序设计的三要素是。 A)应用、语言、环境B)数据、算法、程序 C)程序、文档、语言D)应用、环境、文档 2.数据组织的概念分为两个层次,他们是。 A)文件组织和数据库组织B)线性组织和层次组织 C)内存组织和外存组织D)逻辑组织和物理组织 3.完整的计算机系统应包括_________ 。 A.)CPU和外部设备 B)硬件系统和软件系统 C)主机和外部设备 D)系统软件和应用软件 4.在表示硬盘容量时,一般用GB作为单位,1GB准确的含义是。 A)1000MBB)1024百万C)1024MBD)1024KB 5.当前微机所用的系统总线标准主要是。 A)ISAB)EISAC)PCID)VESA 6.已知字符8的ASCII码是38H,现通过另一个数0FH通过运算得到字符8所对应的数值8,则该运算应该是。 A)按位逻辑非B)按位逻辑与 C)按位逻辑或D)按位逻辑异或 7.十进制算式(32
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 考试 安排 模拟 练习
![提示](https://static.bdocx.com/images/bang_tan.gif)