阅读以下说明和流程图,回答问题1和问题2。【说明】 设8位二进制代码B0B1…B7中的最高位B0为奇偶校验
阅读以下说明和流程图,回答问题1和问题2。
【说明】
设8位二进制代码B0B1…B7中的最高位B0为奇偶校验位。对于任何给定的代码
B1B2…B7,可按下式计算偶校验位:
其中,“”表示“异或”运算。
下面的流程图描述了计算偶校验位的过程。
【流程图】
注:流程图中,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。
将流程图中的(1)~(4)处补充完整。
阅读以下说明和流程图,回答问题1和问题2。
【说明】
设8位二进制代码B0B1…B7中的最高位B0为奇偶校验位。对于任何给定的代码
B1B2…B7,可按下式计算偶校验位:
其中,“”表示“异或”运算。
下面的流程图描述了计算偶校验位的过程。
【流程图】
注:流程图中,循环开始的说明按照“循环变量名:循环初值,循环终值,增量”格式描述。
将流程图中的(1)~(4)处补充完整。
第1题
内。
【应用说明】
某应用的登录界面如下:
登录界面中的文本框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
第2题
阅读以下说明和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)
第3题
阅读以下应用说明、属性设置以及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
'其他代码略
第6题
阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入对应栏内。
【说明】
假设数组A中的各元素A(1),A(2),…,A(M)已经按从小到大排序(M≥1);数组B中的各元素B(1),B(2),…,B(N)也已经按从小到大排序(N≥1)。执行下面的流程图后,可以将数组A与数组B中所有的元素全都存入数组C中,且按从小到大排序 (注意:序列中相同的数全部保留并不计排列顺序)。例如,设数组A中有元素:2,5, 6,7,9;数组B中有元素2,3,4,7:则数组C中将有元素:2,2,3,4,5,6,7, 7, 9。
【流程图】
第7题
阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。
说明
以下程序的功能是计算三角形、矩形和正方形的面积并输出。
程序由4个类组成:类Triangle、Rectangle和Square分别表示三角形、矩形和正方形;抽象类Figure提供了一个纯虚拟函数getArea(),作为计算上述三种图形面积的通用接口。
c++程序
include <iostream.h>
inclule <math.h>
class Figure {
public:
virtual double getArea()= 0; // 纯虚拟函数
};
class Rectangle: (1) {
protected:
double height;
double width;
public:
Rectangle() { };
Rectangle(double height, double width) {
this->height = height;
this->width = width;
}
double getArea() {
return (2) ;
}
class Square: (3) {
public:
Square(double width) {
(4) ;
}
};
class Triangle: (5) {
double la;
double lb;
double lc;
public:
Triangle(double la, double lb, double lc) {
this->la = la; this->lb ='lb; this->lc = lc;
}
double getArea() {
double s = (la+lb+lc)/2.0;
return sqrt(s*(s-la)*(s-lb)*(s-lc));
} }; void main() {
Figure* figures[3] = {
new Triangle(2,3,3), new Rectangle(5,8), new Square(5)};
for (int i = 0; i < 3; i++) {
com << "figures[" << i << "] area =" << (figures[i])->getArea0 << endl;
}
第8题
阅读以下说明及C++程序代码,将应填入(n)处的语句写在对应栏内。
【说明】
本程序的功能是生成螺旋方阵,用户可以输入该方阵的行列数,然后就生成对应的螺旋方阵。例如:当n=5时,对应的螺旋方阵如下:
1 16 15 14 13
2 17 24 23 12
3 18 25 22 11
4 19 20 21 10
5 6 7 8 9
【C++代码】
include"stdio.h"
include"iostream,h"
int array[11][11];
int temp;
int ROW;
void godown(int &m,int &a)
{
for(temp=1; temp<=ROW;temp++)
if(array[temp][a]==0)
array[temp][a]=(1);
a++;
}
void goright(int &m,int &b)
{
for(temp=1;temp<=ROW;temp++)
if(array[b][temp]==0)
array[b][temp]=m++;
b--;
}
void goup(int &m.int &c)
{
for(temp=ROW;temp>0;temp-)
if(array[temp][c]==0)
array[temp][c]=m++;
c--;
}
void goleft(int &m,int &d)
{
for(temp=ROW;temp>0;temp--)
if(array[d][temp]==0)
array[d][temp]=m++;
(2);
}
void main()
{
int a,b,c,d,max,m;
cin>>ROW;
cout>>end1;
for(a=1;a<=ROW;a++)
for(b=1;b<=ROW;b++)
(3);
m=1;
a=d=1;
b=c=ROW;
max=(4);
whiie(m<=max)
{
godown(m,a);
(5) (m,b);
goup(m,c);
goleft(m,d):
}
for(a=1;a<=ROW;a++)
{
for(b=1;b<=ROW;b++)
printf("%3d ",array[a][b]);
cout<<end1;
}
}
第9题
阅读以下说明和C语言函数,将应填入(n)处的语句写在对应栏内。
【说明】
下面的程序构造一棵以二叉链表为存储结构的二叉树。
【函数】
BitTree *createbt(BitTree *bt)
{
BitTree *q;
struct node *s[30];
int j,i;
char x;
printf("i,x=");
scant("%d,%c",&i,&x);
while(i!=0 && x!='$')
{
q=(BitTree *}malloc(sizeof(BitTree));//生成一个结点
(1);
q->lchild=NULL;
q->rchild=NULL;
(2) ;
if ((3))
{
j=i/2; // j为i的双亲结点
if(i%2==0)
(4); //i为j的左孩子
else
(5); //i为j的右孩子
}
printf("i,x=");
scanf("%d,%c",&i,&x);
}
return s[i];
}
第10题
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
魔方阵,又叫幻方,在我国古代称为“纵横图”。由1…N2共N2个自然数构成每行、每列及两对角线上各数之和都相等的N×N方阵,这样的方阵就叫做N阶魔方阵。顾名思义,奇阶魔方阵就是N为奇数的幻方。
奇数阶魔方阵的生成方法如下:
(1)第一个位置在第一行正中。
(2)新位置应当处于最近一个插入位置右上方,但如果右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置;如果超出右边界,则新位置取应选行的最左一个位置。
(3)若最近一个插入元素为N的整数倍,则选下面一行同列上的位置为新位置。本题要求输入一个数据n,然后打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。例如,当n=3时,魔方阵为:
8 1 6
3 5 7
4 9 2
了解其生成方法后,就可以根据此方法来写出程序了。首先设置int变量i,j,m, n。其中i标记魔方阵的行;j标记魔方阵的列;n表示魔方阵的维数,通过输入得到;通过m递加得到插入的数据。数组a[MAX][MAX]用于存放魔方阵元素。这里预定义了 MAX的大小,没有采用动态分配,在此设置为15,即最大求得15×15阶魔方阵。
【程序】
include <stdio.h>
define MAX 15
void main()
{
int n;
int m=1;
int i,j;
int a[MAX][MAX];
printf("Please input the rank of matrix:");
scanf("%d",&n);
i=0;
(1)
while((2))
a[i][j]=m;
m++;
i--;
j++;
if((m-1)%n==0 && m>1)
{
(3)
j=j-1;
}
if(j>(n-1)) //超出上界
(4)
if(j>(n-1))
(5)
}
for(i=0;i<n;i++) //输出魔方阵
for(j=0;j<n;j++)
{
if(a[i][j]/10==0)
printf("%d ",a[i][j]); //对程序无影响,只是使输出的数每一列对齐
else
printf("%d ",a[i][j]);
if(j==(n-1))
printf("\n");
}
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!