在线作业 发表于 2017-9-10 11:48:29

东北大学17秋《C++程序设计》在线作业123参考答案

2017秋学期《C++程序设计》在线作业1
一、单选题:【20道,总分:100分】
1.设有 int x=11; 则表达式(x++ * 1/3) 的值是         (满分:5)
    A. 3    B. 4
    C. 11    D. 12
2.有如下说明 int a={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是          (满分:5)
    A. *p+9
    B. *(p+8)
    C. *p+=9
    D. p+8
3.若有定义: float x=1.5; int a=1,b=3,c=2; 则正确的switch语句是          (满分:5)
    A. switch(x){ case 1.0: printf("*\n");case 2.0: printf("**\n");}
    B. switch((int)x); { case 1: printf("*\n"); case 2: printf("**\n");
    C. switch(a+b) { case 1: printf("*\n"); case 2+1: printf("**\n");}
    D. switch(a+b) { case 1: printf("*\n");case c: printf("**\n");}
4.有以下程序#include #include using namespace std;int main(int argc, char* argv[]){int aa={{1,2,3,4},{5,6,7,8},{3,9,10,2},{4,2,9,6}};int i,s=0;for(i=0;icoutreturn 0;}程序运行后的输出结果是          (满分:5)
    A. 11
    B. 19
    C. 13
    D. 20
5.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是          (满分:5)
    A. *p=*q
    B. p=q
    C. *p=&n1
    D. p=*q
6.有如下程序:#include using namespace std;class MyBase{public:virtual void run(    ){cout};class MyClass:public MyBase{ public:void run(    ){cout};int main(int argc, char* argv[]){MyClass object;MyBase& base = object;base.run(    );return 0;}输出结果为          (满分:5)
    A. 1
    B. 2
    C. 出错
    D. 未知
7.对于通过公有继承定义的派生类,若其成员函数可以直接访问基类的某个成员,说明该基类成员的访问权限是          (满分:5)
    A. 公有或私有
    B. 私有
    C. 保护或私有
    D. 公有或保护
8.关于在调用模板函数时模板实参的使用,下列表述正确的是         (满分:5)
    A. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略
    B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略
    C. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略
    D. 对于常规参数所对应的模板实参,任何情况下都不能省略
9.有如下程序#include #include using namespace std;int main(    ){ cout return 0;}若程序的输出是:**12.345**34.567则程序中下划线处遗漏的操作符是          (满分:5)
    A. setprecision
    B. fixed
    C. setfill('*')
    D. setw(8)
10.若已经声明了函数原型void fun(int a, double b=0.0);,则下列重载函数声明中正确的是          (满分:5)
    A. void fun(int a=90, double b=0.0);
    B. int fun(int a, double B);
    C. void fun(double a, int B);
    D. bool fun(int a, double b = 0.0);
11.下面关于成员函数重载运算符和友元函数重载运算符相同的是          (满分:5)
    A. 成员函数和友元函数可重载的运算符是不相同的
    B. 成员函数和友元函数重载运算符时都需要用到this指针
    C. 成员函数和友元函数重载运算符时都需要声明为公有的
    D. 成员函数和友元函数重载运算符时的参数可能是相同的
12.可以用p. a的形式访问派生类对象p的基类成员a,其中a是          (满分:5)
    A. 私有继承的公有成员
    B. 公有继承的私有成员
    C. 公有继承的保护成员
    D. 公有继承的公有成员
13.下列关于C++关键字的说法中正确的是          (满分:5)
    A. 关键字是用户为程序中各种需要命名的“元素”所起的名字
    B. 关键字是对程序中的数据进行操作的一类单词
    C. 关键字是在程序中起分割内容和界定范围作用的一类单词
    D. 关键字是C++中预先定义并实现一定功能的一类单词
14.在C语言中,合法的字符常量是          (满分:5)
    A. '\084'
    B. '\x43'
    C. 'ab'
    D. "\0"
15.以下程序运行后,输出结果是 #include #include using namespace std;func(int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b ; return(m); } int main(int argc, char* argv[]){int k=4,m=1,p; p=func(k,m); coutp=func(k,m); coutreturn 0;}          (满分:5)
    A. 8,15
    B. 8,16
    C. 8,17
    D. 8,8
16.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是          (满分:5)
    A. 10<a<15
    B. a==11(    )a==12(    )a==13(    )a==14
    C. a>10&&a<15
    D. !(a<=10)&&!(a>=15)
17.下列关于运算符重载不正确的是          (满分:5)
    A. 运算符重载不能改变运算符的操作数个数
    B. 运算符重载不能改变运算符的优先级
    C. 运算符重载不能改变运算符的结合性
    D. 运算符重载能改变对预定义类型数据的操作方式
18.以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main(    )/* Beginning */{ int r; float s;cin>>r;s=*π*r*r; cout}出错的原因是          (满分:5)
    A. 注释语句书写位置错误
    B. 存放圆半径的变量r不应该定义为整型
    C. 输出语句中格式描述符非法
    D. 计算圆面积的赋值语句中使用了非法变量
19.变量a所占内存字节数是 union U { char st; int i; long l; }; struct A { int c; union U u; }a;          (满分:5)
    A. 4
    B. 5
    C. 6
    D. 8
20.关于this指针的说明不正确的是(          (满分:5)
    A. 不能在程序中修改this指针
    B. this指针可以给其他指针赋值,但不能修改this指针
    C. 静态成员函数中没有this指针
    D. this指针可以被赋值
2017秋学期《C++程序设计》在线作业2
一、单选题:【20道,总分:100分】

1.对于一个正常运行的C程序,以下叙述中正确的是          (满分:5)
    A. 程序的执行总是从main函数开始,在main函数结束
    B. 程序的执行总是从程序的第一个函数开始,在main函数结束
    C. 程序的执行总是从main函数开始,在程序的最后一个函数中结束
    D. 程序的执行总是从程序的第一个函数开始,在程序的最后一个函数中结束
2.以下叙述中错误的是          (满分:5)
    A. C语言是一种结构化程序设计语言
    B. 结构化程序由顺序、分支、循环三种基本结构组成
    C. 使用三种基本结构构成的程序只能解决简单问题
    D. 结构化程序设计提倡模块化的设计方法
3.有以下程序#include using namespace std;struct STU { char name; int num; float TotalScore; };void f(struct STU *p){ struct STU s={{"SunDan",20044,550},{"Penghua",20045,537}}, *q=s;++p ; ++q; *p=*q;}int main(int argc, char* argv[]){struct STU s={{"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);coutreturn 0;}程序运行后的输出结果是          (满分:5)
    A. SunDan 20044 550
    B. Penghua 20045 537
    C. LiSiGuo 20042 580
    D. SunDan 20041 703
4.下列程序执行后的输出结果是 #include #include using namespace std;void func(int *a,int b[]) { b=*a+6; } int main(int argc, char* argv[]){int a,b; a=0; b=3; func(&a,b);coutreturn 0;}          (满分:5)
    A. 6
    B. 7
    C. 8
    D. 9
5.以下能正确定义字符串的语句是          (满分:5)
    A. char str[]={'\064'}
    B. char str="kx43"
    C. char str="
    D. char str[]="\0"
6.如下对象中那个不是iostream定义的标准对象          (满分:5)
    A. cin
    B. cout
    C. cer
    D. clog
7.下列关于输入流类成员函数 getline(    )的描述中,错误的是         (满分:5)
    A. 该函数是用来读取键盘输入的字符串的
    B. 该函数读取的字符串长度是受限制的
    C. 该函数读取字符串时,遇到终止符便停止
    D. 该函数读取字符串时,可以包含空格
8.在下列原型所示的 C++函数中,按“传值”方式传递参数的是          (满分:5)
    A. void f1(int x)
    B. void f2(int*x)
    C. void f3(const int*x)
    D. void f4(int&x)
9.若有语句:char *line;,以下叙述中正确的是          (满分:5)
    A. 定义line是一个数组,每个数组元素是一个基类型为char的指针变量
    B. 定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组
    C. 定义line是一个指针数组,语句中的*号称为间址运算符
    D. 定义line是一个指向字符型函数的指针
10.关于this指针的说明不正确的是(          (满分:5)
    A. 不能在程序中修改this指针
    B. this指针可以给其他指针赋值,但不能修改this指针
    C. 静态成员函数中没有this指针
    D. this指针可以被赋值
11.以下程序运行后,输出结果是 main(    ) { char ch={"693","825"},*p;int i,j,s=0;for(i=0;i for(i=0;i for(j=0;p>='0' && p s=10*s+p-'0';cout}         (满分:5)
    A. 6385
    B. 22
    C. 33
    D. 693825
12.设有如下定义:struct sk{int a;float b;}data,*p; 若有p=&data;,则对data中的a域的正确引用是         (满分:5)
    A.(*p).data.a
    B.(*p).a
    C. p-data.a
    D. p.data.a
13.C++中,封装是借助于什么达到的?          (满分:5)
    A. 结构
    B. 类
    C. 数组
    D. 函数
14.有如下程序:#include using namespace std;class MyClass{ public:MyClass(int i=0){cout MyClass(const MyClass&x){cout MyClass& operator=(const MyClass&x){cout ~MyClass(    ){cout};int main(    ){ MyClass obj1(1),obj2(2),obj3(obj1); return 0:}运行时的输出结果是(    )          (满分:5)
    A. 112444
    B. 11114444
    C. 121444
    D. 11314444
15.下列关于运算符重载不正确的是(    )          (满分:5)
    A. 运算符重载不能改变运算符的操作数个数
    B. 运算符重载不能改变运算符的优先级
    C. 运算符重载不能改变运算符的结合性
    D. 运算符重载能改变对预定义类型数据的操作方式
16.设有定义:int n1=0,n2,*p=&n2,*q=&n1;,以下赋值语句中与n2=n1;语句等价的是          (满分:5)
    A. *p=*q
    B. p=q
    C. *p=&n1
    D. p=*q
17.以下叙述正确的是(    )          (满分:5)
    A. 函数可以嵌套定义但不能嵌套调用
    B. 函数既可以嵌套调用也可以嵌套定义
    C. 函数既不可以嵌套定义也不可以嵌套调用
    D. 函数可以嵌套调用但不可以嵌套定义
18.有以下程序#include using namespace std;void fun1(char *p){ char *q;q=p;while(*q!='\0'){(*q)++;q++;}}int main(int argc, char* argv[]){char a[]={"Program"},*p;p=&a;fun1(p);coutreturn 0;}程序执行后的输出结果是          (满分:5)
    A. Prohsbn
    B. Prphsbn
    C. Progsbn
    D. Program
19.多态性指的是          (满分:5)
    A. 以任何方式调用一个虚函数
    B. 以任何方式调用一个纯虚函数
    C. 借助于指向对象的基类指针或引用调用一个虚函数
    D. 借助于指向对象的基类指针或引用调用一个纯虚函数
20.下列程序执行后的输出结果是 #include using namespace std;int main(int argc, char* argv[]){char arr; strcpy(arr,"you"); strcpy(arr,"me"); arr='&'; coutreturn 0;}          (满分:5)
    A. you&me
    B. you
    C. me
    D. err
2017秋学期《C++程序设计》在线作业3
一、单选题:【20道,总分:100分】

1.下列描述中错误的是(    )          (满分:5)
    A. 析构函数可以被继承
    B. 虚函数不能被继承
    C. 派生类可以有多个基类
    D. 纯虚基类的子类可以是虚基类
2.执行以下程序后,输出的结果是#include #include using namespace std;int main(int argc, char* argv[]){int y=10;do {y--;} while(--y);coutreturn 0;}          (满分:5)
    A. -1
    B. 1
    C. 8
    D. 0
3.以下叙述中正确的是          (满分:5)
    A. 预处理命令行必须位于C++源程序的起始位置
    B. 在C++语言中,预处理命令行都以"#"开头
    C. 每个C++程序必须在开头包含预处理命令行
    D. C语言的预处理不能实现宏定义和条件编译的功能
4.下面程序的结果为#include using namespace std;int c;class A{private:int a;static int b;public:A(    ) {a=0;c=0;}void seta(    ) {a++;}void setb(    ) {b++;}void setc(    ) {c++;}void display(    ) {cout}; int A::b=0;int main(int argc, char* argv[]){A a1,a2;a1.seta(    );a1.setb(    );a1.setc(    );a2.seta(    );a2.setb(    );a2.setc(    );a2.display(    );return 0;}            (满分:5)
    A. 1 2 1
    B. 1 2 2
    C. 1 1 2
    D. 2 2 2
5.关于在调用模板函数时模板实参的使用,下列表述正确的是         (满分:5)
    A. 对于虚类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息, 则都可以省略
    B. 对于虚拟类型参数所对应的模板实参,如果它们是参数表中的最后的若干个参数,则都可以省略
    C. 对于虚拟型参数所对应的模板实参,若能够省略则必须省略
    D. 对于常规参数所对应的模板实参,任何情况下都不能省略
6.函数int test(int a,int b=1,int c=0),下列调用不合法的个数是(    )  test(0); test(0,0); test(    ); test(0,0,0)          (满分:5)
    A. 0
    B. 1
    C. 2
    D. 3
7.表达式3.6-5/2+1.2+5%2的值是          (满分:5)
    A. 4.3
    B. 4.8
    C. 3.3
    D. 3.8
8.有以下程序main(    ){ char a1='M',a2='m';cout}以下叙述中正确的是          (满分:5)
    A. 程序输出大写字母M
    B. 程序输出小写字母m
    C. 格式说明符不足,编译出错
    D. 程序运行时产生出错信息
9.以下程序的输出结果是fun(int x, int y, int z){ z=x*x+y*y; }main(    ){ int a=31;fun(5,2,a);printf("%d",a);}          (满分:5)
    A. 0
    B. 29
    C. 31
    D. 无定值
10.以下程序运行后,输出结果是 #include #include using namespace std;void fut(int **s,int p) { **s=p;} int main(int argc, char* argv[]){int a={1,3,5,7,9,11},*p; p=new int; fut(&p,a); coutreturn 0;}          (满分:5)
    A. 9
    B. 0
    C. 3
    D. 7
11.有如下程序#include #include #include using namespace std;class Base {protected: Base(    ){ cout Base(char c){ cout};class Derived: public Base{public: Derived( char c ){ cout};int main(int argc, char* argv[]){ Derived d1('B');return 0;}执行这个程序屏幕上将显示输出          (满分:5)
    A. B
    B. BA
    C. AB
    D. BB
12.所有在函数中定义的变量,连同形式参数,都属于          (满分:5)
    A. 全局变量
    B. 局部变量
    C. 静态变量
    D. 寄存器变量
13.下面关于成员函数重载运算符和友元函数重载运算符相同的是          (满分:5)
    A. 成员函数和友元函数可重载的运算符是不相同的
    B. 成员函数和友元函数重载运算符时都需要用到this指针
    C. 成员函数和友元函数重载运算符时都需要声明为公有的
    D. 成员函数和友元函数重载运算符时的参数可能是相同的
14.如下代码的运行结果为#include #include #include using namespace std;class Base {protected:char c;protected: Base(    ){ c='A'; } Base(char a){ c = a;}public:void print(    ){cout};class Derived: public Base{public: Derived( char a ){ c = a;}public:void print(    ){cout};int main(int argc, char* argv[]){ Derived d1('B');Base& base = d1;base.print(    );return 0;}          (满分:5)
    A. AB
    B. A
    C. B
    D. BB
15.如下代码的运行结果为#include #include #include using namespace std;class Base {protected: Base(    ){ cout Base(char c){ cout};class Derived: public Base{public: Derived( char c ){ cout};int main(int argc, char* argv[]){ Derived d1('B');Base &base = d1;return 0;          (满分:5)
    A. B
    B. BA
    C. AB
    D. BB
16.有如下类定义:class MyBase{ int k;public: MyBase(int n=0):k(n){ } int value(    )const{ return k;}};class MyDerived: MyBase{ int j;public: MyDerived(int i): j(i) {} int getK(    )const{ return k; } int getJ(    )const{ return j; }};编译时发现有一处语法错误,对这个错误最准确的描述是          (满分:5)
    A. 函数getK试图访问基类的私有成员变量k
    B. 在类MyDerived的定义中,基类名MyBase前缺少关键字public、protected或private
    C. 类MyDerived 缺少一个无参的构造函数
    D. 类MyDerived的构造函数没有对基类数据成员k进行初始化
17.在以下一组运算符中,优先级最高的运算符是         (满分:5)
    A. <=
    B. =
    C. %
    D. &&
18.C++中,表示一条语句结束的标号是(    )          (满分:5)
    A. #
    B. ;
    C. //
    D. }
19.在C语言中,合法的字符常量是          (满分:5)
    A. '\084'
    B. '\x43'
    C. 'ab'
    D. "\0"
20.以下不合法的用户标识符是          (满分:5)
    A. j2KEY
    B. Double
    C. 4d
    D. 8

页: [1]
查看完整版本: 东北大学17秋《C++程序设计》在线作业123参考答案