首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
[说明] 已知一棵二叉树用二叉链表存储,t指向根结点,p指向树中任一结点。下列算法为输出从t到p之间路径上的结点。 [函数] #define MaxSize 1000 typedef stru...
查看本题答案
包含此试题的试卷
初级程序员《填空集》真题及答案
点击查看
你可能感兴趣的试题
设二叉树根结点的层次为0一棵高度为h的满二叉树的结点个数是【4】
下列二叉树描述中正确的是
任何一棵二叉树必须有一个度为2的结点
二又树的度可以小于2
非空二叉树有0个或1个根结点
至少有2个根结点
对于一棵具有n个结点的二叉树对应二叉链表中指针总数为个其中个用于指向孩子结点个指针空闲着
二叉树与树都可以用二叉链表作为存储结构二者的关系是
一棵树可以惟一对应一棵二叉树
一棵二叉树惟一对应一棵树
一棵与树对应的二叉树左子树为空
二者没有确定的对应关系
下列二叉树描述中正确的是
任何一棵二叉树必须有一个度为2的结点
二叉树的度可以小于2
非空二叉树有0个或1个根结点
至少有2个根结点
阅读以下说明C函数和问题将解答填入答题纸的对应栏内 【说明】二叉查找树又称为二叉排序树它或
给定一棵用二叉链表表示的二叉树其中的指针t指向根结点试写出从根开始按层次遍历二叉树的算法同层的结点按
下列二叉树描述中正确的是
任何一棵二又树必须有一个度为2的结点
二叉树的度可以小于2
非空二叉树有0个或1个根结点
至少有2个根结点
阅读以下函数说明和C语言函数将应填入____处的字句写在答题纸的对应栏内 已知一棵二叉树用二叉链表存
已知深度为h的二叉树采用顺序存储结构已存放于数组BT[1:2h一1]中请写一非递归算法产生该二叉树的
下列二叉树描述中正确的是
任何一棵二叉树必须有~个度为2的结点
叉树的度可以小于2
非空二叉树有。个或1个根结点
至少有2个根结点
一棵二叉树如下图所示若采用顺序存储结构即用一维数组元素存储该二叉树中的结点根结点的下标为1若某
6
10
12
15
热门试题
更多
[说明]下面程序定义了一个类Shape及其成员函数然后从类Shape派生出类Point类Circle类Cylinder以及它们的成员函数[Java程序]1ShapepublicabstractvoidprintShapeName;//纯虚函数publicdoubleareareturn0.0;publicdoublevolumnreturn0.0;classPointextendsShapeprivatedoublex.y;publicPointdoubleadoublebx=a;y=b;publicvoidsetPointdoubleadoublebx=a;y=b;finalpublicdoublegetXreturnx;finalpublicdoublegetYreturny;publicvoidprintShapeName2;classCircleextendsPointprivatedoubleradius;publicCircledoublerdoubleadoubleb3;radius=r>0r:0;publicvoidsetRadiusdoublerradius=r>0r:0;publicdoublegetRadiusreturnradius;publicdoubleareareturn3.14259*radius*radius;publicvoidprintshapeNameSystem.out.printcircle:;;;classCylinder4privatedoubleheight;publicCylinderdoublehdoublerdoublexdoubleysuperrxy;height=h>0h:0;publicvoidsetHeightdoublehheight=h>0h:0;publicdoublearea//计算表面积return5;publicdoublevolumndoubler=super.getRadius;return3.14159*r*r*height;publicvoidprintShapeNameSystem.out.printcylinder:;
[说明] 设计一个评选优秀教师和学生的程序其类结构如下图所示当输入一系列教师或学生的记录后将优秀学生及教师的姓名列出来 [C++程序] #include<iostream.h> #include<stdio.h> enumbooleanFalseTrue; classbase Protected: charname[8]; public: voidgetnamecout<<"姓名:";cin>>name; voidprintnamecout<<"姓名:"<<name<<endU virtualbooleanisgood=0; classstudent:1 intnum; public: voicigetnum cout<<"考绩:";cin>>num; booleanisgoodreturn2; ; classteacher:3 intnum; public: voidgetnum cout<<"每年发表论文数";cin>>num; booleanisgoodreturn4; voidmain base*p[50]; student*pstud; teacher*ptech; charch; intcount=0; do cunt<<"输入教师t或学生S:"; cin>>ch; ifch==’s’ pstud=newstudent; pstud->getname; pstud->getnum; p[count++]=pstud; elseifch==’t’ ptech=newteacher; ptech->getname; ptech->getnum; p[count++]=ptech; else cout<<"输入错误"<<endl; cout<<"继续输入吗Y/n"; cin>>ch; whilech==’Y’; forinti=0;i<count;i++ if5//若为优秀则输出之 p[i]->printname; 3处填
[说明]下面的流程图用来完成计算一组数组中的中值其方法是将数组中的一个值与其他值比较并计算大于等于被比较数的数值的个数以及小于等于被比较数的数值的个数如果两数都大于n/2则已经找到了中值否则继续之前的步骤注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述[问题]将流程图的1~5处补充完整
[说明]下面的流程图用来完成计算一组数组中的中值其方法是将数组中的一个值与其他值比较并计算大于等于被比较数的数值的个数以及小于等于被比较数的数值的个数如果两数都大于n/2则已经找到了中值否则继续之前的步骤注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述[问题]将流程图的1~5处补充完整
[说明]本程序实现对指定文件内的单词进行计数其中使用二叉树结构来保存已经读入的不同单词并对相同单词出现的次数进行计数此二叉树的左孩子结点的字符串值小于父结点的字符串值右孩子结点的字符串值大于父结点的字符串值函数getwordchar*filenamechar*word是从指定的文件中得到单词char*strdupchar*s是复制s所指向的字符串并返回复制字符串的地址[函数]#include<stdio.h>#include<ctype.h>#include<string.h>#defineMAXWORD100structnodechar*word;intcount;structnode*left;structnode*right;structnode*addtreestructnode*pchar*wintcond;ifp==NULL/*向树中插入结点*/p=structnode*mallocsizeofstructnode;p->word=strdupw;p->count=1;1;elseifcond=strcmpwp->word==02;elseifcond<0p->left=3;elsep->right=4;returnp;mainstructnode*root;charword[MAXWORD];root=NULL;filename=example.dat;whilegetwordfilenameword!=EOFroot=5;
[说明] 设计一个评选优秀教师和学生的程序其类结构如下图所示当输入一系列教师或学生的记录后将优秀学生及教师的姓名列出来 [C++程序] #include<iostream.h> #include<stdio.h> enumbooleanFalseTrue; classbase Protected: charname[8]; public: voidgetnamecout<<"姓名:";cin>>name; voidprintnamecout<<"姓名:"<<name<<endU virtualbooleanisgood=0; classstudent:1 intnum; public: voicigetnum cout<<"考绩:";cin>>num; booleanisgoodreturn2; ; classteacher:3 intnum; public: voidgetnum cout<<"每年发表论文数";cin>>num; booleanisgoodreturn4; voidmain base*p[50]; student*pstud; teacher*ptech; charch; intcount=0; do cunt<<"输入教师t或学生S:"; cin>>ch; ifch==’s’ pstud=newstudent; pstud->getname; pstud->getnum; p[count++]=pstud; elseifch==’t’ ptech=newteacher; ptech->getname; ptech->getnum; p[count++]=ptech; else cout<<"输入错误"<<endl; cout<<"继续输入吗Y/n"; cin>>ch; whilech==’Y’; forinti=0;i<count;i++ if5//若为优秀则输出之 p[i]->printname; 5处填
[说明]设计一程序输入16个整数到一个数组中将数组位序颠倒重新排序使每个数字不再按原j的顺序排列而是按j的二进制数颠倒后得出的数排列例如将第1个0001数与第8个1000数交换将第3个数0011与第12个数1100交换[C++程序]#include<iostream.h>#defineSIZE16#defineSWAPabtemper=a;a=b;b=temper;voidmalnintdata[SIZE];intncout<<请输入<<SIZE<<个整数;forn=0;n<SIZE;n++1;intj=0m;forinti=0;i<n;i++ifj>i2;3;while4&&j>=mj-=m;m>>=15;cout<<endl<<排序后;forn=0;n<SIZE;n++cout<<data[n];<<;
[说明] 本流程图采用“双向冒泡法”实现对数组a[n]的排序双向冒泡法就是在逐步缩小的数组内分别从数组的两端开始向内搜索同时将大数往上浮小数往下沉每次交换一组数flag是一个标志发生过交换就置为1当这个循环过程都不再发生交换时则数组排序完成 注流程中循环开始的说明按照“循环变量循环初值循环终值增量”格式描述; 定义SWAP[ab]为将a和b两数交换 [流程图] [问题] 将流程图的1~5处补充完整 5处填
[说明]本程序实现对指定文件内的单词进行计数其中使用二叉树结构来保存已经读入的不同单词并对相同单词出现的次数进行计数此二叉树的左孩子结点的字符串值小于父结点的字符串值右孩子结点的字符串值大于父结点的字符串值函数getwordchar*filenamechar*word是从指定的文件中得到单词char*strdupchar*s是复制s所指向的字符串并返回复制字符串的地址[函数]#include<stdio.h>#include<ctype.h>#include<string.h>#defineMAXWORD100structnodechar*word;intcount;structnode*left;structnode*right;structnode*addtreestructnode*pchar*wintcond;ifp==NULL/*向树中插入结点*/p=structnode*mallocsizeofstructnode;p->word=strdupw;p->count=1;1;elseifcond=strcmpwp->word==02;elseifcond<0p->left=3;elsep->right=4;returnp;mainstructnode*root;charword[MAXWORD];root=NULL;filename=example.dat;whilegetwordfilenameword!=EOFroot=5;
[函数2.1说明]编制一个字符替换函数repchar*schar*s1char*s2实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替[函数21]#include<stdio.h>#defineMAX50repchar*schar*s1char*s2char*p;for;*s;s++forp=s1;*p&&1;p++;/*检查当前字符是否在字符串s1中出现*/if*p2;/*当前字符在字符串s1中出现用字符串s2中的对应字符代替s中的字符*/[函数2.2说明]函数Insert_Sortintn是一个直接插入排序的程序其基本思想是假设待排序的记录存放在数组R[1n]中初始时R[1]自成一个有序区无序区为R[2n]从i=2起直至i=n为止依次将R[i]插入当前的有序区R[1i-1]中生成含n个记录的有序区[函数2.2]#defineMAX255intR[MAX];voidInsert_Sortintnintij;fori=2;i<=n;i++if3R[0]=R[i];j=i-1;/*R[0]是哨兵且是R[i]的副本*/do/*从右向左在有序区R[1i-1]中查找R[i]的插入位置*/4;/*将关键字大于R[i]的记录后移*/j--;while5;/*当R[i]≥R[j]时终止*/R[j+1]=R[0]j/*R[i]插入到正确的位置上*/
[函数说明3.1] 假设两个队列共享一个循环向量空间参见右图其类型Queue2定义如下 typedefstruct DateTypedata[MaxSize]; intfront[2]rear[2]; Queue2; 对于i=0或1front[i]和rear[i]分别为第i个队列的头指针和尾指针函数EnQueueQueue2*QintiDateTypex的功能是实现第i个队列的入队操作 [函数3.1] intEnQueueQueue2*QintiDateTypex //若第i个队列不满则元素x入队列并返回1;否则返回0 ifi<0||i>1return0 ifQ->rear[i]==Q->front[1] return0 Q->data[2]=x; Q->rear[i]=[3]; return1 [函数说明3.2] 函数BTreeEqualBinTreeNode*T1BinTreeNode*T2的功能是用递归法判断两棵二叉树是否相等若相等则返回1否则返回0函数中参数T1和T2分别为指向这两棵二叉树根结点的指针当两棵树的结构完全相同并且对应结点的值也相同时才被认为相等 已知二叉树中的结点类型BinTreeNode定义为 structBinTreeNode chardata; BinTreeNode*left*right; ; 其中data为结点值域left和right分别为指向左右子女结点的指针域 [函数3.2] intBTreeEqualBinTreeNode*T1BinTreeNode*T2 ifT1==NULL&&T2==NULLreturn1;//若两棵树均为空则相等 elseif4return0;//若一棵为空一棵不为空则不等 elseif5return1;//若根结点值相等并且左右子树 //也相等则两棵树相等否则不等 elsereturn0 5处填
[函数说明3.1] 假设两个队列共享一个循环向量空间参见右图其类型Queue2定义如下 typedefstruct DateTypedata[MaxSize]; intfront[2]rear[2]; Queue2; 对于i=0或1front[i]和rear[i]分别为第i个队列的头指针和尾指针函数EnQueueQueue2*QintiDateTypex的功能是实现第i个队列的入队操作 [函数3.1] intEnQueueQueue2*QintiDateTypex //若第i个队列不满则元素x入队列并返回1;否则返回0 ifi<0||i>1return0 ifQ->rear[i]==Q->front[1] return0 Q->data[2]=x; Q->rear[i]=[3]; return1 [函数说明3.2] 函数BTreeEqualBinTreeNode*T1BinTreeNode*T2的功能是用递归法判断两棵二叉树是否相等若相等则返回1否则返回0函数中参数T1和T2分别为指向这两棵二叉树根结点的指针当两棵树的结构完全相同并且对应结点的值也相同时才被认为相等 已知二叉树中的结点类型BinTreeNode定义为 structBinTreeNode chardata; BinTreeNode*left*right; ; 其中data为结点值域left和right分别为指向左右子女结点的指针域 [函数3.2] intBTreeEqualBinTreeNode*T1BinTreeNode*T2 ifT1==NULL&&T2==NULLreturn1;//若两棵树均为空则相等 elseif4return0;//若一棵为空一棵不为空则不等 elseif5return1;//若根结点值相等并且左右子树 //也相等则两棵树相等否则不等 elsereturn0 1处填
[说明]下面的流程图用来说明如何利用数组求前n个质数要确定一个数m是否是质数可以用已知求出的质数对m的整除性来确定对于任意整数m如果它不能被小于它的质数整除则m也是质数注primes[]是质数表已经求得的质数的个数为pc[问题]将流程图的1~5处补充完整
[说明] 本流程图采用“双向冒泡法”实现对数组a[n]的排序双向冒泡法就是在逐步缩小的数组内分别从数组的两端开始向内搜索同时将大数往上浮小数往下沉每次交换一组数flag是一个标志发生过交换就置为1当这个循环过程都不再发生交换时则数组排序完成 注流程中循环开始的说明按照“循环变量循环初值循环终值增量”格式描述; 定义SWAP[ab]为将a和b两数交换 [流程图] [问题] 将流程图的1~5处补充完整 3处填
[说明]八皇后问题是指求解如何在国际象棋8*8棋盘上无冲突地放置八枚皇后棋子因为在国际象棋里皇后的移动方式是横竖交叉所以在任意一个皇后所在位置的水平竖赢和斜45线上都不能有其他皇后棋子的存在一个完整无冲突的八皇后棋子分布称为八皇后问题的一个解本程序实现了八枚皇后棋子在8*8棋盘上无冲突的放置[函数]#include<math.h>#include<stdio.h>#defineMAX8/*棋子数及棋盘大小MAX*MAX*/intboard[MAX];/*印出结果*/voidshow_resultinti;fori=0;i<MAX;i++printf%d%diboard[i];printf/n;/*检查是否在同一直横斜线上有其他棋子*/intcheck_crossintninti;fori=0;i<n;i++if1return1;return0;/*放棋子到棋盘上*/voidput_chessintninti;fori=0;i<MAX;i++board[n]=i;if2if3show_result;/*找到其中一种放法了印出结果*/else4;voidmainclrscr;putsThepossibleplacementsare:;5;puts/nPressanykeytoquit;getch;return
[说明]下面的流程图用来说明如何利用数组求前n个质数要确定一个数m是否是质数可以用已知求出的质数对m的整除性来确定对于任意整数m如果它不能被小于它的质数整除则m也是质数注primes[]是质数表已经求得的质数的个数为pc[问题]将流程图的1~5处补充完整
[说明]下面的流程图用来完成计算一组数组中的中值其方法是将数组中的一个值与其他值比较并计算大于等于被比较数的数值的个数以及小于等于被比较数的数值的个数如果两数都大于n/2则已经找到了中值否则继续之前的步骤注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述[问题]将流程图的1~5处补充完整
[说明] 设计一个评选优秀教师和学生的程序其类结构如下图所示当输入一系列教师或学生的记录后将优秀学生及教师的姓名列出来 [C++程序] #include<iostream.h> #include<stdio.h> enumbooleanFalseTrue; classbase Protected: charname[8]; public: voidgetnamecout<<"姓名:";cin>>name; voidprintnamecout<<"姓名:"<<name<<endU virtualbooleanisgood=0; classstudent:1 intnum; public: voicigetnum cout<<"考绩:";cin>>num; booleanisgoodreturn2; ; classteacher:3 intnum; public: voidgetnum cout<<"每年发表论文数";cin>>num; booleanisgoodreturn4; voidmain base*p[50]; student*pstud; teacher*ptech; charch; intcount=0; do cunt<<"输入教师t或学生S:"; cin>>ch; ifch==’s’ pstud=newstudent; pstud->getname; pstud->getnum; p[count++]=pstud; elseifch==’t’ ptech=newteacher; ptech->getname; ptech->getnum; p[count++]=ptech; else cout<<"输入错误"<<endl; cout<<"继续输入吗Y/n"; cin>>ch; whilech==’Y’; forinti=0;i<count;i++ if5//若为优秀则输出之 p[i]->printname; 1处填
[说明]设计一程序输入16个整数到一个数组中将数组位序颠倒重新排序使每个数字不再按原j的顺序排列而是按j的二进制数颠倒后得出的数排列例如将第1个0001数与第8个1000数交换将第3个数0011与第12个数1100交换[C++程序]#include<iostream.h>#defineSIZE16#defineSWAPabtemper=a;a=b;b=temper;voidmalnintdata[SIZE];intncout<<请输入<<SIZE<<个整数;forn=0;n<SIZE;n++1;intj=0m;forinti=0;i<n;i++ifj>i2;3;while4&&j>=mj-=m;m>>=15;cout<<endl<<排序后;forn=0;n<SIZE;n++cout<<data[n];<<;
[说明]函数Node*differenceAB用于求两个集合之差C=A-B即当且仅当e是A中的一个元素但不是B中的元素时e是C中的元素集合用有序链表实现用一个空链表表示一个空集合表示非空集合的链表根据元素之值按递增排列执行C=A-B之后表示集合A和B的链表不变若结果集合C非空则表示其链表根据元素之值按递增排列函数append用于在链表中添加结点[函数]typedefstructnodeintelement;structnode*link;Node;Node*A*B*C;Node*appendlasteNode*last;inte;last->link=Node*mallocsizeofNode;last->link->element=e;returnlast->link;Node*differenceABNode*A*B;Node*c*last;C=last=Node*mallocsizeofNode;while1ifA->element<B->elementlast=appendlastA->element;A=A->link;elseif2A=A->link;B=B->link;else3;while4last=appendlastA->element;A=A->link;5;last=C;C=C->link;freelast;returnC;
[说明]函数Node*differenceAB用于求两个集合之差C=A-B即当且仅当e是A中的一个元素但不是B中的元素时e是C中的元素集合用有序链表实现用一个空链表表示一个空集合表示非空集合的链表根据元素之值按递增排列执行C=A-B之后表示集合A和B的链表不变若结果集合C非空则表示其链表根据元素之值按递增排列函数append用于在链表中添加结点[函数]typedefstructnodeintelement;structnode*link;Node;Node*A*B*C;Node*appendlasteNode*last;inte;last->link=Node*mallocsizeofNode;last->link->element=e;returnlast->link;Node*differenceABNode*A*B;Node*c*last;C=last=Node*mallocsizeofNode;while1ifA->element<B->elementlast=appendlastA->element;A=A->link;elseif2A=A->link;B=B->link;else3;while4last=appendlastA->element;A=A->link;5;last=C;C=C->link;freelast;returnC;
[函数2.1说明]编制一个字符替换函数repchar*schar*s1char*s2实现将已知字符串s中所有属于字符串s1中的字符都用字符串s2中的对应字符代替[函数21]#include<stdio.h>#defineMAX50repchar*schar*s1char*s2char*p;for;*s;s++forp=s1;*p&&1;p++;/*检查当前字符是否在字符串s1中出现*/if*p2;/*当前字符在字符串s1中出现用字符串s2中的对应字符代替s中的字符*/[函数2.2说明]函数Insert_Sortintn是一个直接插入排序的程序其基本思想是假设待排序的记录存放在数组R[1n]中初始时R[1]自成一个有序区无序区为R[2n]从i=2起直至i=n为止依次将R[i]插入当前的有序区R[1i-1]中生成含n个记录的有序区[函数2.2]#defineMAX255intR[MAX];voidInsert_Sortintnintij;fori=2;i<=n;i++if3R[0]=R[i];j=i-1;/*R[0]是哨兵且是R[i]的副本*/do/*从右向左在有序区R[1i-1]中查找R[i]的插入位置*/4;/*将关键字大于R[i]的记录后移*/j--;while5;/*当R[i]≥R[j]时终止*/R[j+1]=R[0]j/*R[i]插入到正确的位置上*/
[函数2.1说明]函数intstrcmpchar*schar*t的功能是比较两个字符串s和t的大小若s<t函数返回负数;若s=t函数返回0;若s>t函数返回整数[函数2.1]intstrcmpchar*schar*twhile*s&&*t&&1s++;t++;return2;[函数2.2说明]在n行n列的矩阵中每行都有最大的数求这n个最大数中最小的一个[函数2.2]#include<stdio.h>#defineN100inta[N][N];voidmainintrowcolmaxminn;scanf%d&n;forrow=0;row<n;row++forcol=0;col<n;col++scanf%d&a[row][col];forrow=0;row<n;row++formax=a[row][0]col=1;col<ri;col++if3max=a[row][col];if4min=max;elseif5min=max;printfThemainofmaxnumberis%d/nmin;
[函数说明3.1] 假设两个队列共享一个循环向量空间参见右图其类型Queue2定义如下 typedefstruct DateTypedata[MaxSize]; intfront[2]rear[2]; Queue2; 对于i=0或1front[i]和rear[i]分别为第i个队列的头指针和尾指针函数EnQueueQueue2*QintiDateTypex的功能是实现第i个队列的入队操作 [函数3.1] intEnQueueQueue2*QintiDateTypex //若第i个队列不满则元素x入队列并返回1;否则返回0 ifi<0||i>1return0 ifQ->rear[i]==Q->front[1] return0 Q->data[2]=x; Q->rear[i]=[3]; return1 [函数说明3.2] 函数BTreeEqualBinTreeNode*T1BinTreeNode*T2的功能是用递归法判断两棵二叉树是否相等若相等则返回1否则返回0函数中参数T1和T2分别为指向这两棵二叉树根结点的指针当两棵树的结构完全相同并且对应结点的值也相同时才被认为相等 已知二叉树中的结点类型BinTreeNode定义为 structBinTreeNode chardata; BinTreeNode*left*right; ; 其中data为结点值域left和right分别为指向左右子女结点的指针域 [函数3.2] intBTreeEqualBinTreeNode*T1BinTreeNode*T2 ifT1==NULL&&T2==NULLreturn1;//若两棵树均为空则相等 elseif4return0;//若一棵为空一棵不为空则不等 elseif5return1;//若根结点值相等并且左右子树 //也相等则两棵树相等否则不等 elsereturn0 3处填
[函数2.1说明]函数intstrcmpchar*schar*t的功能是比较两个字符串s和t的大小若s<t函数返回负数;若s=t函数返回0;若s>t函数返回整数[函数2.1]intstrcmpchar*schar*twhile*s&&*t&&1s++;t++;return2;[函数2.2说明]在n行n列的矩阵中每行都有最大的数求这n个最大数中最小的一个[函数2.2]#include<stdio.h>#defineN100inta[N][N];voidmainintrowcolmaxminn;scanf%d&n;forrow=0;row<n;row++forcol=0;col<n;col++scanf%d&a[row][col];forrow=0;row<n;row++formax=a[row][0]col=1;col<ri;col++if3max=a[row][col];if4min=max;elseif5min=max;printfThemainofmaxnumberis%d/nmin;
[说明]设计一程序输入16个整数到一个数组中将数组位序颠倒重新排序使每个数字不再按原j的顺序排列而是按j的二进制数颠倒后得出的数排列例如将第1个0001数与第8个1000数交换将第3个数0011与第12个数1100交换[C++程序]#include<iostream.h>#defineSIZE16#defineSWAPabtemper=a;a=b;b=temper;voidmalnintdata[SIZE];intncout<<请输入<<SIZE<<个整数;forn=0;n<SIZE;n++1;intj=0m;forinti=0;i<n;i++ifj>i2;3;while4&&j>=mj-=m;m>>=15;cout<<endl<<排序后;forn=0;n<SIZE;n++cout<<data[n];<<;
[说明]下面程序定义了一个类Shape及其成员函数然后从类Shape派生出类Point类Circle类Cylinder以及它们的成员函数[Java程序]1ShapepublicabstractvoidprintShapeName;//纯虚函数publicdoubleareareturn0.0;publicdoublevolumnreturn0.0;classPointextendsShapeprivatedoublex.y;publicPointdoubleadoublebx=a;y=b;publicvoidsetPointdoubleadoublebx=a;y=b;finalpublicdoublegetXreturnx;finalpublicdoublegetYreturny;publicvoidprintShapeName2;classCircleextendsPointprivatedoubleradius;publicCircledoublerdoubleadoubleb3;radius=r>0r:0;publicvoidsetRadiusdoublerradius=r>0r:0;publicdoublegetRadiusreturnradius;publicdoubleareareturn3.14259*radius*radius;publicvoidprintshapeNameSystem.out.printcircle:;;;classCylinder4privatedoubleheight;publicCylinderdoublehdoublerdoublexdoubleysuperrxy;height=h>0h:0;publicvoidsetHeightdoublehheight=h>0h:0;publicdoublearea//计算表面积return5;publicdoublevolumndoubler=super.getRadius;return3.14159*r*r*height;publicvoidprintShapeNameSystem.out.printcylinder:;
[说明]八皇后问题是指求解如何在国际象棋8*8棋盘上无冲突地放置八枚皇后棋子因为在国际象棋里皇后的移动方式是横竖交叉所以在任意一个皇后所在位置的水平竖赢和斜45线上都不能有其他皇后棋子的存在一个完整无冲突的八皇后棋子分布称为八皇后问题的一个解本程序实现了八枚皇后棋子在8*8棋盘上无冲突的放置[函数]#include<math.h>#include<stdio.h>#defineMAX8/*棋子数及棋盘大小MAX*MAX*/intboard[MAX];/*印出结果*/voidshow_resultinti;fori=0;i<MAX;i++printf%d%diboard[i];printf/n;/*检查是否在同一直横斜线上有其他棋子*/intcheck_crossintninti;fori=0;i<n;i++if1return1;return0;/*放棋子到棋盘上*/voidput_chessintninti;fori=0;i<MAX;i++board[n]=i;if2if3show_result;/*找到其中一种放法了印出结果*/else4;voidmainclrscr;putsThepossibleplacementsare:;5;puts/nPressanykeytoquit;getch;return
[说明]函数Node*differenceAB用于求两个集合之差C=A-B即当且仅当e是A中的一个元素但不是B中的元素时e是C中的元素集合用有序链表实现用一个空链表表示一个空集合表示非空集合的链表根据元素之值按递增排列执行C=A-B之后表示集合A和B的链表不变若结果集合C非空则表示其链表根据元素之值按递增排列函数append用于在链表中添加结点[函数]typedefstructnodeintelement;structnode*link;Node;Node*A*B*C;Node*appendlasteNode*last;inte;last->link=Node*mallocsizeofNode;last->link->element=e;returnlast->link;Node*differenceABNode*A*B;Node*c*last;C=last=Node*mallocsizeofNode;while1ifA->element<B->elementlast=appendlastA->element;A=A->link;elseif2A=A->link;B=B->link;else3;while4last=appendlastA->element;A=A->link;5;last=C;C=C->link;freelast;returnC;
[说明] 本流程图采用“双向冒泡法”实现对数组a[n]的排序双向冒泡法就是在逐步缩小的数组内分别从数组的两端开始向内搜索同时将大数往上浮小数往下沉每次交换一组数flag是一个标志发生过交换就置为1当这个循环过程都不再发生交换时则数组排序完成 注流程中循环开始的说明按照“循环变量循环初值循环终值增量”格式描述; 定义SWAP[ab]为将a和b两数交换 [流程图] [问题] 将流程图的1~5处补充完整 1处填
热门题库
更多
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识
无线通信专业技术
移动通信专业技术
有线传输专业技术