阅读下列程序说明和C程序,把应填入其中(n)处的字句,写在对应栏内。
【程序说明】
对角线下元素全为0的矩阵称为上三角矩阵,设对于一个n×n的上三角矩阵a,为节约存贮,只将它的上三角元素按行主序连续存放在数组b中。下面的函数trans在不引入工作数组的情况下,实现将a改为按列主序连续存放在数组b中。
设n=5,
b=(1,2,3,4,5,6,7,8,9,10,11,12,13,14,15)
经调用trans函数后,b变为
b=(1,2,6,3,7,10,4,8,11,13,5,9,12,14,15)
函数tans对数组元素的存贮位置作调整。调整过程中存在若干个循环传送链:
b(i1)→b(i2)→b(ij)→b(i1)1≤j<n
例如,考察调整后的数组元素b(2)(值为6),与该元素相关的位置调整将形成下面的循环传送链:
b(2)→b(3)→b(6)→……→b(12)→b(9)→b(5)→b(2)
关键是确定循环传送链的下标i1,i2,…,ij,以及在考察调整后的元素b(k)(k;3,4,…)时能判定b(k)是已被传送过的某传送链上的元素。
函数ctr(k,n)计算调整后的数组b的第k个元素b(k)在原数组b中的位置,该位置作为函数ctr(k,n)的返回值。函数ctr根据k确定它在矩阵中的行号i和列号j(注意行号和列号均从 0算起),然后按矩阵存放原则计算出它在b中的位置。
【程序】
trans(b,n)
int n,b[]
{
int m,k,r,cc,rr;
int w;
m=(n+1)*n/2-4;
k=2;
while(m>0)
{
r=ctr(k,n);
if(r==k)
m--;
else
{
cc=k;rr=r;
while (1)
{
cc=rr,rr=ctr(cc,n);
}
if (2)
{
cc=k;rr=r;w=b[k];
while (3)
{
b[cc]=b[rr];m--;
cc=rr,rr=ctf(cc,n);
}
b[cc]-w; (4);
}
}
k++;
}
}
ctr(k,n )
int k,n
{
int i,j;
i=k;j=0;
while (5)
i - =++j ;
return(i*n+j-i*(i+1)/2);
}
A.有1位出错时可以找出错误位置
B.有1位出错时可以发现传输错误但不能确定出错位置
C.n个数据位中有偶数个位出错时,可以检测出传输错误并确定出错位置
D.n个数据位中有奇数个位出错时,可以检测出传输错误并确定出错位置
下列叙述中正确的是()。
A.软件测试的目的是确定程序中错误的位置
B.软件测试的目的是发现程序中的错误
C.软件调试的目的是发现程序中的错误
D.软件调试后一般不需要再测试
下列关于结构化网络布线系统说法错误的是()。
A.是一座大楼或楼群中的传输线路
B.结构化布线系统与传统布线系统最大的区别在于,设备的安装位置和传输介质的铺设位置
C.结构化布线系统不包括各种交换设备
D.只是将电话线路连接方法应用于网络布线中,不是新概念
在图9-2(a)中匹配失败后,按前缀函数指示继续作了图(b)~(d)的比较后,最后在图(e)找到一个匹配.事实上,图(b)~(d)的比较都是多余的.因为模式串在位置0、1、2处的字符和位置3处的字符都相等,因此不需要再和主串中位置3处的字符比较,而可以将模式一次向右滑动4个字符,直接进入图(e)的比较.这就是说,在KMP算法中遇到p[j+1]≠t[i],且p[j+1]=p[next[j]+1]时,可一次向右滑动j-next[next[j]]个字符,而不是j-next[j]个字符.根据此观察,设计一个改进的前缀函数,使得遇到上述特殊情况时效率更高.
本题描述如下:
窗体上有一个名称Text1的文本框,两个复选框,名称分别为Ch1和Ch2,标题分别为“足球”和“乒乓球”;一个名称为C1,标题为“确定”命令按钮。要求程序运行后,如果只选中 Ch1,单击“确定”命令按钮,则在文本框中显示“我喜欢足球”:如果只选中Ch2,单击“确定”命令按钮,则在文本框中显示“我喜欢乒乓球”;如果同时选中Ch1和Ch2,然后单击“确定”命令按钮,则在文本框中显示“我喜欢足球和乒乓球”;如果Ch1和Ch2都不选,然后单击“确定”命令按钮,则在文本框中什么都不显示。程序运行界面如图2—1所示。
2.在考生文件夹下有工程文件sjt4.vbp及窗体文件sjt4.frm,该程序是不完整的,请在有?号的地方填入正确的内容,然后删除?及所有注释符(即'号),但不能修改其他部分。存盘时不得改变文件名和文件夹。
本题描述如下:
窗口中有一个名称为Picture1的图片框,一个名称为HScroll1的滚动条,3个命令按钮,名称分别为Command1,Command2和Command3,标题分别为“运行”、“暂停”和“结束”,一个计时器控件,名称为Timer1。程序运行后,单击“运行”按钮后,使小球围绕大球转动,并可以使用滚动条调节转动的速度;单击“暂停”按钮后,暂停小球的转动;按“结束”按钮结束程序。
A.1800
B.2200
C.2000
D.2100