R[i]=(n)MOD(m)表示将两个值的商的整数代入寄存器i。
第1题:
阅读下列C++程序和程序说明, 将应填入(n)处的字句写在答题纸的对应栏内。
【说明】构造最优二叉查找树。
具有n个结点的有序序列a1, a2, …, an存在于数组元素a[1]、a[2], …, a[n]之中, a[0]未被使用。结点a1, a2, …, an-1, an的查找成功的概率p1, p2, …, pn-1, pn存在于数组元素 p[1]、p[2], …, p[n—1]、p[n]之中, p[0]未用。另外, 查找失败的概率q0, q1, …, qn-1, qn存在于数组元素q[0]、p[1], …, q[n-1]、q[n]之中。算法计算的序列ai+1, ai+2,…, aj-1, aj的最优二叉查找树Tij的代价Cij存在于数组元素c[i][j]之中, Tij的根结点的序号rij存在于r[i][j]之中, 它的权值存在于w[i][j]之中。为了便于内存的动态分配, 统统使用一维数组取代二维数组。
const float MAXNUM=99999. 0; //尽可能大的浮点数
template<(1)>
void OPtimal_Binary_Search_Tree(float p[], float q[], Type a[], int n) {
float *C, *W;
c=(2);
w=(3);
int *r;
r=new int[(n+1)*(n+1)];
for(i=0; i<=n; i++)
{ c[i*(n+1)+i]=0. 0; // 即:c[i][i]=0.0, 用一维数组表示
w[i*(n+1)+i]=q[i]; // 即:w[i][i]=q[i], 用一维数组表示
}
int i, j, k, m, length; // m表示根结点的下标或序号, 范围为0~n
float minimum;
for(length=1; length<=n; length++) //处理的序列长度由1到n
for(i=0; i<=n-length; i++){ //i为二叉查找树Tij的起始序号
j=i + length; //j为二叉查找树Tij的终止序号。如:处理序列a1a2a3时,
//相应的二叉查找树为T03, i=0, 而j=3
w[i*(n+1)+j]=(4);
minimum =MAXMUM;
for(k=i+1; k<=j; k++) //考察以ai+1、ai+2, …, ai为根的情况
if((5)<minimum)
{ minimum=c[i*(n+1)+k-1]+c[k*(n+1)+j];m=k; }
c[i*(n+1)+j]=w[i*(n+1)+j]+c[i*(n+1)+m-1]+c[m*(n+1)+j];
r[i*(n+1)+j]=m; // r[i][j]=m
}
} //构造好的最优二叉查找树的根结点的序号在r[0][n]中
第2题:
阅读下列函数说明和C代码,将应填入(n)处的字句写在对应栏内。
【说明2.1】
以下C语言函数用二分插入法实现对整型数组a中n个数的排序功能。
【函数2.1】
void fun1 (int a[])
{ int i,j,k,r,x,m;
for(i=2;i<=n;i++)
{ (1);
k=1;r=i-1;
while(k<=r)
{ m=(k+r)/2;
if(x<a[m])r=m-1;
else (2);
}
for(j=i-1;j>=k;j--)
a[j+l]=a[j];
(3);
}
}
【说明2.2】
以下程序可以把从键盘上输入的十进制数(long型)以二~十六进制形式输出。
【程序2.2】
include<stdio.h>
main()
{ charb[16]={'0','l','2','3 ,4,'5','6','7','8','9','A','B','C','D','E','F'};
int c[64],d,i=0,base;
long n;
printf("enter a number:\n");
scanf("%1d",&n);
printf("enter new basc:\n");
scanf("%d", &base);
do
{ c[i]=(4);
i++; n=n/base;
} while(n!=0);
printf("transmite new base:\n");
for(--i;i>=0;--i)
{ d=c[i];
printf("%c",(5));
}
}
第3题:
当执行以下过程时,在名为lblResult的标签框内将显示______。Private Sub Command1_ Click() Dim I, R R = 0 for I = 1 To 5 step 1 R= R+ I Next I lblResult. Caption = Str$(R)End Sub
A.字符串15
B.整数15
C.字符串5
D.整数5
第4题:
阅读以下说明和C语言程序,将应填入(n)处的字句写在对应栏内。
【说明】
计算n的合数。一个整数n可以有多种划分,使其划分的一列整数之和为n。例如,整数5的划分为:
5
4 1
3 2
3 1 1
2 2 1
2 1 1 1
1 1 1 1 1
共有7种划分。这种划分的程序如下所示。
【程序】
include <stdio.h>
int n[1000],m,k;
void output sum()
{
int j;
for(j=0;n[j]!=0;j++)
printf("%d\t",n[j]);
printf("\n");
}
void sum(int i)
if(m-n[i]<n[i])
{ m=m-n[i];
(1)
i++;
n[i+1]=0;
}
else
{
(2)
m-=n[i];
i++;
}
if(m!=n[i])
sum(i);
else
output_sum();
if(n[i]>1)
{
n[i]--;
(3)
}
else
{
while((n[i]==1)&&(i>O))
{
i--;
(4)
}
if(i!=0)
{
(5)
sum(i);
}
}
}
void main()
{
int i;
scanf("%d",&n[0]);
m=k=n[0];
for(i=1;i<=k;i++)
n[i]=0;
while(n[0]!=1)
{
n[0]--;
i=0;
sum(0);
m=k;
}
}
第5题:
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。
[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10k-1+c[k-1]×10k-2+…+c[2]×10+c[1],利用c[0]存储长整数m的位数,即c[0]=k。数组的每个元素只存储长整数m的一位数字,长整数运算时,产生的中间结果的某位数字可能会大于9,这是就应该调用format将其归整,使数组中的每个元素始终只存储长整数的一位数字。
整数a和b(a>b)的组合数为:
,其中u1=a,u2]=a-1,…,ub=a-b+1,d1=1,d2=2,…,db=b。为了计算上述分式,先从u1,u2,…,ub中去掉d1×d2×…×db的因子,得到新的u1,u2,…,ub,然后再将它们相乘。
[函数]
define NAXN 100
int gcd(int a,int b)//求两个整数a和b的最大公因子
{
if(a<b){
intC=a;a=b;b=c;
}
for(inti=b;i>=2;i--){
if( (1) )return i;
}
return 1;
void format(int *a)//将长整数数组归整
{
int i;
for(i=1;i<a[0]||a[i]>=10;i++){
if(i>=a[0]) (2);
a[i+1]+=a[i]/10;
a[i]=a[i]%10;
}
if(i>a[0]) (3);
}
void combine(int a,int b,int *C)
{
int i,J,k,x;
int d[MAXN],u[MAXN];
k=0;
for(i=a;i>=a-b+1;i--)u[++k]=i;
u[0]=b;
for(i=1;i<=b;i++)d[i]=i;
for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子
for(j=1;j<=b;j++){
x=gcd(u[i],d[j]);//计算最大公约数
u[i]/=X;
d[j]/=x;
}
(4);C[1]=1;//长整数c初始化
for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中
if(u[i]!=1){
for(j=1;j<=c[0];j++){
C[j]=(5);
}
format(C);//将长整数c归整
}
}
}
(1)
第6题:
| 挨个儿[i g er] | 吖[] |
| 挨户[i h] | 阿[] |
| 挨家[i ji] | 阿鼻地狱[ b d y] |
| 挨肩儿[i jin er] | 阿昌族[ chng z] |
| 挨近[i jn] | 阿斗[ du] |
| 挨门[i mn] | 阿尔法粒子[ r f l z] |
| 唉[i] | 阿尔法射线[ r f sh xin] |
| 唉声叹气[i shng tn q] | 阿飞[ fi] |
| 毐[i] | 阿公[ gng] |
| 欸[i] | 阿訇[ hng] |
| 嗳(噯)[i] | 阿拉[ l] |
| 哀兵必胜[i bng b shng] | 阿拉伯人[ l b rn] |
| 哀愁[i chu] | 阿拉伯数字[ l b sh z] |
| 哀辞[i c] | 阿兰若[ ln r] |
| 哀悼[i do] | 阿罗汉[ lu hn] |
| 哀的美敦书[i d mi dn sh] | 阿猫阿狗[ mo gu] |
| 哀告[i go] | 阿门[ mn] |
| 哀号[i ho] | 阿木林[ m ln] |
| 哀嚎[i ho] | 阿片[ pin] |
| 哀鸿遍野[i hng bin y] | 阿婆[ p] |
| 哀毁骨立[i hu g l] | 阿Q[ Qi] |
| 哀矜[i jn] | 阿嚏[ t] |
| 哀苦[i k] | 阿姨[ y] |
| 哀怜[i lin] | 啊(呵)[] |
| 哀鸣[i mng] | 啊呀[ y] |
| 阿尔法粒子[ r f l z] | 啊哟[ y] |
| 阿尔法射线[ r f sh xin] | 锕[] |
| 阿飞[ fi] | 腌[] |
| 阿公[ gng] | 啊(呵)[] |
| 阿訇[ hng] | 嗄[] |
| 阿拉[ l] | 啊(呵)[] |
| 阿拉伯人[ l b rn] | 啊(呵)[] |
| 阿拉伯数字[ l b sh z] | 啊(阿、呵)[] |
| 阿兰若[ ln r] | 哎(嗳)[i] |
| 阿罗汉[ lu hn] | 哎呀[i y] |
| 阿猫阿狗[ mo gu] | 哎哟[i y] |
| 挨(捱)[i] | 哀[i] |
| [i] | 哀兵必胜[i bng b shng] |
| 皑(皚)[i] | 哀愁[i chu] |
| 皑皑[i i] | 哀辞[i c] |
| 癌[i] | 哀悼[i do] |
| 癌变[i bin] | 哀的美敦书[i d mi dn sh] |
| 吖[] | 哀告[i go] |
| 阿[] | 哀号[i ho] |
| 阿鼻地狱[ b d y] | 哀嚎[i ho] |
| 阿昌族[ chng z] | 哀鸿遍野[i hng bin y] |
| 阿斗[ du] | 哀毁骨立[i hu g l] |
| 阿门[ mn] | 哀矜[i jn] |
| 阿木林[ m ln] | 哀苦[i k] |
| 阿片[ pin] | 哀怜[i lin] |
| 阿婆[ p] | 哀鸣[i mng] |
| 阿Q[ Qi] | 哀戚[i q] |
| 阿嚏[ t] | 哀启[i q] |
| 阿姨[ y] | 哀泣[i q] |
| 啊(呵)[] | 哀切[i qi] |
| 啊呀[ y] | 哀求[i qi] |
| 啊哟[ y] | 哀荣[i rng] |
| 锕[] | 哀伤[i shng] |
| 腌[] | 哀思[i s] |
| 啊(呵)[] | 哀叹[i tn] |
| 嗄[] | 哀恸[i tng] |
| 啊(呵)[] | 哀痛[i tng] |
| 啊(呵)[] | 哀婉[i wn] |
| 啊(阿、呵)[] | 哀艳[i yn] |
| 哎(嗳)[i] | 哀怨[i yun] |
| 哎呀[i y] | 哀乐[i yu] |
| 哎哟[i y] | 哀子[i z] |
| 哀[i] | 埃1[i] |
| 哀戚[i q] | 埃2[i] |
| 哀启[i q] | 挨[i] |
| 哀泣[i q] | 挨边[i bin] |
| 哀切[i qi] | 挨次[i c] |
| 哀求[i qi] | 挨个儿[i g er] |
| 哀荣[i rng] | 挨户[i h] |
| 哀伤[i shng] | 挨家[i ji] |
| 哀思[i s] | 挨肩儿[i jin er] |
| 哀叹[i tn] | 挨近[i jn] |
| 哀恸[i tng] | 挨门[i mn] |
| 哀痛[i tng] | 唉[i] |
| 哀婉[i wn] | 唉声叹气[i shng tn q] |
| 哀艳[i yn] | 娭[i] |
| 哀怨[i yun] | 欸[i] |
| 哀乐[i yu] | 锿[i] |
| 哀子[i z] | 挨(捱)[i] |
| 埃1[i] | [i] |
| 埃2[i] | 皑(皚)[i] |
| 挨[i] | 皑皑[i i] |
| 挨边[i bin] | 癌[i] |
| 挨次[i c] | 癌变[i bin] |
| 嗳气[i q] | 毐[i] |
| 嗳酸[i sun] | 欸[i] |
| 矮[i] | 嗳(噯)[i] |
| 矮墩墩[i dn dn] | 嗳气[i q] |
| 矮小[i xio] | 嗳酸[i sun] |
| 矮星[i xng] | 矮[i] |
| 矮子[i zi] | 矮墩墩[i dn dn] |
| 蔼1[i] | 矮小[i xio] |
| 娭[i] | 矮星[i xng] |
| 欸[i] | 矮子[i zi] |
| 锿[i] | 蔼1[i] |
//以下为c++代码,在编译器中正常通过编译,并运行成功
#include<iostream>
using namespace std;
void quicksort(int a[],int left,int right)
{
int pivot,i,j;
int tmp;
if(left>=right)//此时需要给出每种情况的返回值
return ;
if(left < right)
{i = left; j = right + 1;
pivot = a[left];
//此时pivot 指向最左边的那个元素
do{
cout<<"pivot = "<<pivot<<endl;
do{i++;}while(a[i]<pivot);
//找到从左边开始第一个大于pivot的元素
do{j--;}while(a[j]>pivot);
//找到右边开始第一个小于pivot的元素
if(i<j)
{
tmp = a[i];
a[i]= a[j];
a[j] = tmp;
}
//交换两个元素
}while(i<j);
}//end if(left<right)
//将最左边的元素换到中间位置,
tmp = a[left];
a[left]= a[j];
a[j] = tmp;
quicksort(a,left,j-1);
quicksort(a,j+1,right);
}
int main(int argc, char* argv[])
{
printf("Hello World!\n");
int a[10]={221,3,2,12,32,22,13,32,21,23};
quicksort(a,0,9);
for(int i=0;i<10;i++)
cout<<a[i]<<" "<<endl;
return 0;
}
第7题:
请补充函数fun(),该函数的功能是:寻找两个整数之间的的所有素数(包括这两个整数),把结果保存在数组bb中,函数返回素数的个数。
例如,输入6和21,则输出为:7 11 13 17 19 21。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
include<conio. h>
include<stdio. h>
define N 1000
int fun (int n, int m, int bb [N])
{
int i, j, k=0, flag;
for (j=n; j<=m; j++)
{
【 】;
for (i=2; i<j; i++)
if(【 】)
{
flag=0;
break;
}
if(【 】)
bb [k++] =j
}
return k;
}
main ()
{
int n=0,m=0, i, k;
int bb[N];
clrscr ();
printf ("Input n\n");
scanf ("%d", &n);
printf ("Input m\n");
scanf ("%d", &m);
for (i=0; i<m-n; i++)
bb[i]=0;
k=fun (n, m, bb);
for (i=0; i<k; i++)
printf ("%4d",bb [i]);
}
第8题:
如果债券按单利计算,并且一次还本付息,其价格决定公式为( )(面值为M)。
A.P=M(1+I·n)/(1+r·n)
B.P=(M·I·n)/(1+r·n)
C.P=M(1+I)n/(1+r)n
D.P=Min/(1+r)n
第9题:
第10题:
R[i]=(n)/(m)表示将两个值得商代入寄存器i。
第11题:
R[i]=(n)MOD(m)表示将两个值的商代入寄存器i。
第12题:
很贵
很便宜
不好找
第13题:
整数加法的语句表示为( )。
A、“+I IN1,OUT”
B、“-I IN1,OUT”
C、“+D IN1,OUT”
D、“+R IN1,OUT”
第14题:
下面算法是实现对n个整数的序列进行选择排序,其中序列的“长度”n为问题的规模。该算法的时间复杂度为(11)。 void select_sort(int a[],int n){ //将a中整数序列重新排列成从小到大有序的整数序列 for(i=0;i<n-1;++i){ j=i; for(k=i+1;k<n;++k)if(a[k]<a[j])j=k; if(j!=i){w=a[j];a[j];a[i];a[i]=w} )//select_sort
A.O(n2)
B.O(n3)
C.O(n4)
D.O(n)
第15题:
阅读以下函数说明和C语言函数,将应填入(n)处的字句写在对应栏内。
【说明】
有n个整数,使其前面各数顺序向后移m个位置,最后m个数变成最前面的m个数。
【函数】
main()
{
int number[20],n,m,i;
printf("the total numbers is:");
scanf("%d",&n);
printf("back m:");
scanf("%d",&m);
for(i=0;i<=n-1;i)
scanf("%d,",&number[i]);
(1);
for(i=0;i<=n-1;i)
printf("%d,",number[i]);
}
move(array,n,m)
int n,m,array[20];
{
int *p,array_end;
array_end=(2);
for(p=array[n-1];(3);p--)
*p=(4);
*array=array_end;
m--;
if(m>0) (5);
}
第16题:
阅读以下说明和c函数,将应填入 (n) 处的字句写在答题纸的对应栏内。
【说明】
c语言常用整型(int)或长整型(1ong)来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型(例如,long long类型,某些c系统会提供)也无法正确表示,此时可用一维数组来表示一个整数。假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后一组可能不足4位),每组作为1个整数存人数组。例如,大整数2543698845679015847在数组A中的表示如下(特别引入-1表示分组结束):

在上述表示机制下,函数add_large_number(A,B,c)将保存在一维整型数组A和B中的两个大整数进行相加,结果(和数)保存在一维整型数组c中。
【c函数】
Void add_large_number(int A[], int B[], int c[])
{
int i,cf; /*cf存放进位*/
int t,*p; /*t为临时变量,p为临时指针*/
cf= ( 1) ;
for(i=0 ; A[i]>-l&&B[i]>-1;i++){
/*将数组A、B对应分组中的两个整数进行相加*/
t=(2) ;
C[i]=t%i0000;
cf= (3) ;
}
if( (4))P=B;
else P=A;
for(;P[i]>-1;i++){/*将分组多的其余各组整数带进位复制入数组C*/
C[i]=(p[i]+cf)%i0000; cf=(p[i]+cf)/10000;
}
if(cf>0) C[i++]=cf;(5)=-1; /*标志”和数”的分组结束*/
第17题:
阅读以下说明,将应填入(n)处的字句写在答卷纸的对应栏内。

【说明】
下面的程序为堆排序程序,其中函数adjust(i,n)是把以R[i](1≤i≤┕i/2┙)为根的二叉树调整成堆的函数,假定R[i]的左、右子树已经是堆,程序中的,是在主函数中说明的结构数组,它含有要排序的n个记录。
【程序】
Void adjust(i,n)
Int i,n;
{
iht k,j;
element extr;
extr=r[i];
k=i;
j=2*i;
while (j<=n )
{if ((j<n) && (r[j].key<r[j+1].key))
(1);
if (extr. key<r[j].key)
{
r[k]=r[j];
k=j;
(2);
}
else
(3);
}
r[k]=extr;
}
/*让i从┗i/2┛逐步减到1, 反复调用函数adjust, 便完成建立初始堆的过程。*/
void heapsort (r,n)
list r;
int n;
{
int i,1;
element extr;
for (i=n/2;i>=1;- -i)
(4); /* 建立初始堆*/
for (k--n;k>=2;k- -)
{
extr=r[1];
r[1]=r[k];
r[k]=extr;
(5);
}
}
第18题:
下列程序执行后,n的值为 n=0 For I=1 To 200 If I Mod 4 = 0 Then n = n+1 Next I
A.5050
B.50
C.51
D.33
第19题:
按照RSA算法,取两个最大素数p和q,n=p*q,令φ(n)=(p-1)*(q-1),取与φ(n)互质的数e,d=e-1 mod φ(n),如果用M表示消息,用C表示密文,下面( )是加密过程,( )是解密过程。
A.C=Me mod n B.C=Mn mod d C.C=Md mod φ(n) D.C=Mn mod φ(n) A.M=Cn mod e B.M=Cd mod n C.M=Cd mod φ(n) D.M=Cn mod φ(n)
第20题:
第21题:
第22题:
R[i]=(n)DIV(m)表示将两个值的商的余数代入寄存器i。
第23题:
计算递延年金的现值时,下列表达式中(n表示连续收支期数,m表示递延期)正确的有()。