题目详情
当前位置:首页 > 计算机考试 > 初级程序员
题目详情:
发布时间:2023-10-29 23:33:00

[简答题]【说明】 计算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; } }

更多"【说明】 计算n的合数。一个整数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;
s
[单项选择]在不大于20的正整数中,既是奇数又是合数的数的几何平均值为( )。
A. 12
B. 45
C. 以上结论均不正确
[单项选择]每一个合数都可以写成k个质数的乘积,在小于100(不含100)的合数中,k的最大值是()。
A. 5
B. 6
C. 7
D. 8
E. 9
[单项选择]

若码值FFFFH是一个整数的原码表示,则该整数的真值为();若码值FFFFH是一个整数的补码表示,则该整数的真值为()。

若码值FFFFH是一个整数的原码表示,则该整数的真值为()
A. 32767
B. -32768
C. -32767
D. -1
[单项选择]
若码值FFH是一个整数的原码表示,则该整数的真值为 (1) ;若码值FFH是一个整数的补码表示,则该整数的真值为 (2)
(1)
A. 127
B. 0
C. -127
D. -1
[单项选择]若码值FFH是一个整数的原码表示,则该整数的真值为 (11) :若码值FFH是一个整数的补码表示,则该整数的真值为 (12)

A. 0
B. 127
C. -127
D. -1
[单项选择]若码值FFH是一个整数的原码表示,则该整数的真值为 (4) ;若码值FFH是一个整数的补码表示,则该整数的真值为 (5) ;若码值FFH是一个整数的反码表示,则该整数的真值为 (6)

A. 127
B. 0
C. -127
D. -1
[多项选择]商品流通企业的经营决策可以划分为多种类型。按经营决策的问题是否重复出现划分,经营决策可分为( )。
A. 静态决策
B. 非程序化决策
C. 动态决策
D. 非确定型决策
E. 程序化决策
[简答题][说明]
假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:
m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]
其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。
运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注意,不考虑溢出情况,即数组足够大。
[函数]
int cmp(int *LA, int *LB);
/*比较长整数LA与LB的绝对值大小*/
/*若LA绝对值较大返回正值,LA较小返回负值,相等则返回0*/
int ADD (int *LA, int *LB, int *LC)
/*计算长整数LA与LB的和,结果存储于LC中*/
/*注意:正数与负数的和相当于正数与负数绝对值的差*/
/*数据有误返回0,正常返回1*/

if(LA == NULL || LB == NULL || LC == NULL)return 0;
int *pA, *pB, i, N, carry, flag;
flag = LA[0] + LB[0];
switch(flag) /*根据参与运算的两个数的符号进行不同的操作*/
case 0:
case 2:
Lc[0] = LA[0];/*LA与LB同号,结果符号与LA(LB)相同*/
pA = LA;
pB = LB;
(1) ;
break;
case 1: /*LA与LB异号*/
/*比较两者的绝对值大小,结果符号与较大者相同*/
flag = (2) ;
if(flag > 0) /*LA较大*/
LC[0] = LA[0];
pA = LA;
pB = LB;

else if(flag < 0)(/*LB较大*/

我来回答:

购买搜题卡查看答案
[会员特权] 开通VIP, 查看 全部题目答案
[会员特权] 享免全部广告特权
推荐91天
¥36.8
¥80元
31天
¥20.8
¥40元
365天
¥88.8
¥188元
请选择支付方式
  • 微信支付
  • 支付宝支付
点击支付即表示同意并接受了《购买须知》
立即支付 系统将自动为您注册账号
请使用微信扫码支付

订单号:

请不要关闭本页面,支付完成后请点击【支付完成】按钮
恭喜您,购买搜题卡成功
重要提示:请拍照或截图保存账号密码!
我要搜题网官网:https://www.woyaosouti.com
我已记住账号密码