东北大学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]