把M个同样的苹果放在N个同样的盘子里,允许有的盘子空着不放,问共有多少种不同的分法(用K表示)?请设计一个算法计算K值(只需要计算K值,不用把具体的分法输出)。注意:5,1,1和1,5,1是同一种分法。
第1题:
(34)为计算 a 的值,某人编写了函数 power 如下:
Private Function power (a As Integer, n As Integer) As Long
Dim p As Long
p=a
For k=1 To n
p=p*a
Next k
power=p
End Function
在调试时发现是错误的,例如 Print power(5,4)的输出应该是 625,但实际输出是 3125。程序需要修改。
下面的修改方案中有 3 个是正确的,错误的一个是( )。
A)把 For k=1 To n 改为 For k=2 To n
B)把 p=p*a 改为 p=p^n
C)把 For k=1 To n 改为 For k=1 To n-1
D)把 p=a 改为 p=1
第2题:
计算π的近似值的一个公式是π/4=1-1/3+1/5_1/7+…+(-1)n-11/(2n-1)。某人编写下面的程序用此公式计算并输出π的近似值:
Private Sub Command1_Click()
PI=1
Sign=1
13=20000
For k=3 To n
sign=-sign
PI=PI+sign/k
Next k
Print PI*4
End sub
运行后发现结果为3.22751,显然,程序需要修改。下面修改方案中正确的是
A.把For k=3To n改为For k=1 To n
B.把U=20000改为n=20000000
C.把For k:3 To n改为For k=3 To n Step 2
D.把PI=1改为PI=0
第3题:
当k的值不为0时,在下列选项中能够将k的值赋给变量m,n的是
A.m=k=n
B.(m=k)&&(n=k)
C.(m=k)||(n=k)
D.(k=m)&&(n=k)
第4题:
以下程序中,函数 sumColumM的功能是:求出M行N列二维数组每列元素中的最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。
define M 2
define N 4
void SumColumMin(int a[M][N],int *sum)
{ int i,j,k,s=0;
for(i=0;i〈N;i++)
{ k=0;
for(j=1;j<M;j++)
if(a[k][i]>a[j][i])k=j;
s+=【 】;
}
【 】 =s;
}
main( )
{ int x[M][N]={3,2,5,1,4,1,8,3},s;
SumColumMin(【 】);
printf("%d\n",s);
}
第5题:
下列给定的程序中,函数fun()的功能是: 计算并输出k以内最大的6个能被7或11整除的自然数之和。K的值由主函数传入,若k的值为500,则函数的值为2925。
请改正程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdio.h>
include<conio.h>
int fun(int k)
{
int m=0,mc=0,j;
/*************found*************/
while(k>=2)&&(mc<6)
{
/*************found*************/
if((k%7=0)||(k%ll=0))
{
/*************found**************/
m=k;
mc++;
}
k--;
}
return m;
}
main()
{
clrscr();
printf("%d\n",fun(500));
}
第6题:
下列程序用来计算1+2+…n,当和大于100时停止计算,请填空。
Private Sub Form_Click()
Dim n as integer,s as integer,I as integer,k as integer
s=0
k=0
n=inputbox(″请输入n的值)
For i=1 to 100
k=k+1
s=s+I
【 】
Next i
Print s
End Sub
第7题:
10个大小相同的橘子放到3个不同的盘子里,允许有的盘子空着。请问一共有多少种不同的放法? A.286 B.220 C.120 D.66
第8题:
请编写一个函数proc,它的功能是:求出1~m(含m) 能被7或11整除的所有整数放在数组a中,通过n返回这些数的个数。 例如,若传给m的值为70,则程序输出: 7 11 14 21 22 28 33 35 42 44 49 55 56 63 66 70 注意:部分源程序给出如下。 请勿改动main函数和其他函数中的任何内容,仅在函数proc的花括号中填人所编写的若干语句。 试题程序: include<stdlib.h> include<conio.h> include<stdio.h> define N 100 void proc(int m,int*a,int*n) {
} void main { int arr[N],n,k; system("CLS"); proc(70,arr,&n); for(k=0;k<n;k++) if((k+1)%20==0)//每行输出20个数 { printf("%4d",arr[k]); printf("\n"); } else printf("%4d",arr[k]); printf("\n"); }
void proc(int m,int*a,int*n)
{
int i,j=0;
for(i=1;i<=m;i++)//进行m次循环
if(i%7==0||i%11==0)//能被7或11整除的所有整数
a[j++]=i;//符合条件的数放在数组a中
*n=j;//返回这些数的个数
}
【解析】本题需要先判断1~m每一个整数能否被7或11整除,然后将符合条件的整数放在数组a中,最后将符合条件的数的个数通过形参n返回主函数。
第9题:
为计算a“的值,某人编写了函数power如下:
Private Function power(a As Integer,n As Integer)As Long
Dim P As Long
P=a
For k=l T0 n
P=P * a
Next k
poWer=P
End Function
在调试时发现是错误的,例如Print power(5,4)的输出应该是625,但实际输出是3125。程序需要修改。下面的修改方案中有3个是正确的,错误的一个是
A.把For k=1 To n改为For k=2 To n
B.把P=P*a改为P=p^n
C.把Fork=1 To n改为For k=1 To n-1
D.把P=a改为P=1
第10题:
计算的近似值的一个公式是π/4=1-(1/3)+(1/5)-(1/7)+…+(-1)n-1(1/2n -1)。 某人编写下面的程序用此公式计算并输出的近似值: Private Sub Cornmand1 Click( ) P1=1 Sign=1 n=20000 For k=3 To r Sign=-Sign PI=PI+SiRn/k Next k Print PI*4 End Sub 运行后发现结果勾3.22751,显然,程序需要修改。下面修改方案中正确的是( )。
A.把For k=3 To n改为For k=1 To n
B.把n=20000改为n=20000000
C.把For k=3 To n改为For k=3 To n Step 2
D.把PI=1改为P1=0