浙江大学远程教学教育2018年度面向对象程序设计在线课后复习标准答案
- 格式:doc
- 大小:1.42 MB
- 文档页数:26
(0837)《面向对象程序设计》网上作业题及答案1:第一次作业2:第二次作业3:第三次作业4:第四次作业5:第五次作业6:第六次作业1:[论述题]编写一个简单的乘法器,界面如下图所示,在第一个文本框中输入第一个乘数;在第二个文本框中输入第二个乘数;当单击"=”按钮时,在第三个文本框中输出其乘积。
参考答案:问题(1):Java程序分为Java应用程序(或Java application)和Java小应用程序(或Java applet);这段程序是Java小应用程序。
问题(2):界面上包含一个标签(JLabel),一个按钮(JButton)和一个文本框(JTextField);点击按钮后,文本框内显示“好好学习,天天向上”。
问题(3):ActionListener是动作事件监听器接口;方法actionPerformed()是ActionListener中的方法;其功能是处理applet界面里发生的动作事件。
2:[论述题]请设计一个软件包。
要求该软件包至少拥有正方形类、圆类。
要求每个类都具有构造方法、计算该图形的周长的成员方法和计算该图形的面积的成员方法。
然后编写一个测试程序,分别创建这些类的实例对象,并输出这些实例对象的周长和面积。
在创建这些实例对象时,构造方法的调用参数值分别是:正方形:左上定点的坐标为(5,10),边长为15。
圆形:圆心的坐标为(0,0),圆心为15。
参考答案:问题(1):Test3是SuperTest的子类(或SuperTest是Test3的父类,或继承关系)。
问题(2):super指对象的父类(或超类);this指使用它的对象本身(或对对象自己的引用)。
问题(3):程序的输出是:Hi, I am OliveNice to meet you!Age is 7My age is 7My parent's age is 353:[论述题]编写一个程序,要求随机生成61个学生的成绩(从0到100的整数),在将成绩排序(由高到低)后保存到文件"score.txt”中。
面向对象程序设计课后答案(完整版)第二章2-4#includeusing namespace std;Add(int a,int b);int main(){int x,y,sum;cout>x>>y;sum = add(x,y);cout >*p;p++;}p = p-20;for( i=0;i0) countp++;if(*p>age ;try{checkagescore(name,age);}catch( string){cout<<"exception :name is exit"<<endl;continue;}catch(int){cout<<"exception :age is not proper"<<endl;continue;}cout<<"name:"<<name<<" age :"< }return 0;}第三章3-1(1)A (2)C (3)B (4)C (5)C(6)B (7)B (8)C (9)C3-7(1)main()函数中p1.age = 30;语句是错误的。
age 是类的私有成员(2)构造函数应当给常数据成员和引用成员初始化,将构造函数改为:A(int a1,int b1):a(a1),b(b1){}或A(int a1 ):a(a1),b(a){}再将main中的A a(1,2); 改为A a(1);(3)(1)在Test 类中添加语句:void print();void Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}改为void Test::Print(){cout<<x<<"-"<<y<<"="<<x-y<<endl;}main函数中Init(38,15);改为:A.Init(38,15);Print();改为:A.Print();3-8(1)Constructing AConstructing BDestructing BDestructing A(2)double a,double bpoint & pp.x3-9class box{int len1,len2,len3;public:box(int l1,int l2,int l3){len1 = l1;len2 = l2; len3 = l3;} long volumn(){return len1*len2*len3;}};3-10class Test{int m1,m2;public:void Init(int a,int b){m1 = a;m2 = b;}void Pring(){cout<<m1<<" "<<m2<<endl;}};3-11略3-12}第四章4-6(1)D (2)D (3)D (4)D (5)B(6)D4-7(1)static int count = 0;这样初始化静态成员值是不对的将其改为static int count;在类外,main函数前加int Sample::count = 0;(2)#include//#includeusing namespace std;class Ctest{private:int x; const int y1;public:const int y2;Ctest(int i1,int i2):y1(i1),y2(i2) {y1 =10;//y1 为常量不能赋值x = y1;}int readme() const;};int Ctest::readme ()const{int i;i = x;x++; //常函数内不能改变成员值return x;}int main(){Ctest c(2,8);int i = c.y2;c.y2 = i;//y2为常量,不能改值i = c.y1;//y1私有,类外不能访问return 0;}将出错语句全部注释4-8(1)题中印刷错误,将class C构造函数改为: C(){cout<<"constructor C:";}运行结果为:constructor Aconstructor Bconstructor C(2)40(3)3434-9#include#includeclass Date{int year;int month;int day;public:Date(int y,int m,int d){year=y;month=m;day=d;}void disp(){cout<<year<<" "<<month<<" "<<day<<endl;}friend int count_day(Date &d,int k);friend int l(int year);friend int h(Date &d1,Date &d2);};int count_day(Date &d,int k){static int day_tab[2][12]={{31,28,31,30,31,30,31,31,30,31,30,3 1},{31,29,31,30,31,30,31,31,30,31,30,31}};// 使用二维数组存放各月天数,第一行对应非闰年,第二行对应闰年int j,i,s;if(l(d.year))j=1;//闰年,取1else j=0;//非闰年,取0if(k)//K非0时{s=d.day;for(i=1;i<d.month;i++)//d.month为输入的月份s+=day_tab[j][i-1];}else//K为0时{s=day_tab[j][d.month]-d.day;for(i=d.month+1; i<=12; i++)s+=day_tab[j][i-1];}return s;//S为相差的天数}int l(int year){if(year%4==0&&year%100!=0||year%400==0) // 是闰年return 1;else // 不是闰年return 0;}int h(Date &d1,Date &d2){int days,day1,day2,y;if(d1.year<d2.year)//第一个日期年份小于第二个日期年份{days=count_day(d1,0);for(y=d1.year+1;y<d2.year;y++)if(l(y))//闰年。
浙江大学远程教育学院《面向对象程序设计》课程作业答案第2章【】测试下面的注释(它在C++风格的单行注释中套入了类似于C的注释)是否有效。
name[3]='a'; B. name="lin";C. name=new char[5];D. cout<<name[3];【】假设已经有定义“char * const name="chen";”下面的语句中正确的是( A )。
A. name[3]='q';B. name="lin";C. name=new char[5];D. name=new char('q');【】假设已经有定义“const char * name="chen";”下面的语句中错误的是(A )。
A. name[3]='q';B. name="lin";C. name=new char[5];D. name=new char('q');【】重载函数在调用时选择的依据中,( B )是错误的。
A.函数名字 B.函数的返回类型C.参数个数 D.参数的类型【】在( A )情况下适宜采用内联函数。
A.函数代码小,频繁调用 B.函数代码多,频繁调用C.函数体含有递归语句 D. 函数体含有循环语句【】下列描述中,( C)是错误的。
A. 内联函数主要解决程序的运行效率问题B. 内联函数的定义必须出现在内联函数第一次被调用之前C. 内联函数中可以包括各种语句D. 对内联函数不可以进行异常接口声明【】在C++中,关于下列设置默认参数值的描述中,( B )是正确的。
A.不允许设置默认参数值B.在指定了默认值的参数右边,不能出现没有指定默认值的参数C.只能在函数的定义性声明中指定参数的默认值D. 设置默认参数值时,必须全部都设置【】下面的类型声明中正确是( D )。
3. #include <iostream.h>class A{int i;public:virtual void fun()=0;A(int a){i=a;}};class B:public A{int j;public:void fun(){cout<<"B::fun()\n"; }B(int m,int n=0):A(m),j(n){}};void main(){A *pa;B b(7);pa=&b;}答案:B(int m,int n=0):A(m),j(n){}因为基类是抽象类,不能被实例化,所以在派生类中不能调用初始化基类对象。
所以B(int m,int n=0):A(m),j(n){}错误,删去A(m)。
[修改]B(int m,int n=0):j(n){}4. #include <iostream.h>class X{public:int x;public:X(int x){cout<<this->x=x<<endl;}X(X&t){x=t.x;cout<<t.x<<endl;}void fun(X);};void fun(X t){cout<<t.x<<endl;}void main(){fun(X(10));}答案:cout<<this->x=x<<endl;要输出this->x=x表达式的值要加括号。
[修改]cout<<(this->x=x)<<endl;5. #include <iostream.h>#include <string.h>class Bas{public:Bas(char *s="\0"){strcpy(name,s);}void show();protected:char name[20];};Bas b;void show(){cout<<"name:"<<<<endl;}void main(){Bas d2("hello");show();}答案:void show();是普通函数不是成员函数,但是要访问类成员,需要定义为友元函数。
第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对彖程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对彖程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般由类的定义和类的使用两部分组成,在主程序中定义各对彖并规定它们之间传递消息的规律。
第二: 程序中的一切操作都是通过向对彖发送消息来实现的,对彖接受到消息后,启动有关方法完成相应的操作。
面向对彖程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希塑、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对彖程序设计中,对彖是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对彖程序设计中,类就是具有相同的数据和相同的操作的一组对彖的集合,也就是说, 类是对具有相同数据结构和相同操作的一类对彖的描述。
类和对彖之间的关系是抽象和具体的关系。
类是多个对彖进行综合抽象的结果,一个对象是类的一个实例。
在面向对彖程序设计中,总是先声明类,再由类生成对象。
类是建立对彖的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对彖是现实世界中的一个实体,其具有以下一些特征:(1)每一个对彖必须有一个名字以区别于其他对彖。
(2)需要用属性来描述它的某些特性。
(3)有一组操作,每一个操作决定了对象的一种行为。
(4)对彖的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36生口:1966.10.1工资:2000部门:人爭部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对彖程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
第一章1.public class BegintoLearn{public static void main(String args[]) {System.out.println("I’d like to study Java ! ");}}2.public class TraStar{public static void main(String args[]) {System.out.println("*");System.out.println("* *");System.out.println("* * *");System.out.println("* * * *");System.out.println("* * * * *");}}第二章1.public class ProNum{public static void main(String args[]) {float p;long q;int m=10,n=5;System.out.println("m="+m+" n="+n);m=m+3;n=n+5;System.out.println("m="+m+" n="+n);p=(float)(m+n)/2;System.out.println("p="+p);q=(m*m*n*n);System.out.println("q="+q);}}2.class SphereClass {public static void main(String args[]) {int r=3;double v;v=3.14*r*r*r*4/3;System.out.println("V="+v)}}第三章1. import java.io.*;public class InNum{public static void main(String args[]) throws IOException{ int num1,num2;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input first integer:");str=buf.readLine();num1=Integer.parseInt(str);System.out.print("Input second integer:");str=buf.readLine();num2=Integer.parseInt(str);System.out.println("The sum is "+(num1+num2));}}2.import java.io.*;public class Grade{public static void main(String args[]) throws IOException{ int score;char ch;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the score(0-100):");str=buf.readLine();score=Integer.parseInt(str);if (score>=90)ch='A';else if (score>=75)ch='B';else if (score>=60)ch='C';elsech='D';System.out.print("The Grade is "+ch);}}3.public class ShuLie{public static void main(String args[]){int a ,q ,n;q=(150-135)/5;a=(135-20*q)/5;for (n=0;n<10;n++)System.out.print((a+n*q)+" ");}}4.public class Pyramid{public static void main(String args[]){int i,j,k;for(i=0;i<=4;i++){for ( j=0;j<20-i;j++)System.out.print(" ");for (k=0;k<=2*i;k++)if (k<=i)System.out.print(" "+(2*k+1));elseSystem.out.print(" "+(2*(2*i-k)+1));System.out.println();}}}5.import java.io.*;public class PrimeNumber{public static void main(String args[]) throws IOException{ int n=0;int m;String str;boolean mark=false;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);for(int i=3;i<=m;i+=2){for(int j=2;j<i;j++){if(i%j==0){mark=true;break;}}if (!mark){System.out.print(" "+i);n++; //outputanewlineif(n%10==0) //after10numbersSystem.out.println();}mark=false;}System.out.println();}}6.import java.io.*;public class Factor12{public static void main(String args[]) throws IOException{ int m;String str;BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);System.out.print(m+"\'s factors are: ");System.out.println( );for(int i=1;i<=m;i++)if (m%i==0)System.out.print(" "+i);}}7.public class MSteel{public static void main(String args[]){int d=0;float m=2000;while (m>=5) {m=m/2;d++;System.out.print(d+": ");System.out.println(m);}System.out.print("You need "+d+" days");}}8.public class AlmostPi{public static void main(String args[]){int n;long m;double s,t;n=1;m=0;s=0;do{t=(double)n/(2*m+1);m++;n=-n;s=s+t;} while (4*s-3.14159> 0.0000001 || 4*s-3.14159< -0.0000001);System.out.println(m);}}9.public class LSRnd{public static void main(String args[]){int mun,n,max1,min1;max1=0;min1=100;for (n=1;n<=10;n++){mun=(int)(100*Math.random());System.out.print(mun+" ");if (mun>max1)max1=mun;if (mun<min1)min1=mun;}System.out.println();System.out.println("The largest number is: "+max1);System.out.println("The smallest number is: "+min1);}}10.import java.io.*;public class StrArry{public static void main(String args[]) throws IOException{int m;String str;Stringmonth[]={"January","February","March","April","May","June","July","August","september","October","November","December"};BufferedReader buf;buf=new BufferedReader(new InputStreamReader(System.in));System.out.print("Input the m:");str=buf.readLine();m=Integer.parseInt(str);if (m>=1 && m<=12)System.out.println(month[m-1]);elseSystem.out.print("Your Input is wrong");}}第四章1.import java.util.*;public class Person{private String name;private char sex;private int year,month;public Person( ){}public Person(String nm,char sx,int y,int m) {name=nm;sex=sx;year=y;month=m;}public void printPerson( ) {Calendar now=Calendar.getInstance();int age=now.get(Calendar.YEAR)-year;System.out.println("Name: "+name+",Sex: "+sex+", Age: "+age);}public static void main(String args[]){Person pe1=new Person("Tom",'m',1980,10);pe1.printPerson();}}2.public class Rectangle{double width,length,girth,area;public Rectangle(){};public Rectangle(double wd,double le) {width=wd;length=le;}public void setWidth(double wd) {width=wd;}public void setLength(double le) {length=le;}public double getWidth( ) {return width;}public double getLength( ) {return length;}public double girth(){return 2*(width+length);}public double area(){return width*length;}public void printRectangle(){System.out.println("Width="+width+" ,Length="+length);}public static void main(String args[]){Rectangle re1=new Rectangle(10,20);Rectangle re2=new Rectangle();re2.setWidth(3);re2.setLength(4);re1.printRectangle();System.out.println("Girth="+re1.girth()+",Area="+re1.area());re2.printRectangle();System.out.println("Girth="+re2.girth()+",Area="+re2.area());}}3.public class Matrix{ private int mx[][],m,n; public Matrix(int r,int c) { m=r;n=c;mx=new int[m][n];iniMatrix();}public Matrix(){m=3;n=3;mx=new int[3][3];iniMatrix();}public void iniMatrix(){ int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=(int)(Math.random()*100); }public void tranMatrix(){int i,j,t;int mt[][]=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mt[i][j]=mx[i][j];t=m;m=n;n=t;mx=new int[m][n];for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mt[j][i];}public void printMatrix(){int i,j;for(i=0;i<=m-1;i++){for(j=0;j<=n-1;j++)System.out.print(" "+mx[i][j]);System.out.println();}}public void addMatrix(Matrix b) {int i,j;for(i=0;i<=m-1;i++)for(j=0;j<=n-1;j++)mx[i][j]=mx[i][j]+b.mx[i][j];} public static void main(String args[]){Matrix ma=new Matrix(4,3);Matrix mb=new Matrix(4,3);System.out.println("The matrix_A:"); ma.printMatrix();System.out.println("The matrix_B:"); mb.printMatrix();System.out.println("Matrix_A +Matrix_B:");ma.addMatrix(mb);ma.printMatrix();System.out.println("Transpose Matrix_B:");mb.tranMatrix();mb.printMatrix();}}4.public class Substring{public static void main(String args[]){String str1=new String("addActionListener");String str2=new String("Action");int n;n=str1.indexOf(str2);if(n>=0){System.out.println("String_2 is in String_1");System.out.println("The substring before String_2 is "+str1.substring(0,n));System.out.println("The substring behind String_2 is "+str1.substring(n+str2.length( )));}}} 五、写出程序运行后的结果1. 2.。
public class San_4 {// 编写一个应用程序求1!+2!+ (20)/*** @param args//本题考查对循环的运用和对算法的编写*/public static void main(String[] args) {// TODO Auto-generated method stubint a;double b = 1, sum = 0;// 定义变量for (a = 1; a <= 20; a++) {// for循环实现该功能b = b * a;// 当a=1时,b=b*a=1,依此类推sum = sum + b;// 当a=1时,sum=sum+b=1,依次类推}for (int w = 1; w <= 19; w++) {// for循环打印出阶乘之和的形式来System.out.print(w + "!" + "+");}System.out.println("20!" + "=" + sum);// 最终输出阶乘之和double sum1 = 0, a1 = 1;int i = 1;while (i <= 20)// 用while循环实现该功能{sum1 = sum1 + a1;i++;a1 = a1 * i;}System.out.println("sum1=" + sum1);}}输出结果:1!+2!+3!+4!+5!+6!+7!+8!+9!+10!+11!+12!+13!+14!+15!+16!+17!+18!+19!+20!=2.18203E18sum1=2.18203E18习题3_5public class San_5 {// 求100以内的素数/*** @param args//本题考查对for循环、break语句、if语句的运用*/public static void main(String[] args) {// TODO Auto-generated method stubint i, j;for (i = 2; i <= 100; i++) {// for循环从2开始,逐渐增1for (j = 2; j <= i / 2; j++) {// for循环从2开始,逐步增1if (i % j == 0) {// 如果i除以j的余数为0,则终止本次for循环break;}}if (j > i / 2) {// 如果j>i/2,输出iSystem.out.print(" " + i);}}}}2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 8389 97习题3_6public class San_6 {// 分别用while和for循环计算1+1/2!+1/3!+1/4!...的前20项和/*** @param args//本题考查同学们对while循环、for循环以及对输出字符串格式的运用 */public static void main(String[] args) {// TODO Auto-generated method stubint i = 1, k;double j = 1, m = 1, sum1 = 0, sum2 = 0;while (i <= 20) {// 用while循环实现sum1 = sum1 + j;i++;j = j * (1.0 / i);}System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}System.out.print("1/20!" + "=" + sum1);System.out.println();System.out.print("1+");for (int r = 2; r <= 19; r++) {System.out.print("1/" + r + "!" + "+");}for (k = 1; k <= 20; k++) {// 用for循环实现m *= (1.0 / k);sum2 += m;}System.out.println("1/20!" + "=" + sum2);}}计算结果:1+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.904551+1/2!+1/3!+1/4!+1/5!+1/6!+1/7!+1/8!+1/9!+1/10!+1/11!+1/12!+1/13!+1/14!+1/15!+1/16!+1/17!+1/18!+1/19!+1/20!=1.90455习题3_7public class San_7 {// 一个数如果恰好等于它的因子之和,这个数就成为”完数“。
实验一熟悉VC++IDE开发环境一、实验目的1、熟悉VC++6.0集成开发环境,熟练掌握VC++6.0项目工作区、各种编辑器、菜单栏和工具栏的使用。
2、掌握如何编辑、编译、连接和运行一个C++程序。
3、通过运行简单的C++程序,初步了解C++源程序的结构和特点。
二、实验要求1、分析下列程序运行的结果。
程序一:#include <iostream.h>int add(int x,int y=8);void main(){ int x=4;cout<<add(x)<<",";cout<<add(x,add(add(x,add(x))))<<endl;}int add(int x,int y){ return x+y;}//12,28程序二:#include <iostream.h>void main(){ int *p,i;i=5;p=&i;i=*p+10;cout<<"i="<<i<<endl;}//i=15程序三:#include <iostream.h>void main(void){ int i=10;int &r=i;r++;cout<<"i="<<i<<", r="<<r<<'\n';i=88;cout<<"i="<<i<<", r="<<r<<'\n';}//i=11,r=11i=88,r=88程序四:#include <iostream.h>int f(int i){ static int k=1;for(;i>0;i--)k +=i;return k;}void main(){ int i;for(i=0;i<5;i++)cout<<f(i)<<" ";}// 1 2 5 11 21程序五:#include <iostream.h>void func();int n=1;void main(){ static int a;int b= -9;cout <<"a:"<<a<<" b:"<<b<<" n:" <<n<<endl;b+=4;func();cout <<"a:"<<a<<" b:"<<b<<" n:"<<n<<endl;n+=10;func();}void func(){ static int a=2; int b=5;a+=2;n+=12;b+=5;cout <<"a:" <<a<<" b:" <<b<<" n:" <<n <<endl;}// a:0 b:-9 n:1a:4 b:10 n:13a:0 b:-5 n:13a:6 b:10 n:35实验二C++对C的扩充一、实验目的1、了解在面向对象程序设计过程中C++对C功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
窗体顶端您的本次作业分数为:95分单选题1.【第1章】不是面向对象系统的特性是()。
A 封装性B 继承性C 保密性D 多态性正确答案:C单选题2.【第1章】面向对象(O-O)程序设计是一种新的程序设计范型。
这种范型的主要特征是()。
A 程序=对象+消息B 程序=函数+调用C 程序=算法+数据D 程序=过程+调用正确答案:A单选题3.【第2章】以下叙述中不正确的是()。
A 在不同的函数中可以使用相同名字的变量B 函数中的形式参数是局部变量C 在一个函数内定义的变量只在本函数范围内有效D 在一个函数内的复合语句中定义的变量在本函数范围内有效正确答案:D单选题4.【第2章】假设已经有定义“char *Const name="chen";”下面的语句中正确的是()。
A name[3]='q';B name=C name=newChar[5];D name=newChar('q');正确答案:A单选题5.【第2章】下列选项中,当 x 为大于1 的奇数时,值为 0 的表达式是()。
A x%2==1B x%2==0C x%2!=0D x/2正确答案:B单选题6.【第2章】如果定义并初始化一个数组 int s[10]={1,2,3,4,5,6,7,8,9,10};则执行printf("%d\n",a[a[1]*a[2]])语句后的输出结果是()。
A 3B 4C 7D 2正确答案:C单选题7.【第2章】下面有关重载函数的说法中正确的是()。
A 重载函数必须具有不同的返回值类型B 重载函数形参个数必须不同C 重载函数必须有不同的形参列表D 重载函数名可以不同正确答案:C单选题8.【第2章】下面的类型声明中正确是()。
A int&a[4];B int&*p;C int&&q;D inti,*p=&i;正确答案:D单选题9.【第2章】在面向对象的程序设计C++中,当用cin、cout输入、输出时程序头部要()。
A #include<stdio.h>B #include<iostream.h>C #include<stdli正确答案:B单选题10.【第2章】若定义intA[2][3]={1,2,3,4,5,6};则值为4的数组元素是()。
A a[1][0]B a[1][1]C a[2][0]D a[2][1]正确答案:A单选题11.【第2章】关于new运算符的下列描述中,()是错误的。
A 它可以用来动态创建对象和对象数组B 使用它创建的对象或对象数组可以使用运算符delete删除C 使用它创建对象时要调用构造函数D 使用它创建对象数组时必须指定初始值正确答案:D单选题12.【第2章】执行x=-1; do { x=x*x; } while (!x);循环时,下列说法正确的是()。
A 循环体将执行一次B 循环体将执行两次C 循环体将执行无限次D 系统将提示有语法错误单选题13.【第2章】charA[10] = "abcde",B[8]= "fghi"; strcpy(a+3,b+1); printf("%d ",strlen(a) );执行下面程序后的输出结果为()。
A 5B 6C 9D 10正确答案:B单选题14.【第2章】下列语句中错误的是()。
A int*p=newint(10);B int*p=newint[10];C int*p=newint;D int*p=newint[40](0);正确答案:D单选题15.【第2章】下列表达式中,不正确的表达式是()。
A a=1,b=1B y=int(x)C a=b=5D i++正确答案:B单选题16.【第2章】在C程序中,如果有FILE *fp;则对于文件指针fp,下面说法正确的是()。
A fp是文件读写位置B 可以用一个fp同时对多个文件缓冲区操作C fp是用以描述文件缓冲区信息的结构的指针D 当对文件进行读写操作时,fp也跟着移动单选题17.【第2章】设有以下说明语句,则下面的叙述中不正确的是()。
struct XYZ {int x ;float y;Char z ;} xyz;A x,y,z都是结构成员名B structXYZ是结构类型名C struct是定义结构类型的关键字D XYZ是结构类型名正确答案:D单选题18.【第2章】表示year为闰年的c语言表达式为()。
A (year%4==0&&year%100?!=0)&&(year%400==0)B (year%4==0&&year%100?!=0)||(year%400==0)C (year%4==0)&&(year%400==0)D (year%4==0)||(year%400==0)正确答案:B单选题19.【第2章】假设已经有定义“constChar * name="chen";”下面的语句中错误的是()。
A name[3]='q';B name=C name=newChar[5];D name=newChar('q');正确答案:A单选题20.【第2章】下列条件语句中,功能与其他语句不同的是()。
A if(a)printf("%d\n",x);elseprintf("%d\n",y)B if(a==0)printf("%d\n",y);elseprintf("%d\n",x)C if(a!=0)printf("%d\n",x);elseprintf("%d\n",y)D if(a==0)printf("%d\n",x);elseprintf("%d\n",y)单选题21.【第2章】与数学式子对应的C语言表达式是()。
A 3*x^n/(2*x-1)B 3*x*n/(2*x-1)C 3*pow(x,n)/(2*x-1)D 3*pow(n,x)/(2*x-1)正确答案:C单选题22.【第2章】若有定义char *words[]={"FORTRAN", "BASIC","PASCAL","JAVA","C"};则输出结果为AVA的语句是()。
A printf("%s",*words[3]+1)B printf("%s",*words[4]+1)C printf("%s",*(words+3)+1)D printf("%s",(*words+4)+1)正确答案:C单选题23.【第2章】下列属于合法的C语言赋值语句的是()。
A a=b=58B i++C a=58,b=58D k=int(a+b)正确答案:A单选题24.【第2章】执行下列程序段后, int *p,A = 10,B=1;p = &b;A =a + (*p)++ ;变量a,b的值为:()。
A a=10,b=1B a=10,b=2C a=11,b=1D a=11,b=2正确答案:D单选题25.【第2章】表达式:36.5-(12+7%4)/2.0的运算结果是()类型。
A doubleB intC floatD char正确答案:A单选题26.【第2章】下列描述中,()是错误的。
A 内联函数主要解决程序的运行效率问题B 内联函数的定义必须出现在内联函数第一次被调用之前C 内联函数中可以包括各种语句D 对内联函数不可以进行异常接口声明正确答案:C单选题27.【第2章】以下各语句或语句组中,正确的操作是()。
A chars[6]="123456";B char*s;s="123456";C char*s;gets(s);D chars[6];scanf("%s",&s);正确答案:B单选题28.【第2章】C++程序中函数原型(函数声明)错误的写法是()。
A intAdd(intA,intB);B intAdd(int,int);C intAdd(intA,B);D intAdd(intA,int);正确答案:C单选题29.【第2章】关于delete运算符的下列描述中,()是错误的。
A 它必须用于new返回的指针B 使用它删除对象时要调用析构函数C 对一个指针可以使用多次该运算符D 指针名前只有一对方括号符号,不管所删除数组的维数正确答案:C单选题30.【第2章】已知有预编译指令#define s(a,b) (a*b),则执行语句i=1;Area=s(3, 5-i)+3;后,变量area的值为()。
A 14B 15C 16D 17正确答案:D单选题31.【第2章】在C++中,关于下列设置默认参数值的描述中,()是正确的。
A 不允许设置默认参数值B 在指定了默认值的参数右边,不能出现没有指定默认值的参数C 只能在函数的定义性声明中指定参数的默认值D 设置默认参数值时,必须全部都设置正确答案:B单选题32.【第2章】在()情况下适宜采用内联函数。
A 函数代码小,频繁调用B 函数代码多,频繁调用C 函数体含有递归语句D 函数体含有循环语句正确答案:A单选题33.【第2章】重载函数在调用时选择的依据中,()是错误的。
A 函数名字B 函数的返回类型C 参数个数D 参数的类型正确答案:B单选题34.【第3章】不是构造函数的特征是()。
A 构造函数与类同名。
B 构造函数必须说明返回类型。
C 构造函数可以有形式参数。
D 编译系统会自动调用构造函数。
正确答案:B单选题35.【第3章】关于成员函数特征的下述描述,不正确的是()。
A 成员函数一定要在类内定义。
B 成员函数可以重载。
C 成员函数可以设置参数的默认值。
D 可在类内定义。
正确答案:A单选题36.【第3章】对象是现实世界中的一个实体,其特性的是()。
A 必须有一个关键字,以示区别。
B 每个对象都有对象标识名。
C 只有数据属性。
D 只有操作函数。
正确答案:B单选题37.【第3章】C++中,类和对象之间的关系是()。
A 结构类型和结构体的关系。
B 定义和被定义的关系。
C 调用和被调用的关系。
D 型和值的关系。
正确答案:A单选题38.【第3章】现实世界中的对象,以下不是它的特性的是()。