如果以下3*3矩阵沿顺时针方向旋转90°后所形成的矩阵就是原来的矩阵:其中,位于*处的元素需要考生
如果以下3*3矩阵沿顺时针方向旋转90°后所形成的矩阵就是原来的矩阵:
其中,位于*处的元素需要考生填写
请完整地写出该矩阵。
如果以下3*3矩阵沿顺时针方向旋转90°后所形成的矩阵就是原来的矩阵:
其中,位于*处的元素需要考生填写
请完整地写出该矩阵。
第1题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
【说明】
找一个最小的自然数,使它等于不同的两组三个自然数的三次幂之和,即找最小的x,使得:x=a*a*a+b*b*b+c*C*c+d*d*d+e*e*e+f*f*f,其中,a、b、c、d、e、f者是是自然数,a≤b≤C≤d≤e≤f; [a,b,c]!=[d,e,f)
【C++程序】
include<stdio.h>
define N 100
void main ()
{
int i,j,il,ih,i0,j0,k0,il,j 1,k1;
int j1[N],jh[N];/*第i层平面的行的变化范围,自jl[i]至jh[i]*/
int k[N][N];/*第i层平面中,对应行j,当前的列号值为k[i][j]*/
int p[N], min;/*p[i]=i*i*i*/
i1=1;j1=1;k1=1;/*首先只局限下三角棱体的顶点*/
i1=1;ih=1;/*预置i的变化范围初值i1<=i<=ih*/
j1[1]=1;jh[1]=1;/*对应i层平面的行的变化范围*/
k[i1][j1[i1>=1;/*第i层平面中,对应行的列的初值*/
p[1]=1;
do
{
min=p[i1]+p[j1]+p[k1];
i0=i1;j0=j1;k0=k1;
if ( i1==ih ) /*当前候选者在ih平面, 则ih增1*/
{
ih++;
(1);
/*为ih平面设定j的变化范围和对应k值*/
j1[ih]=1;jh[ih]=1;k[ih][1]=1;
}
if ( i1==i1&&j 1==i1&&k1==i1 )
i1++;/*在i1平面最下角点找到候选者,i1增1*/
else
{
if ( k1==1&&jh[i1]<i1 )
{/*在第一列找到候选者, i1平面的行的上界增1*/
(2);
k[i1][jh[i1>=1;
}
if( k1==j1&&j1[i1]<i1 )
else
(3);/*调整i1平面当前行的列号*/
}
i1=i1;/*预定最上平面的最小行的当前列为下一个候选者*/
j1=j1[i1];
k1=k[i1][j1];
for ( i=i1;i<=ih;i++ ) /*寻找最小值所在平面号、行号和列号*/
{
for ( j=j1[i];j<=jh[i];j++ )
if ( p[i]+p[j]+p[k[i][j><(4))
{
i1=i;j 1=j;k1=k[i][j];
}
}
}while ( p[i1]+p[j1]+p[k1]!=min&&(5));
if ( p[i1]+p[j1]+p[k1]==min )
printf ( "%4d=%2d^3+%d^3+%dA3=%2d^3+%d^3+%d^3\n",min,i0,j0,k0,i1,j1,k1 );
else printf ( "The %d is too small.\n",N );
}
第2题
阅读以下说明及Visual Basic 程序代码,将应填入(n)处的字句写在对应栏内。
[程序5.1说明]
下列程序运行时,当单击窗体后,从键盘输入一个字符,判断该字符是字母字符、数字字符还是其他字符,并做相应的显示。窗体上无任何控件,并禁用Ase和Chr函数,Select Case语句中禁用枚举值。
[Visual Basic代码]
Private Sub Form. Load ()
Dim x As String*1
X=(1) (“请输入单个字符”,“字符”)
Select Case UCase ( (2) )
Case (3)。
Print X+“是字母字符”
Case (4)
Print X+ “是数字字符”
Case Else
Print X+“是其他字符”
End Select
[程序5.2说明]
在窗体上画一个名称为Timer1的计时器和一个名称为Labe11的标签。当运行程序后,将在标签中显示当前时间的数字时钟(包括时:分:秒)。
[Visual Basic代码]
Private Sub Fom_Load ()
Timer1.Interval=1000
EndSub
Private Sub Timer1_ timer() (5)
EndSub
第3题
阅读以下说明和C++程序,将应填入(n)处的字句写在对应栏内。
[说明]
本程序使用类来管理员工的通讯地址信息。已知程序的输出为:
输出记录:5
姓名:王丽华
街道地址:中华路15号
市:襄樊市
省;湖北省
邮政编码:430070
[C++程序]
include < iostream, h >
include < string, h >
class employee.
{ protected:
char name[10];
char street[ 20 ];
char city[10];
char (1) [10];
char post[7];
int no;
(2):
(3) (char [] ,char [] ,char [] ,char [] ,char [] ,int);
void changename ( char n [] ) { strcpy ( name, n); }
void changestreet( char s[] ) { strcpy(street,s) ;}
void changecity ( char c [] ) { strcpy ( city, c ); }
void changeprov( char p [] ) { strcpy(prov,p); }
void changeno(int nnm) { (4);}
void display( );
};
employee:: (3) (char n[] ,char s[] ,char c[] ,char p1[] ,char p2[] ,int nam)
{ strcpy(name,n);
strcpy ( street, s);
strcpy ( city, c);
strcpy ( prov, p1 );
strcpy ( post, p2 );
no = nam; }
void employee:: display( ) { cont< <"输出记录: "< <no< <endl;
cout< < "姓名: "< < name < < endl;
coot < < "街道地址: "< < street < < endl;
cout < < "市: "< < city < < endl;
cout< <"省: "< <prov < <endl;
cout < <"邮政编码: "< < post < < endl;
}
void main( ) { employee cmp("王华" ,"中华路15号" ,"武汉市","湖北省","430070", 1 );
emp. changename( "五丽华" );
emp. changecity ( "襄樊市" );
emp. changeno(5);
(5);
第4题
阅读以下说明和C函数,将应填入(n)处的字句写在对应栏内。
[说明]
若一个矩阵中的非零元素数目很少且分布没有规律,则称之为稀疏矩阵。对m行n列的稀疏矩阵M,进行转置运算后得到n行m列的矩阵MT,如图3-1所示
为了压缩稀疏矩阵的存储空间,用三元组(即元素所在的行号、列号和元素值、表示稀疏矩阵中的一个非零元素,再用一维数组逐行存储稀疏矩阵中的所有非零元素也称为三元组顺序表)。例如,图3-1所示的矩阵M相应的三元组顺序表如表3-1所示。其转置矩阵MT的三元组顺序表如表3-2所示。
函数TransposeMatrix(Matrix M)的功能是对用三元组顺序表表示的稀疏矩阵M进行转置运算。
对M实施转置运算时,为了将M中的每个非零元素直接存入其转置矩阵MT三元组顺序表的相应位置,需先计算M中每一列非零元素的数目(即MT中每一行非零元素的数目),并记录在向量num中;然后根据以下关系,计算出矩阵M中每列的第一个非零元素在转置矩阵MT三元组顺序表中的位置:
cpot[0]=0
cpot[j]=cpot[j-1]+num[j-1]) /*j为列号*/
类型ElemType,Triple和Matrix定义如下:
typedef int ElemType;
typedef struct{ /*三元组类型*/
int r,c; /*矩阵元素的行号、列号*/
ElemType e; /*矩阵元素的值*/
}Triple;
typedef struct{ /*矩阵的元组三元组顺序表存储结构*/
int rows,cols,elements; /*矩阵的行数、列数和非零元素数目*/
Triple data[MAXSIZE];
}Matrix;
[C语言函数]
int TransposeMatrix(Matrix M)
{
int j,q,t;
int *num, *cpot;
Matrix MT; /*MT是M的转置矩阵*/
num=(int*)malloc(M.cols*sizeof(int));
cpot=(int*)malloc(M.cols*sizeof(int));
if(!num ||cpot)
return ERROR;
MT.rows=(1); /*设置转置矩阵MT行数、列数和非零元素数目*/
MT.cols=(2);
MT.elements=M.elements;
if(M.elements>0){
for (q=0 ; q<M. cols ; q++)
num[q]=0;
for (t=0; t<M.elements;++t) /*计算矩阵M中每一列非零元素数目*/
num [M.data[t].c]++;
/*计算矩阵M中每列第一个非零元素在其转置矩阵三元组顺序表中的位置*/
(3);
for(j=1;j<M.cols;j++)
cpot[j]=(4);
/*以下代码完成转置矩阵MT三元组顺序表元素的设置*/
for(t=0;t<M.elements;t++){
j=(5); /*取矩阵M的一个非零元素的列号存入j*/
/*q为该非零元素在转置矩阵MT三元组顺序表中的位置(下标)*/
q=cpot[j];
MT.data[q].r=M.data[t].c;
MT.data[q].c=M.data[t].r;
MT.data[q].e=M.data[t].e;
++cpot[j]; /*计算M中第j列的下一个非零元素的目的位置*/
}/*for*/
} /*if*/
free(num); free(cpot);
/*此处输出矩阵元素,代码省略*/
return OK;
}/*TransposeMatrix*/
第5题
阅读以下说明和C++代码。
[说明]
类Stock的定义中有三处错误,分别在代码的第04、06、10行。请补齐下述代码中的空缺(1),修改错误并给出修改后该行的完整代码,最后完善程序运行后的输出结果。
[C++代码]
01 include <iostream>
02 using namespace std;
03 class Stock{
04 protected:
05 Stock(){shares=0;share_val=0.0;Output();}
06 Stock(int n=0,double pr=3.5): (1) {//初始化shares值为n
07 share_val=pr;
08 Output();
09 };
10 void Stock(){};
11 void Output(){cout<<shares <<':'<<share_val<<end1;}
12 public:
13 //成员函数
14 private:
15 //成员变量
16 int shares;
17 double share_val;
18 };
19
20 void main(){ //构造三个Stock对象a,b,c
21 Stock a(1);
22 Stock b;
23 Stock c=Stock();
24 //其它代码省略,且代码五输出
25 }
程序运行后的输出结果为:
1:3.5
(2)
(3)
第6题
。
[应用说明]
启动某应用程序运行的登录窗口如下:
其中的标签(Label1)“用户名(U)”对应文本框Username,标签(Label2)“密 码(P)”对应文本框Password。当用户在Username文本框中输入用户名“ali88”,在Password文本框中输入“zmkm”(显示的字符均为“*”),并单击“确定”按钮时,就会弹出应用程序的主窗口frmAPP,而该登录窗口就会卸载。
如果用户名或密码输入错误,则会弹出报警信息框。当用户单击其中的“确定”按钮后,登录窗口中Password文本框的内容就会消失,光标停留在该框内,以便用户重新输入密码,必要时用户还可以再修改用户名,再次做登录尝试。本应用程序允许发生3次输入错误。在第3次输入错误后,就会立即退出该应用程序。
在弹出登录窗口后,当按组合键“Alt+U”时光标就会停留在Username文本框中:当按组合键“Alt+P”时光标就会停留在Password文本框中。当用户按Enter键时,就相当于单击“确定”按钮:当用户按Esc键时,就相当于单击“取消”按钮,立即退出该应用程序。
[属性设置]
在开发过程中,部分控件及属性设置如下:
[程序代码]
Private Sub cmdOK_Click()
(3) As Integer ' 静态变量times的说明
If (4) Then
Unload Me ' 卸载本登录窗口
(5) ' 弹出应用程序主窗口frmAPP
Else
MsgBox ("用户名或密码错! ")
times=times+1
Password.Text="" ' 清除密码框中的内容
Password.SetFocus ' 将光标定位于密码框
If times=3 Then End
End If
End Sub
Private Sub cmdCanee1_Click()
End
End Sub
第7题
信息,按【Alt+C】组合键或按【ESC】键,都相当于单击该按钮。
要完成以上新增功能需要将[退出]按钮(cmdExit)的Cancel属性和Caption属性分别设置什么样的值?
第8题
阅读以下应用说明及Visual Basic程序代码,根据要求回答问题1至问题4。
【说明】
某学期成绩管理系统的“增、删、改数据表中的记录”对话框如图1-19所示。
图1-19对话框中共定义了6个标签、6个文本框、4个命令按钮和1个Data数据控件。其中Data数据控件是Visual Basic的标准控件。利用它能方便地创建应用程序与数据库之间的连接,并实现对数据资源的访问。【添加】(cmdAdd)按钮用于向学生成绩数据表添加一条空记录:【修改】(cmdEdit)按钮用于修改当前所显示的一条数据记录:命令按钮【删除】(cmdDelete)用于删除当前显示的一条数据记录;单击【退出】(cmdExit)按钮,系统将退出图1-19所示的对话框。
表1-13是学生成绩表结构的示例;表1-14是学生成绩表的示例。
图1-19将表1-14数据库中的记录信息显示到相应的文本框中。要在各文本框(txtStu(i),i=0,1,2,3,4,5)中显示Data数据控件所连接的数据表中的数据,必须将文本框与Data数据控件进行绑定。
【Visual Basic程序】
Private Sub Form_Load()
For i = 0 To 5
txtStu(i).Locked = True
Next i
End Sub
Private Sub cmdAdd Click()
cmdEdit.Enabled = Not cmdEdit.Enabled
(1)
For i = 0 To 5
txtStu(i) .Locked = Not txtStu(i).Locked
Next i
If cmdAdd. Caption = "添加" Then
(2)
Datal.Caption = "新记录"
cmdAdd.Caption = "保存"
cmdExit.Caption = "取消"
txtStu(0).SetFocus
Else
Datal.Recordset.Update
(3)
cmdAdd.Caption = "添加"
End If
End Sub
Private Sub cmdEdit_Click()
cmdAdd. Enabled = Not cmdAdd. Enabled
cmdDelete. Enabled = Not cmdDelete. Enabled
For i = 0 To 5
txtStu(i).Locked = Not txtStu(i).Locked
Next i
If cmdEdit.Caption = "修改" Then
Datal.Recordset.Edit
cmdEdit.Caption = "保存"
cmdExit.Caption = "取消"
Else
(4)
cmdEdit.Caption = "修改"
End If
End Sub
Private Sub cmdDelete_Click()
answer = MsgBox("确实删除该记录吗?", vbYesNo + vbQuestion, "警告")
If answer = vbYes Then
Datal.Recordset.Delete
(5)
If Datal.Recordset.EOF Then
(6)
End If
End If
End Sub
Private Sub cmdExit_Click()
If cmdExit.Caption = "退出" Then
End
Else
(7)
cmdAdd. Enabled= True
cmdEdit.Enabled = True
cmdDelete. Enabled= True
For i = 0 To 5
txtStu(i).Locked = Not txtStu(i).Locked
Next i
cmdExit.Caption = "退出"
cmdAdd.Caption = "添加"
cmdEdit.Caption = "修改"
(8)
End If
End Sub
Private Sub Datal_Reposition()
Datal.Caption = "第" &(9).AbsolutePosition + 1& "条记录"
End Sub
请根据【说明】和图1-19的显示结果,从以下备选答案中为(1)~(9)空缺处选择正确的答案。(以下部分选项可重复选择) 【备选答案】A.Datal.Refresh
B.Datal.Recordset.Update
C.Datal.Recordset
D.Datal.Recordset.CancelUpdate
E.Datal.Recordset.AddNewF.Datal.Recordset.MoveNextG.Datal.Recordset.MoveLastH.cmdDelete.Enabled=NotcmdDelete.Enabled
第9题
空缺处的语句填写完整。
【说明】
某绘图系统定义了一个抽象类Ishape,现有3个类Cpoint,CLine和Ccircle,它们都具有IShape界面。相应的类图关系如图5-11所示。
已知某第三方库已经提供了XCircle类,且完全满足CCircle图元显示时所需的功能。【Visual Basic代码6-1】是抽象类IShape类模块内容。【Visual Basic代码6-2】实现了类CCircle的IShape界面,并使用了XCircle提供的显示功能。
XCircle提供的显示功能方法接口为displayIt。
【Visual Basic代码6-1】
Publie Color As Long
Sub draw()
'方法体不包括可执行语句
End Sub
Sub move(stepx As Single, stepy As Single)
'方法体不包括可执行语句
End Sub
【Visual Basic代码6-2】
(1)
Private color As Long
… '其他定义省略
Private ridged As (2)
Private Sub Class_Initialize()
Set bridged=(3)
End Sub
Private Property (4) ()As Long
IShape_Color=color
End Property
Private Property (5) (ByVal newColor As Long)
Color=newColor
End Property
Private Sub IShape_draw() 使用XCircle提供的显示功能
(6)
End Sub
Private Sub IShape_move(stepx As Single, stepy As Single)
… '省略描述
End Sub
第10题
阅读以下应用程序说明和C程序,将C程序段中(1)~(7)空缺处的语句填写完整。
【说明】
某超市集团为发展业务向社会公开招聘N个工种的工作人员,每个工种各有不同的编号(1至M)和计划招聘人数。每位应聘者需申报两个工种,并参加集团组织的考试。该集团公司将按应聘者的成绩从高分至低分的顺序进行排队录取。具体录取原则是:从高分到低分依次对每位应聘者先按其第一志愿录取;当不能按其第一志愿录取时,便将他的成绩扣去5分后,重新排队,并按其第二志愿录取。
以下C程序为输出各工种实际招聘的应聘人员,每个工种都保留一个录取者的有序队列。录取处理循环直至招聘额满或已对全部应聘者都作了录取处理后跳出。
C程序中,类型STU包含有应聘者的基本信息:编号、成绩、志愿、排队成绩和录取志愿号。数组 rzl)的每个元素对应一个工种,包含有计划招聘人数和已录取的人数。
【C程序】
include
define N 36
define EDMARK 5
typedef struct stu {
int no, total, z[2], sortm, zi;
struct stu *next;
} STU;
struct rznode {
int lmt, count;
STU *next;
} rz [N];
STU *head = NULL, *over = NULL;
int all
FILE *fp;
char dataf [ ] = "zp2008.dat" ;
print(STU *p)
{ for (;p!=NULL; p = p->next)
printf( "%d(%d) \t" , p->no, p->total
}
insert(STU **p, STU *u)
{ STU *v, *q;
for (q = *p;q != NULL; v = q , (1) )
if (q-> sortm < u->sortm)
break;
if ( q == *p)
(2);
else
(3);
u->next = q ;
}
main ( )
{ int zn, i, no, total, zl, z2 ;
STU *p, *v, *q;
fp = fopen(dataf, "r" );
if (fp == NULL)
{ printf ("Can't open file %s.kn" ,dataf);
exit (0);
}
fscanf (fp, "%d" ,&zn);
for (all = 0, i = 1; i <= zn; i++)
{ fscanf (fp, "%d", &rz [ i ].lmt ;
rz[i].count = 0;
rz[i].next = NULL;
all +=(4);
}
for (;;)
{ if (( fscanf(fp, "%d%d%d%d" ,&no,&total,&zl,&z2)) != 4 )
break;
p = ( STU *) malloc (sizeof (STU));
p->no = no;
p->total = p->sortm = total;
p->zi = 0;
p->z[0] = z1;
p->z[1] = z2;
(5);
}
fclose (fp);
for (;all && head != NULL;)
{ p = head;
head = head->next;
if (rz[p->z[p->zi]].count <(6))
{ rz[p->z[p->zi]].count ++;
insert(&rz[p->z[p->zi]].next,p);
all--;
continue;
}
if (p->zi >= 1 )
{ p->next = over;
ver = p;
continue;
}
p->sortm -= DEMARK;
(7);
insert(&head,p);
}
for (i = 1; i <= zn; i++ )
{ printf("%d:\n" ,i);
print( rz[i ].next);
printf(" \n");
}
printf( "over:\n" );
print(head);
print(over);
printf(" \n");
}
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!