首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 [说明] 函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。 [说明] 函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=
admin
2010-12-17
70
问题
阅读以下说明和C代码,将应填入(n)处的字句写在对应栏内。
[说明]
函数combine(a,b,c)是计算两个整数的组合数。由于计算结果可能超出10ng整型的可表示范围,故采用数组方式存储,例如:k位长整数m用数组c[]存储结构如下:m=c[k]×10
k-1
+c[k-1]×10
k-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
>=10;i++){
if(i>=a[0]) (2);
a[i+1]+=a
/10;
a
=a
%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;
for(i=1;i<=u[0];i++){//从u中各元素去掉d中整数的因子
for(j=1;j<=b;j++){
x=gcd(u
,d[j]);//计算最大公约数
u
/=X;
d[j]/=x;
}
(4);C[1]=1;//长整数c初始化
for(i=1;i<=u[0];i++)(//将u中各整数相乘,存于长整数c中
if(u
!=1){
for(j=1;j<=c[0];j++){
C[j]=(5);
}
format(C);//将长整数c归整
}
}
}
(5)
选项
答案
u[i]*c[j]
解析
函数gcd()是用来求最大公约数的,从“if(a<b)”块的代码可知,a存储的是较大数,求最大公约数就从b开始往下试探,当某个整数i第一次既能整除a又能整除b,则说明i即为a与b的最大公约数。故空(1)应填“a%i==0&&b%i==0”。
空(2)是在条件“i>=a[0]”的情况下执行的,而for循环条件是“i,a[0]||a
>=10”,则必然意味着“a
>=10”,需要进位调整,而接下来的语句“a[i+1]+=a
/10”暗示此时a[i+1]需要赋初值0。故空(2)应填“a[i+1]=0”。
执行到空(3)调整已经结束,若if条件“i>a[0]”成立意味着整数归整后,位数已经突破了原来的a[0],需要调整为当前的位数。故空(3)应填“a[0]=i”。
空(4)是初始化长整数c的,接下来的是乘法操作,因此初始化为1,即c[1]=1,显然应该将c[0]也初始化为1。故空(4)应填“c[0]=1”。
从注释知空(5)所在的二重循环是将u中的各整数相乘存入c中,需要将c的每一位与u的每一位相乘,故空(5)应填“u
*c[j]”。
转载请注明原文地址:https://www.kaotiyun.com/show/pvDZ777K
本试题收录于:
软件设计师下午应用技术考试题库软考中级分类
0
软件设计师下午应用技术考试
软考中级
相关试题推荐
给定包含n个正整数的数组A和正整数x,要判断数组A中是否存在两个元素之和等于x。先用插入排序算法对数组A进行排序,再用以下过程P来判断是否存在两个元素之和等于x。low=l;high=n;while(high>low)ifA[low]+A[hig
在结构化分析方法中,用于行为建模的模型是①,其要素包括②。②处应填入?
对于逻辑表达式(((a>0)&&(b>0))‖c<5),需要______个测试用例才能完成条件组合覆盖。
系统交付后,修改原来打印时总是遗漏最后一行记录的问题,该行为属于______维护。
模块A将其中的学生信息,即学生姓名、学号、手机号等放到一个结构体中,传递给模块B,则模块A和B之间的耦合类型为______耦合。
有两个N*N的矩阵A和B,想要在微机(PC机)上按矩阵乘法基本算法编程实现计算A*B。假设N较大,本机内存也足够大,可以存下A、B和结果矩阵。那么,为了加快计算速度,A和B在内存中的存储方式应选择______。
某系统中有一个中央数据存储,模块A负责接收新来的数据并修改中央数据存储中的数据,模块B负责访问中央数据存储中的数据,则这两个模块之间的耦合类型为________________。若将这两个模块及中央数据合并成一个模块,则该模块的内聚类型为_________
调用函数时若是引用调用方式,则是将________________。下面所定义的函数f1为值调用方式,函数f2为引用调用方式。若有表达式x=f1(5),则函数调用执行完成后,该表达式中x获得的值为________________。
某算术表达式用二叉树表示如下,该算术表达式的中缀式为________________,其后缀式为________________。
某算术表达式用二叉树表示如下,该算术表达式的中缀式为________________,其后缀式为________________。
随机试题
A.食管癌切除加食管胃吻合术B.胃造瘘术C.放射疗法D.化学疗法E.中医中药治疗患者男,50岁。进食后吞咽困难3个月余,目前不能进流质食物,人渐消瘦,体查:一般情况差,左锁骨上可扪及拇指头大小质硬淋巴结,食管镜活检报告为鳞癌Ⅲ级。应行
有关智能减退,下列哪项错误
某残疾人自强不息,写出文学巨著一部,并获稿酬10万元。根据税法他应当:
当采用插入式振捣器时,混凝土浇筑层厚度应控制为:
CPU和RAM是计算机的外部设备。()
纳税义务人发现多缴税款的,自缴纳税款之日起可以书面形式要求海关退还多缴的税款并加算银行同期活期存款利息,其期限是:
由于海关方面的原因造成少征或者漏征税款,海关应当自缴纳税款或者货物放行之日起3年内,向收发货人或者他们的代理人补征。由于收发货人或者他们的代理人违反规定,而造成的少征或者漏征,海关在1年内可以追征。
诱导需求,医生在涉及自身经济利益的服务中,医生既是顾问,又是卫生服务的提供者,因此可以创造额外需求,即供方创造需求。根据上述定义,下列说法不正确的是:
设变量x和y为整型变量,若有函数调用为"fun(&x,&y)",则下列选项中,能够作为函数fun原型声明的是
Onceyouarehiredbyacompany,youwillprobablyhavebusinesscards.Abusinesscardisprintedwithyourname,rifle,compan
最新回复
(
0
)