永发信息网

求大一C++期末考试试卷,感激不尽!!!

答案:1  悬赏:80  手机版
解决时间 2021-02-21 13:42
求大一C++期末考试试卷,感激不尽!!!
最佳答案
(一)选择题(共10题,每题1分,共10分)
1. 以下不属于程序设计三要素的内容是: 。
A. 算法 B. 语言 C. 环境 D. 应用
2. 以下描述中,包含了5个典型的计算机硬件结构部分的内容是: 。
A.CPU、硬盘、主存 B. CPU、存储器、I/O设备
C. 存储器、I/O设备、系统总线 D. CPU、存储器、系统总线
3. 以下不同数制表示的数中最小的数值是: 。
A. 二进制11011111 B. 十六进制DF
C.十进制217 D. 八进制337
4. 设一个栈的输入元素序列为a1,a2,a3,a4,输入过程中允许出栈,规定每个元素入栈、出栈只能各一次,则所得到的输出元素序列,不可能出现的是 。
A. a1,a2,a3,a4 B. a4,a3,a2,a1
C.a1,a3,a4,a2 D. a4,a1,a2,a3
5.在计算机中表示一个浮点数, 下面说法不正确的是 。
A. 尾数反映浮点数的精度,阶反映浮点数后表示范围
B. 尾数表示数的有效数字,阶表示数中小数点的位置
C. 尾数为二进制定点纯整数,阶为二进制定点纯小数
D. 浮点数由尾数和阶两部分组成
6.十进制数 -27,用8位二进制数表示的原码和补码为 。
A. 11011111、10011011 B. 10011011、11100101
C. 00011011、00011011 D. 10011011、10011011
7. 微型计算机的内存储器是 。
A. 按二进制位编址 B. 按字节编址
C. 按字长编址 D. 根据微处理器型号不同而编址不同
8. 根据计算机执行一条指令过程的基本步骤,下面选择正确的是 。
① 分析指令 ② 取下一条指令 ③ 执行指令
④ 取指令 ⑤ 执行过程结束
A. ①②③④⑤ B. ①③②⑤ C.②③④① D. ④①③②
9. 有一个数值152,它与十六进制数6A相等,那么该数值是 。
A. 二进制数 B. 八进制数 C. 十进制数 D. 四进制数
10.微型计算机总线上的信号有 。
A. 控制信号、数据信号 B. 地址信号、控制信号
C. 数据信号、地址信号、控制信号 D. 二进制信号
(二)填空题(共10题,每题1分,共10分)
1. 64K的内存空间需要 条地址线,其最大地址为 H。
2. 最主要和最基本的三种逻辑运算为逻辑非 、 、 。
3. 常用的排序算法包括 、 。
4. 从一组给定的数据中找出所需的数据的过程称为 。将问题的候选解按某种顺序逐一枚举和检验,若发现当前的候选解不可能是最终解时,就放弃它而选下一个候选解的过程称为 。
5. 有一数组a长度为11,其中前10个元素已按升序排序。输入一个数,要求按顺序放入数组中,请在下面N-S图的@和#处填写相应的语句。
输入待插入的数值 → number
number>a[9]
T F
for( i=0; i<10; i++)
#
T F
@ 将a[9]到a[i]元素顺
序向后移动一个位置

number → a[i]
输 出 结 果

#:
@:
二.Visual C++程序设计语言部分(共计80分)
(三)选择题(每题1.5分,计15分)
1.设整型变量a的值是1,则C++条件表达式2 <= a < 3的值是 。
A:1 B:0 C:不确定 D:非法的表达式
2.设有枚举类型定义:
enum Drinking{cola, coffee = 4, tea, water = 0};
则枚举量tea的值是 。
A:3 B:2 C:5 D:-1
3. 定义下列函数max实现比较3个整数中最大的一个,并返回该最大值:
int max(int a, int b, int c)
{
int t = 0;
t = a > b ? a : b > c ? t : c;
return t;
}
则执行下列语句,int r = max(2, 9, 8); 变量r的值是 。
A:9 B:8 C:2 D:0
4.下列关于成员函数特性的描述中, 是不正确的。
A:成员函数可以重载
B:成员函数一定为内联函数
C:成员函数可以是静态的
D:成员函数可以设置参数的默认值
5.在while(a)中,a与下列哪个条件表达式等价
A:a == 0 B:a != 0 C:a == 1 D:a != 1
6.执行下列程序段的输出是 。
for(int i = 1; i < 6; i++){
if(i%3 == 0) break;
cout<<i<<"\t";
}
A:1 2 3 4 5 B:1 2 4 5 C:1 2 D:3
7.浮点型变量f当前值是19.5,则执行下列语句后f的值是 。
float f = 19.5;
int n = int(f);
A:20 B:19.5 C:19 D:20.0
8.设有函数声明
double function(double a, double &b);
定义变量
double x, y;
则下面对函数正确的调用是 。
A:function(x, 1.0) B:function(x, y)
C:function(1.0, &x) D:function(x, 1.0+y)
9.以下哪些函数可以构成重载函数 。
(1). int function(int a, int b, int c);
(2). double function(int a, int b, double c);
(3). int function(int a, int b);
(4). double function(int a, int b, int c);
A:(1) (2) (4) B:(1)(3)(4) C:(1)(2)(3) D:(1)(4)
10.有关类的说法不正确的是 。
A:类是一种用户自定义的数据类型
B:只有类中的成员函数才能直接存取本类中的私有数据
C:类的构造函数与析构函数均可以重载
D:类的成员函数可以是重载函数,或者是有缺省参数的函数
(四)填空题(每题1.5分,计15分)
1.整型变量n的当前值是17,执行以下switch语句后n的值是 。
switch(n){
case 16: ++n;
case 17: n += 2;
case 18: ++n;
default: n++;
}
2.已知小写字母a的ASCII码值是97,则下列语句执行后输出是 。
char c = 102;
cout<<c;
3.若有下列程序,则程序运行后的输出是 。
#include<iostream>
using namespace std;
int main()
{
int i = 0;
do{
cout<<i<<", ";
} while(i++ < 5);
cout<<i;
return 0;
}
4.定义以下字符数组,则该数组的长度是 。
char szName[ ] = "mySEU";
5.若有下列程序,则程序运行后的输出是 。
#include<iostream>
using namespace std;
void f(int n);
int main()
{
f(789);
return 0;
}
void f(int n)
{
if(n >= 10)
f(n/10);
cout<<n%10;
}
6.下列语句执行后整型变量nCode的值是 。
int nCode = 0xAC;
nCode &= 0x8;
nCode >>= 3;
7.类是对具有共同属性和行为的一类事物的抽象描述,共同属性被描述为类中的成员数据,共同行为被描述为类中的 。
8.下列语句执行后整型变量nCount的值是 。
int nCount = 0;
for(int j = 0; j < 6, nCount++; j++)
nCount++;
9.全局与静态变量在程序运行时自动初始化为0;下列语句的本意是求出1~10共10个数的和,但结果却不对,其原因是 。
int sum;
for(int i =1; I <= 10; i++)
sum = sum + i;
10. 运算符重载的两种形式:作为类的成员函数,以及 。
(五)阅读程序并填空(每空1-3分,共25分)
1. 写出下列程序的执行结果
#include <iostream >
using namespace std;
void fun(int &a,int &b)
{
int p; p=a; a=b; b=p;
}
void exchange(int &a,int &b,int &c)
{
if(a<b) fun(a,b);
if(a<c) fun(a,c);
if(b<c) fun(b,c);
}
int main()
{
int a,b,c;
a=94; b=16; c=178;
cout<<"First:"<< '\t'<<"a="<<a<<",b="<<b<<",c="<<c<<endl;
exchange(a,b,c);
cout<<"Second:"<< '\t'<<"a="<<a<<",b="<<b<<",c="<<c<<endl;
return 0;
}
(1) (1分)
(2) (3 分)

2. 阅读下列程序
#include <iostream>
using namespace std;
int main()
{
int x=9,n=8,y,i;
for(i=0;i<n;i++) x/=3;
y=1+x;
i=0;
do{
y*=2;
i++;
}while(i<=n);
cout<<"y="<<y<<endl;
return 0;
}
(3)y的表达式为: (3分)
(4)程序的运行结果为: (2分)
3. 设输入的5个整数是:32 64 53 87 54。
#include<iostream>
using namespace std;
int main()
{
int a,b,c,x;
a=b=c=0;
cout<<"Input 5 integers:"<<endl;
for(int i=0;i<5;i++)
{
cin>>x;
switch(x%3)
{
case 0:a+=x;break;
case 1:b+=x;break;
case 2:c+=x;break;
}
}
cout<<a<<';'<<b<<';'<<c<<endl;
return 0;
}
程序运行时屏幕输出为:
(5) (1分)
(6) (1分)
(7) (3分)
4. 阅读下列程序
#include <iostream >
using namespace std;
int add(double &, double);
double a;
int main()
{
const int n=5;
int num,i;
double d[n]={7.2,5.7,6.0,4.2,9.9};
for(i=0;i<n;i++)
if (d[i]>=6) num=add(a,d[i]);
a/=num;
cout<<"The average is:"<<a<<'\n'<<"The number is:"<<num<<endl;
return 0;
}
int add(double & a,double d){
static int c;
a+=d;
c++;
return c;
}
程序的运行结果为:
(8) (2分)
(9) (3分)
5. 阅读下列程序
#include<iostream>
using namespace std;
class MyTestClass
{
private:
int NumA;
public:
MyTestClass(int a)
{
cout<<a<<'\t'<<"is Constructor."<<endl;
NumA=a;
}
MyTestClass(MyTestClass &b)
{
cout<<"Copy Constructor."<<endl;
NumA=b.NumA;
}
void Print()
{
cout<<"The private data is: NumA="<<NumA<<endl;
}
~MyTestClass()
{
cout<<NumA<<'\t'<<"is Destructor."<<endl;
}
};
int main()
{
MyTestClass Myclass1(5), Myclass2(Myclass1);
Myclass2.Print();
return 0;
}
程序的运行结果为:
(10) (1分)
(11) (2分)
(12) (1分)
(13) (1分)
(14) (2分)
(六)完善程序题(共25分)
1、编写程序求π的值(每空2分,共6分。)

其中arctan( )用如右形式的级数计算:

计算直到级数某项绝对值不大于10-15为止;π和 x 均为double型。
#include<iostream>
using namespace std;
double arctan( double x ) ; //函数原型声明
int main( )
{
double a, b;
a = ; //注意:整数相除结果将会取整!

b = …… ; //此处略,b将计算出 的值
cout << "PI=" << a-b << endl;
return 0;
}
double arctan( double x )
{
int i , sign = 1;
double sum, e, f, sqr;
sum = 0; e = x; i = 1 ;
while ( ) //终止条件
{
f = e / i ;
sum += sign * f ;
e = ; //递推公式
sign *= -1;
i += 2;
}
return sum ;
}
2、输入一个8位二进制数,将其转换为十进制数输出。(每空2分,共4分。)
#include<iostream>
using namespace std;
const int n = 8 ; //输入数据的位数
int main( )
{
char bin[ n]; //用来放输入的数据,数据的每一位以字符方式存放
int x = 2 ; //x表示几进制,此时处理的是二进制
int a, dec, i ;
cout << "输入二进制序列:" << endl ;
for( i = n-1; i >= 0; i-- )
; //输入的是字符,且先输入的是二进制数的高位
dec = 0 ;
for( i = n-1; i >= 0; i-- )
{
a = ; //字符转换为数字,例如’1’1,’0’0
dec = dec*x + a ;
}
cout << "转换为十进制,值为:" << dec << endl;
return 0;
}

3、用递归算法实现正整数的倒序输出。(每空2分,共4分。)
#include<iostream>
using namespace std;
void backward( int x )
{
if ( x>0 )
{ ;
;
}
}
int main( )
{
int n;
cout << “输入正整数:" << endl; cin >> n;
cout << “原整数” << n << “倒序输出为:";
backward ( n ) ;
cout << endl ;
return 0;
}
4、定义复数类,可完成复数基本运算,并应用它进行复数运算。(共11分。)
#include <iostream>
#include <cmath>
using namespace std;
class Complex{
double Real, Image ; //复数的实部和虚部
public:
Complex ( double r = 0.0, double i = 0.0 ) //定义构造函数
{ } (1.5分)
Complex ( Complex & com ) //定义复制构造函数
{ } (1.5分)
void Print( )
{ cout << "Real=" << Real << '\t' << "Image=" << Image << '\n' ; }
Complex operator+ ( Complex );
//Complex operator+ ( double );
Complex operator= ( Complex );
Complex operator+= ( Complex );
//double abs(void);
//Complex operator* ( Complex );
//Complex operator/ ( Complex );
};
Complex Complex::operator+ ( Complex c)
{
Complex Temp( ) ;//显式说明局部对象(此空2分)
return Temp ;
}
Complex Complex::operator+= (Complex c)
{
Complex temp;//定义temp为了返回Complex类的值,使+=可以连续使用
temp.Real = ; (1.5分)
temp.Image = ; (1.5分)
Real = ; (1.5分)
Image = ; (1.5分)
return temp;
}
Complex Complex::operator= ( Complex c )
{// 此处略 ……
}
int main(void){
Complex c1( 1.0, 1.0 ) , c2(2.0, 2.0) , c3(4.0, 4.0) , c;
c1.Print( );
c = c2 + c3 ; //将调用运算符‘+’的重载函数,运算符‘=’的重载函数
c.Print( );
c += c1 ; //将调用运算符‘+=’的重载函数
c.Print( );
return 0;
}
笔试模拟题答案
一.大学计算机基础部分
1. 选择题 (共10题,每题1分,共10分)
A、B、C、D、C、B、B、D、B、C
2. 填空题 (共5题,每题2分,共10分)
(1)16,FFFF (2)逻辑与、逻辑或
(3)冒泡排序 、 选择排序 或交换排序 (4)查找 回溯
(5)# : a[i]>number 或 number<a[i]
或 a[i]>=number 或 number<=a[i]
@: number → a[10]
二.C++程序设计部分(共计80分)
(三)选择题(每题1.5分,计15分)
A、C、D、B、B、 C、B、B、C、C
(四)填空题(每题1.5分,计15分)
(1)21; (2)f; (3)0, 1, 2, 3, 4, 5, 6; (4)6; (5)789;
(6)1; (7)成员函数; (8)1;(9)局部变量sum未初始化;
(10)友元函数
(五)阅读程序并填空(每空1-3分,共25分)
1. (1)First: a=94,b=16,c=178 (1分)
(2)Second: a=178,b=94,c=16 (3 分)
2. (3) 或 (3 分)
(4) y=512 (2分)
3. (5) Input 5 integers: (1 分)
(6) 32 64 53 87 54 (1 分)
(7) 141;64;85 (3 分)
4. (8) The average is:7.7 (2 分)
(9) The number is:3 (3 分)
5. (10) 10 is Constructor. (1 分) (11) Copy Constructor. (2 分)
(12) The private data is: NumA=10 (1 分)
(13) 10 is Destructor. (1 分)
(14) 10 is Destructor. (2 分)
(六)完善程序题(共25分)
1、编写程序求π的值(每空2分,共6分)
(1) 16.0 * arctan( 1/5.0 ) ;
(2) e / i > (1e-15 )
(3) e*x*x ;
2、输入一个8位二进制数,将其转换为十进制数输出。(每空2分,共4分)
(4) cin.get( bin[ i ] ) ; 或cin >> bin[ i ]; 或bin[ i ] = cin.get( );
(5) bin[i] - '0' ;
3、用递归算法实现正整数的倒序输出。(每空2分,共4分)
(6) cout << x%10 << ‘\t’ ;
(7) backward( x/10 ) ;
4、定义复数类,并应用它进行复数运算。(共11分)
(8) Real = r; Image = i; (1.5分)
(9) Real = com.Real ; Image = com.Image ; (1.5分)
(10) Real+c.Real , Image+c.Image ) ; (此空2分)
(11) Real + c.Real ; (1.5分)
(12) Image + c.Image ; (1.5分)
(13) temp.Real ; (1.5分)
(14) temp.Image ; (1.5分)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
本人现在在苏州买房,月收入8K,甲类计划公积
求一个可下载MV(卡拉OK)的网站
手指形状看性格命运
象山县农村信用合作联社新大街分社在什么地方
英杰食杂店在哪里啊,我有事要去这个地方
【宽敞】马路宽阔还是马路宽广还是马路宽敞还
男生属龙农历十月初四的生日是破月?
375马力柴油机几缸?
逗捞坊怎么去啊,有知道地址的么
魔兽世界 手法怎么练?
家常便饭(四川省雅安市汉源县九襄质量技术监
安装完显卡驱动,花屏,蓝屏,不安装什么也没
今天早上一打开电视发现有线电视电视台都打乱
沉淀平衡常数与沉淀生成顺序
有眼袋怎么办怎么消除或缓解
推荐资讯
广西科技大学怎么样 就业率好吗?
自从生了孩子后、老公对我还可以,但不关心孩
微信为什么总是限制登录
花龟可以活多久
欧佰天花三旺石膏线地址在哪,我要去那里办事
【伦敦奥运会 刘翔】伦敦奥运会上刘翔参加的
八角楼副食批发地址有知道的么?有点事想过去
皇室用英语怎么说
建筑水暖工程需要到实验室做实验的材料都有哪
QQ号用自己的身份证实名制了会有影响吗?
民生钢木家具城在什么地方啊,我要过去处理事
幽灵船中演恶魔的那个演员还有没有在其它电影
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?