题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2023-12-11 01:30:54

[简答题]

试题五
阅读以下说明和C语言函数,将应填入 (n) 处。
[说明]
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二义排序树。
函数insert_BST(char *str)的功能是:对给定的字符序列按照ASCⅡ码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count域对字符的重复次数进行计数。
二叉排序树的链表结点类型定义如下:
typedef struct BSTNode{
char Elem; /*结点的字符数据*/
int Count; /*记录当前字符在序列中重复出现的次数*/
struct BSTNode *Lch,*Rch; /*接点的左、右子树指针*/
}*BiTree;
[函数]
{BiTree insert_BST(char *str)
BiTree root,parent,p;
char (1) ; /*变量定义及初始化 */
root=(BiTree)malloc(sizeof(struct BSTNode));
if(!root||*s==’/0’) return NULL;
root->Lch=root->Rch=NULL; foot->Count=1; root->Elem=*s++;
for(; *s!=’/0’;s++){
(2) ; parent=NULL;
while (p){ /*p从树跟结点出发查找当前字符*s所在结点 */
parent = p;
if(*s==p->Elem)/*若树中已存在当前字符结点,则当前字符的计数值加1*/
{p->Count++; break;
else /*否则根据字符*s与结点*p中字符的关系,进入*p的左子树或右

更多"试题五 阅读以下说明和C语言函数,将应填入 (n) 处。 [说明] 二"的相关试题:

[单项选择]二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若其左子树非空,则左子树上所有结点的值均小于根结点的值;若其右子树非空,则右子树上所有结点的值均大于根结点的值;其左、右子树本身就是两棵二叉排序树。根据该定义,对一棵非空的二叉排序树进行()遍历,可得到一个结点元素的递增序列。
A. 先序(根、左、右)
B. 中序(左、根、右)
C. 后序(左、右、根)
D. 层序(从树根开始,按层次)
[简答题]

试题二
阅读以下说明和C语言函数,将应填入 (n) 处。
[说明]
函数int find_Max_Min(int a[],int n)的功能是:找出n个元素的数组a中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值:再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;以此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。
[函数]
int find_Max_Min(int a[],int n)
{/*找出n个元素的数组a的最大、最小元素并输出,返回查找过程元素中的比较次数*/
int i,Count=0;
int temp,Maxnum,Minnum;
for(i=0; i<n/2; i++){
Count=Count+1 /*元素比较次数计数*/
if(a[i]>a[ (1) ])
{/*数组元素交换代码略*/}
}
Maxnum=a[n-1]; Minnum=a[0];
for(i=1;i<n/2+n%2;i++){
Count= (2) ; /*元素比较次数计数*/
Minnum= (3) a[i]:Minnum; /*找最小元素*/
Maxnum= (4) (5) :Maxnum; /*找最大元素*/
}
printf("Max=%d/n",Maxnum);
printf("Min=%d/n",Minnum);
return Count;
}


[简答题]

阅读以下说明和C语言代码,回答问题1至问题4,将解答填入对应栏内。
【说明】
在嵌入式操作系统设备管理的实现上,常使用到C语言的函数指针变量,由统一的管理函数调用不同的设备驱动程序。下面的一段C语言代码是驱动管理程序 manage_device调用4个不同设备驱动程序,但没有用到函数指针变量。
【C语言代码】
/*变量与类型说明*/
#include "stdio.h"
#include "stdlib.h"
extern int sys_status;
extern int Dev_drv1(int arg1, int arg2);
extern int Dev_drv2(int arg1, int arg2);
extern int Dev_drv3(int arg1, int arg2);
extern int Dev_drv4(int arg1, iht arg2);
#define NOERROR 0

type struct {
int _fd;
} TYP_DEV_TAB;
TYP DEV_TAB dev_tab[50]= {101,99, 80, 120,};

/*程序代码*/
void manage_device(int devid, int arg1, int arg2)
{ int place ;
int ret;
for(place=0 ; place<50 ; place++)
if dev_tab [place]. fd == devid) break;
if(place>=50)
printf(" NO DEVICE fd = %d/n ",devid);
switch(dev_tab [place]._fd) {
case

[简答题]

试题二
阅读以下说明和C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
函数int find_Max_Min(int a[],int n)的功能是:找出n 个元素的数组a 中的最大元素和最小元素并输出,返回查找过程中元素的比较次数。查找方法如下:比较a[0]和a[n-1],若a[0]大,则交换a[0]和a[n-1]的值;再比较a[1]和a[n-2],若a[1]大,则交换a[1]和a[n-2]的值;依此类推,直到所有的元素都比较完。然后在数组的前半区从前往后找出小元素,在后半区从后往前找出大元素。
[函数]
int find_Max_Min(int a[],int n)
{ /*找出n 个元素的数组a 的最大、最小元素并输出,返回查找过程元素中的比较次数*/
int i,Count = 0;
int temp,Maxnum,Minnum;
for(i = 0; i < n/2; i++) {
Count = Count + 1; /*元素比较次数计数*/
if (a[i] > a[ (1) ])
{ /*数组元素交换代码略*/}
}
Maxnum = a[n-1]; Minnum = a[0];
for(i = 1; i < n/2 + n%2; i++) {
Count = (2) ; /*元素比较次数计数*/
Minnum = (3) a[i] : Minnum; /*找最小元素*/
Maxnum = (4) (5) : Maxnum; /*找最大元素*/
}
printf("Max=%d/n",Maxnum);
printf("Min=%d/n",Minnum);
return Count;
}


[简答题]

试题五
阅读以下说明和C 语言函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
[说明]
二叉排序树或者是一棵空树,或者是具有如下性质的二叉树:若它的左子树非空,则左子树上所有结点的值均小于根结点的值;若它的右子树非空,则右子树上所有结点的值均大于根结点的值;左、右子树本身就是两棵二叉排序树。
函数insert_BST (char *str)的功能是:对给定的字符序列按照ASCII 码值大小关系创建二叉排序树,并返回指向树根结点的指针。序列中重复出现的字符只建一个结点,并由结点中的Count 域对字符的重复次数进行计数。
二叉排序树的链表结点类型定义如下:
typedef struct BSTNode{
char Elem; /*结点的字符数据*/
int Count; /*记录当前字符在序列中重复出现的次数*/
struct BSTNode *Lch,*Rch; /*结点的左、右子树指针*/
}*BiTree;
[函数]
BiTree insert_BST(char *str)
{ BiTree root,parent,p;
char (1) ; /* 变量定义及初始化 */
root = (BiTree)malloc(sizeof(struct BSTNode));
if (!root || *s==’/0’) return NULL;
root->Lch = root->Rch = NULL; root->Count = 1; root->Elem = *s++;
for(; *s != ’/0’; s++) {
(2) ; parent = NULL;
while (p) { /* p 从树根结点出发查找当前字符*s 所在结点 */
parent = p;
if (*s == p->Elem) /*若树中已存在当前字符结点,则当前字符的计数值加1*/
{ p->Count++; break; }
else /*否则

[填空题]阅读以下函数说明和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) ; }
[填空题]阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。
[说明]
函数void diff(Node*A,Node*B,Node**r)的功能是:根据两个由整数按升序构成的单链表L1和L2(分别由A,B指向)构造一个单链表L3(由*r指向),要求L3中的所有整数都是L1,并且不是L2中的整数,还要求L3中的所有整数都两两不等。
[C函数]
#include<malloc.h>
typedef struct node {
int data;
struct node*next;
}Node;
void diff(Node*A,Node*B,Node**r)
{ int lastnum;
Node*P;
*r=NULL;
if(!A) return;
while( (1) >
if(A->data<B->data)
{lastnum=A->data;
p=(Node*)malloc(sizeof(Node));
P->data=lastnum;
P->next=*r;
(2) ;
do
A=A->next;
while( (3) >;
}
else iffA->data>B->data)
B=B->next;
else{
(4) ;
lastnum=A->data;
while (A &&A->data==lastnum)A=A->next;
}
while(A){
lastnum=A->data;
p=(Node*)malloc(sizeof(Node));

[填空题]阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。
[说明1]
函数void fun(char*w,char x,int*n)用来在w数组中插入x,w数组中的数已按由小到大顺序存放,n指存储单元中存放数组中数据的个数,插入后数组中的数仍有序。
[C函数1]
void fun(char*W,char x,int*n)
{ int i,P;
p=0;
w[*n]=x;
while(x>w[p]) (1) ;
for(i=*n,i>p;i--)w[i]= (2) ;
w[p]=x;
++*n;
}
[说明2]
函数void revstr(char*s)将字符串s逆置。例如:字符串“abcde”,经过逆置后变为“edcba”。
[C函数2]
void revstr(char*s)
{ char*p,c;
if(s==NULL)return;
p= (3) ; /*p指向字符串s的最后一个有效字符*/
while(s<p){ /*交换并移动指针*/
C=*s;
(4) =*p;
(5) =c;
}
}
[填空题]阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。
[说明1]
函数int factors(int n)的功能是判断整数n(n>=2)是否为完全数。如果n是完全数,则函数返回0,否则返回-1。
所谓“完全数”是指整数n的所有因子(不包括n)之和等于n自身。例如:28的因子为1,2,4,7,14,而28=1+2+4+7+14,因此28是“完全数”。
[C函数1]
int factors(int n)
int i,S;
for(i=l,s=0;i<=n/2;i++)
if(n%i==O) (1) ;
if( (2) )return 0;
rerurn -1;

[说明2]
函数int maxint(int a[],int k)的功能是用递归方法求指定数组中前k个元素的最大值,并作为函数值返回。
[C函数2]
int maxint(int a[],int k)
int t;
if( (3) )return (4) ;
t=maxint(a+1, (5) )j
return(a[0]>t) a[0] :t;

[填空题]阅读以下函数说明和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; }
[简答题]
阅读以下关于ASP和XML语言编写商务网站的技术说明,根据回答问题1~问题4。
【说明】
某公司计划建立一个商务网站,该网站主要面对消费者,功能是完成网上购物、信息查询、广告宣传、用户需求调查等。该公司服务器采用Windows Server 2003+IIS5.0,使用ASP和XML相结合的网页编程语言,数据库采用SQL Server,数据库名为TEST,数据库管理员的用户名为sa,密码为test_test,
【问题1】
该商务网站有一个购物车模块,购物车模块中自定义了两个session属性如下。
①CID用来记录用户选择的商品;
②CNUM用来记录相应商品的数量。
请根据表7-4所列的购物情况,将(1)~(3)空缺处对session对象处理方式的内容填写完整。
表7-4 Session对象处理方式表
购物情况
Session对象处理方式
用户订购商品且购物车为空时
 (1) 
购物车非空,购物车中没有当前订购的商品
[填空题]阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。
[说明]
已知一棵二叉树用二叉链表存储,t指向根结点,p指向树中任一结点。下列算法为输出从t到P之间路径上的结点。
[C程序]
#define Maxsize 1000
typedef struct node
TelemType data;
struct node*1child,*rchild;
BiNode,*BiTree;
void Path(BiTree t,BiNode*P)
BiTree*stack[Maxsize],*stackl[Maxsize],*q;
int tag[Maxsize],top=0,topl;
q=t;
/*通过先序遍历发现P*/
do(while(q!=NULL && q!=p)
/*扫描左孩子,且相应的结点不为P*/
(1) ;
stack[top]=q;
tag[top]=0;
(2) ;

if(top>0)
if(stack[top]==P) break; /*找到P,栈底到栈顶为t到P*/
if(tag[top]==1)top--;
elseq=stack[top];
q=q->rchild;
tag[top]=1;


(3) ;
top--; topl=0;
while(top>0)
q=stack[top]; /*反向打印准备*/
topl++;
<
[填空题]阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。
[说明]
某银行共发出M张储蓄卡,每张储蓄卡拥有唯一的卡号,每天每张储蓄卡至多支持储蓄卡持有者的N笔“存款”或“取款”业务。程序中用数组card[M][N+3]中的每一行存放一张储蓄卡的有关信息,其中:
card[i][0]存放第i张卡的卡号;
card[i][1]存放第i张卡的余额;
card[i][2]存放第i张卡的当日业务实际发生笔数;
card[i][3]~card[i][N+2]存放第i张卡的当日存取款金额,正值代表存款,负值代表取款。
当持卡者输入正确的卡号、存款或取款金额后,程序进行相应的处理;若输入不正确的数据,程序会提示持卡者重新输入;若输入的卡号为负数时,银行终止该卡的当日业务。
[C程序]
#include<stdio.H>
#define M 6
#define N 5
long card[M][N+3]=9801,2000,0,,9812,2000,2,,9753,3000,1,,
8750,500,0,,9604,2800,3,),(8901,5000,5,;
int locate(long card[][N+3],int m,long no)
int i;
for(i=0;i<m;i++)
if( (1) ==no) return i;
(2) ;

main( )
long cardNo,money;
int k;
while(1)
printf("请输入卡号:/n");
scanf("%1d",&cardNo);
if(cardNo<0) break;
k=locate(card,M,cardNo);
if(k==-1)
printf("不存在%id号的储蓄卡/n",cardNo);
continue;

printf("请输入金额(正值

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
  • 支付完成
  • 取消支付
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码