2011面向对象程序设计 -信管10B答案
2011春 浙大远程 面向对象程序设计 在线答案
B 派生类还可以再作为另一派生类的基类
C 从派生类到基类称为派生
D 从派生类到基类称为继承
正确答案:C
18.关于抽象类的下列描述中,错误的是
A 如果一个类至少有一个纯虚函数,那么该类为抽象类
B 抽象类只能用作其他类的基类,不能建立抽象类对象
C 抽象类可以用来定义指针
C 构造函数
D 友员函数
正确答案:C
14.不是构造函数的特征是
A 构造函数与类同名
B 构造函数必须说明返回类型
C 构造函数可以有形式参数
D 编译系统会自动调用构造函数
正确答案:B
15.是构造函数的特征是
A 构造函数不能与类同名
B 构造函数必须说明返回类型
A 必须有一个关键字,以示区别
B 每个对象必须有一个名字
C 有属性
D 有操作
正确答案:A
52.不是面向对象系统的特性是
A 封装性
B 继承性
C 保密性
D 多态性
正确答案:C
53.类的概念是
A 所有对象的集合
B 同一类记录的集合
C 同一类数据的集合
D 所有对象的集合
正确答案:A
7.打开磁盘文件的打开方式中,以写方式打开文件为
A ios::ate
B ios::out
C ios::in
D ios::app
正确答案:B
8.在面向对象的程序设计中,定义类时保留字是用
A type
B class
C private
C 构造函数可以有形式参数
D 程序中必须有调用构造函数的语句
C++模拟试卷(2011年)及答案
面向对象程序设计答案(模拟卷)一、单选题(共15题,每题2分,共30分) 1、 D 2、 A 3、 D 4、 B 5、 C二、填空题(共8题,15空,每空1分,共15分) 1、(1)int *p=new int[3] (2)delete[] p; 2、(3)改造基类成员 (4)添加新成员 3、(5)this (6)正在被成员函数操作的对象 4、(7)5 (8)c1、b2、b3、A2、A3 5、(9)事件 (10)消息6、(11)类的名字(12)基类的名字7、(13)对话框(菜单)8、(14)模式 (15)无模式三、综合题(共7题,共40分) 1、(5分) 0 2 4 6 2、(8分,每空2分) (1)int *maxaddr (2)a[idx] (3)i < size (4)array[max]3、(5分)保护继承方式使基类的public 成员在派生类中的访问属性变为protected ,所以派生类Rectangle 的对象r 不能直接访问基类的成员函数move()、getx()和gety()。
其改正方法有两种:1) 将Rectangle 的继承方式改为公有继承public ;2) 在Rectangle 类中重定义move(),getx()和gety()函数,覆盖基类的同名函数。
void move(int x_off,int y_off) { Point::move(x_off,y_off); } int getx() { return Point::getx();} int gety() { return Point::gety();} 4、(5分)3 4 5、(6分)6、D7、B 8、C 9、A 10、B11、D 12、B 13、C 14、D 15、AData cons.Base cons.Data cons.Derived cons.Derived des.Data des.Base des.Data des.Press any key to continue6、重载的运算符的实现如下:(5分)SmallInt &SmallInt::operator+=(const SmallInt &si){SmallInt tmp(val+si.val);val=tmp.val;return *this;}或SmallInt &SmallInt::operator+=(const SmallInt &si){val+=si.val;if(val>127)val-=256;if(val<-128)val=256;return *this;}7、(6分)在视图区(客户区)画一个边框为蓝色实线的矩形。
面向对象程序设计课后答案(完整版)
第二章2-4#include <iostream>using namespace std;Add(int a,int b);int main(){int x,y,sum;cout<<"please input x and y:";cin>>x>>y;sum = add(x,y);cout <<x<<"+"<<y<<"="<<sum<<endl;}Add(int a,int b){return a+b;}2-5(1)this is a C++ program.(2)x=50.6 y=10 z=Ax=216.34 y=10 z=Ax=216.34 y=2 z=Ax=216.34 y=2 z=E(3)x y z500 1000 0500 1500 1500500 200 15002-6#include <iostream>using namespace std;int main(){int *p,*init;int countp=0;int countn=0;p = new int[20];init = p;for(int i=0;i<20;i++){cin>>*p;p++;}p = p-20;for( i=0;i<20;i++){if(*p>0) countp++;if(*p<0) countn++;cout<<*p<<" ";p++;}cout<<"正数有:"<<countp<<endl; cout<<"负数有:"<<countn<<endl;p = init;delete[] p;return 0;}2-7不做要求#include <iostream>//#include <string>using namespace std;void checkagescore(string name,int age) {if (name == "exit") throw name;if(age<0||age>50)throw age;int main(){string name;int age;for(int i=0 ;i<5 ;i++ ){cin.ignore ();getline(cin,name );cin>>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 :"<<age<<endl;}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;语句是错误的。
面向对象程序设计习题及答案
面向对象程序设计一、选择填空1. 关于C + +与C语言的关系描述中,(D)是错误的。
(A)C语言是C + +的一个子集 (B) C语言与C++是兼容的(C) C++对C语言进行了一些改进(D) C++和C语言都是面向对象的2. 下面关于对象概念的描述中,(B)是错误的。
(A )对象就是C语言的结构变量(B)对象代表着正在创建的系统中的一个实体(C)对象是一个状态的操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的3. 下面关于类概念的描述中,(D)是错误的。
(A )类是抽象数据类型的实现(B )类是具有共同行为的若干对象的统一描述体(C)类是创建对象的样板(D)类就是C语言的结构类型4. 按照标识符的要求,(A )符号不能组成标识符。
(A )连接符 (B)下划线 (C)大小写字母 (D)数字字符5. 下列符号中,(C)不可作为分隔符。
(A), (B) : (C)? ( D);6. 在16位机中,int型字宽为(A)字节。
(A ) 2 ( B) 4 ( C) 6 (D) 87. 类型修饰符unsigned修饰(D)类型是错误的。
(A)char ( B) int (C) long int (D) float& 对于int *pa[5];的描述,(D)是正确的。
(A)pa是一个指向数组的指针,所指向的数组是5个int型元素(B)pa是一个指向某数组中第5个元素的指针,该元素是int变量(C)pa[5]表示某个数组的第5个元素(D)pa是一个具有5个元素的指针数组,每个元素是一个int型指针。
9. 下列关于指针的运算中,(D)是非法的。
(A)两个指针在一定条件下,可以进行相等或不等的运算。
(B)可以有一个空指针赋值给某个指针。
(C)一个指针可以加上一个整数。
(D)两个指针在一定条件下,可以相加。
10. 指针可以用来表示数组元素,下列表示中( A )是错误的。
已知:int a[3][7];(A)*(a+1)[5] ( B) *(*a+3) (C) *(*(a+1)) (D) *(&a[0][0]+2)11. 下列表示引用的方法中,(A )是正确的。
面向对象程序设计B
专业年级:_________________ 学号_______________ 姓名_____________(注意:所有答案必须都写到答题纸上)一、选择题(每题1分,共25分)1.关于类和对象的说法正确的是______。
A、面向对象程序设计方法通过数据抽象和行为抽象,封装形成了“类”B、类具有的行为由变量表示。
C、类的属性一般由函数表示,且定义为public的D、类是具体的,对象是抽象的2.下面赋值语句错误的是。
A、char name[3]="abc";B、char name[3]={'a','b','c'};C、string name=”abc”;D、string name(“abc”);3.关于字符常量的写法,错误的是______。
A、'/'B、"a"C、'\t'D、'\0'4.下面C++标识符命名正确的是:______。
A、classB、@mailC、1varD、_inline5.下面基本数据类型初始化表达式错误的是______。
A、int i(5);B、float f=3.56f;C、char c='ab'D、double f=3.56;6.关于友元,下列说法错误的是______。
A、友元关系可以传递B、友元关系是单向的C、友元关系是不能被继承的D、友元的声明使用关键字friend7.下列函数原型声明中错误的是______。
A、void Fun(int x=0,int y);B、void Fun(int x,int y);C、void Fun(int x,int y=0);D、void Fun(int x=0,int y=0);8.有以下类定义class Point{int _x,_y;public:Point(int x=0,int y=0){_x=x;_y=y;}void Print() const{cout<<'('<<_x<<','<<_y<<')'<<endl;}void Move(int xOff,int yOff){_x+=xOff;_y+=yOff;}};下列语句中会发生编译错误的是______。
Java语言程序设计(面向对象程序设计)
1、下列关于类的描述中,错误的是()。
A.可以将所有类成员的访问权限都设为私有权限B.类可认为是一种高级数据类型C.类包含数据成员和函数成员D.用类所定义出的变量称为对象正确答案:A2、下列关于重用代码的描述中,错误的是()。
A.函数是重用算法代码的语法形式B.类是一种数据类型,因此只能重用数据代码C.结构体类型是重用数据代码的语法形式D.类是同时重用算法代码和数据代码的语法形式正确答案:B3、关于程序开发过程中的程序员角色,下列哪种描述是错误的?A.一个程序员可以使用其他程序员提供的代码,即代码使用者B.一个程序员可以既是代码提供者,同时又是代码使用者C.一个程序员不能既是代码提供者,同时又是代码使用者D.一个程序员可以为其他程序员提供代码,即代码提供者正确答案:C4、关于程序设计方法,下列哪种描述是错误的?A.结构化程序设计分解出的函数是一种算法零件B.程序设计方法是研究如何对大型程序设计任务进行分解的方法C.结构化程序设计分解出的结构体类型是一种数据零件D.面向对象程序设计分解出的类是一种数据零件5、下列哪种思想不属于面向对象程序设计?A.继承B.模块化C.抽象D.封装正确答案:B6、下列关于类的描述中,错误的是()。
A.可以用流程图来描述类的设计B.类是描述客观事物的数据模型C.类的数据成员也被称作属性D.类的函数成员也被称作方法正确答案:A7、按照面向对象程序设计的观点,下列关于对象描述中错误的是()。
A.客观世界中的事物被称作客观对象B.类是描述客观对象的数据模型C.程序中用类定义出的对象被称作内存对象D.同一个类所定义出的两个内存对象可以有不同的成员正确答案:D8、关于面向对象程序设计方法,下列哪种描述是错误的?A.面向对象程序设计方法所设计出的类代码不能重用B.面向对象程序设计方法更便于代码分类管理C.面向对象程序设计方法中的类是客观事物抽象后的数据模型D.面向对象程序设计方法是当今程序设计的主流方法9、假设编写一个教务管理系统,通过分析可抽象出若干个类,其中不应当包括下列哪个类?A.宿舍类B.教师类C.课程类D.学生类正确答案:A10、如果将客观世界中的钟表抽象成一个钟表类,其中不应当包含下列哪个成员?A.设置时间B.显示时间C.功率D.时、分、秒正确答案:C11、下列关于字段成员的描述中,错误的是()。
Java面向对象程序设计_习题解答(耿祥义)
书后习题参考答案习题1 2习题2 3习题3 4习题4 10习题5 11习题6 14习题7 15习题9 16习题12 20习题13 25习题14 27习题15 28习题16 31习题17 39习题11.James Gosling2.(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
命令:javac –d . 文件名称.java(3)使用Java解释器(java.exe)运行Java程序。
命令:java 包名.类名3.Java的源文件是由若干个书写形式互相独立的类、接口、枚举等组成。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.新建JAVA_HOME系统环境变量,指向安装目录在系统环境变量path中增加内容:%JAVA_HOME%\bin;新建系统环境变量classpath并填入三项:.; %JAVA_HOME%\lib\dt.jar; %JAVA_HOME%\lib\tools.jar5. B6. Java源文件的扩展名是.java。
Java字节码的扩展名是.class。
7. D8.(1)Speak.java(2)生成两个字节码文件,这些字节码文件的名字Speak.class和Xiti8.class(3)java Xiti8(4)执行java Speak的错误提示Exception in thread "main" ng.NoSuchMethodError: main执行java xiti8得到的错误提示Exception in thread "main" ng.NoClassDefFoundError: xiti8 (wrong name: Xiti8)执行java Xiti8.class得到的错误提示Exception in thread "main" ng.NoClassDefFoundError:Xiti8/class执行java Xiti8得到的输出结果I'm glad to meet you9.属于操作题,解答略。
面向对象程序设计教程-答案
面向对象程序设计教程-答案(共19页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--面向对象程序设计教程(C++语言描述)题解与课程设计指导第1章面向对象程序设计概论一、名词解释抽象封装消息【问题解答】面向对象方法中的抽象是指对具体问题(对象)进行概括,抽出一类对象的公共性质并加以描述的过程。
面向对象方法中的封装就是把抽象出来的对象的属性和行为结合成一个独立的单位,并尽可能隐蔽对象的内部细节。
消息是面向对象程序设计用来描述对象之间通信的机制。
一个消息就是一个对象要求另一个对象实施某种操作的一个请求。
二、填空题(1)目前有面向过程的结构化程序设计方法和面向对象的程序设计方法两种重要的程序设计方法。
(2)结构化程序设计方法中的模块由顺序、选择和循环3种基本结构组成。
(3)在结构化程序设计方法中,程序可表示为程序=数据结构+算法;而面向对象的程序设计方法,程序可表示为程序=对象+消息。
(4)结构化程序设计方法中的基本模块是过程;而面向对象程序设计方法中的基本模块是类。
(5)面向对象程序设计方法具有抽象性、封装性、继承性和多态性等特点。
三、选择题(至少选一个,可以多选)(1)面向对象程序设计着重于( B )的设计。
A. 对象B. 类C. 算法D. 数据(2)面向对象程序设计中,把对象的属性和行为组织在同一个模块内的机制叫做( C )。
A. 抽象B. 继承C. 封装D. 多态(3)在面向对象程序设计中,类通过( D )与外界发生关系。
A. 对象B. 类C. 消息D. 接口(4)面向对象程序设计中,对象与对象之间的通信机制是( C )。
A. 对象B. 类C. 消息D. 接口(5)关于C++与C语言的关系的描述中,( D )是错误的。
A. C语言是C++的一个子集B. C语言与C++是兼容的C. C++对C语言进行了一些改进D. C++和C语言都是面向对象的【结果分析】C语言是面向过程的。
第三章面向对象程序设计(答案)
学号:姓名:第三章面向对象程序设计作业一、判断题1、一个Java源程序可有多个类,但只仅有一个public 类,而且程序名与public 类名相同。
对2、如果类 A 和类B 在同一个包中,则除了私有成员外,类 A 可以访问类 B 中所有的成员。
对3、接口中的成员变量全部为常量,方法为抽象方法。
对4、抽象类可以有构造方法,可以直接实例化。
错5、对static 方法的调用可以不需要类实例。
对6、包含抽象方法的类一定是抽象类。
对7、方法中的形参可以和方法所属类的属性同名。
对8、接口无构造器,不能有实例,也不能定义常量。
错9、类的实例对象的生命周括实例对象的创建、使用、废弃、垃圾的回收。
对10、Java应用程序的入口main 方法只有一种定义法。
对二、选择题1、下列答案正确的是( A )A) 在同一个Java 源文件中可以包含多个类,只能有一个被声明为publicB) 在同一个Java 源文件中只能包含一个类,并被声明为publicC) 在同一个Java 源文件中可以包含多个类,都可以被声明为publicD) 在同一个Java 源文件中可以包含多个类,只能有一个被声明为default2、Java实现动态多态性是通过( B )实现的。
A) 重载B) 覆盖C) 接口D) 抽象类3、下列哪一个是正确的方法重载描述( A )A) 重载方法的参数类型必须不同B) 重载方法的参数名称必须不同C) 返回值类型必须不同D) 修饰词必须不同4、final 关键字不可以用来修饰( D )A) 类B) 成员方法C) 域D) 接口5、接口的所有成员方法都具有( B )属性A) private, final B) public, abstractC) static, protected D) static6、Java的封装性是通过( A )实现的A) 访问控制B) 设计内部类C) 静态域和静态方法D) 包7、下列接口或类不属于java.util.* 包的是( D )A) Collection B)Vector C) Map D) Integer8、下述哪一组方法,是一个类中方法重载的正确写法?( A )A) int addValue( int a, int b ){return a+b;}float addValue ( float a, float b) {return a+b;}B) int addValue (int a, int b ){value=a+b; }float addValue ( int a, int b) {return (float)(a+b);}C) int addValue( int a, int b ){return a+1;}int addValue ( int a, int b) {return a+b;}D) int addValue( int a, int b ) {return a+b;}int addValue ( int x, int y ) {return x+y;}9、下列说法哪个是正确的?( C )A) 子类不能定义和父类同名同参数的方法B) 子类只能继承父类的方法,而不能重载C) 重载就是一个类中有多个同名但有不同形参和方法体的方法D) 子类只能覆盖父类的方法,而不能重载10、对于下列代码:public class Parent {public int addValue( int a, int b) {int s;s = a+b;return s;}}class Child extends Parent {}下述哪个方法不可以加入类Child? ( B )A) public int addValue( int a, int b,int c ){// do something...}B) public void addV alue (int a, int b ){// do something...}C) public int addValue( int a ){// do something...}D) public int addValue( int a, int b ) {//do something...}11、以下程序段输出结果的是( B )public class A implements B {public static void main(String args[]) {int i;A c1 = new A();i= c1.k;System.out.println("i="+i);}}interface B {int k = 10;}A) i=0 B) i=10 C) 程序有编译错误D) i=true12、阅读下面的程序,输出结果是( B )public class TestDemo {int m=5;public void some(int x) {m=x;}public static void main(String args []) {new Demo().some(7);}}class Demo extends TestDemo {int m=8;public void some(int x) {super.some(x);System.out.println(m);}}A) 5 B) 8 C) 7 D) 编译错误13、下述哪个说法是不正确的?( A )A) 局部变量在使用之前无需初始化,因为有该变量类型的默认值B) 类成员变量由系统自动进行初始化,也无需初始化C) 参数的作用域就是所在的方法D) for 语句中定义的变量,当for 语句执行完时,该变量就消亡了14、下述那一个保留字不是类及类成员的访问控制符。
java面向对象程序设计 习题答案
java面向对象程序设计习题答案Java面向对象程序设计习题答案Java是一种广泛应用于软件开发的编程语言,而面向对象程序设计(Object-Oriented Programming,简称OOP)则是一种常用的编程范式。
在学习Java的过程中,习题是非常重要的一部分,通过解答习题可以帮助我们巩固所学的知识,并提升编程能力。
本文将为大家提供一些Java面向对象程序设计习题的答案,希望能对大家的学习有所帮助。
1. 编写一个Java类,实现一个简单的计算器功能。
该计算器应该具有加、减、乘、除四种基本运算功能,并能够接受用户输入的两个操作数和运算符。
在计算结果后,将结果输出给用户。
```javaimport java.util.Scanner;public class Calculator {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);System.out.print("请输入第一个操作数:");double num1 = scanner.nextDouble();System.out.print("请输入第二个操作数:");double num2 = scanner.nextDouble();System.out.print("请输入运算符(+、-、*、/):"); String operator = scanner.next();double result = 0;switch (operator) {case "+":result = num1 + num2;break;case "-":result = num1 - num2;break;case "*":result = num1 * num2;break;case "/":result = num1 / num2;break;default:System.out.println("无效的运算符!");return;}System.out.println("计算结果为:" + result);}}```2. 编写一个Java类,实现一个简单的学生管理系统。
c++面向对象程序设计课后习题答案
c++面向对象程序设计课后习题答案(谭浩强版)(总14页)页内文档均可自由编辑,此页仅为封面第一章5:#include <iostream> using namespace std;int main(){cout<<"This"<<"is";cout<<"a"<<"C++";cout<<"program."<<endl; return 0;}6:#include <iostream> using namespace std;int main(){int a,b,c;a=10;b=23;c=a+b;cout<<"a+b=";cout<<c;cout<<endl;return 0;}7:#include <iostream> using namespace std;int main(){int a,b,c;int f(int x,int y,int z);cin>>a>>b>>c;c=f(a,b,c);cout<<c<<endl;return 0;}int f(int x,int y,int z){int m;if (x<y) m=x;else m=y;if (z<m) m=z;return(m);}8: #include <iostream> using namespace std;int main(){int a,b,c;cin>>a>>b;c=a+b;cout<<"a+b="<<a+b<<endl; return 0;}9:#include <iostream>using namespace std;int main(){int add(int x,int y);int a,b,c;cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl; return 0;}int add(int x,int y){int c;c=x+y;return(c);}10:#include <iostream>using namespace std;int main(){void sort(int x,int y,int z); int x,y,z;cin>>x>>y>>z;sort(x,y,z);return 0;}void sort(int x, int y, int z){int temp;if (x>y) {temp=x;x=y;y=temp;} 2-4-12-4-22-5-12-5-2Box box1Box box1core; int k=0;for(int i=1;i<5;i++)if(arr[i].score>max_score) {max_score=arr[i].score;k=i;}cout<<arr[k].num<<" "<<max_score<<endl;}6:#include <iostream>using namespace std;class Student{public:Student(int n,float s):num(n),score(s){}void change(int n,float s) {num=n;score=s;}void display(){cout<<num<<" "<<score<<endl;}private:int num;float score;};int main(){Student stud(101,;();(101,;();return 0;}7: 解法一#include <iostream>using namespace std;class Student{public:Student(int n,float s):num(n),score(s){}void change(int n,float s) {num=n;score=s;}void display() {cout<<num<<" "<<score<<endl;}otal();Product::display();return 0;}10:#include <iostream>using namespace std;class Date;class Time{public:Time(int,int,int);friend void display(const Date &,const Time &); private:int hour;int minute;int sec;};Time::Time(int h,int m,int s){hour=h;minute=m;sec=s;}class Date{public:Date(int,int,int);friend void display(const Date &,const Time &); private:int month;int day;int year;};Date::Date(int m,int d,int y){month=m;day=d;year=y;}void display(const Date &d,const Time &t){cout<<<<"/"<<<<"/"<<<<endl;cout<<<<":"<<<<":"<<<<endl;int main(){Time t1(10,13,56);Date d1(12,25,2004);display(d1,t1);return 0;}11:#include <iostream>using namespace std;class Time;class Date{public:Date(int,int,int);friend Time;private:int month;int day;int year;};Date::Date(int m,int d,int y):month(m),day(d),year(y){ } class Time{public:Time(int,int,int);void display(const Date &);private:int hour;int minute;int sec;};Time::Time(int h,int m,int s):hour(h),minute(m),sec(s){ } void Time::display(const Date &d){cout<<<<"/"<<<<"/"<<<<endl;cout<<hour<<":"<<minute<<":"<<sec<<endl;}int main(){Time t1(10,13,56);Date d1(12,25,2004);(d1);return 0;}12:#include <iostream>using namespace std;template<class numtype>class Compare{public:Compare(numtype a,numtype b);numtype max();numtype min();private:numtype x,y;};template <class numtype>Compare<numtype>::Compare(numtype a,numtype b){x=a;y=b;}template <class numtype>numtype Compare<numtype>::max(){return (x>y)x:y;}template <class numtype>numtype Compare<numtype>::min(){return (x<y)x:y;}int main(){Compare<int> cmp1(3,7);cout<<()<<" is the Maximum of two integer numbers."<<endl;cout<<()<<" is the Minimum of two integer numbers."<<endl<<endl; Compare<float> cmp2,;cout<<()<<" is the Maximum of two float numbers."<<endl;cout<<()<<" is the Minimum of two float numbers."<<endl<<endl; Compare<char> cmp3('a','A');cout<<()<<" is the Maximum of two characters."<<endl;cout<<()<<" is the Minimum of two characters."<<endl;return 0;}第四章1:#include <iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;}double get_real();double get_imag();void display();private:double real;double imag;};double Complex::get_real(){return real;}double Complex::get_imag(){return imag;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;} Complex operator + (Complex &c1,Complex &c2) {return Complex()+(),()+());}int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c3=";();return 0;}2:#include <iostream>using namespace std;class Complex{public:Complex(){real=0;imag=0;}Complex(double r,double i){real=r;imag=i;} Complex operator+(Complex &c2);Complex operator-(Complex &c2);Complex operator*(Complex &c2);Complex operator/(Complex &c2);void display();private:double real;double imag;};Complex Complex::operator+(Complex &c2) {Complex c;=real+;=imag+;return c;}Complex Complex::operator-(Complex &c2) {Complex c;=;=;return c;}Complex Complex::operator*(Complex &c2) {Complex c;=real**;=imag*+real*;return c;}Complex Complex::operator/(Complex &c2) {Complex c;=(real*+imag*/*+*;=(imag**/*+*;return c;}void Complex::display(){cout<<"("<<real<<","<<imag<<"i)"<<endl;} int main(){Complex c1(3,4),c2(5,-10),c3;c3=c1+c2;cout<<"c1+c2=";();c3=c1-c2;cout<<"c1-c2=";();c3=c1*c2;cout<<"c1*c2=";();c3=c1/c2;cout<<"c1/c2=";();return 0;}3:#include <iostream> ,"president","135 Beijing Road,Shanghai","(021)",;( );return 0;}10:#include <iostream>#include <cstring>using namespace std;class Teacher um<<" "<<staf[i].name<<" "<<staf[i].age<<""<<staf[i].pay<<endl;((char *)&staf[i],sizeof(staf[i]));}cout<<"please input data you want insert:"<<endl;for(i=0;i<2;i++){cin>>>>>>>>;(0,ios::end);((char *)&staf1,sizeof(staf1));}(0,ios::beg);for(i=0;i<7;i++){((char *)&staf[i],sizeof(staf[i]));cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl; }bool find;cout<<"enter number you want search,enter 0 to stop.";cin>>num;while(num){find=false;(0,ios::beg);for(i=0;i<7;i++){((char *)&staf[i],sizeof(staf[i]));if(num==staf[i].num){m=();cout<<num<<" is No."<<m/sizeof(staf1)<<endl;cout<<staf[i].num<<" "<<staf[i].name<<" "<<staf[i].age<<" "<<staf[i].pay<<endl; find=true;break;}}if(!find)cout<<"can't find "<<num<<endl;cout<<"enter number you want search,enter 0 to stop.";cin>>num;}();return 0;}6:解法一#include <iostream>#include <strstream>using namespace std;struct student{int num;char name[20];double score;};int main(){student stud[3]={1001,"Li",78,1002,"Wang",,1004,"Fun",90},stud1[3];char c[50];int i;ostrstream strout(c,50);for(i=0;i<3;i++)strout<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" ";strout<<ends;cout<<"array c:"<<endl<<c<<endl<<endl;istrstream strin(c,50);for(i=0;i<3;i++)strin>>stud1[i].num>>stud1[i].name>>stud1[i].score;cout<<"data from array c to array stud1:"<<endl;for(i=0;i<3;i++)cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl;cout<<endl;return 0;}6:解法二#include <iostream>#include <strstream>using namespace std;struct student{int num;char name[20];double score;};int main(){int i;student stud[3]={1001,"Li",78,1002,"Wang",,1004,"Fun",90},stud1[3]; char c[50];strstream strio(c,50,ios::in|ios::out);for(i=0;i<3;i++)strio<<stud[i].num<<" "<<stud[i].name<<" "<<stud[i].score<<" ";strio<<ends;cout<<"array c:"<<endl<<c<<endl<<endl;for(i=0;i<3;i++)strio>>stud1[i].num>>stud1[i].name>>stud1[i].score;cout<<"data from array c to array stud1:"<<endl;for(i=0;i<3;i++)cout<<stud1[i].num<<" "<<stud1[i].name<<" "<<stud1[i].score<<endl; cout<<endl;return 0;}第八章1:#include <iostream>#include <cmath>using namespace std;double q(double,double,double);void main(){double a,b,c,p,x1,x2;cout<<"please enter a,b,c:";cin>>a>>b>>c;p=-b/(2*a);try{x1=p+q(a,b,c);x2=p-q(a,b,c);cout<<"x1="<<x1<<endl<<"x2="<<x2<<endl;}catch(double d){cout<<"a="<<a<<",b="<<b<<",c="<<c<<",disc="<<d<<",error!"<<endl;} cout<<"end"<<endl;}double q(double a,double b,double c){double disc;disc=b*b-4*a*c;if (disc<0) throw disc;return sqrt(disc)/(2*a);}2:#include <iostream>#include <string>using namespace std;class Student{public:Student(int n,string nam){cout<<"constructor-"<<n<<endl;num=n;name=nam;}~Student(){cout<<"destructor-"<<num<<endl;}void get_data();private:int num;string name;};void Student::get_data(){if(num==0) throw num;else cout<<num<<" "<<name<<endl;cout<<"in get_data()"<<endl;}void fun(){Student stud1(1101,"tan");();try{Student stud2(0,"Li");();}catch(int n){cout<<"num="<<n<<",error!"<<endl;}}int main(){cout<<"main begin"<<endl;cout<<"call fun()"<<endl;fun();cout<<"main end"<<endl;return 0;}3://main file#include <iostream>using namespace std;#include ""#include ""using namespace std;using namespace student1;int main(){Student stud1(1001,"Wang",18,"123 Beijing Road,Shanghua"); ();student2::Student stud2(1102,"Li",'f',;();return 0;}//,文件名为#include <string>namespace student1{class Student{public:Student(int n,string nam,int a,string addr){num=n;name=nam;age=a;address=addr;}void show_data();private:int num;string name;int age;string address;};void Student::show_data(){cout<<"num:"<<num<<" name:"<<name<<" age:"<<age<<" address:"<<address<<endl;}}//,文件名为#include <string>namespace student2{class Student{public:Student(int n,string nam,char s,float sco){num=n;name=nam;sex=s;score=sco;}void show_data();private:int num;string name;char sex;float score;};void Student::show_data(){cout<<"num:"<<num<<" name:"<<name<<" sex:"<<sex <<" score:"<<score<<endl; }}。
C++面向对象程序设计课后习题答案1~14章
第一章1-5、#include <iostream> using namespace std;int main(){cout<<"This"<<"is";cout<<"a"<<"C++";cout<<"program.";return 0;}1-6、#include <iostream> using namespace std;int main(){int a,b,c;a=10;b=23;c=a+b;cout<<"a+b=";cout<<c;cout<<endl;return 0;}1-7#include <iostream> using namespace std;int main(){int a,b,c;int f(int x,int y,int z); cin>>a>>b>>c;c=f(a,b,c);cout<<c<<endl;return 0;}int f(int x,int y,int z){int m;if (x<y) m=x;else m=y;if (z<m) m=z;return(m);} 1-8、#include <iostream>using namespace std;int main(){int a,b,c;cin>>a>>b;c=a+b;cout<<"a+b="<<a+b<<endl;return 0;}1-9、#include <iostream>using namespace std;int main(){int a,b,c;int add(int x,int y);cin>>a>>b;c=add(a,b);cout<<"a+b="<<c<<endl;return 0;}int add(int x,int y){int z;z=x+y;return(z);}第二章2-3、#include <iostream>using namespace std;int main(){char c1='a',c2='b',c3='c',c4='\101',c5='\116'; cout<<c1<<c2<<c3<<'\n';cout<<"\t\b"<<c4<<'\t'<<c5<<'\n';return 0;}2-4、#include <iostream>using namespace std;int main(){char c1='C',c2='+',c3='+';cout<<"I say: \""<<c1<<c2<<c3<<'\"';cout<<"\t\t"<<"He says: \"C++ is veryinteresting!\""<< '\n';return 0;}2-7、#include <iostream>using namespace std;int main(){int i,j,m,n;i=8;j=10;m=++i+j++;n=(++i)+(++j)+m;cout<<i<<'\t'<<j<<'\t'<<m<<'\t'<<n<<endl; return 0;}2-8、#include <iostream>using namespace std;int main(){char c1='C', c2='h', c3='i', c4='n', c5='a';c1+=4;c2+=4;c3+=4;c4+=4;c5+=4;cout<<"passwordis:"<<c1<<c2<<c3<<c4<<c5<<endl;return 0;}第三章3-2、#include <iostream>#include <iomanip>using namespace std;int main ( ){float h,r,l,s,sq,vq,vz;const float pi=3.1415926;cout<<"please enter r,h:";cin>>r>>h;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;cout<<setiosflags(ios::fixed)<<setiosflags(ios:: right)<<setprecision(2);cout<<"l= "<<setw(10)<<l<<endl;cout<<"s= "<<setw(10)<<s<<endl;cout<<"sq="<<setw(10)<<sq<<endl;cout<<"vq="<<setw(10)<<vq<<endl;cout<<"vz="<<setw(10)<<vz<<endl;return 0;}3-3、#include <iostream>using namespace std;int main (){float c,f;cout<<"请输入一个华氏温度:";cin>>f;c=(5.0/9.0)*(f-32); //注意5和9要用实型表示,否则5/9值为0cout<<"摄氏温度为:"<<c<<endl;return 0;};3-4、#include <iostream>using namespace std;int main ( ){char c1,c2;cout<<"请输入两个字符c1,c2:";c1=getchar(); //将输入的第一个字符赋给c1c2=getchar(); //将输入的第二个字符赋给c2cout<<"用putchar函数输出结果为:"; putchar(c1);putchar(c2);cout<<endl;cout<<"用cout语句输出结果为:";cout<<c1<<c2<<endl;return 0;}3-4-1、#include <iostream>using namespace std;int main ( ){char c1,c2;cout<<"请输入两个字符c1,c2:";c1=getchar(); //将输入的第一个字符赋给c1c2=getchar(); //将输入的第二个字符赋给c2cout<<"用putchar函数输出结果为:"; putchar(c1);putchar(44);putchar(c2);cout<<endl;cout<<"用cout语句输出结果为:";cout<<c1<<","<<c2<<endl;return 0;}3-5、#include <iostream>using namespace std;int main ( ){char c1,c2;int i1,i2; //定义为整型cout<<"请输入两个整数i1,i2:";cin>>i1>>i2;c1=i1;c2=i2;cout<<"按字符输出结果为:"<<c1<<" , "<<c2<<endl;return 0;}3-8、#include <iostream>using namespace std;int main ( ){ int a=3,b=4,c=5,x,y;cout<<(a+b>c && b==c)<<endl;cout<<(a||b+c && b-c)<<endl;cout<<(!(a>b) && !c||1)<<endl;cout<<(!(x=a) && (y=b) && 0)<<endl;cout<<(!(a+b)+c-1 && b+c/2)<<endl; return 0;}3-9-1、#include <iostream>using namespace std;int main ( ){int a,b,c;cout<<"please enter three integer numbers:";cin>>a>>b>>c;if(a<b)if(b<c)cout<<"max="<<c;elsecout<<"max="<<b;else if (a<c)cout<<"max="<<c;elsecout<<"max="<<a;cout<<endl;return 0;}3-9-2、#include <iostream>using namespace std;int main ( ){int a,b,c,temp,max ;cout<<"please enter three integer numbers:";cin>>a>>b>>c;temp=(a>b)?a:b; /* 将a和b中的大者存入temp中*/max=(temp>c)?temp:c; /* 将a和b中的大者与c比较,最大者存入max */cout<<"max="<<max<<endl;return 0;}3-10、#include <iostream>using namespace std;int main ( ){int x,y;cout<<"enter x:";cin>>x;if (x<1){y=x;cout<<"x="<<x<<", y=x="<<y;}else if (x<10) // 1≤x<10{y=2*x-1;cout<<"x="<<x<<", y=2*x-1="<<y;}else// x≥10{y=3*x-11;cout<<"x="<<x<<",y=3*x-11="<<y;}cout<<endl;return 0;}3-11、#include <iostream>using namespace std;int main (){float score;char grade;cout<<"please enter score of student:"; cin>>score;while (score>100||score<0){cout<<"data error,enter data again.";cin>>score;}switch(int(score/10)){case 10:case 9: grade='A';break;case 8: grade='B';break;case 7: grade='C';break;case 6: grade='D';break;default:grade='E';}cout<<"score is "<<score<<", grade is "<<grade<<endl;return 0;}3-12、#include <iostream>using namespace std;int main (){long int num;intindiv,ten,hundred,thousand,ten_thousand,pla ce;/*分别代表个位,十位,百位,千位,万位和位数*/cout<<"enter an integer(0~99999):"; cin>>num;if (num>9999)place=5;else if (num>999)place=4;else if (num>99)place=3;else if (num>9)place=2;else place=1;cout<<"place="<<place<<endl;//计算各位数字ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1 000;hundred=(int)(num-ten_thousand*10000-tho usand*1000)/100;ten=(int)(num-ten_thousand*10000-thousan d*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousa nd*1000-hundred*100-ten*10);cout<<"original order:";switch(place){case5:cout<<ten_thousand<<","<<thousand<<","< <hundred<<","<<ten<<","<<indiv<<endl;cout<<"reverse order:";cout<<indiv<<ten<<hundred<<thousand<<ten _thousand<<endl;break;case4:cout<<thousand<<","<<hundred<<","<<ten <<","<<indiv<<endl;cout<<"reverse order:";cout<<indiv<<ten<<hundred<<thousand<<en dl;break;case3:cout<<hundred<<","<<ten<<","<<indiv<<en dl;cout<<"reverse order:";cout<<indiv<<ten<<hundred<<endl;break;case 2:cout<<ten<<","<<indiv<<endl;cout<<"reverse order:";cout<<indiv<<ten<<endl;break;case 1:cout<<indiv<<endl;cout<<"reverse order:";cout<<indiv<<endl;break;}return 0;}3-13-1、#include <iostream>using namespace std;int main (){ long i; //i为利润floatbonus,bon1,bon2,bon4,bon6,bon10;bon1=100000*0.1; //利润为10万元时的奖金bon2=bon1+100000*0.075; //利润为20万元时的奖金bon4=bon2+100000*0.05; //利润为40万元时的奖金bon6=bon4+100000*0.03; //利润为60万元时的奖金bon10=bon6+400000*0.015; //利润为100万元时的奖金cout<<"enter i:";cin>>i;if (i<=100000)bonus=i*0.1;//利润在10万元以内按10%提成奖金else if (i<=200000)bonus=bon1+(i-100000)*0.075; //利润在10万元至20万时的奖金else if (i<=400000)bonus=bon2+(i-200000)*0.05; //利润在20万元至40万时的奖金else if (i<=600000)bonus=bon4+(i-400000)*0.03; //利润在40万元至60万时的奖金else if (i<=1000000)bonus=bon6+(i-600000)*0.015; //利润在60万元至100万时的奖金elsebonus=bon10+(i-1000000)*0.01; //利润在100万元以上时的奖金cout<<"bonus="<<bonus<<endl;return 0;}3-13-2、#include <iostream>using namespace std;int main (){long i;float bonus,bon1,bon2,bon4,bon6,bon10; int c;bon1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon10=bon6+400000*0.015;cout<<"enter i:";cin>>i;c=i/100000;if (c>10) c=10;switch(c){case 0: bonus=i*0.1; break;case 1: bonus=bon1+(i-100000)*0.075; break;case 2:case 3: bonus=bon2+(i-200000)*0.05;break;case 4:case 5: bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9: bonus=bon6+(i-600000)*0.015; break;case 10: bonus=bon10+(i-1000000)*0.01;}cout<<"bonus="<<bonus<<endl;return 0;}3-14、#include <iostream>using namespace std;int main (){int t,a,b,c,d;cout<<"enter four numbers:";cin>>a>>b>>c>>d;cout<<"a="<<a<<", b="<<b<<", c="<<c<<",d="<<d<<endl;if (a>b){t=a;a=b;b=t;}if (a>c){t=a; a=c; c=t;}if (a>d){t=a; a=d; d=t;}if (b>c){t=b; b=c; c=t;}if (b>d){t=b; b=d; d=t;}if (c>d){t=c; c=d; d=t;}cout<<"the sorted sequence:"<<endl;cout<<a<<", "<<b<<", "<<c<<", "<<d<<endl; return 0;}3-15、#include <iostream>using namespace std;int main (){int p,r,n,m,temp;cout<<"please enter two positive integer numbers n,m:";cin>>n>>m;if (n<m){temp=n;n=m;m=temp; //把大数放在n中, 小数放在m中}p=n*m; //先将n和m的乘积保存在p中, 以便求最小公倍数时用while (m!=0) //求n和m 的最大公约数{r=n%m;n=m;m=r;}cout<<"HCF="<<n<<endl;cout<<"LCD="<<p/n<<endl; // p是原来两个整数的乘积return 0;}3-16、#include <iostream>using namespace std;int main (){char c;int letters=0,space=0,digit=0,other=0;cout<<"enter one line::"<<endl;while((c=getchar())!='\n'){if (c>='a' && c<='z'||c>='A' && c<='Z')letters++;else if (c==' ')space++;else if (c>='0' && c<='9')digit++;elseother++;}cout<<"letter:"<<letters<<", space:"<<space<<", digit:"<<digit<<", other:"<<other<<endl;return 0;}3-17、#include <iostream>using namespace std;int main (){int a,n,i=1,sn=0,tn=0;cout<<"a,n=:";cin>>a>>n;while (i<=n){tn=tn+a; //赋值后的tn为i个a 组成数的值sn=sn+tn; //赋值后的sn为多项式前i项之和a=a*10;++i;}cout<<"a+aa+aaa+...="<<sn<<endl;return 0;}3-18、#include <iostream>using namespace std;int main (){float s=0,t=1;int n;for (n=1;n<=20;n++){t=t*n; // 求n!s=s+t; // 将各项累加}cout<<"1!+2!+...+20!="<<s<<endl;return 0;}3-19、#include <iostream>using namespace std;int main (){int i,j,k,n;cout<<"narcissus numbers are:"<<endl;for (n=100;n<1000;n++){i=n/100;j=n/10-i*10;k=n%10;if (n == i*i*i + j*j*j + k*k*k)cout<<n<<" ";}cout<<endl;return 0;}3-20-1、#include <iostream>using namespace std;int main(){const int m=1000; // 定义寻找范围int k1,k2,k3,k4,k5,k6,k7,k8,k9,k10;int i,a,n,s;for (a=2;a<=m;a++) // a是2~1000之间的整数,检查它是否为完数{n=0; // n用来累计a的因子的个数s=a; // s用来存放尚未求出的因子之和,开始时等于afor (i=1;i<a;i++) // 检查i是否为a 的因子if (a%i==0) // 如果i是a的因子{n++; // n加1,表示新找到一个因子s=s-i; // s减去已找到的因子,s的新值是尚未求出的因子之和switch(n) // 将找到的因子赋给k1,...,k10{case 1:k1=i; break; // 找出的笫1个因子赋给k1case 2:k2=i; break; // 找出的笫2个因子赋给k2case 3:k3=i; break; // 找出的笫3个因子赋给k3case 4:k4=i; break; // 找出的笫4个因子赋给k4case 5:k5=i; break; // 找出的笫5个因子赋给k5case 6:k6=i; break; // 找出的笫6个因子赋给k6case 7:k7=i; break; // 找出的笫7个因子赋给k7case 8:k8=i; break; // 找出的笫8个因子赋给k8case 9:k9=i; break; // 找出的笫9个因子赋给k9case 10:k10=i; break; // 找出的笫10个因子赋给k10}}if (s==0) // s=0表示全部因子都已找到了{cout<<a<<" is a 完数"<<endl;cout<<"its factors are:";if (n>1) cout<<k1<<","<<k2; // n>1表示a至少有2个因子if (n>2) cout<<","<<k3; // n>2表示至少有3个因子,故应再输出一个因子if (n>3) cout<<","<<k4; // n>3表示至少有4个因子,故应再输出一个因子if (n>4) cout<<","<<k5; // 以下类似if (n>5) cout<<","<<k6;if (n>6) cout<<","<<k7;if (n>7) cout<<","<<k8;if (n>8) cout<<","<<k9;if (n>9) cout<<","<<k10;cout<<endl<<endl;}}return 0;}3-20-2、#include <iostream>using namespace std;int main(){int m,s,i;for (m=2;m<1000;m++){s=0;for (i=1;i<m;i++)if ((m%i)==0) s=s+i;if(s==m){cout<<m<<" is a完数"<<endl;cout<<"its factors are:";for (i=1;i<m;i++)if (m%i==0) cout<<i<<" ";cout<<endl;}}return 0;}3-20-3、#include <iostream>using namespace std;int main(){int k[11];int i,a,n,s;for (a=2;a<=1000;a++){n=0;s=a;for (i=1;i<a;i++)if ((a%i)==0){n++;s=s-i;k[n]=i; // 将找到的因子赋给k[1]┅k[10]}if (s==0){cout<<a<<" is a 完数"<<endl;cout<<"its factors are:";for (i=1;i<n;i++)cout<<k[i]<<" ";cout<<k[n]<<endl;}}return 0;}3-21、#include <iostream>using namespace std;int main(){int i,t,n=20;double a=2,b=1,s=0;for (i=1;i<=n;i++){s=s+a/b;t=a;a=a+b; // 将前一项分子与分母之和作为下一项的分子b=t; // 将前一项的分子作为下一项的分母}cout<<"sum="<<s<<endl;return 0;}3-22、#include <iostream>using namespace std;int main(){int day,x1,x2;day=9;x2=1;while(day>0){x1=(x2+1)*2; // 第1天的桃子数是第2天桃子数加1后的2倍x2=x1;day--;}cout<<"total="<<x1<<endl;return 0;}3-23、#include <iostream>#include <cmath>using namespace std;int main(){float a,x0,x1;cout<<"enter a positive number:"; cin>>a; // 输入a的值x0=a/2;x1=(x0+a/x0)/2;do{x0=x1;x1=(x0+a/x0)/2;}while(fabs(x0-x1)>=1e-5);cout<<"The square root of "<<a<<" is "<<x1<<endl;return 0;}3-24、#include <iostream>using namespace std;int main(){int i,k;for (i=0;i<=3;i++) // 输出上面4行*号{for (k=0;k<=2*i;k++)cout<<"*"; // 输出*号cout<<endl; //输出完一行*号后换行}for (i=0;i<=2;i++) // 输出下面3行*号{for (k=0;k<=4-2*i;k++)cout<<"*"; // 输出*号cout<<endl; // 输出完一行*号后换行}return 0;}3-25、#include <iostream>using namespace std;int main(){char i,j,k; /* i是a的对手;j是b的对手;k是c的对手*/for (i='X';i<='Z';i++)for (j='X';j<='Z';j++)if (i!=j)for (k='X';k<='Z';k++)if (i!=k && j!=k)if (i!='X' && k!='X' && k!='Z')cout<<"A--"<<i<<"B--"<<j<<" C--"<<k<<endl;return 0;}第四章4-1、#include <iostream>using namespace std;int main(){int hcf(int,int);int lcd(int,int,int);int u,v,h,l;cin>>u>>v;h=hcf(u,v);cout<<"H.C.F="<<h<<endl;l=lcd(u,v,h);cout<<"L.C.D="<<l<<endl;return 0;}int hcf(int u,int v){int t,r;if (v>u){t=u;u=v;v=t;}while ((r=u%v)!=0){u=v;v=r;}return(v);}int lcd(int u,int v,int h){return(u*v/h);}4-2、#include <iostream>#include <math.h>using namespace std;float x1,x2,disc,p,q;int main(){void greater_than_zero(float,float);void equal_to_zero(float,float);void smaller_than_zero(float,float);float a,b,c;cout<<"input a,b,c:";cin>>a>>b>>c;disc=b*b-4*a*c;cout<<"root:"<<endl;if (disc>0){greater_than_zero(a,b);cout<<"x1="<<x1<<",x2="<<x2<<endl;}else if (disc==0){equal_to_zero(a,b);cout<<"x1="<<x1<<",x2="<<x2<<endl;}else{smaller_than_zero(a,b);cout<<"x1="<<p<<"+"<<q<<"i"<<endl;cout<<"x2="<<p<<"-"<<q<<"i"<<endl;}return 0;}void greater_than_zero(float a,float b) /* 定义一个函数,用来求disc>0时方程的根*/ {x1=(-b+sqrt(disc))/(2*a);x2=(-b-sqrt(disc))/(2*a);}void equal_to_zero(float a,float b) /* 定义一个函数,用来求disc=0时方程的根*/ {x1=x2=(-b)/(2*a);}void smaller_than_zero(float a,float b) /* 定义一个函数,用来求disc<0时方程的根*/ {p=-b/(2*a);q=sqrt(-disc)/(2*a);}4-3、#include <iostream>using namespace std;int main(){int prime(int); /* 函数原型声明*/int n;cout<<"input an integer:";cin>>n;if (prime(n))cout<<n<<" is a prime."<<endl;elsecout<<n<<" is not a prime."<<endl; return 0;}int prime(int n){int flag=1,i;for (i=2;i<n/2 && flag==1;i++)if (n%i==0)flag=0;return(flag);}4-4、#include <iostream>using namespace std;int main(){int fac(int);int a,b,c,sum=0;cout<<"enter a,b,c:";cin>>a>>b>>c;sum=sum+fac(a)+fac(b)+fac(c);cout<<a<<"!+"<<b<<"!+"<<c<<"!="<<sum<<e ndl;return 0;}int fac(int n){int f=1;for (int i=1;i<=n;i++)f=f*i;return f;}4-5、#include <iostream>#include <cmath>using namespace std;int main(){double e(double);double x,sinh;cout<<"enter x:";cin>>x;sinh=(e(x)+e(-x))/2;cout<<"sinh("<<x<<")="<<sinh<<endl; return 0;}double e(double x){return exp(x);}4-6、#include <iostream>#include <cmath>using namespace std;int main(){doublesolut(double ,double ,double ,double ); double a,b,c,d;cout<<"input a,b,c,d:";cin>>a>>b>>c>>d;cout<<"x="<<solut(a,b,c,d)<<endl;return 0;}double solut(double a,double b,double c,double d){double x=1,x0,f,f1;do{x0=x;f=((a*x0+b)*x0+c)*x0+d;f1=(3*a*x0+2*b)*x0+c;x=x0-f/f1;}while(fabs(x-x0)>=1e-5);return(x);}4-7、#include <iostream>#include <cmath>using namespace std;int main(){void godbaha(int);int n;cout<<"input n:";cin>>n;godbaha(n);return 0;}void godbaha(int n) {int prime(int);int a,b;for(a=3;a<=n/2;a=a+2){if(prime(a)){b=n-a;if (prime(b))cout<<n<<"="<<a<<"+"<<b<<endl;}}}int prime(int m){int i,k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0) break;if (i>k) return 1;else return 0;}4-8、#include <iostream>using namespace std;int main(){int x,n;float p(int,int);cout<<"input n & x:";cin>>n>>x;cout<<"n="<<n<<",x="<<x<<endl;;cout<<"P"<<n<<"(x)="<<p(n,x)<<endl; return 0;}float p(int n,int x){if (n==0)return(1);else if (n==1)return(x);elsereturn(((2*n-1)*x*p((n-1),x)-(n-1)*p((n-2),x))/ n);}4-9、#include <iostream>using namespace std;int main(){void hanoi(int n,char one,char two,char three);int m;cout<<"input the number of diskes:"; cin>>m;cout<<"The steps of moving "<<m<<" disks:"<<endl;hanoi(m,'A','B','C');return 0;}void hanoi(int n,char one,char two,char three) //将n个盘从one座借助two座,移到three座{void move(char x,char y);if(n==1) move(one,three);else{hanoi(n-1,one,three,two);move(one,three);hanoi(n-1,two,one,three);}}void move(char x,char y){cout<<x<<"-->"<<y<<endl;}4-10、#include <iostream>using namespace std;int main(){void convert(int n);int number;cout<<"input an integer:";cin>>number;cout<<"output:"<<endl;if (number<0){cout<<"-";number=-number;}convert(number);cout<<endl;return 0;}void convert(int n){int i;char c;if ((i=n/10)!=0)convert(i);c=n%10+'0';cout<<" "<<c;}4-11、#include <iostream>using namespace std;int main(){int f(int);int n,s;cout<<"input the number n:";cin>>n;s=f(n);cout<<"The result is "<<s<<endl;return 0;}int f(int n){;if (n==1)return 1;elsereturn (n*n+f(n-1));}4-12、#include <iostream>#include <cmath>using namespace std;#define S(a,b,c) (a+b+c)/2#define AREA(a,b,c) sqrt(S(a,b,c)*(S(a,b,c)-a)*(S(a,b,c)-b)*(S(a,b,c) -c))int main(){float a,b,c;cout<<"input a,b,c:";cin>>a>>b>>c;if (a+b>c && a+c>b && b+c>a)cout<<"area="<<AREA(a,b,c)<<endl; elsecout<<"It is not a triangle!"<<endl; return 0;}4-14、#include <iostream>using namespace std;//#define LETTER 1int main(){char c;cin>>c;#if LETTERif(c>='a' && c<='z')c=c-32;#elseif(c>='A' && c<='Z')c=c+32;#endifcout<<c<<endl;return 0;}4-15、#include <iostream>using namespace std;#define CHANGE 1int main(){char ch[40];cout<<"input text:"<<endl;;gets(ch);#if (CHANGE){for (int i=0;i<40;i++){if (ch[i]!='\0')if (ch[i]>='a'&& ch[i]<'z'||ch[i]>'A'&& ch[i]<'Z')ch[i]+=1;else if (ch[i]=='z'||ch[i]=='Z')ch[i]-=25;}}#endifcout<<"output:"<<endl<<ch<<endl;return 0;}4-16-1、#include <iostream>using namespace std;int a;int main(){extern int power(int);int b=3,c,d,m;cout<<"enter an integer a and its power m:"<<endl;cin>>a>>m;c=a*b;cout<<a<<"*"<<b<<"="<<c<<endl;d=power(m);cout<<a<<"**"<<m<<"="<<d<<endl; return 0;}4-16-2、extern int a;int power(int n){int i,y=1;for(i=1;i<=n;i++)y*=a;return y;}第五章5-1、#include <iostream>#include <iomanip>using namespace std;#include <math.h>int main(){int i,j,n,a[101];for (i=1;i<=100;i++)a[i]=i;a[1]=0;for (i=2;i<sqrt(100);i++)for (j=i+1;j<=100;j++){if(a[i]!=0 && a[j]!=0)if (a[j]%a[i]==0)a[j]=0; }cout<<endl;for (i=1,n=0;i<=100;i++){if (a[i]!=0){cout<<setw(5)<<a[i]<<" ";n++;}if(n==10){cout<<endl;n=0;}}cout<<endl;return 0;}5-2、#include <iostream>using namespace std;//#include <math.h>int main(){int i,j,min,temp,a[11];cout<<"enter data:"<<endl;for (i=1;i<=10;i++){cout<<"a["<<i<<"]=";cin>>a[i]; //输入10个数}cout<<endl<<"The original numbers:"<<endl;;for (i=1;i<=10;i++)cout<<a[i]<<" "; // 输出这10个数cout<<endl;;for (i=1;i<=9;i++) //以下8行是对10个数排序{min=i;for (j=i+1;j<=10;j++)if (a[min]>a[j]) min=j;temp=a[i]; //以下3行将a[i+1]~a[10]中最小者与a[i] 对换a[i]=a[min];a[min]=temp;}cout<<endl<<"The sorted numbers:"<<endl;for (i=1;i<=10;i++) // 输出已排好序的10个数cout<<a[i]<<" ";cout<<endl;return 0;}5-3、#include <iostream>using namespace std;int main(){int a[3][3],sum=0;int i,j;cout<<"enter data:"<<endl;;for (i=0;i<3;i++)for (j=0;j<3;j++)cin>>a[i][j];for (i=0;i<3;i++)sum=sum+a[i][i];cout<<"sum="<<sum<<endl;return 0;}5-4、#include <iostream>using namespace std;int main(){int a[11]={1,4,6,9,13,16,19,28,40,100};int num,i,j;cout<<"array a:"<<endl;for (i=0;i<10;i++)cout<<a[i]<<" ";cout<<endl;;cout<<"insert data:";cin>>num;if (num>a[9])a[10]=num;else{for (i=0;i<10;i++){if (a[i]>num){for (j=9;j>=i;j--)a[j+1]=a[j];a[i]=num;break;}}}cout<<"Now, array a:"<<endl;for (i=0;i<11;i++)cout<<a[i]<<" ";cout<<endl;return 0;}5-5、#include <iostream>using namespace std;int main(){ const int n=5;int a[n],i,temp;cout<<"enter array a:"<<endl;for (i=0;i<n;i++)cin>>a[i];cout<<"array a:"<<endl;for (i=0;i<n;i++)cout<<a[i]<<" ";for (i=0;i<n/2;i++) //循环的作用是将对称的元素的值互换{ temp=a[i];a[i]=a[n-i-1];a[n-i-1]=temp;}cout<<endl<<"Now,array a:"<<endl;for (i=0;i<n;i++)。
面向对象程序设计课后习题答案
面向对象程序设计课后习题答案第一章:面向对象程序设计概述[1_1]什么是面向对象程序设计?面向对象程序设计是一种新型的程序设计范型。
这种范型的主要特征是:程序=对象+消息。
面向对象程序的基本元素是对象,面向对象程序的主要结构特点是:第一:程序一般类的定义和类的使用两部分组成,在主程序中定义各对象并规定它们之间传递消息的规律。
第二:程序中的一切操作都是通过向对象发送消息来实现的,对象接受到消息后,启动有关方法完成相应的操作。
面向对象程序设计方法模拟人类习惯的解题方法,代表了计算机程序设计新颖的思维方式。
这种方法的提出是软件开发方法的一场革命,是目前解决软件开发面临困难的最有希望、最有前途的方法之一。
[1_2]什么是类?什么是对象?对象与类的关系是什么?在面向对象程序设计中,对象是描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。
对象可以认为是:数据+操作在面向对象程序设计中,类就是具有相同的数据和相同的操作的一组对象的集合,也就是说,类是对具有相同数据结构和相同操作的一类对象的描述。
类和对象之间的关系是抽象和具体的关系。
类是多个对象进行综合抽象的结果,一个对象是类的一个实例。
在面向对象程序设计中,总是先声明类,再类生成对象。
类是建立对象的“摸板”,按照这个摸板所建立的一个个具体的对象,就是类的实际例子,通常称为实例。
[1_3]现实世界中的对象有哪些特征?请举例说明。
对象是现实世界中的一个实体,其具有以下一些特征:每一个对象必须有一个名字以区别于其他对象。
需要用属性来描述它的某些特性。
有一组操作,每一个操作决定了对象的一种行为。
对象的操作可以分为两类:一类是自身所承受的操作,一类是施加于其他对象的操作。
例如:雇员刘名是一个对象对象名:刘名对象的属性:年龄:36 生日:工资:2000 部门:人事部对象的操作:吃饭开车[1_4]什么是消息?消息具有什么性质?在面向对象程序设计中,一个对象向另一个对象发出的请求被称为“消息”。
面向对象程序设计试题及答案
面向对象程序设计试题及答案一、试题1. 请简要解释面向对象(Object-Oriented)程序设计的概念。
2. 列举面向对象程序设计中的四个基本特征,并分别进行简要描述。
3. 请说明封装(Encapsulation)在面向对象程序设计中的作用和优势。
4. 解释继承(Inheritance)在面向对象程序设计中的概念和用途。
5. 什么是多态(Polymorphism)?请解释多态的概念以及其在面向对象程序设计中的重要性。
6. 简要介绍抽象类(Abstract Class)和接口(Interface)的概念,并说明它们之间的区别。
7. 请解释类(Class)与对象(Object)之间的关系。
8. 在面向对象程序设计中,什么是构造函数(Constructor)?请说明构造函数的作用和使用方法。
9. 请示范一个使用面向对象程序设计的简单实例,并说明你所设计的类的结构和功能。
二、答案1. 面向对象程序设计是一种以对象为中心的编程方法,通过定义表示对象属性和行为的类来组织程序结构,以实现代码的重用性、灵活性和可维护性。
2. (1)封装:将数据和对数据的操作封装在一个类中,通过访问权限控制,保护数据的安全性和完整性。
(2)继承:通过建立类之间的继承关系,实现代码的重用,具有层次性和扩展性。
(3)多态:允许不同类的对象对同一消息作出不同的响应,实现代码的灵活性和扩展性。
(4)抽象:通过抽象类和接口的定义,隐藏对象的具体实现细节,提供统一的接口和规范。
3. 封装的作用是将数据和对数据的操作封装在一个类中,外部无法直接访问类的内部实现细节,只能通过类提供的接口访问和操作数据。
封装的优势包括:(1)提高代码的可维护性和可读性,减少代码的重复。
(2)保护数据的安全性和完整性,防止外部直接对数据进行非法操作。
(3)降低模块之间的耦合度,提高代码的灵活性。
4. 继承是面向对象程序设计中的一个重要概念,它通过建立类与类之间的继承关系,实现代码的重用和扩展。
《面向对象程序设计》答案
实验一熟悉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功能的扩充与增强,并善于在编写程序的过程中应用这些新功能。
《面向对象程序设计》练习题及答案
《面向对象程序设计》练习题及答案1. 单选题1. 数组的大小在创建以后( )。
A. 可以改变B. 不能改变C. 使用new方法可以改变D. 有些可以改变正确答案:B2. 已知如下代码:boolean m = true;if ( m = false ) System.out.println("False");else System.out.println("True");执行结果是( )A. FalseB. TrueC. NoneD. 出错正确答案:B3. 下列代码中,将引起一个编译错误的行是( ) 1)public class Test{ 2) int m,n; 3) public Test(){} 4) public Test(int a){m=a;} 5) public static void main(String args[]){ 6) Test t1,t2; 7) int j,k; 8) j=0;k=0; 9) t1=new Test(); 10) t2=new Test(j,k); 11) }12) }A. 第3行B. 第5行C. 第6行D. 第10行正确答案:D4. 如果类中的成员变量可以被同一包访问,则使用如下哪个约束符( )。
A. privateB. publicC. protectedD. no modifier正确答案:D5. 下列哪个类声明是正确的( )A. abstract final class Hl{…}B. abstract private move(){…}C. protected private numberD. public abstract class Car{…}正确答案:D6. 下列构造方法的调用方式中,正确的是( )。
A. 按照一般方法调用B. 由用户直接调用C. 只能通过new 自动调用D. 被系统调用正确答案:C7. 以下有关构造方法的说法,正确的是( )A. 一个类的构造方法可以有多个B. 构造方法在类定义时被调用C. 构造方法只能由对象中的其它方法调用D. 构造方法可以和类同名,也可以和类名不同正确答案:A8. 设x = 1 , y = 2 , z = 3,则表达式y+=z--/++x 的值是( )A. 3B. 3.5C. 4D. 5正确答案:A9. 下面的表达式哪个是正确的( )A. String s="你好";int i=3; s+=i;B. String s="你好";int i=3; if(i==s){ s+=i};C. String s="你好";int i=3; s=i+s;D. String s="你好";int i=3; s=i+;正确答案:A10. 下列正确的句子是( )。
C++面向对象程序设计课后题答案
C++面向对象程序设计课后题答案面向对象程序设计课后题答案第二章C++概述【2.6】D 【2.7】D 【2.8】A 【2.9】A 【2.10】B 【2.11】A 【2.12】C 【2.13】B 【2.14】D 【2.15】C 【2.16】D 【2.17】C【2.18】程序的运行结果: 101【2.19】程序的运行结果: 10 10【2.20】程序的运行结果: 10 20【2.22】编写一个C++风格的程序,用动态分配空间的方法计算Fibonacci数列的前20项并存储到动态分配的空间中。
#include int main() { int *p,i; p=new int[20];1p[0]=1; p[1]=1; for(i=2;i<20;i++) { }for(i=0;i<20;i++) { } return 0; }【2.23】编写一个C++风格的程序,建立一个被称为sroot()的函数,返回其参数的二次方根。
重载sroot()3次,让它返回整数、长整数与双精度数的二次方根。
#include #include double sroot(int m) {return sqrt(m); }double sroot(long m) {return sqrt(m); }double sroot(double m) {return sqrt(m); } int main() {2cout<cout<【2.24】编写一个C++风格的程序,解决百钱问题:将一元人民币兑换成1、2、5分的硬币,有多少种换法?#include int main() { int k=0;for(int i=0;i<=20;i++) { }cout<【2.25】编写一个C++风格的程序,输入两个整数,将它们按由小到大的顺序输出。
要求使用变量的引用。
void change(int &a,int &b) { int t=a; a=b;3for(int j=0;j<=50;j++) { }if(100-5*i-2*j>=0) { }k++;b=t; } int main() { int m,n;cout<>m>>n; if(m>n)change(m,n);cout<【2.26】编写一个C++风格的程序,用二分法求解f(x)==0的根。
《C++面向对象程序设计》
《C++面向对象程序设计》课程设计报告(2011— 2012学年第 2 学期)题目:学校人员信息管理系统专业:计算机科学与技术班级:11计算机科学与技术姓名学号:XX1XX指导教师:XX成绩:计算机科学与技术系2012 年 6 月21 日一、设计目的课程设计是学习C++程序设计的一个重要环节。
通过课程设计的综合训练,可以使学生在学习理论知识并在实验中进行了一系列基本训练的基础上,进一步加强学生对实际问题分析、编程和动手能力的提高,强化综合应用能力,扩充知识,开阔视野。
学生在熟练运用Visual C++ 6.0以后,通过使用Visual C++ 6.0的训练,扩展程序设计的知识面,提高综合应用C++知识能力的要求。
二、设计内容设计一个学校人员信息管理系统,可以实现对学校人事的信息管理。
基本功能要求如下:(1)建立人员信息数据。
包括学号(教工号)、姓名、性别、专业(工作系别部门)、出生时间、年龄。
其中,1)对学生,还包括3门课的成绩(Chinese, English, Mathematics)。
三门课的成绩为int 型数据。
2)对教师,还包括职称(如教授/副教授/讲师),工资(如1432.50)。
工资为double型数据。
(2)使用继承的方法构造3个类,对相应的对象放置10个学生(教师)信息。
P eople类——虚基类S tudent类——派生类T eacher类——派生类(3)数据基本功能:增加数据:AddData()函数。
删除数据:DeleteData()函数。
根据学号(教工号),删除该人员的记录。
修改数据: UpdateData()函数。
对学生,根据学号,能够修改3门课的成绩;对教师,根据教工号,能够修改“职称”和“工资”。
查找功能:1)SearchData()函数。
要求能够根据“学号(教工号)”、“姓名”、“性别”三项实现查询,并能在屏幕上显示满足条件的数据记录。
2)FindMaxData()函数。
面向对象程序设计作业参考答案
面向对象程序设计作业参考答案习题一5、分析下面程序运行的结果。
#using namespace std;int main(){cout<<”This”<<”is”;cout<<”a”<<”C++”;cout<<”program.”<<endl;< p="">return 0;}输出结果:ThisisaC++program.6、分析下面程序运行的结果。
#includeusing namespace std;int main(){int a,b,c;a = 10;b = 23;c = a + b;cout<<'a + b =";cout<<c;< p="">cout<<endl;< p="">return 0;}输出结果:a + b = 338、在你所用的C++系统上,输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int main(){int a, b;a =b = 0;int c = a + b;cout<<”a + b =”<return 0;}9、输入以下程序,进行编译,观察编译情况,如果有错误,请修改程序,在进行编译,直到没有错误,然后进行连接和运行,分析运行结果。
修改后的程序如下:#includeusing namespace std;int add(int x,int y);int main(){int a = 0, b = 0;int c = add(a,b);cout<<" a + b ="<<c<<endl;< p="">return 0;}int add(int x,int y){int z = x + y;return z;}习题二1、请检查下面的程序,找出其中的错误(先不要上机,在纸面上作人工检查),并改正之。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
8、在.NET的控件中,Panel、GroupBox、TabControl等分组控件,有时候也被称之为(A)。
A、容器控件B、组合控件C、排列控件D、基类控件
9、在.NET中,以下关于命名空间的描述,正确的是(D)。
A、命名空间不可以进行嵌套
B、任一个.cs文件中,只能存在一个命名空间
C、define double PI 3.1415926D、define double e=2.7
2、在.NET中,从属性的读写特性上来进行分类,可以划分为以下三种,除了(D)。
A、只读属性B、只写属性
C、读写属性D、不可读不可写的属性
3、在C#中,一个类(B)。
A、可以继承多个类B、可以实现多个接口
A、Try块必须跟catch块组合使用,不能单独使用
B、一个try块可以跟随多个catch块
C、使用throw语句既可引发系统异常,也可以引发由开发人员创建的自定义异常
D.在try … catch …..finally块中,即便开发人员编写强制逻辑代码,也不能跳出finally块的执行
13、在.NET中,一些数据类型为引用类型,当引用类型的值为(B)时,表明没有引用任何对象。
A、EmptyB、nullC、NothingD、0
14、在.NET的WinForms程序中,可以使用(C)对象来连接和访问数据库。
A、MDIB、JITC、D.System.ADO
15、在C#中,(C)访问修饰符修饰的变量只能由当前程序集访问。
A、publicB、protectedC、internalD、private
}
}
解答:
A/B
4、阅读以下的C#代码,请问代码运行结果是:(“/”表示换行)
class Class1 {
private string str = Class1.str;
private int i = 0;
static void StringConvert(string str) {
str =”string being converted.”;
}
static void StringConvert(Class1 c) {
c.str =”string being converted.”;
}
static void Add(int i) {
i++;
}
static void AddWithRef(ref int i) {
i++;
}
static voidMain() {
课程名称面向对象程序设计(B卷)成绩参考答案
班级姓名学号
一、选择题(共20分,每小题1分)
序号
1
2
3
4
5
6
7
8
9
10
11
12
答案
B
D
B
D
B
B
C
A
D
CD
A
BC
序号
13
14
15
16
17
18
19
20
21
22
23
24
答案
B
C
C
A
BD
A
D
A
A
C
A
D
1、在C#中,下列常量定义正确的是(B)。
A、Const double PI 3.1415926;B、Const double e=2.7
System.Console.WriteLine(msg);注意:如果有换行符请用“↙”表示。
12、使用创建一个程序,通过DataGrid控件浏览记录,实现添加、删除、保存、更新功能。设oleDBDataAdapter1数据适配器的SQL语句为“select * from tx1”,并生成数据集dataSet11。Form的构造函数种应填写代码如下,实现数据填充:
A、CommandType.StoredProcedureB、CommandType.TableDirect
C、CommandType.TextD、CommandType.Sql
21、在ComboBox控件的SelectedChangeConmited事件处理方法中,应使用ConboBox对象的()属性获取用户新选项的序号。
ArrayList arr=new ArrayList();
for(int i=0;i<num.Length;i++)
arr.Add(num[i]);
arr.Insert(1,4);
console.Write(arr[2]);
请问代码运行结果是:
3
3、阅读以下的C#代码,请问代码运行结果是:(“/”表示换行)
C、便用private修饰的命名空间,其内部的类也不允许访问
D、命名空间使得代码更加有条理、结构更清晰
10、以下关于C#中方法重载的说法正确的是(CD)。(选择二项)
A、如两个方法名字不同,而参数的数量不同,那么它们可以构成方法重载
B、如两个方法名字相同,而返回值的数据类型不同,那么它们可以构成方法重载
catch(Exception e)
{
Console.WriteLine("catch");
}
finally
{
Console.WriteLine("finally");
}
}
}
解答:
try/catch/finally
2、阅读以下的C#代码,请问代码运行结果是:(“/”表示换行)
int[]num =new int[]{1,3,5};
6、在C#语言中,下列关于属性的描述正确的是(B)。
A、属性系是以public关键字修饰的字段,以public关键字修饰的字段也可称为属性
B、属性是访问字段值的一种灵活机制,属性更好地实现了数据的封装和隐藏
C、要定义只读属性只需在属性名前加上readonly关键字
D、在C#的类中不能自定义属性
7、程序运行过程中发生的错误,叫作(C)。
A、ClosingB、ClosedC、LoadD、VisibleChanged
19、在中,SqlConnection 类所在的命名空间是(D)。
A、SystemB、System.Data
C、System.Data.OleDbD、System.Data.SqlClient
20、在ADO . NET中,为了执行一个存储过程,需要把Command对象的CommandType属性设置为(A)。
int i1 = 10;
int i2 = 20;
string str =“str”;
Class1 c= new Class1();
Add(i1);
C、public myclass();this(100){}
D、public myclass();base(100){}
二、填空题(共20分,1~8小题,每空1分;9~12小题,每题2分)
1、面向对象的语言具有继承性、封装型、多态性。
2、Visual Studio .NET环境中,各种编程语言编译器负责完成编译工作的第一步,即把源代码转换为MSIL代码。
A、将光标定位在GetEmployeeCount前一行,然后输入///
B、将光标定位在GetEmployeeCount前一行,然后输入<XML></XML>
C、将光标定位在GetEmployeeCount前一行,然后输入\\\
D、将光标定位在GetEmployeeCount前一行,然后输入//<?>
C、如两个方法名字相同,而参数的数据类型不同,那么它们可以构成方法重载
D、如两个方法名字相同,而参数的数量不同,那么它们可以构成方法重载
11、在C#语法中,在派生类中对基类的虚函数进行重写,要求在声明中使用(A)关键字。
A、overrideB、newC、staticD、virtual
12、下列关于C#的异常处理的说发法,错误的是(BC)。(选择二项)
A、可以向DataSet的表集合中添加新表
B、DataSet中的数据发生改变之后,它会自动更新数据库中对应的数据
C、DataSet 就好象是内存中的一个“临时数据库”
D、DataSet 中的数据是只读的并且是只进的
18、在WinForms中,为了防止用户无意关闭窗体,需要在(A)事件中编写代码,提示用户是否关闭窗体。
16、(A)方法执行指定为Command对象的命令文本的SQL语句,并返回受SQL语句影响或检索的行数。
A、ExecuteNonQueryB、ExecuteReader
C、ExecuteQueryD、ExecuteScalar
17、在中,下列关于DataSet类说法有误的是(BD)。(请选二项)
class A
{
public A( )
{
Console.WriteLine("A");
}
}
class B:A
{
public B()
{
Console.WriteLine("B");
}
}
class Program
{
public static voidMain()
{
B b = new B();
Console.ReadLine();
24、C#类myclass定义如下:
public class myclass
{
int count;
private myclass(int I){count=I;}
}
现在需要为该类添加一个公有的构造函数,则下列函数定义正确的有()