程序设计综合设计题目详解
- 格式:doc
- 大小:123.50 KB
- 文档页数:7
1006题目描述输入10个数,找出其中绝对值最小的数,将它和最后一个数交换,然后输出这10个数。
输入十个数输出交换后的十个数样例输入10 2 30 40 50 60 70 80 90 100样例输出10 100 30 40 50 60 70 80 90 2#include <stdio.h>int main( ){int i,j,t,min,a[11];for(i=1;i<=10;i++)scanf("%d",&a[i]);for(i=1;i<=10;i++){min=i;for(j=i+1;j<=10;j++)if(a[min]>a[j])min=j;t=a[min];a[min]=a[10];a[10]=t;}for(i=1;i<=10;i++)printf("%d ",a[i]);//printf("\n");return 0;}1007题目描述输入一个正数x和一个正整数n,求下列算式的值。
要求顶一个调用2个函数:fact(n)计算n的阶乘;mypow(x,n)计算x的n次幂(即xn),两个函数的返回值类型是double。
x - x2/2! + x3/3! + ... + (-1)n-1xn/n!×输出保留4位小数。
输入x n输出数列和样例输入2.0 3样例输出1.33331008题目描述输入x ,计算并输出下列分段函数f(x) 的值。
可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs() 和幂函数pow()。
保留2位小数输入x输出f(x)样例输入5样例输出15.001009题目描述输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。
要求定义和调用函数ctof(c),将摄氏温度C转换成华氏温度F,计算公式:F = 32 + C* 9/5。
程序设计题库及答案详解程序设计题库及答案详解是面向计算机科学与技术专业学生以及编程爱好者的一份重要学习资料。
它不仅包含了大量的编程题目,还提供了详细的解题思路和答案,帮助读者深入理解程序设计的原理和技巧。
# 一、基础题目1. 题目1:编写一个程序,实现两个整数的加法。
- 答案详解:首先定义两个整数变量,然后使用加法运算符将它们相加,并将结果存储在一个新变量中。
最后,输出结果。
2. 题目2:编写一个程序,实现字符串的反转。
- 答案详解:可以使用循环结构遍历字符串的每个字符,并将它们添加到一个新的字符串的开始位置。
完成后,输出反转后的字符串。
# 二、数组与循环3. 题目3:编写一个程序,找出数组中的最大值。
- 答案详解:首先初始化一个变量来存储最大值,然后使用循环遍历数组中的每个元素,并与当前最大值进行比较,如果当前元素更大,则更新最大值。
循环结束后,输出最大值。
4. 题目4:编写一个程序,实现数组的排序。
- 答案详解:可以使用冒泡排序或选择排序等算法。
以冒泡排序为例,通过多次遍历数组,比较相邻元素的大小,并在必要时交换它们的位置,直到整个数组有序。
# 三、函数与递归5. 题目5:编写一个函数,计算两个数的乘积。
- 答案详解:定义一个函数,接受两个参数,然后在函数内部使用乘法运算符计算它们的乘积,并返回结果。
6. 题目6:编写一个递归函数,计算阶乘。
- 答案详解:定义一个递归函数,如果输入的数为0或1,则返回1;否则,返回输入数乘以递归调用该函数的结果,输入数减1。
# 四、数据结构7. 题目7:编写一个程序,实现链表的插入操作。
- 答案详解:首先定义链表节点的结构,然后编写一个函数来创建新的节点。
在插入操作中,根据插入位置的不同,调整节点的指针指向。
8. 题目8:编写一个程序,实现二叉树的遍历。
- 答案详解:可以使用前序、中序或后序遍历。
以中序遍历为例,首先遍历左子树,然后访问根节点,最后遍历右子树。
VB程序设计教案例题及解析程序设计教案例题及解析VB程序设计是一门非常重要的计算机科学技能,它在各行各业都有广泛的应用。
本文旨在提供一些VB程序设计练习题及解析,帮助初学者获取更多知识,并提高自己的技能水平。
一、VB程序设计实践题1.基础实践题目:设计一个VB程序,让用户输入两个数并输出两个数之和。
2.中级实践题目:设计一个VB程序,让用户输入一个数字并输出该数字的因数。
3.高级实践题目:设计一个VB程序,让用户输入文本并输出该文本中出现次数最多的字符。
二、VB程序设计实践解析1.基础实践题目解析:我们需要在VB程序中设计两个文本框和一个按钮,用于用户输入两个数并输出两数之和。
用户输入两个数后,我们需要通过VB程序获取用户输入的数值,并通过代码计算它们的和。
代码如下:Dim x As IntegerDim y As IntegerDim sum As Integerx = Val(Text1.Text)y = Val(Text2.Text)sum = x + yText3.Text = sum在代码中,我们使用了VB中的计算公式sum=x+y来计算两个数的和,并使用了Text3.Text将计算结果输出。
2.中级实践题目解析:在这个题目中,用户需要输入一个数字,并输出该数字的因数。
我们可以通过VB程序实现这个操作。
我们需要在VB程序中设计一个文本框和一个按钮,用于用户输入一个数字并输出该数字的因数。
用户输入数字后,我们需要通过VB程序获取用户输入的数值,并通过代码计算它的因数。
代码如下:Dim x As IntegerDim i As IntegerDim count As Integerx = Val(Text1.Text)For i = 1 To x Step 1If x Mod i = 0 Thencount = count + 1End IfNext iText2.Text = count在代码中,我们使用了VB中的For循环语句来遍历x的因数,并计算因数的数量(count)。
c程序设计题库及详解答案在C语言的学习过程中,掌握各类编程题目并理解其解答是至关重要的。
以下是一些常见的C程序设计题库及对应的详解答案。
1. 求两个数的最大公约数使用辗转相除法(欧几里得算法)可以求得两个数的最大公约数。
以下是求解的C程序代码:```c#include <stdio.h>int gcd(int a, int b) {while (b != 0) {int temp = b;b = a % b;a = temp;}return a;}int main() {int num1, num2;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);printf("最大公约数是:%d\n", gcd(num1, num2));return 0;}```2. 计算一个数的阶乘阶乘是一个数与所有小于它的正整数的乘积。
以下是计算阶乘的C 程序代码:```c#include <stdio.h>long long factorial(int n) {if (n == 0)return 1;return n * factorial(n - 1);}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);printf("%d 的阶乘是:%lld\n", num, factorial(num)); return 0;}```3. 判断一个数是否为素数素数是指只能被1和其本身整除的大于1的自然数。
以下是判断素数的C程序代码:```c#include <stdio.h>#include <math.h>int isPrime(int n) {if (n <= 1)return 0;for (int i = 2; i <= sqrt(n); i++) {if (n % i == 0)return 0;}return 1;}int main() {int num;printf("请输入一个整数:");scanf("%d", &num);if (isPrime(num))printf("%d 是素数。
程序设计题库及答案详解一、选择题1. 下列哪个选项不是面向对象编程的三大特性?A. 封装B. 继承C. 多态D. 过程化答案:D2. 在Java中,以下哪个关键字用于定义类?A. classB. interfaceC. enumD. struct答案:A3. 以下哪个是Python中的循环结构?A. forB. whileC. both A and BD. none of the above答案:C二、填空题1. 程序设计中的________是用来定义数据的属性和方法的集合。
2. 在C语言中,________关键字用于声明一个函数。
答案:void 或者 int(根据函数返回类型而定)3. 在JavaScript中,________方法用于将字符串转换为数字。
答案:parseInt 或 parseFloat(根据转换类型而定)三、简答题1. 请简述什么是递归函数,并给出一个简单的递归函数示例。
答案:递归函数是指在函数内部调用自身的函数。
递归函数通常用于解决可以分解为相同问题的子问题的问题。
以下是一个计算阶乘的递归函数示例:```cint factorial(int n) {if (n == 0) return 1;return n * factorial(n - 1);}```2. 解释什么是堆栈,并说明它们在程序设计中的应用。
答案:堆栈是两种不同的数据结构。
堆是一种优先队列,其中最大或最小元素可以在对数时间内被找到。
栈是一种遵循后进先出(LIFO)原则的数据结构。
在程序设计中,堆栈广泛应用于内存管理、函数调用、表达式求值、回溯算法等领域。
四、编程题1. 编写一个函数,实现字符串的反转。
```pythondef reverse_string(s):return s[::-1]```2. 给定一个整数数组nums,请找出数组中最长递增子序列的长度。
答案:```pythondef lengthOfLIS(nums):if not nums: return 0dp = [1] * len(nums)for i in range(1, len(nums)):for j in range(i):if nums[i] > nums[j]:dp[i] = max(dp[i], dp[j] + 1)return max(dp)```五、案例分析题1. 描述一个场景,其中使用多线程可以提高程序的效率,并解释为什么。
程序设计综合课程设计题目1.运动会分数统计任务:参加运动会有n个学校,学校编号为1……n。
比赛分成m个男子项目,和w个女子项目。
项目编号为男子1……m,女子m+1……m+w。
不同的项目取前五名或前三名积分;取前五名的积分分别为:7、5、3、2、1,前三名的积分分别为:5、3、2;哪些取前五名或前三名由学生自己设定。
(m<=20,n<=20)功能要求:1)可以输入各个项目的前三名或前五名的成绩;2)能统计各学校总分,3)可以按学校编号或名称、学校总分、男女团体总分排序输出;4)可以按学校编号查询学校某个项目的情况;可以按项目编号查询取得前三或前五名的学校。
5)数据存入文件并能随时查询6)规定:输入数据形式和范围:可以输入学校的名称,运动项目的名称输出形式:有合理的提示,各学校分数为整形界面要求:有合理的提示,每个功能可以设立菜单,根据提示,可以完成相关的功能要求。
存储结构:学生自己根据系统功能要求自己设计,但是要求运动会的相关数据要存储在数据文件中。
(数据文件的数据读写方法等相关内容在c语言程序设计的书上,请自学解决)请在最后的上交资料中指明你用到的存储结构;测试数据:要求使用1、全部合法数据;2、整体非法数据;3、局部非法数据。
进行程序测试,以保证程序的稳定。
测试数据及测试结果请在上交的资料中写明;2.飞机订票系统任务:通过此系统可以实现如下功能:录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;退票:可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。
修改航班信息:当航班信息改变可以修改航班数据文件要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能;3.文章编辑功能:输入一页文字,程序可以统计出文字、数字、空格的个数。
程序设计员实操考核综合试题1. 题目1请编写一个程序,实现一个简单的计算器。
要求程序具备以下功能:•用户可以输入两个数字和一个操作符(支持加法、减法、乘法和除法)。
•程序应根据用户输入的操作符,进行相应的计算,并输出结果。
•用户可以选择是否继续进行下一次计算,如果选择继续,则程序应继续接收用户的输入。
2. 题目2编写一个程序,实现一个简单的文件读取器。
要求程序具备以下功能:•用户可以输入文件名或文件路径,程序应读取指定的文件,并将文件内容输出到控制台。
•程序应能处理各种类型的文件,如文本文件、图片文件等。
•用户可以选择是否继续读取下一个文件,如果选择继续,则程序应继续接收用户的输入。
3. 题目3编写一个程序,实现一个简单的数据排序器。
要求程序具备以下功能:•用户可以输入一组数字,程序应对输入的数字进行排序,并输出排序后的结果。
•程序应支持多种排序算法,如冒泡排序、选择排序、插入排序等。
•用户可以选择使用哪种排序算法进行排序,程序应根据用户的选择进行相应的排序操作。
4. 题目4编写一个程序,实现一个简单的字符串处理器。
要求程序具备以下功能:•用户可以输入一段字符串,程序应能对字符串进行操作,如计算字符串长度、统计字符串中某个字符出现的次数等。
•程序应能对字符串进行基本的处理,如将字符串转换为大写、小写、反转等。
•用户可以选择是否继续处理下一个字符串,如果选择继续,则程序应继续接收用户的输入。
5. 题目5编写一个程序,实现一个简单的日历管理器。
要求程序具备以下功能:•用户可以输入年份和月份,程序应能根据用户的输入,生成对应的日历,并输出到控制台。
•程序应能支持不同的日历格式,如星期一开始、星期日开始等。
•用户可以选择是否继续查询下一个月份的日历,如果选择继续,则程序应继续接收用户的输入。
总结本文介绍了五道程序设计员实操考核综合试题,包括简单的计算器、文件读取器、数据排序器、字符串处理器和日历管理器。
c加加程序设计试题及答案C++程序设计试题及答案一、基本概念题1. 什么是C++程序设计?C++程序设计是一种编程语言,它扩展自C语言,提供了更多的功能和特性。
通过使用C++语言,开发者可以写出高效、可靠且可维护的软件应用程序。
2. C++的特点有哪些?C++的特点包括面向对象、高性能、可移植性、通用性、静态类型检查、底层控制、丰富的库等。
3. 什么是面向对象编程?面向对象编程是一种编程范式,它将数据和操作数据的方法封装在一起,形成对象。
C++是一种支持面向对象编程的语言,通过类和对象的概念来实现面向对象编程。
4. 什么是类和对象?类是一种用户自定义的数据类型,它定义了一组属性和方法。
对象是类的实例,它可以使用类中定义的属性和方法。
5. C++中如何定义类和对象?在C++中,可以使用class关键字定义类,然后使用类名创建对象。
6. 什么是构造函数和析构函数?构造函数是在创建对象时自动调用的特殊成员函数,它用于初始化对象的属性。
析构函数是在对象销毁时自动调用的特殊成员函数,它用于释放对象占用的资源。
二、程序设计题1. 编写一个C++程序,实现计算两个整数相加的功能。
要求输入两个整数,输出它们的和。
```cpp#include <iostream>using namespace std;int main() {int num1, num2;cout << "请输入两个整数:";cin >> num1 >> num2;int sum = num1 + num2;cout << "它们的和为:" << sum << endl;return 0;}```2. 编写一个C++程序,实现计算圆的周长和面积的功能。
要求输入圆的半径,输出圆的周长和面积。
```cpp#include <iostream>using namespace std;const double PI = 3.14159;int main() {double radius;cout << "请输入圆的半径:";cin >> radius;double circumference = 2 * PI * radius;double area = PI * radius * radius;cout << "圆的周长为:" << circumference << endl;cout << "圆的面积为:" << area << endl;return 0;}```三、答案解析1. 第一题是一个简单的整数相加的程序。
程序设计试题及答案一、选择题(每题2分,共20分)1. 在C语言中,以下哪个关键字用于定义一个函数?A. intB. voidC. returnD. function答案:A2. 下列哪个选项是合法的C语言变量名?A. 2variableB. variable-nameC. variable#nameD. variable_name答案:D3. 在C语言中,以下哪个语句用于结束一个循环?A. continueB. breakC. exitD. return答案:B4. 以下哪个选项是C语言中的条件语句?A. ifB. switchC. forD. while答案:A5. 在C语言中,数组的索引是从哪个数字开始的?A. 0B. 1C. -1D. 随机数答案:A6. 以下哪个是C语言中的标准输入输出库?A. <iostream>B. <stdio.h>C. <iostream.h>D. <stdio>答案:B7. 在C语言中,以下哪个函数用于计算两个数的和?A. pow()B. sqrt()C. abs()D. sum()答案:D(注意:sum()不是C语言标准库函数,这里假设为自定义函数)8. 以下哪个选项是C语言中的循环结构?A. if-elseB. switch-caseC. for, while, do-whileD. try-catch答案:C9. 在C语言中,以下哪个关键字用于定义一个结构体?A. classB. structC. unionD. enum答案:B10. 下列哪个选项是C语言中的位操作符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共20分)11. 在C语言中,使用________关键字可以定义一个指针。
答案:int* 或者 *(具体类型根据上下文)12. 一个C语言程序的执行从________函数开始。
面向对象程序设计期末综合程序设计-六参考解答程序设计参考解答1. 若采用for循环编写程序,则如下所示:void main(){int i=0; double s=0;while(s<5) s+=double(1)/++i;cout<<"n="<<i<<endl;}#include<iostream.h>void main(){int i; double s=0;for(i=1; s<5; i++) s+=1.0/i;cout<<"n="<<i-1<<endl;//注意:此i-1的值为所求的n值}2. #include<iostream.h>void main(){int i; //用i作为循环变量int p=1; //用p作为累乘变量int s=1; //用s作为累加循环变量for(i=1;i<=10;i++) {p*=3; s+=p;}cout<<s<<endl;}3. #include<iostream.h>void main(){int i=0; //用i作为依次取值偶数的变量int s=0; //用s作为累加变量do {i+=2;s+=i*i;}while(s<1000);cout<<"n="<<i-2<<endl;}4. #include<iomanip.h>#include<math.h>const double a=10.2;void main(){double x,y;cin>>x;while(x!=-100) {if(x<=0) y=sqrt(a*a+x*x);else y=3*a*x*x+4*a*x-1;cout<<x<<’ ’<<y<<endl;cin>>x;}}5. #include<iostream.h>void main(){int x,max;cin>>x;max=x;for(int i=0;i<9;i++) {cin>>x;if(x>max) max=x;}cout<<"max:"<<max<<endl;}6. #include<iostream.h>void main(){int a,b;for(a=6;a<=30; a++)for(b=15;b<=36;b++)if(2*a+5*b==126)cout<<'('<<a<<','<<b<<')'<<endl;}7. #include<iomanip.h>void main(){int c1,c2,c3;double x;c1=c2=c3=0;cin>>x;while(x>0) {if(x<=12) c1++;else if(x<=15) c2++;else c3++;cin>>x;}cout<<c1<<’ ’<<c2<<’ ’<<c3<<endl; }8. void fun4(char* a, int b[]){int i;for(i=0;i<10;i++) b[i]=0;while(*a) {int j=*a-’0’;if(j>=0 && j<=9) b[j]++;a++;}}9. double Mean(double a[M][N],int m,int n); double Mean(double a[M][N],int m,int n) {int i,j;double v=0.0;for(i=0; i<m; i++)for(j=0; j<n; j++)v+=a[i][j];v/=m*n;return v;}10.int f(int a[],int n){if(n==0) return 0;else return a[n-1]*a[n-1]+f(a,n-1);}11.void p(int n){if(n!=0) {for(int i=0; i<n; i++) cout<<n;cout<<endl;p(n-1);}}12. void p(int n){if(n!=0) {p(n-1);for(int i=0; i<n; i++) cout<<n;cout<<endl;}}13.int AA::Count(int x){int i,c=0;for(i=0; i<n;i++)if(a[i]==x) c++;return c;}14.int AA::Search(int x){int i;for(i=0; i<n;i++)if(a[i]==x) return i;return -1;}15.int AA::MaxMin(int& x, int& y){int mx,my;mx=my=a[0];for(int i=1; i<n; i++) {if(a[i]>mx) mx=a[i];if(a[i]<my) my=a[i];}x=mx; y=my;if(n>0) return 1; else return 0;}16.int AA::Compare(AA b){if(n!=b.n) return 0;for(int i=0; i<n; i++)if(a[i]!=b.a[i]) return 0;return 1;}17.int AA::CompareBig(AA b){int k;if(n>b.n) k=b.n; else k=n;for(int i=0; i<k; i++)if(a[i]>b.a[i]) return 1;else if(a[i]<b.a[i]) return -1;if(k==n && k==b.n) return 0;else if(k<n) return 1;else return -1;}18.AA* AA::Reverse(){int i,x;for(i=0; i<n/2; i++) {x=a[i]; a[i]=a[n-1-i]; a[n-1-i]=x;}return this;}19.AA* AA::Reverse1(){AA *px=new AA;px->n=n; px->MS=MS;px->a=new int[MS];for(int i=0; i<n; i++) {px->a[n-1-i]=a[i];}return px;}20.Array::Array(int aa[], int nn) {n=nn;a=new int[n];for(int i=0; i<n; i++) a[i]=aa[i];}21.Array::Array(Array& aa) {n=aa.n;a=new int[n];for(int i=0; i<n; i++) a[i]=aa.a[i];}22.Array& Array::Give(Array& aa) {delete []a;n=aa.n;a=new int[n];for(int i=0; i<n; i++) a[i]=aa.a[i];return *this;}23.Array Array::Uion(Array& aa) {int k=n+aa.n;int* w=new int[k];int i;for(i=0; i<n; i++) w[i]=a[i];for(i=0; i<aa.n; i++) w[i+n]=aa.a[i];Array r(w,k);return r;}24.Strings::Strings(char*str) {n=strlen(str);s=new char[n+1];strcpy(s,str);}25.Strings::Strings(Strings& str) {n=str.n;s=new char[n+1];strcpy(s,str.s);}26.Strings& Strings::Give(Strings& str) {delete []s;n=str.n;s=new char[n+1];strcpy(s,str.s);return *this;}27.Strings Strings::Uion(Strings& str) {Strings r("");r.n=n+str.n;r.s=new char[r.n+1];strcpy(r.s,s);strcat(r.s,str.s);return r;}28.class A_class {private:int x,y,t;public:A_class(int i,int j):x(i),y(j){if(y>x){t=x;x=y;y=t;}; } //其它函数从略 friend int Variance (A_class& ac); //参数名任意 }; int Variance (A_class& ac) { return ac.x*ac.x-ac.y*ac.y; } void main() { A_class A_obj(3,5); cout<<"Result:"<<Variance(A_obj)<<endl; } 29. for(int i=0; i<m1.rows; i++) for(int j=0; j<m2.cols; j++){ sum=0; for(int k=0; k<m1.cols; k++) sum+=m1.mem[i*m1.cols+k]*m2.mem[k*m2.cols+j]; m3.mem[i*m3.cols+j] = sum; } return true; 30. Rectangle (float len,float wid):length(len),width(wid){} ~Rectangle (){} float GetPerimeter() {return 2*(length+width);} //计算矩形周长 float GetAre() {return length*width;} //计算矩形面积 31. Circle(float rad):rad(rad){} ~Circle(){} float GetPerimeter() {return 2*PI*rad;} //计算圆形周长 float GetAre() {return PI*rad *rad;} //计算圆形面积题目1. 编一程序求出满足不等式1+1/2+1/3+...+1/n ≥5的最小n 值。
程序设计综合设计题目详解1. 大整数加法计算两个整数m 、n 的和,0<=m,n<=1050。
输入输出格式:本题只有1组输入数据,每组数据只有1行,每组数据包含两个0到1050之间的大整数,两个整数中间用1个空格分隔。
对于每组数据,输出一行,表示两个大整数的和。
样例输入:input.txt12345678909876543211234111222 98765432101234567891234111222 样例输出:output.txt1111111110111111111024682224442. 舞伴问题:假设在周末舞会上,男士们(m 人)和女士们(n 人)进入舞厅时,各自排成一队。
跳舞开始时,依次从男队和女队的队头上各出一人配成舞伴。
若两队初始人数不相同,则较长的那一队中未配对者等待下一轮舞曲。
现要求写一算法模拟上述舞伴配对问题。
并m 和n 存在什么条件时,第x 个(1<=x<=m )男生才有可能和他心仪的第y 个(1<=x<=n )女生跳舞,在第几首曲子时?3. 一元多项式加法:有两个一元多项式P(x)和Q(x)需要相加,一类情况是项数很多,次数比较连续的情况,另一类是项数不多,但次数不连续的情况,试分别设计合理的数据结构对其进行求解。
测试数据:(1)P(x)=201(1)i i i x =+∑ Q(x)=2011(23)i i i x -=+ ∑(2)P(x)=1005611100282345x x x x +-+ Q(x)=10056122558335x x x x --+4 约瑟夫环问题:已知n 个人(以编号1,2,3...n 分别表示)围坐在一张圆桌周围。
从编号为k 的人开始报数,数到m 的那个人出列;他的下一个人又从1开始报数,数到m 的那个人又出列;依此规律重复下去,直到圆桌周围的人全部出列。
请给出出列人的编号序列。
5. 不浪费空间的矩阵乘法一直两个矩阵X m n ⨯ 和Y n p ⨯ 要相乘,但不允许事先分配一个很大空间的二维数组来存储矩阵,而是要动态分配实际数据需要占有的空间进行矩阵乘法。
测试数据:自行设计 m 、n 、 p>36. 背包问题:设有一个背包可以放入的物品重量为S,现有n件物品,重量分别为W1,W2,...Wn。
问能否从这n件物品中选择若干件放入此背包,使得放入的重量之和正好为S,试求所有解。
测试数据:s=20,n=10,wi=1,2,3,4,5,6,7,8,9,107. 迷宫问题:在M*N的二维迷宫内.1为墙.0为路. 一共4个方向. 从左下角走到右上角.可以走输出YES.不可以走则输出NO. 如果可以找到路径,试找出最短路径,具体内容在栈与队列章的课件上有讲解。
8. 二叉排序树操作试编写二叉树这种数据结构的常用操作(结点插入,查找,构造、删除,其中删除操作要求用三种方法实现,一种基本方法,两种改进方法)测试数据:自行设计,树的深度不小用49. 基于快速排序方法改成求第k大的数快速排序方法可以将n个无数有序化,试基于快速排序方法编写快速求成n个无数中第k个大的数。
测试数据:自行设计,n>20, k随机输入10. 两顺序栈共享空间的操作实现两个顺序栈X和Y在一个数组M[0,maxsize]里面,约定top指针指向实际栈顶,X和Y栈的栈底分别指向数组两端,试写出这种情况下两栈的基本操作。
测试数据:自行设计11. 哈夫曼编码和译码现有a-z 26个字母构成的电文,使用频率见课件,请给出每个字母对应的哈夫曼编码和测试字符串的编码和译码操作。
测试数据:Data structure is one of the most important courses of ours.I love data structure12. 分油问题1(1)有8斤油,今只有盛5斤、3斤的容器各一个,如何才能将油分成二等份?(初级版,最高90分)13. 农夫过河问题1(1) 农夫过河。
一个农夫带着一只狼,一只羊和一些菜过河。
河边只有一条一船,由于船太小,只能装下农夫和他的一样东西。
在无人看管的情况下,狼要吃羊,羊要吃菜,请问农夫如何才能使三样东西平安过河。
(初级版,最高90分)(其他题目大家收集到flash请发给我)14. 复杂表达式求值(带函数):输入一个带函数和加减乘除运算的表达式,要求能自动求出结果,用到的函数为正弦函数sin和开方函数sqrt。
测试数据:5-2×sin(3-sqrt(4))+6/415. 二叉平衡树的构造与结点删除试编制根据一个随机输入序列构造二叉平衡树的算法,并开发在二叉平衡树中删除某结点的算法。
测试数据:3 8 2 5 7 9 1 4 0 6删除结点:216. 八皇后问题:在8X8格的国际象棋上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。
17. 图的基本操作大全基于邻接矩阵和邻接表(任选)的图的深度广度遍历方法、最小生成树、、最短路径、拓扑排序、关键路径算法5选3(全做加10分)测试数据:V1V2V5V7 V3V4V6a1=3a2=2a3=4a4=2a5=6a6=5a7=4a8=5a10=3a9=5(具体图的转化参照附件考题方式)18. 分油问题2(2)有24斤油,今只有盛5斤、11斤和13斤的容器各一个,如何才能将油分成三等份? (提高版,最高100分)19. 野人过河(2) 三个人和三个野人同行,走到前面有一条河挡住了去路,而河面上只有一支小船,小船最多一次只能乘载两个人,《问题关键》当河的这边和河的对面以及船上的野人数量多过人时;人就会被野人吃掉。
问:三个人和三个野人怎样过河人才不会被野人吃掉。
(提高版,最高100分)20. 斗地主游戏设计(每人至少实现3个以上关键操作)要编制一个斗地主游戏程序,可以辅助三个人进行游戏(目前不要求实现网络,单机模拟操作即可),要求实现的基本功能:1. 发牌、其中一人拿底牌2. 出牌及所出牌的合理性校验(是否符合斗地主规则)(以qq斗地主游戏规则为准)4. 提示手上牌能否管住上家出牌,如果可以,有哪些可以管的方案?5. 其他人剩余牌统计,并基于结果分析本人要出的牌是否无人能管6. 其他人剩余牌统计,分析本次出牌被管的概率(高级功能,有加分)7. 编写牌型分析函数,衡量是否适合抓底牌(高级功能,有加分)8. 分析手上剩余牌型,判断是否听牌(一次可以顺序出完,别人管不起)(高级功能,有加分)9. 其他功能,任意发挥每人至少实现3个,人少请分工合作21 .算24游戏设计随机生成4个数,允许采用带括号的加减乘除四则运算计算24,例如:四个数为:5 5 5 1,则输出5*(5-1/5)=24 ,如果算不出来的要给出结果。
测试数据:10 10 4 4 9 9 6 2 3 4 6 822. 智能九宫重排问题在3×3的井字九宫格棋盘上摆有8个将牌,分别标有1到8的一个数码。
棋盘上尚有一个空格,允许其周围的将牌向空格移动。
这样,通过移动将牌就可以不断变换将牌的布局。
现给定如图2.25所示的两种将牌的布局,一种为初始状态,另一种为目标状态。
问如何移动将牌,初始状态将变换成目标状态?(树形结构的启发式搜索)2 83 1 64 7 51 2 3 8 47 6 523. 数独游戏设计与求解数独是一个历史悠久最近又特别流行的数学智力游戏(例如乒乓名将张怡宁就很喜欢),棋盘由9*9的81个小方格组成,玩家要在每个小方格中分别填上1-9的任意一个数字,让整个棋盘每一行,每一列以及每个3*3的小矩阵中的数字都不重复。
试编写数独游戏出题及求解程序。
3 4 2 1 72 9 1 4 57 9 57 6 2 3 1 5 43 1 8 2 72 5 4 1 9 7 32 5 31 3 7 6 85 2 36 13 4 5 8 6 2 9 1 78 6 2 9 7 1 4 3 57 1 9 4 3 5 6 2 89 8 7 6 2 3 1 5 46 3 1 5 8 4 27 92 5 4 1 9 73 8 64 7 6 2 1 85 9 31 9 3 7 5 6 8 4 25 2 8 3 4 9 76 1温馨提示:1.具体内容不明白的请在群内提问,我看到会及时解释!2.提醒:不要自欺欺人,直接抄来又不懂的最终绝对挂掉,必须要自己理解了会写!3.目的只有一个:通过系统训练提升自己运用数据结构知识解决实际问题的能力及编程能力锻炼!4.借用某同学的话:人生最要紧的,不是你站在什么地方,而是你朝什么方向走!附件:3. 根据下图回答问题(10分)V1V2V5V7 V3V4V6a1=3a2=2a3=4a4=2a5=6a6=5a7=4a8=5a10=3a9=5(1)要完成该AOE网中工程,最短时间是多少?(不考虑单位)(3分)(2)上图中的关键路径是什么(用顶点序列表示)?将活动a10的时间改成2可否提前完成?(2分)(3)若将上图看成一个AOV网,并约定当存在多个入度为0的结点时先输出编号较小的结点,则请写出拓扑排序结果。
(2分)(4)若将上图看成无向网,各边权值为活动持续时间,请给出该无向网的一棵最小生成树。
(3分)。