首页
试卷库
试题库
当前位置:
X题卡
>
所有题目
>
题目详情
关于关系演算语言,下列说法中正确的是 (67) 。 ①查询操作是以集合操作为基础运算的DML语言 ②查询操作是以谓词演算为基础运算的DML语言 ③关系演算语言的基础是数理逻辑中的谓词演算 ④关...
查看本题答案
包含此试题的试卷
初级程序员《单项选择》真题及答案
点击查看
你可能感兴趣的试题
关于关系演算语言下列说法中正确的是______①查询操作是以集合操作为基础运算的DML语言②查询操作
②
②③
②③④
全部
元组关系演算语言的典型代表当推E.FCodd提出的ALPHA关系型数据库管理系统INGRES所采用的
用谓词来表达查询要求的方式是
关系演算
关系代数
关系逻辑
关系查询
SQL语言是一种______
关系代数语言
元组关系演算语言
域关系演算语言
介于关系代数和关系演算之间的语言
ISBL是
标准数据查询语言
关系代数语言
元组关系演算语言
域关系演算语言
下列关于SQL查询说法中不正确的是
SQL查询是用户使用SQL语句创建的查询
在查询设计视图中创建查询时,Access将在后台构造等效的SQL语句
SQL查询可以用结构化的查询语言来查询、更新和管理关系数据库
SQL查询被更改之后,可以以设计视图中所显示的方式显示,也可以从设计网格中进行创建
关系演算是用来表示查询要求的方式
域
关系的运算
元组
谓词演算
用关系的运算来表达查询要求的方式是
关系演算
关系代数
关系逻辑
关系查询
热门试题
更多
[说明]以下程序的功能是计算三角形矩形和正方形的面积并输出程序由5个类组成AreaTest是主类类TrianlgeRectangle和Square分别表示三角形矩形和正方形抽象类Figure提供了一个计算面积的抽象方法[程序]publicclassAreaTestpublicstaticvoidmainStringargs[]Figure[]figures=newTriangle233newRectangle58newSquare5;forinti=0;1
[说明]以下程序的功能是计算三角形矩形和正方形的面积并输出程序由5个类组成AreaTest是主类类TrianlgeRectangle和Square分别表示三角形矩形和正方形抽象类Figure提供了一个计算面积的抽象方法[程序]publicclassAreaTestpublicstaticvoidmainStringargs[]Figure[]figures=newTriangle233newRectangle58newSquare5;forinti=0;1
[说明]设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子每粒珠子颜色用字母表示n粒珠子的颜色由输入的字符串表示从环上的某两粒珠子间剪开则环上珠子形成一个序列然后按以下规则从序列中取走珠子首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子两者之和为该剪开处可取走珠子的粒数在不同位置剪开能取走的珠子也不尽相同本程序所求的是在环上哪个位置剪开按上述规则可取走的珠子粒数最多程序中用数组存储字符串例如10粒珠子颜色对应字符串为aaabbbadcc在0号珠子前剪开序列为aaabbbadcc从左端取走3粒a色珠子从右端取走2粒c色珠子共取走5粒珠子若在3号珠子前剪开即bbbadccaaa共取走6粒珠子[函数]intcountchar*sintstartintendintic=0color=s[start]step=start>end-1:1;fori=start;s[i]==color;i+=stepifstep>0&&i>end||1break;2;returncvoidmaincharts[120];intijclenmaxccut=0;printf请输入环上代表不同颜色珠子字符串;scanf%ss;len=strlens;fori=maxc=0;i<len;i++/*尝试不同的剪开方式*/c=counts0len-1;ifc<lenc+=count3;ifc>maxccut=i;maxc=c;/*数组s的元素循环向左移动一个位置*/t=s[0];forj=1;j<len;j++4;5;printf在第%d号珠子前面剪开可以取走%d个珠子./ncutmaxc;
[说明]下面Application程序用while循环从键盘读入字符记录输入的字符数并输出读入的字符当输入字符0时结束while循环同时结束程序[Java程序]importjava.io.*;publicclassContinuateInputpublic1voidmainString[]args2IOExceptionintch;intcounter=0;System.out.println请输入字符输入0结束;whilecharch=System.in.3!=’0’counter++;System.out.println4ch;System.out.println;System.out.printlncounted+counter+totalbytes.;System.out.5;
[说明]下面程序是一个小型公司工资管理的程序该公司主要有4类人员经理兼职技术人员销售员和销售经理基类为employee由它派生出technician类manager类salesman类最后由manager类和salesman类派生出salesmanager类月工资计算办法是经理拿固定月薪8000;兼职技术人员按每小时100元领取月薪;销售按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成固定月工资5000元销售提成为所管辖部门当月销售总额的0.5%[C++程序]#include<iostream.h>#include<string.h>classemployeeprotected:intno;charname[10];floatsalary;public:employeecout<<职工编号:;cin>>no;cout<<职工姓名:;cin>>name;salary=0;voidpayvoiddisplay;classtechnician:publicemployeeprivate:floathourlyrate;intworkhours;public:technicianhourlyrate=100;voidpaycout<<name本月工作时数:;cin>>workhours;salary=hourlyrate*workhours;voiddisplaycout<<兼职技术人员<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesman:1protected:floatcommrate;floatsales;publicsalesmancommrate=0.04;voidpaycout<<name<<本月销售额;cin>>sales;salary=2;voiddisplaycout<<销售额name<<编号<<no<</<<<<本月工资<<salary<<endl;;classmanager:3protected:floatmonthlypay;publicmanagermonthlypay=8000;voidpaysalary=monthlypay;voiddisplaycout<<经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesmanager:4publicsalesmanagermonthlypay=5000;commrate=0.005;voidpaycout<<name<<所管部门月销售量;cin>>salessalary=5;voiddisplaycout<<销售经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[C++程序]//POINT.H#ifndefPOINT_H#definePOINT_HclassPointpublic:Pointfloatx=0floaty=0;voidsetPointfloatfloat;floatgetXconstreturnx;floatgetYconstreturny;protected:float:xy;;#endif//POINT.CPP#include<iostream.h>#includepoint.hPoint::Pointfloatafloatbx=a;y=bvoidPoint::setPointfloatafloatbx=a;y=b//CIRCLE.H#ifndefCIRCLE_H#defineCIRCLE_H#includepoint.hclassCircle:1public:Circlefloatr=0.0floatx=0floaty=0;voidsetRadiusfloat;floatgetRadiusconst;floatareaconst;protected:floatradius;;//CIRCLE.CPP#includeiostream.h#includecircle.hCircle::Circlefloatrfloatafloatb:2radius=r;voidCircle::setRadiusfloatrradius=r;floatCircle::getRadiusconstreturnradius;floatCircle::areaconstreturn3.14159*radius*radius;//text.cpp#include<iostream.h>#includepoint.h#includecircle.hmainCirclec2.53.74.3;cout<<Xcoordinateis<<c.getX<</nRadiusis:<<c.getRadius;3;//设置新的圆心22Point&pRef=c;cout<</nCircleprintedasapointis:<<]<<4<<.<<5<<];
[函数2.1说明]函数intfactorsintn的功能是判断整数nn>=2是否为完全数如果n是完全数则函数返回0否则返回-1所谓完全数是指整数n的所有因子不包括n之和等于n自身例如28的因子为124714而28=1+2+4+7+14因此28是完全数[函数2.1]intfactorsintninti/s;fori=1s=0;i<=n/2;i++ifn%i==0[1];if[2]return0;rerurn-1;[函数2.2说明]函数intmaxintinta[]intk的功能是用递归方法求指定数组中前k个元素的最大值并作为函数值返回[函数2.2]intmaxintinta[]intkintt;if[3]return[4]t=maxinta+1[5];returna[0]>ta[0]:t;
[说明]已知一棵二叉树用二叉链表存储t指向根结点p指向树中任一结点下列算法为输出从t到p之间路径上的结点[函数]#defineMaxSize1000typedefstructnodeTelemTypedata;structnode*lchild*rchild;BiNode*BiTree;voidPathBiTreetBiNode*pBiTree*stackEMaxsize]*stack1[maxsize]*q;inttag[Maxsizeltop=0top1;q=t;/*通过前序遍历发现P*/dowhileq!=NULL&&q!=p/*扫描左孩子且相应的结点不为p*/1;stack[top]=q;tag[top]=0;2;iftop>0ifstack[top]==Pbreak;/*找到p栈底到栈顶为t到p*/iftag[top]==1top--;elseq=stack[top];q=q->rchild;tag[top]=1;3;top--;top1=0;whiletop>0q=stack[top];/*反向打印准备*/top1++;4;top--;while5/*打印栈的内容*/q=stack1[top1];printfq->data;top1--;
[说明]设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子每粒珠子颜色用字母表示n粒珠子的颜色由输入的字符串表示从环上的某两粒珠子间剪开则环上珠子形成一个序列然后按以下规则从序列中取走珠子首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子两者之和为该剪开处可取走珠子的粒数在不同位置剪开能取走的珠子也不尽相同本程序所求的是在环上哪个位置剪开按上述规则可取走的珠子粒数最多程序中用数组存储字符串例如10粒珠子颜色对应字符串为aaabbbadcc在0号珠子前剪开序列为aaabbbadcc从左端取走3粒a色珠子从右端取走2粒c色珠子共取走5粒珠子若在3号珠子前剪开即bbbadccaaa共取走6粒珠子[函数]intcountchar*sintstartintendintic=0color=s[start]step=start>end-1:1;fori=start;s[i]==color;i+=stepifstep>0&&i>end||1break;2;returncvoidmaincharts[120];intijclenmaxccut=0;printf请输入环上代表不同颜色珠子字符串;scanf%ss;len=strlens;fori=maxc=0;i<len;i++/*尝试不同的剪开方式*/c=counts0len-1;ifc<lenc+=count3;ifc>maxccut=i;maxc=c;/*数组s的元素循环向左移动一个位置*/t=s[0];forj=1;j<len;j++4;5;printf在第%d号珠子前面剪开可以取走%d个珠子./ncutmaxc;
[函数2.1说明]函数intfactorsintn的功能是判断整数nn>=2是否为完全数如果n是完全数则函数返回0否则返回-1所谓完全数是指整数n的所有因子不包括n之和等于n自身例如28的因子为124714而28=1+2+4+7+14因此28是完全数[函数2.1]intfactorsintninti/s;fori=1s=0;i<=n/2;i++ifn%i==0[1];if[2]return0;rerurn-1;[函数2.2说明]函数intmaxintinta[]intk的功能是用递归方法求指定数组中前k个元素的最大值并作为函数值返回[函数2.2]intmaxintinta[]intkintt;if[3]return[4]t=maxinta+1[5];returna[0]>ta[0]:t;
[说明]下面的流程图用来说明如何在数组中的指定位置插入一个数注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述;SIZE定义位数组的大小[问题]将流程图的1~5处补充完整
[说明]本程序中的函数voidfirst_jnsertNODE**pintv的功能是在已知链表的首表元之前插入一个指定的表元;函数NODE*reverse_copyNODE*p的功能是按已知链表复制出一个新的链表但新的链表的表元链接顺序与已知链表的表元链接顺序相反;函数voidprint_linkNODE*p用来输出链表中各表元的值;函数voidfree_linkNODE*p用来释放链表全部表元空间[函数]#include<stdio.n>#include<malloc.h>typedefstructnodeintval;structnode*next;NODE;voidfirst_insertNODE**pintvNODE*q=NODE*mallocsizeofNODE;q->val=v;1;*p=2;NODE*reverse_copyNODE*pNODE*u;foru=NULL;p;p=p->nextfirst_insert3;returnu;voidprint_linkNODE*pfor;4printf%d/tp->val;printf/n;voidfree_linkNODE*pNODE*u;whilep!=NULLu=p->next;freep;5;voidmainNODE*link1*link2;inti;link1=NULL;fori=1;i<=10;i++first_insert&link1i;link2=reverse_copylink1;print_linklink1;free_linklink1;print_linklink2;free_linklink2;
[说明]下面Application程序用while循环从键盘读入字符记录输入的字符数并输出读入的字符当输入字符0时结束while循环同时结束程序[Java程序]importjava.io.*;publicclassContinuateInputpublic1voidmainString[]args2IOExceptionintch;intcounter=0;System.out.println请输入字符输入0结束;whilecharch=System.in.3!=’0’counter++;System.out.println4ch;System.out.println;System.out.printlncounted+counter+totalbytes.;System.out.5;
[函数2.1说明]函数voidsortintarry[]intn的功能是对数组a中的arry[0]~arry[n-1]这n个元素进行排序排序过程如下第一趟对所有的偶数下标x比较arr[x]和arry[x+1]若arry[x]>arry[x+1]则将两者交换;第二趟对所有的奇数下标y比较arry[y]和arry[y+1]若arry[y]>arry[y+1]则将两者交换;第三趟对偶数下标第四趟对奇数下标依次类推直至整个数组元素有序排列为止[函数2.1]voidsortintarry[]intnintijtag=1;forj=0;j<n;j++fori=1;i<n-1;2ifarry[i]>arry[i+1]t=arry[i];arry[il=arry[i+1];arry[i+1]=t;tag=0;tag++;if3break;[函数2.2说明]这是一棵二叉树排序查找元素的程序查找的方法是首先与树的根结点的元素进行比较若相等则找到返回此结点的地址;若要查找的元素小于根结点的元素值则指针指向此结点的左子树继续查找;若要查找的元素大于根结点的元素值则指针指向此结点的右子树继续查找直到指针为空表示此树中不存在所要查找的元素本题使用递归方法实现[函数2.2]typedefstructnodeintdata;structnode*left;structnode*right;NODE;NODE*SearchSortTreeNODE*treeinteiftree!=NULLiftree->data<e4;elseiftree->data>e5;elsereturntree;returntree;
[函数2.1说明]函数voidsortintarry[]intn的功能是对数组a中的arry[0]~arry[n-1]这n个元素进行排序排序过程如下第一趟对所有的偶数下标x比较arr[x]和arry[x+1]若arry[x]>arry[x+1]则将两者交换;第二趟对所有的奇数下标y比较arry[y]和arry[y+1]若arry[y]>arry[y+1]则将两者交换;第三趟对偶数下标第四趟对奇数下标依次类推直至整个数组元素有序排列为止[函数2.1]voidsortintarry[]intnintijtag=1;forj=0;j<n;j++fori=1;i<n-1;2ifarry[i]>arry[i+1]t=arry[i];arry[il=arry[i+1];arry[i+1]=t;tag=0;tag++;if3break;[函数2.2说明]这是一棵二叉树排序查找元素的程序查找的方法是首先与树的根结点的元素进行比较若相等则找到返回此结点的地址;若要查找的元素小于根结点的元素值则指针指向此结点的左子树继续查找;若要查找的元素大于根结点的元素值则指针指向此结点的右子树继续查找直到指针为空表示此树中不存在所要查找的元素本题使用递归方法实现[函数2.2]typedefstructnodeintdata;structnode*left;structnode*right;NODE;NODE*SearchSortTreeNODE*treeinteiftree!=NULLiftree->data<e4;elseiftree->data>e5;elsereturntree;returntree;
[说明] 下面的流程图用来完成求字符串t在s中最右边出现的位置其思路是做一个循环以s的每一位作为字符串的开头和t比较如果两字符串的首字母是相同的则继续比下去如果一直到t的最后一个字符也相同则说明在s中找到了一个字符串t;如果还没比较到t的最后一个字符就已经出现字符串不等的情况则放弃此次比较开始新一轮的比较当在s中找到一个字符串t时不应停止寻找因为要求的是求t在s中最右边出现的位置应先记录这个位置pos然后开始新一轮的寻找若还存在相同的字符串则更新位置的记录直到循环结束输出最近一次保存的位置如果s为空或不包含t则返回-1 注返回值用pos表示 [问题] 将流程图的1~5处补充完整 3处填
[说明]下面程序是一个小型公司工资管理的程序该公司主要有4类人员经理兼职技术人员销售员和销售经理基类为employee由它派生出technician类manager类salesman类最后由manager类和salesman类派生出salesmanager类月工资计算办法是经理拿固定月薪8000;兼职技术人员按每小时100元领取月薪;销售按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成固定月工资5000元销售提成为所管辖部门当月销售总额的0.5%[C++程序]#include<iostream.h>#include<string.h>classemployeeprotected:intno;charname[10];floatsalary;public:employeecout<<职工编号:;cin>>no;cout<<职工姓名:;cin>>name;salary=0;voidpayvoiddisplay;classtechnician:publicemployeeprivate:floathourlyrate;intworkhours;public:technicianhourlyrate=100;voidpaycout<<name本月工作时数:;cin>>workhours;salary=hourlyrate*workhours;voiddisplaycout<<兼职技术人员<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesman:1protected:floatcommrate;floatsales;publicsalesmancommrate=0.04;voidpaycout<<name<<本月销售额;cin>>sales;salary=2;voiddisplaycout<<销售额name<<编号<<no<</<<<<本月工资<<salary<<endl;;classmanager:3protected:floatmonthlypay;publicmanagermonthlypay=8000;voidpaysalary=monthlypay;voiddisplaycout<<经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesmanager:4publicsalesmanagermonthlypay=5000;commrate=0.005;voidpaycout<<name<<所管部门月销售量;cin>>salessalary=5;voiddisplaycout<<销售经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;
[说明]下面的流程图用来说明如何在数组中的指定位置插入一个数注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述;SIZE定义位数组的大小[问题]将流程图的1~5处补充完整
[说明]下面的程序是通过双链结构来查找学生的信息程序的一部分即创建双向链表部分[函数]#include<stdio.h>#defineN10typedefstructnodecharname[20];structnode*llink*rlink;stud;/*双链表的结构定义*//*双链表的创建*/stud*creatintnstud*p*h*s;inti;ifh=stud*mallocsizeofstud==NULLprintfcannotfindspace!/n;exit0;h->name[0]=’/0’;h->llink=NULL;h->rlink=NULL;p=h;fori=0;i<n;i++ifs=stud*mallocsizeofstud==NULLprintfcannotfindspace!/n;exit0;1;printfPleaseinputthe%dman’sname:;i+1;scanf%ss->name;2;3;p=s;4;5;returnh;
[说明] 下面的流程图用来完成求字符串t在s中最右边出现的位置其思路是做一个循环以s的每一位作为字符串的开头和t比较如果两字符串的首字母是相同的则继续比下去如果一直到t的最后一个字符也相同则说明在s中找到了一个字符串t;如果还没比较到t的最后一个字符就已经出现字符串不等的情况则放弃此次比较开始新一轮的比较当在s中找到一个字符串t时不应停止寻找因为要求的是求t在s中最右边出现的位置应先记录这个位置pos然后开始新一轮的寻找若还存在相同的字符串则更新位置的记录直到循环结束输出最近一次保存的位置如果s为空或不包含t则返回-1 注返回值用pos表示 [问题] 将流程图的1~5处补充完整 1处填
[说明]下面程序是一个小型公司工资管理的程序该公司主要有4类人员经理兼职技术人员销售员和销售经理基类为employee由它派生出technician类manager类salesman类最后由manager类和salesman类派生出salesmanager类月工资计算办法是经理拿固定月薪8000;兼职技术人员按每小时100元领取月薪;销售按当月销售额的4%提成;销售经理既拿固定月工资也领取销售提成固定月工资5000元销售提成为所管辖部门当月销售总额的0.5%[C++程序]#include<iostream.h>#include<string.h>classemployeeprotected:intno;charname[10];floatsalary;public:employeecout<<职工编号:;cin>>no;cout<<职工姓名:;cin>>name;salary=0;voidpayvoiddisplay;classtechnician:publicemployeeprivate:floathourlyrate;intworkhours;public:technicianhourlyrate=100;voidpaycout<<name本月工作时数:;cin>>workhours;salary=hourlyrate*workhours;voiddisplaycout<<兼职技术人员<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesman:1protected:floatcommrate;floatsales;publicsalesmancommrate=0.04;voidpaycout<<name<<本月销售额;cin>>sales;salary=2;voiddisplaycout<<销售额name<<编号<<no<</<<<<本月工资<<salary<<endl;;classmanager:3protected:floatmonthlypay;publicmanagermonthlypay=8000;voidpaysalary=monthlypay;voiddisplaycout<<经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;classsalesmanager:4publicsalesmanagermonthlypay=5000;commrate=0.005;voidpaycout<<name<<所管部门月销售量;cin>>salessalary=5;voiddisplaycout<<销售经理<<name<<编号为<<no/<<<<本月工资<<salary<<endl;;
[说明]下面的程序是通过双链结构来查找学生的信息程序的一部分即创建双向链表部分[函数]#include<stdio.h>#defineN10typedefstructnodecharname[20];structnode*llink*rlink;stud;/*双链表的结构定义*//*双链表的创建*/stud*creatintnstud*p*h*s;inti;ifh=stud*mallocsizeofstud==NULLprintfcannotfindspace!/n;exit0;h->name[0]=’/0’;h->llink=NULL;h->rlink=NULL;p=h;fori=0;i<n;i++ifs=stud*mallocsizeofstud==NULLprintfcannotfindspace!/n;exit0;1;printfPleaseinputthe%dman’sname:;i+1;scanf%ss->name;2;3;p=s;4;5;returnh;
[说明]函数printBinTreeNode*t;DateType&x的功能是在二叉树中查找值为x的结点并打印该结点所有祖先结点在此算法中假设值为x的结点不多于一个此算法采用后序的非递归遍历形式函数中使用栈ST保存结点指针ptr以及标志tagTop是栈顶指针[函数]voidprintBinTreeNode*t;DateType&xstackST;intitop;top=0;//置空栈whilet!=NULL&&t->data!=x||top!=0whilet!=NULL&&t->data!=x//寻找值为x的结点1;ST[top].ptr=t;ST[top].tag=0;2;ift!=Null&&t->data==x//找到值为x的结点fori=1;3;i++printf%dST[top].ptr->data;elsewhile4top--;iftop>0ST[top].tag=1;5;
[说明]下面的流程图用来说明如何在数组中的指定位置插入一个数注流程中循环开始的说明按照循环变量循环初值循环终值增量格式描述;SIZE定义位数组的大小[问题]将流程图的1~5处补充完整
[说明]已知一棵二叉树用二叉链表存储t指向根结点p指向树中任一结点下列算法为输出从t到p之间路径上的结点[函数]#defineMaxSize1000typedefstructnodeTelemTypedata;structnode*lchild*rchild;BiNode*BiTree;voidPathBiTreetBiNode*pBiTree*stackEMaxsize]*stack1[maxsize]*q;inttag[Maxsizeltop=0top1;q=t;/*通过前序遍历发现P*/dowhileq!=NULL&&q!=p/*扫描左孩子且相应的结点不为p*/1;stack[top]=q;tag[top]=0;2;iftop>0ifstack[top]==Pbreak;/*找到p栈底到栈顶为t到p*/iftag[top]==1top--;elseq=stack[top];q=q->rchild;tag[top]=1;3;top--;top1=0;whiletop>0q=stack[top];/*反向打印准备*/top1++;4;top--;while5/*打印栈的内容*/q=stack1[top1];printfq->data;top1--;
[说明] 下面的流程图用来完成求字符串t在s中最右边出现的位置其思路是做一个循环以s的每一位作为字符串的开头和t比较如果两字符串的首字母是相同的则继续比下去如果一直到t的最后一个字符也相同则说明在s中找到了一个字符串t;如果还没比较到t的最后一个字符就已经出现字符串不等的情况则放弃此次比较开始新一轮的比较当在s中找到一个字符串t时不应停止寻找因为要求的是求t在s中最右边出现的位置应先记录这个位置pos然后开始新一轮的寻找若还存在相同的字符串则更新位置的记录直到循环结束输出最近一次保存的位置如果s为空或不包含t则返回-1 注返回值用pos表示 [问题] 将流程图的1~5处补充完整 5处填
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[C++程序]//POINT.H#ifndefPOINT_H#definePOINT_HclassPointpublic:Pointfloatx=0floaty=0;voidsetPointfloatfloat;floatgetXconstreturnx;floatgetYconstreturny;protected:float:xy;;#endif//POINT.CPP#include<iostream.h>#includepoint.hPoint::Pointfloatafloatbx=a;y=bvoidPoint::setPointfloatafloatbx=a;y=b//CIRCLE.H#ifndefCIRCLE_H#defineCIRCLE_H#includepoint.hclassCircle:1public:Circlefloatr=0.0floatx=0floaty=0;voidsetRadiusfloat;floatgetRadiusconst;floatareaconst;protected:floatradius;;//CIRCLE.CPP#includeiostream.h#includecircle.hCircle::Circlefloatrfloatafloatb:2radius=r;voidCircle::setRadiusfloatrradius=r;floatCircle::getRadiusconstreturnradius;floatCircle::areaconstreturn3.14159*radius*radius;//text.cpp#include<iostream.h>#includepoint.h#includecircle.hmainCirclec2.53.74.3;cout<<Xcoordinateis<<c.getX<</nRadiusis:<<c.getRadius;3;//设置新的圆心22Point&pRef=c;cout<</nCircleprintedasapointis:<<]<<4<<.<<5<<];
[说明]下面程序定义了一个类Point及其成员函数然后从类Point派生出类Circle及其成员函数[C++程序]//POINT.H#ifndefPOINT_H#definePOINT_HclassPointpublic:Pointfloatx=0floaty=0;voidsetPointfloatfloat;floatgetXconstreturnx;floatgetYconstreturny;protected:float:xy;;#endif//POINT.CPP#include<iostream.h>#includepoint.hPoint::Pointfloatafloatbx=a;y=bvoidPoint::setPointfloatafloatbx=a;y=b//CIRCLE.H#ifndefCIRCLE_H#defineCIRCLE_H#includepoint.hclassCircle:1public:Circlefloatr=0.0floatx=0floaty=0;voidsetRadiusfloat;floatgetRadiusconst;floatareaconst;protected:floatradius;;//CIRCLE.CPP#includeiostream.h#includecircle.hCircle::Circlefloatrfloatafloatb:2radius=r;voidCircle::setRadiusfloatrradius=r;floatCircle::getRadiusconstreturnradius;floatCircle::areaconstreturn3.14159*radius*radius;//text.cpp#include<iostream.h>#includepoint.h#includecircle.hmainCirclec2.53.74.3;cout<<Xcoordinateis<<c.getX<</nRadiusis:<<c.getRadius;3;//设置新的圆心22Point&pRef=c;cout<</nCircleprintedasapointis:<<]<<4<<.<<5<<];
[说明]函数printBinTreeNode*t;DateType&x的功能是在二叉树中查找值为x的结点并打印该结点所有祖先结点在此算法中假设值为x的结点不多于一个此算法采用后序的非递归遍历形式函数中使用栈ST保存结点指针ptr以及标志tagTop是栈顶指针[函数]voidprintBinTreeNode*t;DateType&xstackST;intitop;top=0;//置空栈whilet!=NULL&&t->data!=x||top!=0whilet!=NULL&&t->data!=x//寻找值为x的结点1;ST[top].ptr=t;ST[top].tag=0;2;ift!=Null&&t->data==x//找到值为x的结点fori=1;3;i++printf%dST[top].ptr->data;elsewhile4top--;iftop>0ST[top].tag=1;5;
[说明]已知一棵二叉树用二叉链表存储t指向根结点p指向树中任一结点下列算法为输出从t到p之间路径上的结点[函数]#defineMaxSize1000typedefstructnodeTelemTypedata;structnode*lchild*rchild;BiNode*BiTree;voidPathBiTreetBiNode*pBiTree*stackEMaxsize]*stack1[maxsize]*q;inttag[Maxsizeltop=0top1;q=t;/*通过前序遍历发现P*/dowhileq!=NULL&&q!=p/*扫描左孩子且相应的结点不为p*/1;stack[top]=q;tag[top]=0;2;iftop>0ifstack[top]==Pbreak;/*找到p栈底到栈顶为t到p*/iftag[top]==1top--;elseq=stack[top];q=q->rchild;tag[top]=1;3;top--;top1=0;whiletop>0q=stack[top];/*反向打印准备*/top1++;4;top--;while5/*打印栈的内容*/q=stack1[top1];printfq->data;top1--;
热门题库
更多
中级系统集成项目管理工程师
中级网络工程师
中级信息系统管理工程师
初级程序员
中级软件设计师
初级网络管理员
初级信息处理技术员
中级数据库系统工程师
中级多媒体应用设计师
高级系统分析师
高级网络规划设计师
高级系统架构师
中级信息系统监理师
初级通信工程师
中级通信工程师
通信新技术、新业务知识