高级语言C++程序设计-考试试卷答案
姓名:  ________________                                                成绩 __________________
第一题选择(22题,每题1.5分,共33分)
答案:1-11
D
C
D
A
C
D
A
B
D
D
B
答案:12-22
D
A
D
D
A
D
D
D
A
A
D
1. 按照C 语言规定的用户标识符命名规则,不能出现在标识符中的是
A)大写字母  B)下划线 C)数字字符D)连接符
2. 以下选项中不合法的标识符是
Acout  BFOR C&&a D_00
3. 设有定义:int x=2;,以下表达式中,值不为6的是
Ax*=(1+x)  Bx*=x+1  Cx++,2*x  D2*x, x+=2
4. C++ 源程序中不能表示的数制是
A)二进制 B)十六进制 C)十进制D)八进制
5. 以下关于结构化程序设计的叙述中正确的是
A)一个结构化程序必须同时由顺序、分支、循环三种结构组成
B)有三种基本结构构成的程序只能解决小规模的问题
C)在C ++语言中,程序的模块化是利用类实现的
D)结构化程序使用goto 语句会很便捷
6. 以下定义语句中正确的是
A float a=1*b=&a*c=&b;  B int a=b=0;
C double a=0.0;b=1.1;        D char A=65+1,b=b;
7. 计算机能直接执行的程序是
A)可执行程序  B)目标程序  C)源程序  D)汇编程序
8. 以下叙述中正确的是
A C++ 语言程序中的注释必须与语句写在同一行  B)简单C++ 语句必须以分号结束
C C++ 语句必须在一行内写完                  D C++ 程序中的每一行只能写一条语句
9. 以下选项中,不合法的C++语言用户标示符是
A AaBc  B a_b  C)_1  D a--b
10.关于C++语言的变量,以下叙述中错误的是
A)由三条下划线构成的符号名是合法的变量名
B)所谓变量是指在程序运行过程中其值可以被改变的量
C)程序中用到的所有变量都必须先定义后才能使用
D)变量所占的存储单元地址可以随时改变
11. C ++语言中double 类型数据占字节数为
A 12  B 8  C 4  D 16
12. 以下叙述中正确的是
A)空语句就是指程序中的空行
B)花括号对{}只能用来表示函数的开头和结尾,不能用于其他目的
C)复合语句在语法上包含多条语句,其中不能定义局部变量
D)当用cin 从键盘输入数据时,每行数据在没有按下回车键(Enter 键)前,可以任意修改
13. 以下叙述中正确的是
A C++ 语言程序总是从main 函数开始执行
B C++ 语言程序所调用的函数必须放在main 函数的前面
C C++ 语言程序中main 函数必须放在程序开始位置
D C++ 语言程序总是从最前面的函数开始执行
14. 以下叙述中正确的是
Aif 语句只能嵌套一层                              B)不能在else 子句中在嵌套if 语句
C)改变if-else 语句的缩进格式,会改变程序的执行流程  D递归函数c语言规则if 子句和else 子句中可以是任意合法的C ++语句
15. 以下叙述中正确的是
A)在while 语句和do-while 语句中无法使用continue 语句
B)当break 出现在循环体中的switch 语句体内时,其作用是跳出该switch 语句体,并终止
循环
Ccontinue 语句的作用是:在执行完本次循环体中剩余语句后,终止循环
D)只能在循环体内和switch 语句体内使用break 语句
16. 已定义以下函数:
int fun(int *p){return *p;}
fun 函数返回值是
A)一个整数  B)形参p 的地址值  C)形参p 中存放的值  D)不确定的值
17. 设有定义:double a[10]*s=a;以下能够代表数组元素a[3]的是
A*s[3]  B)(*s[3]  C)*s+3  D)*(s+3)
18. 下列选项中,能正确定义数组的语句是
Aint 2008];        B)int num[ ];
Cint N=2008; int num[N]; D)#define N 2008; int num[N];
19. 设有以下函数:void fun(int n,char *s){......} 则下面对函数指针的定义和赋值均正确的是
Avoid *pf(); pf=fun;        B void *pf(intchar );pf=&fun;
Cvoid *pf(); *pf=fun      Dvoid (*pf)(int char *) ; pf=fun;
20. 以下叙述中正确的是
Aint *p1 int **p2 int *p3;都是合法的定义指针变量语句
B)语句p==NULL;与p==\0 是等价的语句
Cp==NULL;执行后,指针p 指向地址为0 的存储单元
D)指针变量只能通过求指针运算符(&)获得地址值
21.  int *funcint a[10], int n;则以下叙述中正确的是
A)说明中的a[10]改为a[]*a 效果完全一样
B)函数中不能对a 进行移动指针(如a++)的操作
C)只有指向10 个整数内存单元的指针,才能作为实参传递给形参
D)形参a 对应的实参只能是数组名
22. 若有以下语句
typedef struct S{ int g char h} T
以下叙述中正确的是
AT struct S 类型的变量  B)可用S 定义结构体变量
CS srurct 类型的变量    D)可用T 定义结构体变量
第二题:类与对象编程 (25)
自定义一个简单的时间类TimeType,它具有数据成员hms,用来表示当前时间的时、分、秒。而后设计该类的功能,进而设计出相应的类成员函数, 实现对时分秒的增加、判断两个时间是否相等以及对时间的输出等操作。试完成各类成员函数并编制主函数,说明TimeType 类对象,对定义的各成员函数进行调用,以验证它们的正确性。
class TimeType { int h,m,s; //私有数据成员,表示当前时间的时、分、秒
public:
TimeType(int h0=0, int m0=0, int s0=0);//构造函数,设置时、分、秒并设置参数默认值
void incrementSec(int sec); …;…;//增加若干秒…//增加若干分…//增加若干小时
bool equal(TimeType t2); //判断两时间是否相等
void printTime(); //屏幕输出时间对象的有关数据(时、分、秒)};
编制类似于如下样式的主函数:
TimeType t1(11, 48, 59), t2(11, 59, 48), t3;
cout<<"t1="; t1.printTime();…
if(t1.equal(t2))cout<<"t1==t2"<<endl;…
t1.incrementMin(30);cout<<"t1="; t1.printTime();…
#include<iostream>
usingnamespacestd;
classTimeType { //自定义的时间类TimeType
    inth, m, s; //私有数据成员,表示当前时间的时、分、秒
public:
    TimeType(inth0 = 0, intm0 = 0, ints0 = 0);
    //构造函数,设置时、分、秒并设置参数默认值
    voidincrementSec(intsec); //增加若干秒,sec>0
    voidincrementMin(intmin); //增加若干分,min>0
    voidincrementHou(inthrs); //增加若干小时,hrs>0
    boolequal(TimeTypet2); //判断两时间是否相等
    voidprintTime(); //屏幕输出时间对象的有关数据(时、分、秒)
};
TimeType::TimeType(inth0, intm0, ints0)
{
    h = h0; m = m0; s = s0;
}
voidTimeType::incrementSec(intsec)
{
    s = s + sec;
    m = m + s / 60;
    s = s % 60;
h = h + m / 60;
    m = m % 60;
h = h % 24;
}
voidTimeType::incrementMin(intmin)
{
    m = m + min;
    h = h + m / 60;
    m = m % 60;
h = h % 24;
}
voidTimeType::incrementHou(inthrs)
{
    h = h + hrs;
h = h % 24;
}
boolTimeType::equal(TimeTypet2)
{
    inttime1 = (h * 60 + m) * 60 + s;
    inttime2 = (t2.h * 60 + t2.m) * 60 + t2.s; returntime1 == time2 ? true : false;
}
voidTimeType::printTime()
{
    cout<<"现在是:"<<h<<"";
    cout<<m<<"";
    cout<<s<<""<<endl;
}
intmain()
{
    TimeTypet1(11, 48, 59), t2(11, 59, 48), t3;
    cout<<"t1="; t1.printTime();
    cout<<"t2="; t2.printTime();
    cout<<"t3="; t3.printTime();

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。