阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
求树的宽度,所谓宽度是指在二叉树的各层上,具有结点数最多的那一层的结点总数。本算法是按层次遍历二叉树,采用一个队列q,让根结点入队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。
[函数]
int Width ( BinTree *T
{
int front=-1, rear=-1; /*队列初始化*/
int flag=0, count=0, p; /*p用于指向树中层的最右边的结点, flag 记录层中结点数的最大值*/
if ( T!=Null)
{
rear++;
(1);
flag=1;
p=rear;
}
while ((2))
{
front++;
T=q [front]];
if (T->lchild!=Null )
{
roar+-+;
(3);
count++;
}
if ( T->rchild!=Null )
{
rear++; q[rear]=T->rchild;
(4);
}
if (front==p ) // 当前层已遍历完毕
{
if((5))
flag=count;
count=0;
p=rear, //p 指向下一层最右边的结点
}
}
return ( flag );
}
阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内【说明】
编写字符界面的Application程序,接收依次输入的10个整型数据,每个数据一行,将这些数据按升序排序后从系统的标准输出设备输出。
【Java代码】
import java.iO.*;
import java.util.* ;
public class compositor
{
public static void main ( String args[] )
{
final int NUMBER=10;
Vector dataVector=new Vector ();
try
{
BufferedReader br=new BufferedReader (
(1) InputStreamReader ( System.in ));
System.out.println ("请输入"+NUMBER+"个整数");
for (int i=0; i<NUMBER; i++ )
{
int temp=Integer.parselnt ( br.(2));
int low=0, high=i-1, mid=0;
while ((3))
{
System.out.println ( low+","+mid+","+high );
(4);
if ((( Integer ) dataVectOr.get( mid )) .intValue () ==temp )
{
data Vector.insertElementAt ( new Integer ( temp ), mid );
break;
}
else if ((( Integer ) dataVector.get ( mid )) .intValue ( ) >temp )
{
high=mid-1;
}
else
{
(5);
}
}
if ( low>high )
{
dataVector, insertElementAt ( new Integer ( temp ), iow );
}
}
//输出
System.out.println ( "\n升序的排序结果为; ");
for (int i=0; i<NUMBER; i++ )
{
System.out.print ( dataVector.get( i ) .toString () +"\t" );
}
}
catch ( NumberFormatException nfe)
{
System.out.println ( nfe.toString ());
System.out.println ( "整数格式输入错误。");
}
catch ( IOException ioe )
{
System.out.println ( ioe.toString ());
}
}
}
阅读以下说明和C++程序,将应填(n)处的字句写在对应栏内。
[说明]
设计一程序,输入10个整数到一个数组中,调整这10个数在数组中的位置,使得其中最小的一个数成为数组的首元素,最大的一个数成为数组的末元素。
[C++程序]
#include <iostream.h>
#define SIZE 10
void main ( )
{
int data [SIZE];
int m;
cout<<"请输入"<<SIZE<<"个整数:";
for ( m=0;m<SIZE; m++ ) (1);
int j=0,k=0;
for ( int i=1;i<SIZE; i++ )
if ((2)) j=i;
else if ( data[i]<data[k] ) (3);
if (j>0 ) {
int d=data[0];
(4);
data[k]=d;
}
if ( k<SIZE-1 )
{
int d=data [SIZE- 1 ];
data[SIZE- 1 ]=data[j];
(5);
}
cout<<end1<<" 排序后: ";
for ( m=0;m<SIZE; m++ ) cout<<data[m]<<" " ;
}
阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。
【说明】
以下代码实现了当用户退出界面时,判断TextEdit中的文字是否发生改变,弹出对话框判断,让用户选择是否保存文件或取消退出界面操作。阅读下面的代码,将其补充完整。
【代码7-1】
Begin VB.Form. Forml
//...窗体描述(略)
Begin VB.TextBox TextEdit
Height = 1830
Left = 180
Tablndex = 0
Text = "TextEdit"
Top = 360
Width = 3885
End
//...窗体描述(略)
End
【代码7-2】
Dim txtchange As Boolean
Dim myval As String
Private Sub Form. Load ()
TextEdit.Text: "CIU, 中国软考联盟!"
txtchange = False
End Sub
【代码7-3】
Private Sub TextEdit_Change ()
Static notchange As Boolean
(1)
notchange = Tree
End Sub
Private Sub Form_Unload ( Cancel As Integer )
Dim myval As String
If (2) Then
myval = MsgBox ( "保存文件的更改吗?", vbYesNoCancel, "提示信息" )
If (3) Then
MsgBox "保存成功"
End
End If
If (4) Then End
If (5) Then Cancel = 1
End If
End Sub
阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在对应栏内。
【说明】
在一些应用场合中,需要对用户的输入数据进行检查监控。以下VisualBasic程序实现了对新添加到 List列表的内容进行监控,拒绝向List列表添加重复信息。例如,在List列表中存在元素“a01001;a01002”,如果用户输入数据为“a01001”或“a01002”,系统则弹出提示信息,拒绝将新数据加入List列表;如果用户输入的数据不同于List列表中的任何一个元素,则作为新元素加入List中。VisualBasic界面显示如图所示。根据程序功能说明,完成程序代码。
【代码5-1】
Begin VB.Form. Forml
Caption = "List 列表拒绝添加重复信息"
//...窗体描述(略)
Begin VB.CommandButton Command2
Caption = "退出"
//...窗体描述(略)
End
Begin VB.CommandButton Commandl
Caption = "添加"
//...窗体描述(略)
End
Begin VB.TextBox Text1
//...窗体描述(略)
End
Begin VB.ListBox List1
Height = 1860
ItemData = "Form1.fix": 0000
Left = 1020
List = "Form1.fix": 0002
TabIndex = 0
Top = 525
Width = 2580
End
Begin VB.Labe1 Labe11
BackStyle = 0 'Transparent
Caption = "请输入编号"
//...窗体描述(略)
End
End
【代码5-2】
Attribute VB Name = "Form1"
Attribute VB_GlobalNameSpace = False
Attribute VB Creatable = False
Attribute VB PredeclaredId = True
Attribute VB_Exposed = False
Private Sub Form. Load ()
List1.AddItem "a01001"
List1.AddItem "a01002"
End Sub
Private Sub Cormnand1 Click ()
Dim Myval As Long
For i=0 To (1)
(2)
If (3) Then
MsgBox "系统不允许重复输入,请重新输入"
Exit Sub
End If
(4)
(5)
End Sub
阅读以下说明和C语言函数,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
求树的宽度,所谓宽度是指在二叉树的各层上,具有结点数最多的那一层的结点总数。本算法是按层次遍历二叉树,采用一个队列q,让根结点入队列,若有左右子树,则左右子树根结点入队列,如此反复,直到队列为空。
[函数]
int Width ( BinTree *T
{
int front=-1, rear=-1; /*队列初始化*/
int flag=0, count=0, p; /*p用于指向树中层的最右边的结点, flag 记录层中结点数的最大值*/
if ( T!=Null)
{
rear++;
(1);
flag=1;
p=rear;
}
while ((2))
{
front++;
T=q [front]];
if (T->lchild!=Null )
{
roar+-+;
(3);
count++;
}
if ( T->rchild!=Null )
{
rear++; q[rear]=T->rchild;
(4);
}
if (front==p ) // 当前层已遍历完毕
{
if((5))
flag=count;
count=0;
p=rear, //p 指向下一层最右边的结点
}
}
return ( flag );
}
阅读以下说明和C语言函数,将应填入(n)处的字句写在对应栏内。
[说明]
某班有n个同学,学号分别为1,2,…,n。为了每天指派若干个同学值日,他们放弃传统单调的轮留值日,别出心裁采用“定和值日”法:每天所指派值日同学的学号之和须等于其班号m(n<m<n(n+1)/2)并且规定:不允许任何两天值日的同学完全一样。
编程使n个同学按定和m值日(正整数n、m均从键盘输入,约定n<50,m<100),求出可持续的值日天数f(n,m)。运行程序,具体求出f(19,98)的值。
[函数]
main ( )
{
int b, p, i , m, n, k;
static int a[51][101]:
long s=0;
printf (" 请输入学生人数;");
scanf ( "%d", &n );
printf (" 请输入定和值: ");
scanf ( "%d", &m );
a[1][0]=1; a[1][1]=1; /* 数组元素赋初值*/
for ((1); j<=n; j++)
{
for (i=j;(2); i++) /* 计算 a (2, m),…, a(n, m)*/
{
(3);
b=0,
for ( k=1 k<j-1; k++
(4);
a[j][i]=b; }
(5); } /* 求和s 为所求结果*/
printf (" ");
printf ( "f ( %d, %d ) =%1d\n", n, m, s );
}
阅读以下函数说明和C语言函数,将应填入(n)处的字句填写在对应栏内。
[函数2.1说明]
函数fun1 (int m, int k, int xx [])的功能是:将大于整数m且紧靠m的k个素数存入数组xx中传回。例如:若输入17,5,则应输出:19,23,29,31,37。
[函数2.1]
fun1 (int m, int k, int xx [] )
{
inti, j, s=0;
for ( i=m+1; k>0; i++ )
{for (j=2; j<i; j++ )
if ( i %j=0 )
(1)
if( i==j )
{
(2)
k--; }
}
}
[函数2.2说明]
函数void fun 2 ()的功能是:打印出杨辉三角形(要求打印出10行)。
[函数2.2]
void fun2 ( )
{
int i, j;
int a[10][10];
printf ("\n" );
for (i=0; i<10; i++
{a [i] [0]=1;
(3))
for (i=2; i<l0; i++ )
for (j=1; j<i; j++)
(4)
for (i=0; i<10; i++ )
{for (j=0; j<=i; j++ )
(5)
printf ( "\n" );
}
}
阅读下列算法说明和算法,将应填入(n)处的字句写在答卷的对应栏内。
【算法说明】
某英汉词典文件包含N个记录(N>1),每个记录有两个字段:一个是英文单词,另一个是相应的汉语解释。各个记录按英文单词的词典顺序排列,各英文单词并不重复。
本算法用于维护、更新该英汉词典文件。维护、更新的方法是:首先输入一个英文单词及其汉语解释,然后在该词典中查找输入的英文单词,若找到,则用输入的汉语解释更新原有的解释;若找不到,则需要将输入的英文单词及其汉语解释插入到该词典的适当位置,使各记录仍按英文单词的词典顺序排列。
【算法】
第一步 读入英汉词典文件,并将读入的N个英文单词依次存放在字符串数组ENG中,将相应的汉语解释依次存放在字符串数组CN中。数组元素CN(i)给出了数组元素ENG(i)的解释。
第二步 输入英文单词及其汉语解释,将它们分别存放在字符串变量E和C中。若E为空串或都是空格,则转向第四步。
第三步 根据变量E的值,用二分法在数组ENG中查找。具体步骤如下:
1.1→L,N→H
2.INT((L+H)/2)→K
3.若E=ENG(K),则C→CN(K),转向第二步
若E<ENG(K),则K-1→(1);若E>ENG(K),则K+1→(2)
4.若H<L则
对I=N,L,-1(始值,终值,增量)循环执行:
ENG(I)→ENG(I+1)
CN(I)→CN(I+1)
然后,将E和C分别存入(3)和(4),N+1→N最后转向第二步
否则,转向(5)
第四步 将数组ENG和CN输出,形成新的英汉词典文件,算法结束。
高级经济师考试试题精选练习(1)
高级经济师考试模拟练习题之单选题(1
高级经济师考试试题精选练习(2)
高级经济师考试试题精选练习(3)
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟试题及答案
高级经济师考试试题及答案:单选练习题
高级经济师考试试题:经济法案例试题精
高级经济师考试模拟题及答案练习(1)
高级经济师考试模拟题及答案练习(2)