【题目】 统计正整数m和n之间(包括m和n)质数的个数,其中,1<m<n<1000。 【输入】 一行,包含两个整数m和n,以一个空格间隔。 【输出】 输出一行,包行一个整数,表示正整数m和n之间质数的个数。 【输入样例】 10 20 【输出样例】 4
第1题:
下列给定程序中,函数proc的功能是计算正整数m 各位上数字的平方和。
例如,输入498,则输出应该是161。
请修改程序中的错误,使它能得到正确结果。
注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。
试题程序:
include<stdlib.h>
include<stdio.h>
include<conio.h>
long proc(10ng m)
{
//****found****
long sum=1;
do
{
sum+=(m%10)*(m%10);
m/=l0;
//****found****
}
while(m)
return(sum);
}
void main
{
long n;
system("CLS");
printf("Please enter a number:");
scanf("%1d",&n);
printf("\n%ld\n",proc(n));
}
(1)错误:long sum=1;
正确:long sum=0;
(2)错误:while(m)
正确:while(m);
【解析】由函数proc可知,变量sum中存放正整数m 的各位上数字的平方和,其初始化为0。因此,“long sum= 1;”应改为“long sum=0;”。按照C语言的语法规则,语句都以分号结束,应在do-while语句最后加上分号。因此,“while(m)”应改为“while(m);”。
第2题:
下列给定程序中,函数fun()的功能是:给一维数组a输入任意4个整数,并按如下的规律输出。例如输入1,2,3,4,程序运行后输出以下方阵:
4 1 2 3
3 4 1 2
2 3 4 1
1 2 3 4
请改正程序中的错误,使它能得出正确的结果。
注意;不要改动main 函数,不得增行或删行,也不得更改程序的结构。
试题程序;
include <stdio.h>
define M 4
/*******************************/
void fun(int a)
{int i,j,k,m;
printf("Enter 4 number: ");
for (i=0; i<M; i++) scanf ("%d", &a [i] );
printf ("\n\n The result : \n\n ");
for (i=M; i>0; i--)
{ k=a [M-1];
for (j=M-1; j>0; j--)
/**********************************/
a[j]=a[j+1];
a[0]=k;
for (m=0 ;m<M; m++ ) printf ("%d ", a [m]);
printf ("\n ");
}
}
main ()
{int a [M];
fun(a); printf("\n\n ");
}
第3题:
运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为_____。 main() { int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); }
A.m=3
B.m=2
C.m=1
D.m=0
第4题:
下列程序的功能是:将大于整数m且紧靠m的k个素数存入数组xx。请编写函数num(int m,int k,int xx[])实现程序的要求,最后调用函数read write DAT()把结果输出到out31.dat文件中。
例如,若输入17,5,则应输出19,23,29,31,37。
注意:部分源程序已给出。
请勿改动主函数main()和输入输出函数read write DAT()的内容。
试题程序:
include < conio.h>
include
Void readwriteDAT();
Void num(int m,int k,,int XX[])
{
}
main()
{
int m,n,xx[1000];
Clrscr();
printf(“\nPlease enter tWO integers:”)
‘scanf(“%d,%d”,&m,&n);
num(m, n, XX);
for(m=0;m<n;m++)
printf(“%d”, XX[m]);
printf(”\n”);
readwriteDAT();
)
VOid read write DAT()
{
int m,n,xx[1000],i;
FILE *rf.,*Wf;
rf=fopen(“in31.Dat”,r”);
Wffopen(“ou1t31.Dat”/”w”);。 for(i=0;i<10;i++)
{
fscanf(rf,%d,” %d”,&m,&n);
num(m,n,XX);
for(m=0;m fprintf(wf,%d”,xx[m]);
fprintf (wf, “\n”);
}
fclose(rf);
fclose (wf);
}
第5题:
以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。
include <stdio.h>
main()
{ int n, s;
printf("Enter a number:"); scanf("%d",&n);
printf("Output: ");
do
{ s=n%10; printf("%d",s); [ ]; }
while (n!=0);
printf("\n');
}
第6题:
阅读以下说明和流程图,回答问题1-2,将解答填入对应的解答栏内。
[说明]
下面的流程图采用欧几里得算法,实现了计算两正整数最大公约数的功能。给定正整数m和 n,假定m大于等于n,算法的主要步骤为:
(1)以n除m并令r为所得的余数;
(2)若r等于0,算法结束;n即为所求;
(3)将n和r分别赋给m和n,返回步骤(1)。
[流程图]
[问题1] 将流程图中的(1)~(4)处补充完整。
[问题2] 若输入的m和n分别为27和21,则A中循环体被执行的次数是(5)。
第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题:
窗体上有一个名称为Command1的命令按钮,并有如下程序: Private Sub Command1Click( ) Dim m As Integer,n As Integer m=InputBox("输入第一个数") nzInputBox("输入第二个数") Do While m<>n Do While m>n m= m-n Loop Do While n>m n=n-m Loop Loop Print m End Sub 该程序的功能是( )。
A.求数值m和n的最大公约数
B.求数值m和n的最小公倍数
C.求数值m和n中的较大数
D.求数值m和n中的较小数
第9题:
第10题:
第11题:
算法可以有0~n(设n、m为正整数)个输入,有()个输出。
第12题:
第13题:
T(n)=O(f(n))中,函数O()的正确含义为
A.T(n)为f(n)的函数
B.T(n)为n的函数
C.存在足够大的正整数M,使得T(n)≤M×f(n)
D.存在足够大的正整数M,使得M×f(n)≤T(n)
第14题:
运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。 main() { int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); }
A.m=3
B.m=2
C.m=1
D.m=0
第15题:
阅读下面的程序: Private Sub Form_Click() Dim m,n As Integer m=InputBox("请输入M的值") m=Val(m) m1=m n=InputBox("请输入N的值") n=Val(n) n1=n Do While n<>0 remin=m Mod n m=n n=remin Loop Print m1,n1,m End Sub 程序运行后,单击窗体,在对话框中分别输入16和24,则程序在窗体上的输出结果为
A.16 24 4
B.16 24 8
C.24 16 6
D.24 16 8
第16题:
下面程序的功能是从键盘输入—个大于100的整数m,计算并输出满足不等式
1+22+32+42+…+n2<m
的最大的n。请填空。
Private Sub Command1_Click()
Dim s,m,n As Integer
m=Val(InputBox("请输入一个大于100的整数"))
n=【 】
s=0
Do While s<m
n=n+1
s=s+n*n
Loop
Print "满足不等式的最大n是";【 】
End Sub
第17题:
设M和N为正整数,且M>2,N>2,MN<2(M+N),满足上述条件的例(M,N)共有()对。
A.3
B.5
C.6
D.7
第18题:
阅读下列程序说明和C程序,将应填入(n)处的字句写在对应栏内。
[函数2.1说明]
下面程序的功能是计算x和y的最小公倍数。
[函数2.1]
main()
{ int m,n,d,r;
seanf("%d %d",&m,&n);
if(m<n) {r=m;m=n;n=r;}
(1);
while (d%n! =0) (2);
printf("%d\n",d);
}
[函数2.2说明]
下述程序接收键盘输入,直到句点“.”时结束。输入的字符被原样输出,但连续的空格输入将转换成一个空格。
[函数2.2]
include <stdio.h>
main()
{ char c,preChar='\0';
c = getchar();
while(c! = '.'){
if((3)) putchar(c);
else if(preChar! =' ') putchar(c);
(4);
c=(5);
}
}
第19题:
请补充main函数,该函数的功能是:输入两个正整数m和n,求这两个数的最大公约和最小公倍数。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在 main函数的横线上填入所编写的若干表达式或语句。
试题程序:
include <stdio.h>
main ( )
{
int a, b, n, m, t;
clrscr ();
printf ("\nInput two numbers: \n");
scanf ("%d, %d", &n, &m);
if (n<m)
{
a=m;
b=n;
}
else
{
a=n;
b=m;
}
while(【 】)
{
t=【 】
a=b;
b=t;
}
printf ("greatest con. non divisor:
%d\n", a);
printf ("least common multiple:
%d\n",【 】);
}
第20题:
(7)在窗体上画1个名称为Command 1的命令按钮,然后编写如下程序:
Private Sub Command 1 Click()
Dim m As Integer, x As Integer
Dim flag As Boolean
flag=False
n=Val(InputBox("请输入任意1个正整数"))
Do While Not flag
a=2
flag=【7】
Do While flag And a <= Int(Sqr(n))
If n/a=n\a Then
flag=False
Else
【8】
End If
Loop
If Not flag Then n=n+l
Loop
Print【9】
End Sub
上述程序的功能是,当在键盘输入任意的1个正整数时,将输出不小于该整数的最小素数。请填空完善程序。
第21题:
第22题:
通过键盘输入一个高精度的正整数n(n的有效位数≤240),去掉其中任意s个数字后,剩下的数字按原左右次序将组成一个新的正整数。编程对给定的n和s,寻找一种方案,使得剩下的数字组成的新数最小。 【样例输入】 178543 S=4 【样例输出】 13
第23题:
q(8,8)
1+q(9,9)
2+q(10,8)
ABC都正确
第24题:
0~m
0
1~m
1