计算机软考试题答案(2)

时间:2021-08-31

试题四

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

  [说明]

  函数 MultibaseOutput(long n,int B)的功能是:将一个无符号十进制整数 n 转换成 B(2≤B≤16)进制数并输出。该函数先将转换过程中得到的各位数字入栈,转换结束后再把 B 进制数从栈中输出。有关栈操作的诸函数功能见相应函数中的注释。C代码中的符号常量及栈的类型定义如下:

  #define KAXSIZE 32  typedef struct{   int *elem;  /* 栈的存储区 */   int max;   /* 栈的容量,即找中最多能存放的元素个数 */   int top;   /* 栈顶指针 */  }Stack; [C代码]  int lnitStack(Stack *S,int n)  /* 创建容量为n的空栈 */  { S->elem = (int *)matloc(n * sizeof(int));   if (S->elem == NULL) return -1;   S->max = n;__(1)__= 0;return 0;  }  int Push(Stack*S,int item)   /* 将整数item压入栈顶 */  { if(S->top == S->max){ printf("Stack is full!");return -1;}   __(2)__;item;return 0;  }  int StackEmpty(Stack S){ return(!S.top) ? 1;0;) /* 判断栈是否为空 */  int Pop(Stack*S)        /* 栈顶元素出栈 */  { if (!S->top){ printf("Pop an empty stack!");return -1;)   return __(3)__;  }  void MultibaseOutput(long n,int B)  { int m;Stack S;   if (init Stack(&S,MAXSIZE)) { printf("Failure!");return;}   do {    if (Push(&s,__(4)__)) { printf("Failure!");return;}    n = __(5)__:   } while (n != 0);   while (!StackEmpty(S)) {     /* 输出B进制的数 */    m = Pop(&S);    if (m < 10) printf("Kd",m);  /* 小于10,输出数字 */    else printf("%c,m + 55);    /* 大于或等于10,输出相应的字符 */   }   printf("");  }

试题五

  阅读以下应用说明及Visual Basic程序代码,将应填入__(n)__处的字句写在答题纸的对应栏内。

  [应用说明5.1]

  本应用程序的窗体中有一个下拉式列表框(名称为Combol)和两个文本框(名称分别为Txtl和Txt2)。运行时,用户从Combol的.列表中进行选择,程序就会将选中条目的内容以及编号(从0开始)分别在文本框 Txt1 和 Txt2 中显示出来。

  [程序代码5.1]

  Private Sub Combol_C1ick()   Txtl.Text = Combol.__(1)__   Txt2.Text = Combol.__(2)__  End Sub

  (注:可供(2)处选择的选项:List,Index,Listlndex,ListCount,Number)

  [应用说明5.2]

  本应用程序的运行窗口如下图所示:

  当用户在输入框(名为Txtln)中输入数值数据,并从下拉式列表框(名为CmbOp)中选择所需的运算后,输出框(名为TxtOut)中就会显示运算的结果。用户单击“清除”按钮(名为CmdClear)后,输入框和输出框都清空。

  开发该应用的部分程序代码如下:

  [程序代码5.2]

  Private Sub CmbOp_Click()   Dim DataIn As Double,DataOut as Double   DataIn = __(3)__   Select Case __(4)__    Case "取整数部分"     DataOut = Int(Dataln)    Case "求平方根"     If Dataln < O Then      MsgBox$("负数不能开平方!")     Else      DataOut = Sqr(Dataln)     End If    Case "取绝对值"     DataOut = Abs(Dataln)     (TxtOut.Text = str$(DataOut)     __5)__  End Sub

试题六

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

  [函数6说明]

  函数DelAInsB(LinkedList La,LinkedList lb,int key1,int key2,int len)的功能是,将线性表A中关键码为keyl的结点开始的len个结点,按原顺序移至线性表B中关键码为key2的结点之前,若移动成功,则返回0;否则返回-1。线性表的存储结构为带头结点的单链表,La为表A的头指针,Lb为表B的头指针。单链表结点的类型定义为:

  typedef struct node{   int key;   struct node*next;  }*Linkedhist;

  [函数6]

  int DelllnsB(LinkedLiSt La,LinkedList Lb,int keyl,int key2,int len)  { LinkedList p,q,S,prep,pres;   int k;   if (!La->next || !Lb->next || len<=0) p="La-">next; prep = La;   while (p && p->key != keyl){   /* 查找表A中键值为key1的结点 */    prep = p; p = p->next;   }   if (!p) return -1;        /* 表A中不存在键值为key1的结点 */   q = p; k = 1;   while (q && __(1)__){       /* 在表A中找出待删除的len个结点 */    __(2)__: k++;   }   if (!q) return -1;        /* 表A中不存在要被删除的len个结点 */ ·   S = Lb->next;__ (3)__;   while (s && s->key != key2){   /* 查找表B中键值为key2的结点 */   pres = s; s = s->next;   }   if (!s)return -1;        /* 表B中不存在键值为key2的结点 */   __(4)__q->next;         /* 将表A中的len个结点删除 */   q->next:__(5)__   pres->next = p;         /* 将len个结点移至表B */   return 0;  }

【计算机软考试题答案】相关文章:

1.计算机软考模拟试题

2.计算机软考试题及答案

3.计算机基础测试题答案

4.计算机导论试题答案

5.计算机基础试题答案

6.计算机技能测试题答案

7.计算机软考试题数据通信的基础知识

8.计算机五级考试题答案