重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 计算机类考试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[主观题]

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】 本程序利用非递归算法实现二

阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。

【说明】

本程序利用非递归算法实现二叉树后序遍历。

【函数】

include<stdio.h>

include<stdlib.h>

typedef struct node{/*二叉树的结点数据结构类型*/

char data;

struct node *left;

struct node *right;

}BTREE;

void SortTreelnsert(BTREE **tree, BTREE *s)

{

if(*tree==NULL)*tree=s;

else

if(s->data<(*tree)->data)

SortTreelnsert((1),s);

else if(s->data>=(*tree)->data)

SortTreelnsert((2),s);

}

void TraversalTree(BTREE *tree)

{

BTREE *stack[1 000],*p;

int tag[1000],top=0;

p=tree;

do{

while(p !=NULL)

{

stack[++top]=p;

(3);

tag[top]=0; /*标记栈顶结点的左子树已进行过后序遍历*/

}

while(top>0&&(4))/*栈顶结点的右子树是否被后序遍历过*/

{

p=stack[top--];

putchar(p->data);

}

if(top>0)/*对栈顶结点的右子树进行后序遍历*/

{

(5);

tag[top]=1;

}

}while(top>0);

}

void PrintSortTree(BTREE *tree)

{

if(tree !=NULL)

{

printSortTree(tree->left);

putchar(tree->data);

pdntSortTree(tree->right);

}

}

main()

{

BTREE *root=NULL, *node;

char ch;

ch=getchar();

while(ch !='')

{

node=(BTREE*)malloc(sizeof(BTREE));

node->data=ch;

node->left=node->right=NULL;

SortTreelnsert(&root, node);

ch=getchar();

}

PrintSortTree(root);

putchar('\n');

TraversalTree(root);

}

查看答案
更多“阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。【说明】 本程序利用非递归算法实现二”相关的问题

第1题

阅读以下说明和Java代码,将解答写入对应栏内。【说明】 下面的程序的功能是利用实现Runnable接口的

阅读以下说明和Java代码,将解答写入对应栏内。

【说明】

下面的程序的功能是利用实现Runnable接口的方法来创建线程,并利用它来执行响应的一些操作。最后使得m的执行结果:100,如图3。

注意:请勿改动main()主方法和其他已有的语句内容,仅在下划线处填入适当的语句。

class ClassName (1) Runnable {

int n;

(2) {

try{

Thread. sleep (2000);

n=100;

}catch( (3) e) {}

}

public static void main(String[ ]args) {

try{

ClassName a = new ClassName( );

(4)

threadl. (5) ();

threadl, join( );

int m=a.n;

System. out. println("m=" + m);

}catch( (3) e){}

}

}

点击查看答案

第2题

阅读以下说明和C语言函数,将应填入(n)。【说明】 已知包含头结点(不存储元素)的单链表的元素已经按

阅读以下说明和C语言函数,将应填入(n)。

【说明】

已知包含头结点(不存储元素)的单链表的元素已经按照非递减方式排序,函数 compress(NODE*head)的功能是去掉其中重复的元素,使得链表中的元素互不相同。

处理过程中,当元素重复出现时,保留元素第一次出现所在的结点。

图2-1(a)、(b)是经函数compress()处理前后的链表结构示例图。

链表的结点类型定义如下:

typedef struct Node{

int data;

struct Node *next;

}NODE;

【C语言函数】

void compress(NODE *head)

{ NODE *ptr,*q;

ptr= (1); /*取得第一个元素结点的指针*/

while( (2)&& ptr->next) {

q=ptr->next;

while(q&&(3)) { /*处理重复元素*/

(4)q->next;

free(q);

q=ptr->next;

}

(5) ptr->next;

}/*end of while */

}/*end of compress*/

点击查看答案

第3题

阅读以下说明和C语言函数,将应填入(n)处。【说明】 已知1900年1月1日是星期一,下面的函数count_5_13

阅读以下说明和C语言函数,将应填入(n)处。

【说明】

已知1900年1月1日是星期一,下面的函数count_5_13(int year)用于计算给定的年份year中有几个“黑色星期五”。“黑色星期五”指既是13日又是星期五的日期。

函数count_5_13(int year)首先算出年份year的1月13日是星期几,然后依次计算每个月的13日是星期几,若是星期五,则计数。

程序中使用了函数isLeapYear(int year),其功能是判断给定年份是否为闰年,返回值为1(或0)表示year是(或不是)闰年。

【C语言函数】

int count_5_13(int year)

{

int date; /*date为0表示星期日,为1~6分别表示星期一至星期六*/

long days=0; /*days记录天数*/

int m,y,c=0; /*c用于表示黑色星期五的个数*/

if (year<1900) return-1;

/*计算从1900年1月1日起至给定年份year的1月13日间隔的天数*/

days=12;

for (y= 1900; y < year; y++) {

days +=365;

if (isLeapYear(y))(1);

}

date=((days%7) +1) %7; /*算出给定年份year的1月13日是星期几*/

c=((2)) ?1:0;

for(m=1;(3);m++) {

switch (m) {

case 1:case 3: case 5: case 7:case 8:case 10:case 12:

days=31; break;

case 4: case 6: case 9: case 11:

days=30; break;

case 2:days=28;

if((4)) days=29;

break;

}/*end of switch*/

date=((days%7)+ (5) )%7;

if (date==5) c++;

} /*end of for*/

return c;

}

点击查看答案

第4题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 设一个环上有编号为0~

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

[说明]

设一个环上有编号为0~n-1的n粒颜色不尽相同的珠子(每粒珠子颜色用字母表示,n粒珠子的颜色由输入的字符串表示)。从环上的某两粒珠子间剪开,则环上珠子形成一个序列然后按以下规则从序列中取走珠子:首先从序列左端取走所有连续的同色珠子;然后从序列右端在剩下的珠子中取走所有连续的同色珠子,两者之和为该剪开处可取走珠子的粒数。在不同位置剪开,能取走的珠子也不尽相同。

本程序所求的是在环上哪个位置剪开,按上述规则可取走的珠子粒数最多。程序中用数组存储字符串。例如:10粒珠子颜色对应字符串为“aaabbbadcc”,在0号珠子前剪开,序列为aaabbbadcc,从左端取走3粒a色珠子,从右端取走2粒c色珠子,共取走5粒珠子。若在3号珠子前剪开,即bbbadccaaa,共取走6粒珠子。

[C函数]

int count(char*s,int start,int end)

{inti,c=0,color=s[start],step=(start>end)?-1:1;

for(i=start;s[i]==color;i+=step){

if(step>0 && i>end || (1) ) break;

(2) ;

}

return c;

}

void main()

{ char t,s[120];

int i,j,C,len,maxc,cut=0;

printf("请输入环上代表不同颜色珠子字符串:");

scanf("%s",s );

len=strlen(s);

for(i=maxc=0;i<len;i++){ /*尝试不同的剪开方式*/

c=count(s,0,len-1);

if(c<len) C+=count( (3));

if(c>maxc){cut=i;maxc=c; )

/*数组s的元素循环向左移动一个位置*/

t=s[0];

for(j=1;i<len;i++) (4);

(5);

}

printf("在第%d号珠子前面剪开,可以取走%d个珠子.\n",cut,maxc);

}

点击查看答案

第5题

阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明1] 本程序输入一字符串,

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

[说明1]

本程序输入一字符串,并将其中的大写字母变成小写字母。

[C函数1]

include<stdio.h>

void main()

{ int i=0;

char s[120];

printf("Enter a string.\n");

scanf("%s",s);

while( (1) ){

if( (2) )

s[i]=s[i]-'A'+'a';

i++;

}

printf("%s\n",S);

}

[说明2]

本程序用二分法,在已按字母次序从小到大排序的字符数组list[len]中,查找字符c,若c在数组中,函数返回字符c在数组中的下标,否则返回-1。

[C函数2]

int search(char list[],char c,int len)

( intlow=0,high=len-1,k;

while( (3) );

k=(10w+high)/2;

if( (4) ) return k;

else if( (5) )high=k-1;

else low=k+1;

return -1;

}

点击查看答案

第6题

阅读以下说明和流程图,回答问题1和问题2。【说明】 设8位二进制代码B0B1…B7中的最高位B0为奇偶校验

阅读以下说明和流程图,回答问题1和问题2。

【说明】

设8位二进制代码B0B1…B7中的最高位B0为奇偶校验位。对于任何给定的代码

B1B2…B7,可按下式计算偶校验位:

其中,“”表示“异或”运算。

下面的流程图描述了计算偶校验位的过程。

【流程图】

注:流程图中,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。

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

点击查看答案

第7题

阅读以下应用说明以及用Visual Basic开发过程中所编写的程序代码,将应填入(n)处的字句写在对应栏

内。

【应用说明】

某应用的登录界面如下:

登录界面中的文本框txtUserID和txtPassword分别用于接受用户输入的用户名和口令,命令按钮为“确定(cmdOk)”和“取消(cmdCancel)”。ADO数据控件Adodc1与数据库EmployeeData连接。在EmployeeData中,表“Users”的字段“UserID”和“Pswd”分别记录了所有的合法用户名和口令。

在登录界面中,输入正确的用户名和口令并单击“确定”按钮后,就会打开应用程序的主窗口fxmApp。用户名或密码输入错误时,给出提示信息并返回登录界面。

【Visual Basic程序代码】

Private Sub cmdOK Click()

Adodcl.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data

Source=D:\data\EmployeeData.mdb;Persist Security Info=False"

Adodcl.RecordSource = "select *(1)"

Adodcl.Refresh

Do

usrname =(2)

pwd = Adodc1.Recordset("Pswd")

Adodc1.Recordset.MoveNext

Loop Until (usrname =(3)) Or (Adodc1.Recordset.EOF)

If usrname <> txtUserID.Text Then

MsgBox "无效的用户ID, 请重新输入!", , "提示信息"

Else

If (4)Then

MsgBox "欢迎进入系统主界面!", , "提示信息"

Unload me

(5)

Else

MsgBox "无效的用户密码, 请重新输入!", , "提示信息"

End If

End If

End Sub

点击查看答案

第8题

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 【说明】 java.util库中提供了Vector模

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

【说明】

java.util库中提供了Vector模板类,可作为动态数组使用,并可容纳任意数据类型。该类的部分方法说明如下表所示:

【Java代码】

import (1);

public class JavaMain {

static private final int (2)= 6;

public static void main(String[] args){

Vector<Integer> theVector = new Vector< (3) >();

// 初始化 theVector, 将theVector的元素设置为0至5

for (int cEachItem = 0; cEachItem < ARRAY_SIZE; cEachItem++)

theVector.add((4));

showVector(theVector); // 依次输出theVector中的元素

theVector.removeElementAt(3);

showVector(theVector);

}

public static void showVector(Vector<Integer> theVector

if (theVector.isEmpty()) {

System.out.println("theVectcr is empty.");

return;

}

for (int loop = 0; loop < theVector.size(); loop++)

System.out.print(theVector.get(loop));

System.out.print(", ");

}

System.out.println();

}

}

该程序运行后的输出结果为:

0,1,2,3,4,5

(5)

点击查看答案

第9题

阅读以下应用说明、属性设置以及Visual Basic程序代码,将解答写在对应栏内。 【应用说明】 本应用运

阅读以下应用说明、属性设置以及Visual Basic程序代码,将解答写在对应栏内。

【应用说明】

本应用运行时,由用户输入一个正整数n后自动产生n个正整数,然后按照用户的指定要求对该组数进行处理。该应用的运行界面如下图所示:

1.窗体中有两个文本框。(txtSrc,txtObj)、两个标签(lblSrc,lblObj)、三个命令按钮(cmdGendat,cmdProc,cmdQuit)和一个弹出式菜单(procMenu,初始时不可见)。

2.文本框txtSrc(由标签lblSrc提示)用于显示产生的数据,文本框txtObj(由标签lblObj提示)用于显示处理结果,要求每行显示一个整数。

3.程序启动时,命令按钮cmdProc(运算要求)不可用。单击命令按钮cmdGendat(产生数据)后,提示用户输入一个n的值并生成n个正整数存入数组元素a(1)~a(n),然后将数据逐行显示在txtSrc中,并设置命令按钮cmdProc可用。

4.单击命令按钮cmdProc(运算要求)后弹出菜单。选择菜单项并单击后,进行相应处理并将结果显示在txtObj中,同时将lblObj的标题改为该菜单项表示的处理命令。

弹出式菜单“运算要求”的结构如下表所示:

一个整数序列的中位数是指对该序列进行非递减(增)排列后最中间位置上的元素。若序列长度为偶数,则取中间两个元素的平均值为其中位数。

【属性设置】

为实现单击命令按钮cmdProc后弹出“运算要求”菜单(procMenu),设计时需将 procMenu的(1)属性设置成false。

供(1)选择的属性:Default Enabled ScaleMode Style Visible

【Visual Basic程序代码】

Dim a() AS Integer, n As Integer

Private Sub Form_Load()

txtSrc.Text = "": txtObj.Text = "": (2) = False

End Sub

Private Sub cmdGendat_Click () '生成正整数序列并存入数组a

On Error GoTo Error handler

n = InputBox$ ("请输入数组元素个数:", "输入序列长度")

If (n < 1) Then

MsgBox "输入数据错误!", vbOKOnly, "提示:"

GoTo Error handler:

End If

ReDim a(n) As Integer

s = ""

For i = 1 To n '将生成的正整数存入a(1)~a(n)中

a(i) = Int(Rnd * 10000) : s = s & Str$(a(i)) & vbCrLf

Next

txtSrc.Text = s

(3) '设置运算要求命令按钮可用

Error handler:

End Sub

Private Sub cmdProc_Click()

PopupMenu procMenu

End Sub

Private Sub MidNum_Click() '求中位数

lblObj.Caption = MidNum.Caption & ":"

For i = 1 To round((n + 1)/2> '用选择排序法对数组a进行部分排序

a(0) = a(i):k = i 'a(0)用作临时变量,暂存第i次选出的最小元素

For j = i + 1 To n

If a(j) < a(0) Then

a(0)= a(j): k =(4)

End If

Next

If k <> i Then

a(k) = a(i): a(i) = a(0)

End If

Next

If n / 2 - n \ 2 > 0 Then 'n为奇数时,取中间一个数

txtObj.Text - Str$(a((5))

Else 'n为偶数时,取中间两个数的平均值

txtobj.Text = Str$(Int((a(n \ 2) + a(n \ 2 + 1)) / 2))

End If

End Sub

'其他代码略

点击查看答案

第10题

指出该代码是否存在内存泄漏。

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

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

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

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

上学吧找答案