面向对象 作业三答案
- 格式:doc
- 大小:60.00 KB
- 文档页数:8
人工智能学院面向对象程序设计作业Java语言基础年级专业 2019级软件工程专业学号姓名成绩一、选择题1.下列标识符中,正确的是(C)。
A.class B. 123_rr C. _lei D. test&122.下列( D )的选项可以正确表示八进制8。
A.0x8 B. 0x10 C.08 D. 0103. 以下哪个是十进制数17对应的十六进制正确表示?( D )A. 017B. x11C. 0x17D. 0X114.在Java中,不属于整数类型的是( A )。
A.double B. long C. int D. byte5.在Java中,关于标识符的说明,不正确的是(D )。
A.严格区分大小写;B.长度不限;C.不能用关键字和保留字作为标识符;D.可以包含空格6.给出下面代码的输出结果。
( D )public class ByteAdd {public static void main(String args[ ]){byte a=10;byte b=100;byte c;c=a+b;System.out.println(a+"+"+b+"="+c);} }A.输出零B.输出 10+100=110C. 编译时正确,运行时将产生错误;D.编译时将产生错误;二、程序阅读题1. 对于以下程序,运行“java Abs”,将得到什么打印结果?public class Abs{static int a=0x11;static int b=0011;static int c='\u0011';static int d=011;public static void main(String args[]){ System.out.println(a);System.out.println(b);System.out.println(c);System.out.println(d);}}179179类和对象年级专业 2019级软件工程专业学号姓名成绩一、选择题1. 为了在当前程序中使用ch4中的类,可以使用的语句是( A )。
19秋《C#》作业3------------------------1.面向对象编程中的“继承”的概念是指()A.对象之间通过消息进行交互B.派生自同一个基类的不同类的对象具有一些共同特征C.对象的内部细节被隐藏D.派生类对象可以不受限制地访问所有的基类对象正确答案:false2.下列类型中, 哪些不属于引用类型()。
A.StringB.intC.ClassD.Delegate正确答案:false3.在C#中,关于接口下面说法错误的是:()A.接口是一组规范和标准B.接口可以约束类的行为C.接口中只能含有未实现的方法D.接口中的方法可以指定具体实现,也可以不指定具体实现正确答案:false4.静态构造函数只能对()数据成员进行初始化。
A.静态B.动态C.实例D.静态和实例正确答案:"[A]"5.当运行程序时,系统自动执行启动窗体的()事件。
A.ClickB.DoubleClickC.LoadD.Activated正确答案:"[C]"6.使用()关键字可以再次引发捕获到的异常?A.NewB.thisC.throwD.Exception正确答案:"[C]"7.下列关于C#面向对象应用的描述中,哪项是正确的?()。
A.派生类是基类的扩展,派生类可以添加新的成员,也可去掉已经继承的成员B.abstract方法的声明必须同时实现C.声明为sealed的类不能被继承D.接口像类一样,可以定义并实现方法正确答案:"[C]"8.C#数组主要有三种形式,它们是()。
A.一维数组、二维数组、三维数组B.整型数组、浮点型数组、字符型数组C.一维数组、多维数组、不规则数组D.一维数组、二维数组、多维数组正确答案:"[C]"9.下列关于数组访问的描述中,哪个选项是错误的( )A.数组元素索引是从0开始的B.对数组元素的所有访问都要进行边界检查C.如果使用的索引小于0,或大于数组的大小,编译器将抛出一个IndexOutOfRangeException异常;D.数组元素的访问是从1开始,到Length结束;正确答案:false10.C#中TestClass为一自定义类,其中有以下属性定义public void Property{…}使用以下语句创建了该类的对象,并使变量obj引用该对象:TestClass obj = new TestClass();那么,可通过什么方式访问类TestClass的Property属性()A.Obj.PropertyB.MyClass.PropertyC.obj :: PropertyD.obj.Property ()正确答案:"[A]"------------------------1.z=x>y x:y的含义是获取x和y中的较大值并且赋给z。
学堂在线《面向对象程序设计C++》习题(作业部分)作业一多选题(2分)C++源程序不能直接运行,需要经过如下哪些步骤,才能得到可以运行的程序?A.编译器B.链接器C.汇编器D.编辑器正确答案:AB判断题(1分)C++源程序必须使用两个以上的文件来存放,才能编译链接成可执行程序。
正确答案:×多选题(2分)关于main()函数的参数,以下说法正确的是A.不使用参数也是允许的B.若带参数,则第一个参数是整数类型C.若带参数,则第二个参数是字符串数组D.参数名称只能使用argc和argv正确答案:ABC多选题(2分)为防止头文件重复包含,以下书写错误的是A.错误B.错误C.错误D.错误正确答案:ABCD作业二多选题(2分)下列哪些语句可以完成对数组的初始化A.char name[10] = "THU OOP";B.char course[4] {'O', 'O', 'P'};C.int year[5] {2016, 2017, 2018};D.int score[] = {60, 80, 90};正确答案:ABCD多选题(2分)下列哪些写法不正确A.int* ptr = new int;B.int* ptr = new int(3);C.int * ptr = new int[3];D.int* ptr = new int{3};E.int* ptr = new[] int;F.int ** ptr = new int[4][5];正确答案:EF多选题(2分)下列关于for循环语句的写法,正确的是:A.第1句B.第2句C.第3句D.第4句正确答案:ABCD判断题(1分)函数重载时,函数名必须一样,函数参数必须不同,至于函数返回值类型,则没有限定。
正确答案:√单选题(1分)以下关于函数参数缺省值的说法,正确的是:A.当有多个函数参数时,任意一个都可以设置缺省值B.若只有一个参数,则不能设置缺省值C.只有整数参数才能设置缺省值D.仅允许从函数参数列表的最后一个开始依次设置缺省值(一个或多个)正确答案:D判断题(1分)函数返回类型,既可以放在函数名前面(左边),也可以使用追踪返回类型的语法放到函数名的后面(右边)正确答案:√多选题(2分)关于类成员的访问权限,以下说法正确的是:A.访问权限可以成组设置B.相同权限的成员,可以共用一个权限设置C.同一权限说明不能出现多次D.private必须在public之前出现正确答案:AB单选题(1分)下列关于私有成员的说法,正确的是A.即使是类的成员函数,也不能访问私有成员B.对象通过成员操作符,是可以访问自己隐藏的私有成员的C.私有数据只能被私有成员函数访问,不能被公有成员函数访问D.私有数据成员不能与公有数据成员同名正确答案:D多选题(2分)关于类的成员函数定义,以下说法正确的是:A.既可以放在类中定义,也可以放在类外定义B.在类外定义时,函数名前要加”类名::“进行限定C.只有私有成员函数才能在类中进行定义D.私有成员函数只能在定中进行定义正确答案:AB判断题(1分)所谓this指针,只是一种概念,是为了帮助我们理解类的运作方式而引入的,实际上在成员函数的参数列表中并没有这种变量被传入。
《面向对象技术与C++》试卷答案(3)第一题填充题(10分,每1个空格1分)1.当使用带参数的流操纵算子时,程序中必须包含(iomanip)头文件。
2.复合对象中的成员对象是在建立复合对象之(前)建立的。
3.运算符new分配的动态内存要用运算符(delete) 回收。
如果在一个类的构造函数中使用new分配动态内存,则回收操作应在类的(析构)函数中完成。
4.struct成员的默认访问模式是(public),而class成员的默认访问模式是 (private)。
5.关键字(const) 指定了不可修改的对象或变量。
关键字(const) 指定一个类的成员不会修改类中的数据成员。
6.重载赋值运算符operator= 时,应将其声明为类的(成员)函数。
7.C++中的输入/输出是以字节(流) 的形式实现的。
第二题指出下列程序段中的错误,说明错误原因(10分,每1小题5分)1.class Rational { //表示有理数的类声明public:void Rational (int,int); //第1个参数为分子,第2个参数为分母// 其他成员函数的原型说明private:void Rational ( ); //默认的数为0,其分子表示为0,分母表示为1int a = 0 , b = 1;}1) void Rational(); 构造函数的访问属性应为public2) 两个构造函数都不能指定返回类型3)int a = 0 , b = 1; 不能直接赋初值4)最后少了一个分号(;)2.class myClass {public:myClass(char a, int b) { v = a ; si = b ; }void f1(int i = 10) const { v = v + i ; }static int f2() { return v + si; }private:char v;static int si;} ;1) static函数f2()不能访问非static成员v2) 构造函数中不能对static数据赋值3) const成员函数f1不能修改数据成员v4) static数据si需要在类声明的外面进行初始化第三题选择题 (10分,每1个空格1分)1.在VC++中,目标文件的扩展名为(B)[A] .cpp[B] .obj[C] .h[D] .exe2.通常情况下,模板函数的类型参数个数不能为(A)个。
面向对象的程序设计第3阶段XXX练习题答案。
共三个阶段,这是其中一个阶段,答案在最后。
XXX网络教育第三阶段练题答案考试科目:《面向对象的程序设计》第1章至第10章(总分100分)研究中心(教学点)批次:______ 层次:______ 专业:______学号:______ 身份证号:______ 姓名:______ 得分:______一、单选题(共8题,总分值8分,下列选项中有且仅有一个选项符合题目要求,请在答题卡上正确填涂。
)1.关于函数模板,描述错误的是()。
(1分)A。
函数模板必须由程序员实例化为可执行的函数模板。
B。
函数模板的实例化由编辑器实现。
C。
一个类定义中,只要有一个函数模板,则这个类是类模板。
D。
类模板的成员函数都是函数模板,类模板实例化后,成员函数也随之实例化。
2.关于read()函数的下列描述中,()是正确的。
(1分)A。
该函数只能从键盘输入中获取字符串。
B。
该函数只能用于文本文件的操作。
C。
该函数只能按规定读取指定数目的字符。
D。
从输入流中读取一行字符。
3.s类中提供的控制格式标志字中,()是转换为十六进制形式的标志常量。
(1分)A。
hexB。
octC。
decD。
right4.进行文件输入操作时应包含()文件。
(1分)A。
ifstream.hB。
fstream.hC。
ofstream.hD。
iostream.h5.关于异常的描述中,错误的是()。
(1分)A。
异常既可以被硬件引发,又可以被软件引发。
B。
运行异常可以预料,但不能避免,它是由系统运行环境造成的。
C。
异常是指从发生问题的代码区域传递到处理问题的代码区域的一个对象。
D。
在程序运行中,一旦发生异常,程序立即中断运行。
6.假设有函数模板定义如下:template<typename T>Max(T a。
T b。
T &c)c = a + b;}下列选项正确的是()。
(1分)A。
float x。
y。
float z。
Max(x。
2:#include 〈iostream〉using namespace std;class Date{public:Date(int,int,int);Date(int,int);Date(int);Date();void display();private:int month;int day;int year;};Date::Date(int m,int d,int y):month(m),day(d),year(y){}Date::Date(int m,int d):month(m),day(d){year=2005;}Date::Date(int m):month(m){day=1;year=2005;}Date::Date(){month=1;day=1;year=2005;}void Date::display(){cout<〈month〈〈"/”〈<day〈<”/”<<year〈<endl;}int main(){Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display();d2。
display();d3.display();d4。
display();return 0;}3:#include 〈iostream>using namespace std;class Date{public:Date(int=1,int=1,int=2005);void display();private:int month;int day;int year;};Date::Date(int m,int d,int y):month(m),day(d),year(y){}void Date::display(){cout〈〈month<<”/”<<day<〈"/"<〈year〈〈endl;}int main(){Date d1(10,13,2005);Date d2(12,30);Date d3(10);Date d4;d1.display();d2.display();d3。
面向对象程序设计技术作业三一、填空题1、假定p所指对象的值为28,p+1所指对象的值为62,则*p++的值为28 。
2、假定p所指对象的值为28,p+1所指对象的值为62,则*++p的值为62 。
3、假定p所指对象的值为25,p+1所指对象的值为50,则执行”(*p)++;”语句后,p所指对象的值为26 。
4、假定p所指对象的值为25,p+1所指对象的值为50,则执行”*(p++);”语句后,p所指对象的值为50 。
5、假定a是一个指针数组,则a+I所指对象的地址比a地址大4*I 字节。
6、假定a是一个一维数组,则a [i]的指针访问方式为*(a+i)。
7、假定a是一个二维数组,则a[i][j]的指针访问方式为*(*(a+i)+j) 。
8、假定a是一个一维数组,则a[i]对应的存储地址(以字节为单位)为a+4*j 。
9、假定一个二维数组为a[M][N],则a[i][j]对应的存储地址(以字节为单位)为a+4*i*N+4*j 。
10、假定一个二维数组为a[M][N],则a[i]的地址值(以字节为单位)为a+4i*N 。
11、假定p是一个指向float型数据的指针,则p+1所指数据的地址比p所指数据的地址大 4 字节。
12、假定a为一个字符数组名,则元素a[8]的字节地址为a+8 。
13、假定a为一个整型数组名,则元素a[4]的字节地址为a+16 。
14、假定一个结构类型的定义为”struct A{int a, b;short c;A * d;};”,则该类型的大小为14 字节。
15、假定一个结构类型的定义为”struct B{int a[8];char*b;};”,则该类型的大小为36 字节。
16、假定一个结构类型的定义为”struct D{int a;union{int b;double c;};D*d[3];};”,则该类型的大小为24 字节。
17、假定要动态分配一个类型为Worker的具有n个元素的数组,并由r 指向这个动态数组,则使用的语句为Worker *r=new Worker[n] 。
18、假定要访问一个结构x中的由a指针成员所指向的对象,则表示方法为*(x.a) 。
19、假定要访问一个结构指针p所指对象中的b指针成员所指的对象,则表示方法为*((*p).b)或*(p->b) 。
二、写出下列程序运行后的输出结果1.# include <iomanip.h>void main(){int a[8]={7,9,11,13,3,8,15,17};int *p=a;for(int i=0;i<8;i++){cout<<setw(5)<<*p++;if ((i+1)%4==0) cout<<endl;}}输出结果:2.# include <iomanip.h>void main(){int a[5]={3,6,15,7,20};int *p=a;for(int i=0;i<5;i++)cout<<setw(5)<<*p++;cout<<endl;for(i=0;i<5;i++)cout<<setw(5)<<*--p;cout<<endl;}输出结果:3.# include <iomanip.h>void main(){int a[8]={4,8,12,16,20,24,28,32};int *p=a;do{cout<<*p<<' ';p+=3;}while(p<a+8);cout<<endl;}输出结果:4.# include <iomanip.h>void main(){int x=20,y=40,*p;p=&x;cout<<*p<<' ';*p=x+10;p=&y;cout<<*p<<endl;*p=y+20;cout<<x<<' '<<y<<endl; }输出结果:5.# include <iomanip.h>int LA(int *a,int n){int s=0;for(int i=0;i<n;i++)s+=a[i];return s;void main(){int a[]={5,10,15,20,25,30};int b=LA(a,5);int c=LA(a+3,2);cout<<b<<' '<<c<<' '<<b+2*c<<endl; }输出结果:6.# include <iomanip.h>void LC(int a,int b){int x=a;a=b;b=x;cout<<a<<' '<<b<<endl;}void main(){int x=15,y=36;LC(x,y);cout<<x<<' '<<y<<' '<<endl;}输出结果:7.# include <iomanip.h>void LF(int &x,int y){x=x+y;y=x+y;cout<<"x="<<x<<",y="<<y<<endl; }void main(){int x=5,y=8;cout<<"x="<<x<<",y="<<y<<endl;LF(x,y);cout<<"x="<<x<<",y="<<y<<endl; }输出结果:8.# include <iomanip.h>void LG(int * &a,int &m){a=new int[m];int *p=a;for(int i=0;i<m;i++)*p++=2*i+1;}void main(){int *p,n=5;LG(p,n);for(int i=0;i<n;i++)cout<<p[i]<<' ';cout<<endl;delete []p;}输出结果:9.# include <iomanip.h>void LH(int * a,int n){int *p=a+n-1;while(a<p){int x=*a;*a=*p;*p=x;a++;p--;}}void main(){int *d=new int[5];int i;for(i=0;i<5;i++){d[i]=2*i+3;cout<<setw(5)<<d[i]<<' ';}cout<<endl;LH(d,5);for(i=0;i<5;i++){cout<<setw(5)<<d[i]<<' ';}cout<<endl;delete []d;}输出结果:10.# include <iomanip.h>void LH(int * a,int n){int *p=a+n-1;while(a<p){int x=*a;*a=*p;*p=x;a++;p--;}}void main(){int *d=new int[5];int i;for(i=0;i<5;i++){d[i]=2*i+3;cout<<setw(5)<<d[i]<<' ';}cout<<endl;LH(d,5);for(i=0;i<5;i++){cout<<setw(5)<<d[i]<<' ';}cout<<endl;delete []d;}输出结果:11.# include <iostream.h># include <string.h>struct Worker{char name[15];//姓名int age;//年龄float pay;//工资};void main(){Worker x;char *t="liouting";int d=46;float f=725;strcpy(,t);x.age=d;x.pay=f;cout<<<<' '<<x.age<<' '<<x.pay<<endl; }输出结果:三、写出下列每个函数的功能1.# include <iostream.h>void LI(int n){int *a=new int[n],*p=a+n;for(int i=0;i<n;i++) cin>>a[i];for(i=n-1;i>=0;i--) cout<<*(--p)<<' ';cout<<'\n';delete []a; }2.# include <iostream.h>void LK(int a[],int n,int *&b,int &m){float s=0;int i;for(i=0;i<n;i++)s+=a[i];s/=n;m=0;for(i=0;i<n;i++)if(a[i]>=s) m++;b=new int[m];int *p=b;for(i=0;i<n;i++)if(a[i]>=s) *p++=a[i];}void main(){int x[]={1,2,3,4,5,6,7,8,9,0},*y,z;LK(x,10,y,z);for(int i=0;i<10;i++) cout<<x[i]<<' ';cout<<endl;cout<<z<<' '<<endl;for(i=0;i<z;i++) cout<<y[i]<<' ';cout<<endl;}3.# include <iostream.h>//struct Worker{//char name[15];//姓名//int age;//年龄//float pay;//工资//};istream &operator>>(istream &istr,Worker &x){cout<<"请输入一个职工记录:姓名、年龄、工资"<<endl;istr>>>>x.age>>x.pay;return istr;}void main(){Worker a;cin>>a;cout<<<<a.age<<a.pay<<endl;}4.//# include <iostream.h>//struct StrNode{// char name[15];//字符串// StrNode *next;//指针域//};void QB(StrNode *& f,int n){if (n==0){f=NULL;return;}f=new StrNode;cin>>f->name;StrNode * p=f;while(--n){p=p->next=new StrNode;cin>>p->name;}p->next=NULL;}void main(){StrNode *x;QB(x,5);//for(int i=0;i<5;i++){while (x){cout<<x->name<<' ';x=x->next;}}5.//struct StrNode{ char name[15];StrNode *next;}; void QC(StrNode * f){while (f){cout<<f->name<<' ';f=f->next;}}void main(){StrNode * f;int n=5;f=new StrNode;cin>>f->name;StrNode * p=f;while(--n){p=p->next=new StrNode;cin>>p->name;}p->next=NULL;QC(f); }。