题目内容 (请给出正确答案)
[主观题]

读以下说明和流程图,回答问题将解答填入对应栏。 [说明] 下面的流程图,用来完成求字符串t在s中

读以下说明和流程图,回答问题将解答填入对应栏。

[说明]

下面的流程图,用来完成求字符串t在s中最右边出现的位置。其思路是:做一个循环,以s的每一位作为字符串的开头和t比较,如果两字符串的首字母是相同的,则继续比下去,如果一直到t的最后一个字符也相同,则说明在s中找到了一个字符串t;如果还没比较到t的最后一个字符,就已经出现字符串不等的情况,则放弃此次比较,开始新一轮的比较。当在s中找到一个字符串t时,不应停止寻找(因为要求的是求t在s中最右边出现位置),应先记录这个位置pos,然后开始新一轮的寻找,若还存在相同的字符串,则更新位置的记录,直到循环结束,输出最近一次保存的位置。如果s为空或不包含t,则返回-1。

注:返回值用pos表示。

读以下说明和流程图,回答问题将解答填入对应栏。 [说明] 下面的流程图,用来完成求字符串t在s中读以

[问题]

将流程图的(1)~(5)处补充完整。

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“读以下说明和流程图,回答问题将解答填入对应栏。 [说明] 下…”相关的问题

第1题

阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。 [说明] 试从含有n个int 型数的数组中

阅读以下说明和C++ 程序,将应填入(n)处的字句写在对应栏内。

[说明]

试从含有n个int 型数的数组中删去若干个成分,使剩下的全部成分构成一个不减的子序列。设计算法和编写程序求出数组的不减子序列的长。

[C++ 程序]

include<stdio.h>

define N 100

int b[]={9,8,5,4,3,2,7,6,8,7,5,3,4,5,9,1};

int a [N];

define n sizeofb/sizeofb[0]

void main ( )

{

kit k,i,j;

(1)

(2)

for (i=1;i<n; i++ )

{

for ( j=k;(3); j--);

(4); /*长为 j+1 的子序列的终元素存储在 a[j+1]*/

if ((5)k++; /*最长不减子序列长 k 增1*/

}

printf ( "K = %d\n ",k );

}

点击查看答案

第2题

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 设有一个带表头结点的双向循

阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。

【说明】

设有一个带表头结点的双向循环链表L,每个结点有4个数据成员:指向前驱结点的指针prior、指向后继结点的指针next、存放数据的成员data和访问频度freq。所有结点的freq初始时都为0。每当在链表上进行一次L.Locate(x)操作时,令元素值x的结点的访问频度 freq加1,并将该结点前移,链接到现它的访问频度相等的结点后面,使得链表中所有结点保持按访问频度递减的顺序排列,以使频繁访问的结点总是靠近表头。

【函数】

void Locate( int &x)

{ <结点类型说明>

* p =first -> next;

while(p!=frist&&(1))P=P->next;

if(p! =first) /*链表中存在x*/

{(2);

<结点类型说明>

* current = P; /*从链表中摘下这个结点*/

Current -> prior -> next = current -> next;

Current -> next -> prior = current -> prior;

P = current -> prior; /*寻找重新插入的位置*/

While(p! =first &&(3))p=p->prior;

Current-> next =(4); /*插入在P之后*?

Current -> prior = P;

P -> next -> prior = current;

P->next=(5);

}

else printf("Sorry. Not find! \n"); /*没找到*/

}

点击查看答案

第3题

阅读以下说明和java代码,将应填入(n)处的字句写在对应栏内。[说明] 本程序使用类来管理员工的通讯

阅读以下说明和java代码,将应填入(n)处的字句写在对应栏内。

[说明]

本程序使用类来管理员工的通讯地址信息。已知程序的输出为:

输出记录:5

姓名:王丽华

街道地址:中华路15号

市:襄樊市

省:湖北省

邮政编码:430070

[Java代码]

public class Employee{

protected String (1);

protected String street;

protected String city;

protected String prov;

protected String post;

protected int no;

public Empbyee(){}

public Employee(String name,String street,String city,String prov,String post, (2) ){

this.name=name;

this.street=street;

this.city=city;

this.prov=prov;

this.post=post;

this.no=no;

}

public static void main(String[]args){

Employee emp=new Employee(“王华”,“中华路15号”,“武汉市”,“湖北省”,“430070”,1);

emp.changeName(“王丽华”);

(3) (“襄樊市”);

emp.changeNo(5);

(4);

}

void changeName(String name){this.name=name;}

void changeStreet(String street){this.street=street;}

void changeCity(String city){this.city=city;}

void changeProv(String prov){this.prov=prov;}

void changeNo(int no){(5);}

void display(){

System.out.println(“输出记录:”+this.no);

System.out.Println(“姓名:”+this.name);

System.out.println(“街道地址:”+this.street);

System.out.println(“市:”+this.city);

System.out.println(“省:”+this.prov);

System.out.println(“邮政编码:”+this.post);

}

}

点击查看答案

第4题

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内[说明] 设有一张学生成绩

阅读以下说明及Visual Basic程序代码,将应填入(n)处的字句写在对应栏内[说明]

设有一张学生成绩表scores存放在Access数据库Student中,其中包括学生编号、姓名以及各科目考试成绩。下面的应用程序利用ADO Data和DataGrid控件实现了对成绩数据的基本管理,其操作包括:

(1)添加新记录:单击“添加”按钮,光标将指向最后一条数据记录,在其后编辑好新的数据记录后,再单击“更新”按钮,该数据即被加入成绩表;

(2)删除记录:单击“删除”按钮将删除当前所指记录,其后的数据记录依次上移;

(3)更新记录:直接编辑某条已有记录,再单击“更新”按钮将更新成绩表;

(4)记录排序:选中单列字段后,单击“排序”按钮,记录集将按该字段升序排列。

程序的运行界面为:

在开发过程中,数据库连接对象使用了名为Adodc1的ADO Data控件,数据显示区域使用了名 DataGnd1的DataGrid控件,界面上从左到右各操作按钮分别取名为CmdAdd、CmdDel、CmdUpdate、 CmdRefresh、CmdSort和CmdExit。

[Visual Basic代码]

Dim conn, database, table As String

Private Sub Form_Load()

database ="E:\Student.mdb" ’设置要访问的数据库

conn ="Provider=Microsoft.Jet.OLEDB.4.0;Data Souse=" & database

Adodc1.ConnectionString=conn ’设置连接字符串

table = "scores"

Adode1. (1)= table ’设置所要访问的数据表

Set DataGrid1. (2)= Adodc1

End Sub

Private Sub CmdAdd_Click() ’“添加”按钮的单击事件响应过程

Adodc1.Recordset. (3)

End Sub

Private Sub CmdDel_Click() ’“删除”按钮的单击事件响应过程

Adodc1.Recordset.Delete

Adodc1.Reeordset.MoveNext

End Sub

Private Sub CmdUpdate_Click() ’“更新”按钮的单击事件响应过程

Adode1.Reeordset.UpdateBatch adAffectAll

End Sub

Private Sub CmdRefresh_Cliek() ’“刷新”按钮的单击事件响应过程

Adodc1.Refresh

End Sub

Private Sub CmdSort_Cliek() ’“排序”按钮的单击事件响应过程

If DataGrid1.SelStartCol < 0 Or DataGridl. SelStartCol (4) DataGrid1. SelEndCol Then

MsgBox “请选择某一字段(列)!”

Exit Sub

End If

Adodc1. RecordSource = "SELECT * FROM" & table & "order by" & _

DataGrid1. Columns((5)).DataField

Adodc1.Refresh

End Sub

Private Sub CmdExit_Click() ’“退出”按钮的单击事件响应过程

End

End Sub

点击查看答案

第5题

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。[说明] 设学生某次考试的成绩按学号顺序

阅读以下说明和流程图,将应填入(n)处的字句写在对应栏内。

[说明]

设学生某次考试的成绩按学号顺序逐行存放于某文件中,文件以单行句点“.”为结束符。下面的流程图读取该文件,统计出全部成绩中的最高分max和最低分min。

点击查看答案

第6题

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明] 下面的词典类Dic实现了简单的英

阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。[说明]

下面的词典类Dic实现了简单的英译汉功能。程序运行后的输出为“我是一个学生”。

[C++程序]

include <iostream.h>

include <string.h>

define Max 100

class Dic

{ int top;

char words[Max] [12];

char mean[Max] [20];

public:

Die(){top=0;}

void add(char w[],char m[]){

strcpy(words[top],w);

strcpy(mean[top],m);

(1);

}

void trans(char str[]) {

int i=0,j=0,k=0,s;

char w[12],h[200];

while(l) {

if(str[i]! =''&&str[i]! ='\0')

w[j++]=str[i]; //读取单词的一个字符,记录在w中

else {

w[j]='\0';

for(s=0;s < top;s++)

if(strcmp(words[s],w) (2) 0) break;

if(s<top) //找到了,翻译成对应的mean[s]

{ strcpy(w,mean[s]); j=(3);}

else //未找到,翻译成(unknown)

{ strcpy(w,"(unknown)"}; j=9; }

for(s=0;s<j;s++)

h[k++]=w[s];

if(str[i]=='\0') { (4); break;}

j=0;

}

i++;

}

cout<<h<<endl;

}

};

void main()

{ Dic obj;

obj.add("I","我");

obj.add("am","是");

obj.add("student","学生");

obj.add("a","一个");

obj.trans("(5)");

}

点击查看答案

第7题

阅读以下应用说明和Visual Basic程序,根据要求回答问题1问题2。【说明】 某机动车驾驶员模拟考试系

阅读以下应用说明和Visual Basic程序,根据要求回答问题1问题2。

【说明】

某机动车驾驶员模拟考试系统的“交通禁令标志识别”窗体中,共有1个按钮(CmdTest)、6个标签、 1个包含10个单选按钮的控件数组(OptPicture),如图2-15所示。其中,标签(LblPrompt1)“禁令标志”与标签(LblTest)相对应,标签(LblPrompt2)“图片答案”与标签(LblAnswer)相对应,标签(LblEvaluate)为结果提示。

窗体(Frm001)对象和单选按钮控件数组(OptPicture)对象的部分属性及属性值如表2-15所示。

该程序运行时,单击【测试】按钮(CmdTest),在标签(LblTest)中随机显示一个交通禁令标志名称,用户单击控件数组(OptPicture)相应单选按钮后,程序在标签(LblAnswer)给出用户所击单选按钮对应的交通禁令标志名称,在标签(LblEvaluate)给出正确或错误的提示结果,如图2-15和图2-16所示。

【Visual Basic 程序】

Dim (4) As String

Private Sub cmdTest_Click()

Dim i As Integer

For i = 0 To 9

(5)

Next i

lblPrompt2.Visible = False

lblAnswer.Visible = False

lblEvaluate.Visible = False

i = Int(Rnd * 10)

lblTest.Caption = tname(i)

End Sub

Private Sub Form_Load()

Dim i As Integer

For i = 0 To 9

optPicture(i).Value = False

(6)

lblPrompt2.Visible = False

lblAnswer.Visible = False

lblEvaluate.Visible = False

tname(0)= "禁止向左向右转弯"

tname(1)= "禁止直行和向右转弯道"

tname(2)= "禁止直行和向左转弯"

tname(3)= "禁止驶入"

tname(4)= "禁止掉头"

tname(5)= "禁止车辆长时停放"

tname(6)= "禁止机动车通行"

tname(7)= "禁止非机动车通行"

tname(8)= "禁止超车"

tname(9)= "禁止车辆临时或长时停放"

End Sub

Private Sub optPicture_Click(Index As Integer)

lblPrompt2.Visible = True

lblAnswer.Visible =(7)

lblEvaluate.Visible = True

lblAnswer. Caption=(8)

If (9) Then

lblEvaluate.ForeColor = vbRed

lblEvaluate.Caption = " 恭喜你!回答正确!"

Else

lblEvaluate.ForeColor = vbBlue

lblEvaluate.Caption= "很遗憾,回答错误。"

End If

End Sub

请根据图2-15和图2-16的显示效果和【Visual Basic程序】,将表2-15中窗体对象、单选按钮控件数组对象的(1)~(3)空缺处的属性值填写完整。

点击查看答案

第8题

阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的内容补充完整。【说明】 对给定的字符集合及相应

阅读以下函数说明和C代码,将C程序中(1)~(5)空缺处的内容补充完整。

【说明】

对给定的字符集合及相应的权值,采用哈夫曼算法构造最优二叉树,并用结构数组存储最优二叉树。例如,给定字符集合{a,b,c,d}及其权值2、7、4、5,可构造如图6-15所示的最优二叉树,以及相应的结构数组Ht(如表6-14所示,其中数组元素Ht[0]不用)。

结构数组Ht的类型定义如下:

define MAXLEAFNUM 20

struct node{

char ch; /*扫当前节点表示的字符,对于非叶子节点,此域不用*/

Int weight; /*当前节点的权值*/

int parent; /*当前节点的父节点的下标,为0时表示无父节点*/

int lchild, rchild;

/*当前节点的左、右孩子节点的下标,为0时表示无对应的孩子节点*/

)Ht[2*MAXLEAFNUM];

用“0”或“广标识最优二叉树中分支的规则是:从一个节点进入其左(右)孩子节点,就用“0”(或“1”)标识该分支,如图6-15所示。

若用上述规则标识最优二叉树的每条分支后,从根节点开始到叶子节点为止,按经过分支的次序将相应标识依次排列,可得到由“0”、“1”组成的一个序列,称此序列为该叶子节点的前缀编码。例如,图6-15所示的叶子节点a、b、c、d的前缀编码分别是110、0、111、10。

函数void LeafCode(int root,int n)的功能是:采用非递归方法,遍历最优二叉树的全部叶子节点,为所有的叶子节点构造前缀编码。其中,形参root为最优二叉树的根节点下标;形参n为叶子节点个数。在函数void LeafCode(int root,int n)构造过程中,将Ht[p].weight域用做被遍历节点的遍历状态标志。

函数void Decode(char *buff,int root)的功能是:将前缀编码序列翻译成叶子节点的字符序列,并输出。其中,形参root为最优二叉树的根节点下标;形参buff指向前缀编码序列。

【函数4.1】

char **HC;

void LeafCode(int root, int n)

{ /*为最优二叉树中的n个叶子节点构造前缀编码,root是树的根节点下标*/

int I,p=root,cdlen=0;

char code[20];

Hc = (char **)malloc((n+1)*sizeof(char *)); /*申请字符指针数组*/

For(i = 1;i<= p;++I)

Ht [i]. weight = 0; /*遍历最优二叉树时用做被遍历节点的状态标志* /

While (p) { /*以非递归方法遍历最优二叉树,求树中每个叶子节点的编码*/

If(Ht[p].weight == 0) { /*向左*/

Ht[p].weight = 1;

If(Ht[p].lchild != 0) {

p = Ht[p].lchild;

code[cdlen++] = '0';

}

else if(Ht[p].rchild == 0) { /*若是叶子节点,则保存其前缀编码*/

Hc[p] = (char *)malloc((cdlen+1)*sizeof(char));

(1);

strcpy (Hc [p],code);

}

}

else if(Ht[p].weight == 1) { /*向右*/

Ht [p].weight = 2;

If(Ht[p].rchild != 0) {

p = Ht [p].rchild;

code[cdlen++] ='1';

}

}

else { /*Ht[p].weight == 2,回退/

Ht [p].weight = 0;

p =(2);

(3); /*退回父节点*/

}

} / *while .结束* /

}

【函数4.2】

void Decode(char *buff,int root)

{ int pre = root,p;

while(*buff != '\0') {

p = root;

&

点击查看答案

第9题

阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。【说明】 以下【C程序】的功

阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。

【说明】

以下【C程序】的功能是,逐一从指定课程成绩文件中读入学生的考号和成绩,对同一学生汇总他(她)的总成绩,并按如图6-14所示格式输出名次(按总成绩由高到底的顺序)、总成绩、同一名次的学生人数、同一名次学生的学号(按学号由小到大的顺序)。

该应用程序约定学生学习课程不超过30种,课程成绩文件的第1个数字就是课程号。统计过程中,同一课程号的成绩文件不能重复输入。

该应用程序采用链表结构存储学生的相关信息,链表中的每个表元对应一位学生。在数据输入过程中,形成一个按学号从小到大顺序链接的有序链表。当数据输入结束后,程序按总成绩从高到低,学号从小到大的顺序对链表排序。最后程序按指定格式输出链表中的信息。

【C程序】

include<stdio.h>

define M 30

define NLEN 10

typedef struct node {

int cur_s; /* 最近输入成绩的科目*/

Char no[NLEN];

int score;

struct node *next;

} NODE;

int s[M], sp, ss, i, mark, order, C;

FILE *fp; NODE *h, *U, *V, *p;

Char fname[80], no[NLEN], ans;

main()

{ for(h = NULL, sp = 0; ;)

{ printf("输入科目成绩文件名(输入aaaa表示强行结束)。 \n");

while(1)

{ scanf("%s", fname);

if (strcmp(fname, "aaaa") == 0)

break;

if ((fp = fopen(fname, "r")) == NULL)

printf("不能打开文件%s, 请重新输入科目文件名。 \n", fname);

else

break;

}

if (strcmp(fname, "aaaa") == 0) break;

fscanf(fp, "%d", &ss); /* 输入科目号 */s[sp]=s;

for (i=0; s[i] ! = ss; 1++);

if ( (1) )

{ printf("该科目的成绩已输入,请输入别的科目成绩文件。\n");

continue;

}

sp++;

while (fscanf(fp, "%s%d", no, &mark) == 2)

{ /* 在链表中寻找最近输入的学号 */

for(v = h; v != NULL && strcmp(v-> no, no)<0; u=v, v= v-> next);

if (v !=NULL && strcmp(v->no, nb) == 0)

{ /* 该生已有成绩 */

if (V->cur_s != ss)

{ /* 该生的当前科目成绩是第一次输入 */

v->score += mark; /* 累计总成绩 */

v->cur_s = ss;

} /* 同一科目成绩重复输入,后输入成绩被忽略 */

}

else

{ p = (NODE *)malloc(sizeof(NODE)); /* 一位新的学生 */

strcpy(p->no,no);

p->score = mark;

p->cur_s = ss;

p-> next = v;

点击查看答案

第10题

阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。【说明】 本程序的功能是根据矩形左

阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。

【说明】

本程序的功能是根据矩形左上角和右下角顶点坐标生成一个矩形对象,然后输出该矩形4个顶点的坐标,计算并输出该矩形的面积。

【C++代码】

include<iostream>

using namespace std;

class MyPoint( //表示平面坐标系中的点的类

double x;

double y;

public:

MyPoint (double x,double y){this->x=x;this->y=y;}

double getX()const{(1);}

double getY()const{ return y;}

void show()const{ cout<<'('<<x<<','<<y<<')';}

};

class MyRectangle{ //表示矩形的类

MyPoint upleft; //矩形的左上角顶点

MyPoint down right; //矩形的右下角顶点

public:

MyRectangle(MyPoint upleft,MyPoint downright);

MyPoint getUpLeft()const{return up_left;} //返回左上角坐标

MyPoint getDownRight()const{return down_right;} //返回右下角坐标

MyPoint getUpRight()const; //返回右上角坐标

MyPoint getDownLeft()const; //返回左下角坐标

double area()const; //返回矩形的面积

};

MyRectangle:: MyRectangle((2)):

up left(p1),down_right(p2){}

MyPoint MyRectangle::getUpRight()const

{

return MyPoint(down_right.getX(),up_left.getY());

}

MyPoint MyRectangle::getDownLeft()const

{

return MyPeint((3));

}

double (4) ::area()const

{

return (getUpLeft(),getX()-getDownRight().getX())*

(getDownRight().getY()-getUpLeft().getY());

}

int main( )

{

MyRectangle r(MyPoint(0,2),MyPoint(2,0));

r.getUpLeft(),show();

r.getUpRight().show();

r.getDown Right().show();

(5);

cout<<r.area()<<end1;

return 0;

}

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信