首页 > 软考
题目内容 (请给出正确答案)
[主观题]

阅读下列函数说明和C函数,将应填入(n)处的字句写对应栏内。[说明] 二叉树的二叉链表存储结构描述

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

[说明]

二叉树的二叉链表存储结构描述如下:

typedef struct BiTNode

{ datatype data;

struct BiTNode *lchild, * rchild; /*左右孩子指针*/

}BiTNode,* BiTree;

对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作:

(1) 访问该元素所指结点;

(2) 若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。

此过程不断进行,当队列为空时,二叉树的层次遍历结束。

下面的函数实现了这一遍历算法,其中Visit(datatype a)函数实现了对结点数据域的访问,数组queue[MAXNODE]用以实现队列的功能,变量front和rear分别表示当前队首元素和队尾元素在数组中的位置。

[函数]

void LevelOrder(BiTree bt) /*层次遍历二叉树bt*/

{ BiTree Queue[MAXNODE];

int front,rear;

if(bt= =NULL)return;

front=-1;

rear=0;

queue[rear]=(1);

while(front (2) ){

(3);

Visit(queue[front]->data); /*访问队首结点的数据域*/

if(queue[front]—>lchild!:NULL)

{ rear++;

queue[rear]=(4);

}

if(queue[front]->rchild! =NULL)

{ rear++;

queue[rear]=(5);

}

}

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“阅读下列函数说明和C函数,将应填入(n)处的字句写对应栏内。…”相关的问题
第1题
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。【说明】 函数QuickSort是在一维数组A[

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

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[ ],int s,int t)

{ int i=s,j=t+1,temp;

int x=A[s];

do{

do i ++ ;while (1);

do j -- ;while(A[j]>x);

if(i<j){temp=A[i];(2);(3);}

}while(i<j);

A[a] =A[j];A[j] =x;

if(s<i-1) (4);

if(j+1<t) (5);

}

点击查看答案
第2题
●试题四 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 函数Qui

●试题四

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

【说明】

函数QuickSort是在一维数组A[n]上进行快速排序的递归算法。

【函数】

void QuickSort(int A[],int s,int t)

{int i=s,j=t+1,temp;

int x=A[s];

do{

do i++;while (1) ;

do j--;while(A[j]>x);

if(i<j){temp=A[i]; (2) ; (3) ;}

}while(i<j);

A[a]=A[j];A[j]=x;

if(s<i-1) (4) ;

if(j+1<t) (5) ;

}

点击查看答案
第3题
阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。[函数2.1说明] 下面程序的功能是计算

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

[函数2.1说明]

下面程序的功能是计算x和y的最小公倍数。

[函数2.1]

main()

{ int m,n,d,r;

seanf("%d %d",&m,&n);

if(m<n) {r=m;m=n;n=r;}

(1);

while (d%n! =0) (2);

printf("%d\n",d);

}

[函数2.2说明]

下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。

[函数2.2]

include <stdio.h>

main()

{ char c,preChar='\0';

c = getchar();

while(c! = '.'){

if((3)) putchar(c);

else if(preChar! =' ') putchar(c);

(4);

c=(5);

}

}

点击查看答案
第4题
阅读下列函数说明和C函数,将应填入(n)处的字句写在对应栏内。[函数2.1说明] Fibonacci数列中头两

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

[函数2.1说明]

Fibonacci数列中头两个数均为1,从第三个数开始,每个数等于前两个数之和。下述程序计算Fibonacci数列中前15个数,并以每行5个数的格式输出。

[函数2.1]

include <stdio.h>

main()

{ int i,f,f1=1,f2=1;

printf("%5d%5d",f1,f2);

for(i=3;i<=15;i++){

f=(1);

printf("%5d",f);

if((2)= =0) printf("\n");

f1=12;

(3);

}

}

[函数2.2说明]

函数fun(char *str1,char *str2)的功能是将字符串str2拼接到str1之后。

[函数2.2]

fun(char *str1,char *str2)

{ int i,j;

for(i=0;str1[i]!='\0';i++);

for(j=0;str2[j]!='\0';j++) (4);

(5);

}

点击查看答案
第5题
阅读下列程序说明和C代码,将应填入(n)处的字句写在对应栏内。[说明] 函数Printprime(int UpBound)

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

[说明]

函数Printprime(int UpBound)的功能是输出1到UpBound以内的全体素数。

[函数2.1]

void PrintPrime(int UpBound)

printf("2," );

for(i=3; i<UpBound; i+ =2) {

int k = sqrt(i);

for(j=3; j<= k;(1)) /*检查i是否有3到k以入的奇因数*/

if((2)) break;

fi((3)) printf("%d", i);

[函数2.2说明]

递归函数invert(int a[],int k),int k)的功能是将数组a中的前k个元素逆置。

[函数2.2]

void invert(int a[ ], int k)

{ int t;

if ((4)) {

invert((5));

t=a[0];

a[0] =a[k-1];

a[k-l]=t;

}

}

点击查看答案
第6题
●试题一 阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。 【函数1.1说明】

●试题一

阅读下列函数说明和C代码,把应填入其中n处的字句写在答卷的对应栏内。

【函数1.1说明】

函数strcpy(char*to,char*from)将字符串from复制到字符串to。

【函数1.1】

void strcpy(char*to,char*from)

{while((1 ) );}

【函数1.2说明】

函数merge(int a[ ],int n,int b[ ],int m,int *c)是将两个从小到大有序数组a和b复制合并出一个有序整数序列c,其中形参n和m分别是数组a和b的元素个数。

【函数1.2】

void merge(int a[ ],int n,int b[ ],int m,int *c)

{ int i,j;

for(i=j=0;i<n && j<m;)

*c++=a[i]<b[j]? a[i++]:b[j++];

while((2) )*c++=a[i++];

while((3) )*c++=b[j++];

}

【函数1.3说明】

递归函数sum(int a[ ],int n)的返回值是数组a[ ]的前n个元素之和。

【函数1.3】

int sum(int a[ ],int n)

{ if(n>0)return (4) ;

else (5) ;

}

点击查看答案
第7题
阅读下列程序说明和c代码,将应填入(n)处的字句写在对应栏内。[说明] 下面的程序利用递归算法计算x

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

[说明]

下面的程序利用递归算法计算x和y的最大公约数。

[函数2.1]

main ()

{ int x,y,k,t;

scanf(" % d% d" , &x, &y);

if(x>y) { t=x;x=y; y=t;}

(1);

while(k! =0){

y=x;

(2);

k=y%x;

}

prinff("% d" ,x); }

[函数2.2说明]

函数fun(char *str,char *substr的功能是计算子串sugbstr在串str中出现的次数。

[函数2.2]

fun(ehar * str, char * substr)

{ int x,y,z;

(3);

for(x=0;str[ x] ! = '\O';x + + )

for(y=x,z=0;sabstr[z] = =str[y];(4),y+ +)

if((5)= ='\0') {

num + +;

break;

}

return(num);

}

点击查看答案
第8题
●试题二 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明2.1】 L为

●试题二

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

【说明2.1】

L为一个带头结点的循环链表。函数deletenode(LinkList L,int c)的功能是删除L中数据域data的值大于c的所有结点,并由这些结点组建成一个新的带头结点的循环链表,其头指针作为函数的返回值。

【函数2.1】

LinkList deletenode(LinkList L,int c)

{

LinkList Lc,p,pre;

pre=L;

p= (1) ;

Lc=(LinkList)malloc(sizeof(ListNode));

Lc->next=Lc;

while(p!=L)

if(p->data>c)

{

(2) ;

(3) ;

Lc->next=p;

p=pre->next;

}

else

{

pre=p;

p=pre->next;

}

return Lc;

}

【说明2.2】

递归函数dec_to_k_2(int n,int k)的功能是将十进制正整数n转换成k(2≤k≤9)进制数,并打印。

【函数2.2】

dec_to_k_2(int n,int k)

{∥将十进制正整数n转换成k(2≤k≤9)进制数

if(n!=0)

{

dec_to_k_2((4) ,k);

printf("%d", (5) );

}

}

点击查看答案
第9题
●试题八 阅读下列函数说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 以下程

●试题八

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

【说明】

以下程序的功能是:从键盘上输入一个字符串,把该字符串中的小写字母转换为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来。

【程序】

#include<stdio.h>

main()

{FILE*fp;

charstr[100];inti=0;

if((fp=fopen("text.txt" (1) ))==NULL)

{printf("can't open this file.\n");exit(0);}

printf("input astring:\n");gest(str);

while(str[i])

{if(str[i]>=′a′ && str[i]<=′z′)

str[i]= (2) ;

fputc(str[i], (3) );

i++;

}

fclose(fp);

fp=fopen("test.txt", (4) );

fgets(str,100,fp);

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

(5) ;

}

点击查看答案
第10题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。【说明】 给定函数fun的功能是:将

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

【说明】

给定函数fun的功能是:将从键盘上输入的每个单词的第一个字母转换为大写字母,输入时各单词必须用空格隔开,用“.”结束输入。

【函数】

int fun(char *c,int status)

{

if((1)=='')

return 1;

else

{

if((2)&&(3)&&(4))

(5)='A'-'a';

return 0;

}

}

main()

{

int flag=1;

char ch;

printf("请输入一字符串,用点号结束输入!\n");

do {

ch=getchar();

flag=fun(&ch,flag);

putchar(ch);

}while(ch!='.');

printf("\n");

}

点击查看答案
第11题
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。 [说明] 已知r[1...n]是n个记

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

[说明]

已知r[1...n]是n个记录的递增有序表,用折半查找法查找关键字为k的记录。若查找失败,则输出“failure",函数返回值为0;否则输出“success”,函数返回值为该记录的序号值。

[C函数]

int binary search(struct recordtype r[],int n,keytype k)

{ intmid,low=1,hig=n;

while(low<=hig){

mid=(1);

if(k<r[mid].key) (2);

else if(k==r[mid].key){

printf("succesS\n");

(3);

}

else (4);

}

printf("failure\n");

(5);

}

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改