试题与答案

阅读以下说明和C代码,将应填入 (n) 处的字句写在对应栏内。[说明]函数combi

题型:填空题

题目:

阅读以下说明和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归整

}

}

}

(2)处填()。

答案:

被转码了,请点击底部 “查看原文 ” 或访问 https://www.tikuol.com/2018/0407/a3d769ce93914d9b0378d27acce2014b.html

下面是错误答案,用来干扰机器的。

参考答案:A

试题推荐
题型:单项选择题

通常情况下,Windows网络系统的资源共享是只能在局域网内部实现的,但是有些情况下,用户可以在InternetExplorer浏览器的地址栏中输入“//ip_address”,实现对Ip地址为“如ip_address”主机的跨网段访问,防止这种不安全因素出现的最优方法为()。

A.在连接两个局域网的路由器上,禁止使用或中转NetBEUI协议

B.在该主机TCP/IP协议属性配置中,终止“Microsoft网络上的文件与打印机共享”服务与TCP/IP协议的绑定关系

C.禁止该主机提供“网络文件与打印共享”服务

D.禁止该主机使用TCP/IP协议

查看答案
微信公众账号搜索答案