编程题复习资料
C++基础+编程题复习

C++基础+编程题复习08vc练习卷总分:80分-1.单项选择题1.在c++语言中,char型数据在内存中的存储形式是___a_____a.ascii码b.补码c.反码d.原码2.设n=10,i=4,则赋值运算n%=i+l继续执行后,n的值就是___a_____。
a.0b.3c.2d.13.设intn=3;则++n的结果就是____c____,n的结果就是________。
a.23b.32c.44d.534.设intm=l,n=2;则m++==n的结果是_a__。
a.0b.1c.2d.35.设intm=l,n=2;则++m==n的结果是__b_。
a.0b.1c.2d.36.系统签订合同c++源程序文件名的缺省的拓展名叫___a___。
a.cppb.c++c.bccd.vcc7.设有说明“inta=15,b=17,c;”,执行表达式“c=a||(b+=b)”后,则a、b、c的值分别是aa.15、17、1b.1、34、35c.15、34、1d.15、17、158.设有说明“intx=10,y=4,f;floatm;”,执行表达式“f=m=x/y”后,则f、m的值分别为da.2、2.5b.3、2.5c.2.5、2.5d.2、2.09.设有语句“for(inti=5,sum=0;++sum,i<5;i++)sum+=i;”,则for()语句的执行情况是___a_____。
a.循环0次b.循环4次c.循环5次d.循环6次10.有关函数重载的正确说法是___b___。
a.函数名不同,但参数的个数和类型相同b.函数名相同,但参数的个数不同或参数的类型不同c.函数名相同,参数的个数和类型也相同d.函数名相同,函数的返回值相同,而与函数的参数和类型毫无关系11.下列有关编译预处理命令的说明中,正确的是____a______。
a.以“#”结尾的行,可以发生的函数定义内或函数定义外精品文档热烈欢迎浏览b.以“#”开头的行,后面不可有分号c.以“#”开头,可出现在一行中的任何位置d.以“#”结尾,必放到程序结尾12.以下四组函数原型说明中,满足c++函数重载规则的是______c______。
JAVA编程题全集

J A V A编程题全集(100题及答案)q(总1页)--本页仅作为文档封面,使用时请直接删除即可----内页可以根据需求调整合适字体及大小--Java程序设计总复习题1、编写一个Java程序,用if-else语句判断某年份是否为闰年。
(分支)2、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。
(循环)3、依次输入10个学生成绩,判断学生(优秀、良好、中等、及格、不及格)并计算人数(switch)4、使用冒泡排序(数组)5、实现会员注册,要求用户名长度不小于3,密码长度不小于6,注册时两次输入密码必须相同(字符串)6、一个景区根据游人的年龄收取不同价格的门票。
请编写游人类,根据年龄段决定能够购买的门票价格并输出,然后写出测试类测试该类(类的基本实现)7、(1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);编写程序,在屏幕上显示带标题的窗口,并添加一个按钮。
当用户单击按钮时,结束程序。
(窗体编程)12、定义一个表示学生信息的类Student,要求如下:(有关类的编程)(1)类Student的成员变量:sNO 表示学号;sName表示姓名;sSex表示性别;sAge表示年龄;sJava:表示Java课程成绩。
(2)类Student带参数的构造方法:在构造方法中通过形参完成对成员变量的赋值操作。
(3)类Student的方法成员:getNo():获得学号;getName():获得姓名;getSex():获得性别;getAge()获得年龄;getJava():获得Java 课程成绩(4)根据类Student的定义,创建五个该类的对象,输出每个学生的信息,计算并输出这五个学生Java语言成绩的平均值,以及计算并输出他们Java语言成绩的最大值和最小值。
2。
《C语言》总复习题

《C语言》课程综合复习资料一、单项选择1. 若有如下语句: int *p1,*p2; 则其中int所指的是(D )A. p1的类型B. *p1和*p2的类型C. p2的类型D. p1和p2所能指向变量的类型2. 下列程序段的输出结果是(C )x=9; while(x>7) {printf(“*”);x--;}A. ****B. ***C. **D. *3. 下列变量的定义及赋值正确的是(C)A. int i=0;j;B. char c=”A”;C. double x,y,z; x=y=z=100;D. float a=b=100;4. 设有语句:int x=10;x = x -= x - x;,则执行语句后,x的值为(B )A. 30B. 20C. 10D. 405. 设有语句:float x=1,y; y=x 3/2; 则y的值是(C )A. 1B. 2C. 2.0D. 2.56. 设有如下定义和执行语句,其输出结果为(A )int a=3,b=3; a = --b + 1; printf(“%d %d”,a,b);A. 3 2B. 4 2C. 2 2D. 2 37. 设有两字符串“Beijing”、“China”分别存放在字符数组str1[10],str2[10]中,下面语句中能把“China”连接到“Beijing”之后的为(C )A. strcpy(str1,str2);B. strcpy(str1, “China”);C. strcat(str1,“China”)D. strcat(“Beijing”,str2);8. 设有定义语句:char str[][20]={""Hello"",""Beijing""},*p=str; 则printf(""%d\n"",strlen(p+20)); 输出结果是(C )A. 0B. 5C. 7D. 209. 设有定义int a[ ]={1,5,7,9,11,13},*p=a 3;则*(p-2),*(a 4)的值是(A )C. 5 9D. 有错误10. 设有定义:int x=0,y=1,z=1;则运行表达式:x=y >z--后,x,y,z的值分别是(D )A. 1,1,1B. 1,2,0C. 0,1,1D. 0,2,011. 设有定义:int x=12,n=5; 则表达式x%=(n%2) 的值为(A )A. 0B. 1C. 2D. 312. 设有定义int a=3,b=4,c=5; ,则以下表达式中,值为0的表达式是(D )A. a&&bB. a<=bC. a||b c&&b-cD. !((a<b)&&!c||1)13. 设有定义int a[ ]={1,5,7,9,11,13}, *p=a 3; 则*(p-2) , *(a 4) 的值是(A )A. 5 11B. 1 9C. 5 9D. 有错误14. 设有定义char *p=“abcde\0fghjik\0”; 则printf(“%d\n”,strlen(p));输出结果是(D )A. 12B. 15C. 6D. 515. 设有int x=11;则表达式(x *1/3)的值是(A )A. 3B. 4C. 11D. 1216. 设a=3,b=4,c=-5,则逻辑表达式:a || b c && b==c 的值是(A )A. 1B. 0C. 非0D. 语法错17. 若有以下定义:int a[10],*p=a; 则*(p+3)表示的是(B )A. 元素a[3]的地址B. 元素a[3]的值C. 元素a[4]的地址D. 元素a[4]的值18. 若有以下定义:char s[20]= "programming",*ps=s;则不能代表字符g的表达式是(A )A. ps 3D. ps =3,*ps19. C语言中,函数返回值的类型是由(D )A. return语句中的表达式类型决定B. 调用函数的主调函数类型决定C. 调用函数时的临时类型决定D. 定义函数时所指定的函数类型决定20. C语言提供的合法关键字是(D )A. swicthB. chaC. CaseD. default二、读程序题1. "#include <stdio.h>void main(){ int a=4,x=3,y=2,z=1;printf(""%d\n"",(a<x ? a : z<y ? z : x)); }"2. "#include <stdio.h>void main(){ int x=12,y=0;if(x>=0){ if(x>0) y=10; }else y=-10;printf(“y=%d\n”,y);}"3. "#include <stdio.h>void main(){ int k=1;switch(k){ case 0: printf(""A""); break;case 1: printf(""B"");case 2: printf(""I"");case 3: printf(""G""); break;default: printf(""E"");}}"4. "#include <stdio.h>#define S(x) x*xvoid main(){int a,k=3,m=1;a=S(k+m);printf(""%d"",a);}"5. "#include <stdio.h>int fun(int a, int b){ if(a>b) return(a);else return(b);}void main(){ int x=3, y=8, z=6, r;r=fun(fun(x,y), 2*z);printf(""%d\n"", r);}"6.#include <stdio.h&>void main(){ int k=4,n=0;for(;n<k;){ n++;if(n%3!=0) continue;k- -;}printf(""%d,%d\n"",k,n);}三、编程题1. 写一个判断素数的函数。
《Python程序设计》A卷复习资料

《Python程序设计》复习资料一、判断题()1. Python2和Python3互相兼容()2. Python拥有一个强大的标准库()3. Python是一个高级程序语言()4. Python社区提供了大量的第三方模块()5. 定义函数时,需要定义函数名和参数个数()6. 默认Python解释器不会对参数类型做检查()7. 与元组和列表类似,集合中同样可以包含多个不同类型的元素,但集合中的各元素无序、不允许有相同元素且元素必须是可哈希的对象。
()8. 函数中的默认参数不能传递实际参数。
()9. 字符串以\0标志字符串的结束()10. 变量无须先创建和赋值而直接使用二、填空题1.阅读下列程序并写出程序结果__________________>>>A = 6>>>B = A>>>A = A+1>>>B = B + A>>>C = B + A>>>print(A, B,C)2. 下列程序运行结果是____________________>>>x = False>>>y = True>>>z = False>>>if x or y and z:print (“yes”)>>>else:print (“no”)3. 执行以下代码,输出结果是___________________>>>my_lsit= ‘Explicit is better than implicit.’.split()>>>print(my_lsit[2])4. Python内置函数_____________可以返回列表、元组、字典、集合、字符串以及range 对象中某个元素的个数。
5. 表达式 [x for x in [1,2,3,4,5] if x<3] 的值为_____________三、选择题1.下列变量名都命名正确的是()A. Pi it’s pythonB. student_num ab c tRUEC. Student-num strc IFD. Ab _while num_32. 下列Python语句的输出结果是()>>> a = 121+121.1>>> print(type(a))A.<class ‘int’>B.<cla ss ‘number’>C.<class ‘double’>D.<class ‘float’>3. 下面的循环语句,循环次数与其他语句不一样的是()4. 对于序列numbers=[1,2,3,4,5,6,7,8,9,10],以下相关操作和对应输出正确的是()A. >>>numbers[0:2] [1,2,3]B. >>>numbers[0:-1] [1,2,3,4,5,6,7,8,9,10]C. >>>numbers[-2:] [9,10]D. >>>numbers[0::3] [1,3,5,7,9]5. 下列语句运行后,aSet的内容为()>>>L1 = [2,3,3,5,7,2]>>>aSet.set(L)A.[2,3,5,7]B.{2,3,5,7}C.{2,3,3,5,7,2}D.{2,3,5,7,2}6. 关于下列程序运行结果说法正确的是()>>>def f(x):a = 7print(a+x)>>>a = 5>>>f(3)>>>print(a)A.程序运行结果10和7B.程序运行结果10和5C.程序运行结果8和5D.程序不能正常运行7. open()方法的默认文件打开方式是()A. rB. r+C. wD. w+8. 下列文件打开方式中,()不能对打开的文件进行写操作。
《Visual BASIC程序设计》期末考试编程题复习及答案

第2章1.新建工程,在窗体上创建两个命令按钮Command1、Command2,一个标签Label1,界面如图2-5所示,程序运行要求如下:1)单击“改变颜色”按钮,标签上的文字内容改为“颜色已经改变”,文字颜色改为红色。
“改变颜色”按钮代码:Label1.ForeColor = vbRedLabel1.Caption = "颜色已经改变"2)单击“改变字体”按钮,标签上的字体改为“黑体”。
“改变字体”按钮代码:Label1.FontName = "黑体"图2-5程序运行界面最后将工程文件、窗体文件分别以lx2-2.vbp、lx2-2.frm为文件名保存在D:\EX文件夹下。
2.设计一个留言薄。
新建一个工程,在窗体上创建2个标签,2个文本框,1个命令按钮,属性设置如图2-6所示,。
要求单击“提交”按钮后,上面的文本框内容复制到下面的文本框中,且下面文本框中的内容不能修改。
单击“清除”按钮则清除两个文本框中的内容。
“提交”按钮代码:Text2.Text = Text1.Text“清除”按钮代码:Text1.Text = ""Text2.Text = ""图2-6 程序界面最后将工程文件、窗体文件分别以lx2-4.vbp、lx2-4.frm为文件名保存在D:\EX文件夹下。
3.设计一个程序,程序界面如图2-7所示。
当单击“显示”按钮时,在文本框中显示“欢迎使用VB!”;当单击“清除”按钮时,清除文本框内的文本;当单击“退出”按钮时,结束程序运行。
“显示”按钮代码:Text1.Text = "欢迎使用VB!"“清除”按钮代码:Text1.Text = ""“退出”按钮代码:End图2-7 程序运行界面最后将工程文件、窗体文件分别以lx2-5.vbp、lx2-5.frm为文件名保存在D:\EX文件夹下。
计算机科学与技术专业编程考试复习资料推荐

计算机科学与技术专业编程考试复习资料推荐计算机科学与技术专业的编程考试对学生来说是一项重要的挑战。
为了帮助同学们更好地备考,本文将推荐一些优质的复习资料,希望能够为大家提供一些参考和指导。
一、教材推荐1.《C++ Primer》《C++ Primer》是一本经典的C++教材,适合初学者和有一定基础的同学。
该书全面介绍了C++的语法和常用编程技巧,并通过大量的实例帮助读者理解和掌握知识点。
同时,书中还包含了一些编程练习题,有助于巩固所学知识。
2.《算法导论》《算法导论》是一本经典的算法教材,对计算机科学与技术专业的学生来说是必备的参考书之一。
该书详细介绍了各种常用算法和数据结构,并提供了相应的伪代码和实现方法。
通过学习和理解这本书,同学们可以提高编程能力和解决实际问题的能力。
二、在线资源推荐1.leetcodeleetcode是一个在线的编程练习平台,提供了大量的编程题目和解答。
同学们可以通过在leetcode上刷题,提高自己的编程能力和解题思维。
该平台还提供了讨论区,可以与其他同学交流和分享解题思路,对于理解和掌握算法和数据结构非常有帮助。
2.GitHubGitHub是一个全球最大的代码托管平台,上面有大量的开源项目和代码资源。
同学们可以通过搜索相关的项目,找到一些优秀的编程示例和实践经验。
此外,GitHub还提供了版本控制和协作开发的功能,可以帮助同学们更好地组织和管理自己的代码。
三、学习方法推荐1.理论与实践相结合编程考试不仅要求掌握理论知识,还需要具备实际操作的能力。
因此,同学们在复习过程中应该注重理论与实践相结合。
可以通过编写小项目或者参与开源项目的方式,将所学知识应用到实际中,提高自己的编程能力。
2.刷题与总结编程考试中经常会涉及到一些经典的算法和数据结构。
同学们可以通过刷题的方式来加深对这些知识点的理解和掌握。
在刷题的过程中,可以总结一些常用的解题思路和技巧,形成自己的思维导图或者笔记,方便复习和回顾。
NOC Python编程题复习题

NOC Python编程题复习题选择题您的姓名: [填空题] *_________________________________以下选项中不符合Python语言变量命名规则的是() *A TempStrB _AIC I@(正确答案)D 3_1(正确答案)2、下面代码的输出结果是()x =12.34print(type (x)) [单选题] *A <class ' str ' >B <class ' float ' >(正确答案)C <class ' bool' >D <class ' int' >3、下面代码的输出结果是()for s in "HelloWorlD":if s=="W":continueprint(s, end='') [单选题] *A HelloWorlDB HelloC WorlDD HelloorlD(正确答案)4、下面代码的输出结果是()d = {"大海": "蓝色", "天空": "灰色", "大地": "黑色"} print(d["大地"], d.get("大地", "黄色")) [单选题] *A 黑色黄色B 黑色灰色C 黑色蓝色D 黑色黑色(正确答案)5、表达式[3 for i in range(3)]的值为() [单选题] *A、3,3,3B、0,1,2C、[3,3,3](正确答案)D、[0,1,2]6、下面代码的执行结果是: ()Is = ["2020", "20.20", "Python"]Is. append(2020)Is.append([2020, "2020"])print(Is) [单选题] *A ['2020','20.20','python',2020,[ 2020 ,'2020'](正确答案)B ['2020','20.20','python',2020]C ['2020','20.20','python',2020,['2020']D ['2020','20.20','python',2020,2020,'2020']7、下面代码绘制的图形是()import turtle as tdef DrawCctCircle(n):t.penup()t.goto(0, -n)t.pendown()t.circle(n)for i in range(20, 80, 20):DrawCctCircle(i)t.done() [单选题] *A 笛卡尔心形B 同切圆C 同心圆(正确答案)D 太极8、下面代码的输出结果是()listV = list(range(5))print(2 in listV) [单选题] *A 0B FalseC -1D True(正确答案)9、下面代码的输出结果是()x=10y=3print(x%y, x**y) [单选题] *A 1 1000(正确答案)B 3 1000C 3 30D 1 3010、下面代码的输出结果是()sum = 1.0for num in range(1, 4):sum += numprint(sum) [单选题] *A 7B 1.0C 6D 7.0(正确答案)11执行以下代码,返回结果是()x={"姓名":"小花","学校":"北京大学"} print(x.pop("学校","abcd")) [单选题] *A、{"姓名":"小花"}B、"北京大学"(正确答案)C、"abcd"D、"小花"12、下程序的不可能输出结果是:()from random import *print (round (random (),2)) [单选题] *A 0.27B 0.47C 1.87(正确答案)D 0.6413、Python语言提供的3个基本数字类型是() [单选题] * A整数类型、浮点数类型、复数类型(正确答案)B整数类型、二进制类型、浮点数类型C整数类型、字符串类型、浮点数类型D整数类型、二进制类型、复数类型14、下面代码的输出结果是()for s in 'abc':for i in range(3):print(s, end="")if s == 'c':break [单选题] *A aaabbbcccB abbbcccC aaabcccD aaabbbc(正确答案)15、下面代码的输出结果是()for i in range(10):if i % 2 == 0:continueelse:print(i, end=",") [单选题] *A 0, 2,4,6,8,B 1, 3, 5, 7,9,(正确答案)C 0, 2, 4, 6, 8,10,D 2, 4, 6, 8,1、以下程序的输出结果是:()for i in "CHINA":for k in range(2):print(i, end=" ")if i == ' N':break [单选题] *A CCHHIINAA(正确答案)B CCHHIINNAAC CCHHIAAD CCHHIIAA2、以下程序的输出结果是:()x = 10while x:x -= 1if not x % 2:print(x, end='')else:print(x) [单选题] *A 86420B 864200(正确答案)C 975311D 975313、以下程序的输出结果是:()x = [' 90',' 87',' 90']n = 90print(x. count(n)) [单选题] *A NoneB 0(正确答案)C 1D 24、print('y' < 'x' == False) 的结果是:() [单选题] *A NONEB TrueC ErrorD False(正确答案)5、以下程序输出结果是()d={"1":1,"2":2,"3":3}d2=dd["2"]=5print(d["2"]+d2["2"]) [单选题] *A、2B、5C、7D、10(正确答案)6.以下程序的输出结果是: ()s = ' 'Is = [1, 2, 3, 4]for i in Is:s += str(i)print(s) [单选题] *A 1,3,2,4B 1,2, 3,4C 1234(正确答案)D 4, 3,2,17 以下程序的输出结果是:()J = ' 'for i in "12345":J += i + ','print(J) [单选题] *A '1,2,3,4,5'B 1,2,3,4,5C 12345D 1,2,3,4,5,(正确答案)8. 以下关于组合数据类型的描述,错误的是:() [单选题] *A字典类型的键可以用的数据类型包括字符串,元组以及列表(正确答案) B python的集合类型跟数学中的集合概念一致,都是多个数据项的无序组合C集合类型是一种具体的数据类型D序列类似和映射类型都是一类数据类型的总称9.以下程序的输出结果是: ()lsl = [1, 2, 3, 4, 5]ls2 = [3, 4, 5, 6, 7, 8]chai = []for i in ls2:if i not in lsl:chai.append(i)print(chai) [单选题] *A (6, 7, 8)B [1,2,6,7,8]C [6, 7, 8](正确答案)D (1,2,6, 7, 8)10.dict1={'星座':['狮子','白羊','金牛']}dict1['星座'].append('巨蟹')执行以上语句后dict1['星座'][2]的值是_____。
JAVA编程题全集(100题及答案)

Java程序设计总复习题1、编写一个Java程序在屏幕上输出“你好!”。
(p13,例1-1)//programme name Helloworld.javapublic class Helloworld {public static void main(String args[]) {System.out.print ("你好!" );}}2. 编写一个Java程序,用if-else语句判断某年份是否为闰年。
// Programme Name LeapYear.javapublic class LeapYear{public static void main(String args[]){int year=2010;if(args.length!=0)year=Integer.parseInt(args[0]);if((year%4==0 && year%100!=0)||(year%400==0))System.out.println(year+" 年是闰年。
");elseSystem.out.println(year+" 年不是闰年。
");}}//if-else语句3、编写一个Java程序在屏幕上输出1!+2!+3!+……+10!的和。
(p64,例2-2)// programme name ForTest.javapublic class ForTest {public static void main( String args[] ) {int i,j,mul,sum=0;for(i=1;i<=10;i++) {mul=1;for(j=1,j<=i;j++) {mul=mul*j;}sum=sum+mul;public class Factorial { //下面的这个方法利用递归的方法求阶乘public intgetFac(int m) { if(m==1) { return 1; } else { return m*getFac(m-1); } } public static void main(String args[]) { Factorial fac=new Factorial(); //System.out.println(fac.getFac(4)); int sum=0; for(int i=1;i<=10;i++) { sum+=fac.getFac(i); } System.out.println("1到10的阶乘的和是:"+sum); } }}System.out.println(“1!+2!+3!+……+10!= ”+sum);}}4. (1)编写一个圆类Circle,该类拥有:①一个成员变量Radius(私有,浮点型);// 存放圆的半径;②两个构造方法Circle( ) // 将半径设为0Circle(double r ) //创建Circle对象时将半径初始化为r③三个成员方法double getArea( ) //获取圆的面积double getPerimeter( ) //获取圆的周长void show( ) //将圆的半径、周长、面积输出到屏幕(2)编写一个圆柱体类Cylinder,它继承于上面的Circle类。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、函数的定义与调用(1)分别用冒泡法(升序)、选择法(降序)、擂台法(升序)编写三个对一维数组进行排序的函数,函数名为sort1()、sort2()、sort3()。
再定义一个输出数组元素值的函数print()。
在主函数中定义一维整型数组a[N](N=10),用键盘输入10个整数给a[N]数组。
依次调用sort1()、print()、sort2()、print()、sort3()、print(),进行升序、降序、升序的操作,并输出每次排序后的结果。
输入十个实验数据:10,25,90,80,70,35,65,40,55,5(2)编写一个函数px(float x,int n)用递归的方法求下列级数前n项的和s。
在主函数中定义变量x与n,用键盘输入x与n的值,调用px()函数计算并返回级数前n项和s。
最后输出s的值。
输入实验数据:x=1.2 n=10解答参考(1)#include <iostream.h>#include <iomanip.h>#define N 10void print(int a[]){ int i;for(i=0;i<N;i++)cout<<setw(5)<<a[i];cout<<endl;}void sort1( int a[] ){ int i,j,temp;for(i=0;i<N-1;i++)for(j=0;j<=N-1-i;j++)if (a[j]>a[j+1]){ temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}void sort2( int a[] ){ int i,j,temp;for(i=0;i<N-1;i++)for(j=i+1; j<N;j++)if (a[i]<a[j]){ temp=a[i];a[i]=a[j];a[j]=temp;}void sort3( int a[] ){int i,j,k,temp;for(i=0;i<N-1;i++){ k=i;for(j=i+1; j<N;j++)if (a[k]>a[j]) k=j;if (k>i){ temp=a[i]; a[i]=a[k]; a[k]=temp;}}}void main(void){int i;int b[10];cout<<"请输入10个数:"<<endl;for(i=0;i<10;i++)cin>>b[i];sort1(b);cout<<"输出排好序的10个数:"<<endl;print(b);sort2(b);cout<<"输出排好序的10个数:"<<endl;print(b);sort3(b);cout<<"输出排好序的10个数:"<<endl;print(b);}程序运行结果:请输入10个数:2 6 9 11 5 61 25 32 22 14 19输出排好序的10个数:2 5 6 9 10 11 14 22 25 32 输出排好序的10个数:32 25 22 14 11 10 9 6 5 2 输出排好序的10个数:2 5 6 9 10 11 14 22 25 32(2)①递归公式为:x ; n=1px(n)=px(n-1)+(-1)n-1xn ; n>1②递归结束条件:n=1③递归约束条件:n>1# include <iostream.h># include <math.h>void main(void){ float x;int n;float px(float,int);cout<<"please input x,n:";cin>>x>>n;cout<<"px="<<px(x,n)<<endl;}float px(float x,int n){ float p;if (n==1)p=x;elsep=px(x,n-1)-pow(-1,n)*pow(x,n);return p;}程序运行结果:please input x,n:2 4px=-10二、类与对象的定义与使用(1)定义一个复数类Complex,复数的实部Real与虚部Image定义为私有数据成员。
用复数类定义复数对象c1、c2、c3,用默认构造函数将c1初始化为c1=20+40i ,将c2初始化为c2=0+0i,用拷贝构造函数将c3初始化为c3=20+40i。
用公有成员函数Dispaly()显示复数c1、c2与c3 的内容。
(2)定义一个学生成绩类Score,描述学生成绩的私有数据成员为学号(No)、姓名(Name[8])、数学(Math)、物理(Phi)、数据结构(Data)、平均分(ave)。
定义能输入学生成绩的公有成员函数Write(),能计算学生平均分的公有成员函数Average(),能显示学生成绩的公有成员函数Display()。
在主函数中用Score类定义学生成绩对象数组s[3]。
用Write()输入学生成绩,用Average()计算每个学生的平均分,最后用Display()显示每个学生的成绩。
实验数据:No Name Math Phi Data Ave1001 Zhou 80 70 601002 Chen 90 80 851003 Wang 70 75 89(3)定义一个矩形类Rectangle,矩形的左上角(Left,Top)与右下角坐标(Right,Bottom)定义为保护数据成员。
用公有成员函数Diagonal()计算出矩形对角线的长度,公有成员函数Show()显示矩形左上角与右下角坐标及对角线长度。
在主函数中用new运算符动态建立矩形对象r1,初值为(10,10,20,20)。
然后调用Show()显示矩形左上角与右下角坐标及对角线长度。
最后用delete运算符回收为矩形动态分配的存储空间。
解答参考(1)# include <iostream.h>class Complex{ private:float Real,Image;public:Complex(float r,float i) //定义有参构造函数{ Real=r;Image=i;}Complex(Complex &c) //定义拷贝构造函数{ Real=c.Real;Image=c.Image;}Complex() //定义无参构造函数{ Real=0;Image=0;}void Display(){ cout<<Real<<"+"<<Image<<"i"<<'\n';}} ;void main(void){ Complex c1(10,20),c2,c3(c1);c1.Display();c2.Display();c3.Display();}程序运行结果:10+20i0+0i10+20i(2)# include <iostream.h># include <string.h>class Score{ private:int No;char Name[8];float Math,Phi,Data,Ave;public:void Write(int no,char name[],float math,float phi,float data){ No=no;strcpy(Name,name);Math=math;Phi=phi;Data=data;}void Average(void){ Ave=(Math+Phi+Data)/3;}void Display(){ cout<<No<<'\t'<<Name<<'\t'<<Math<<'\t';cout<<Phi<<'\t'<<Data<<'\t'<<Ave<<'\n';}};void main(void){ int i,no;char name[8];float math,phi,data;Score s[3];cout<<"Input 3 student data"<<'\n';for (i=0;i<3;i++){cin>>no>>name>>math>>phi>>data;s[i].Write(no,name,math,phi,data);s[i].Average();}cout<<"学号姓名数学物理数据结构平均分\n";for (i=0;i<3;i++)s[i].Display();}程序运行结果:Input 3 student data1001 Zhou 80 70 601002 Chen 90 80 851003 Wang 70 75 89学号姓名数学物理数据结构平均分1001 Zhou 80 70 60 70 1002 Chen 90 80 85 85 1003 Wang 70 75 89 78 (3)# include <iostream.h># include <math.h>class Rectangle{ protected:float Left,Top;float Right,Bottom;public:Rectangle(float l,float t, float r,float b){ Left=l;Top=t;Right=r;Bottom=b;}Rectangle(Rectangle & R){ Left=0;Top=0;Right=R.Right;Bottom=R.Bottom;}double Diagonal(){ return sqrt((Left-Right)* (Left-Right)+(Top-Bottom)*(Top-Bottom));}void Show(){ cout<<"(Left,Top)=("<<Left<<","<<Top<<")"<<'\n';cout<<"(Right,Bottom)=("<<Right<<","<<Bottom<<")"<<'\n';cout<<" Diagonal="<< Diagonal()<<'\n';}} ;void main(void){ Rectangle *r1=new Rectangle(10,10,20,20);r1->Show();delete r1;}程序运行结果:(Left,Top)=(10,10)(Right,Bottom)=(20,20)Diagonal=14.1421三、类的继承(1)定义描述职工档案的类Archives,私有数据成员为职工号(No)、姓名(Name[8])、性别(Sex)、年龄(Age)。