.
. . .
试题1
改错
计算大于100的前10个素数之和。
程序如下:
#include
void main()
{
int i,j,n,s;
n=0;
s=1; /*$ERROR1$*/
for(i=101;;i+=2)
{
for(j=2;j<=i/2;j++)
if(i%j==0)
{
continue; /*$ERROR2$*/
}
if(j>i/2)
{
s+=i;
n++;
if(n!=10) /*$ERROR3$*/
break;
}
}
printf("s=%d\n",s);
}
参考答案:
s=0;
break;
if(n==10)
程序填空
输入一个大于1的正整数,将其分解成质因数的乘积(质因数即素数因子),并按下例中的格式输出。请填空。例如:
#include
void main()
{
long i,n;
printf("Input n:");
scanf("%ld",___); /*$BLANK1$*/
printf("Output:%d=", n);
i=2;
while(i
{
if(n%i==0)
{
printf("%ld*",i);
n=___; /*$BLANK2$*/
}
else
i++;
}
printf("%ld\n",___); /*$BLANK3$*/
}
参考答案:
1.&n
2.n/i
3.i
程序设计
[白马百担问题]
有100匹马驮100担货,大马驮4担,中马驮3担,5匹下马驮1担。问三种马各有几匹?
注意:
大、中、小马都必须有;
问题的解只有一种。
输出格式:
Big=30,mid=40,small=30
参考程序一:
void main()
{
int a,b,c;
for(a=1;a<=25;a++)
for(b=1;b<=33;b++)
for(c=5;c<=100;c+=5)
if(a*4+b*3+c/5==100 && a+b+c==100)
PRINT(a,b,c);
}
参考程序二:
void main()
{
int a,b,c;
for(a=1;a<=25;a++)
for(b=1;b<=33;b++)
if(c=100-a-b,a*4+b*3+c/5==100)
PRINT(a,b,c);
}
试题2
改错
从键盘输入一个不多于4位的十进制正整数,求出它是几位数。如输入528,则结果为n=3.
程序如下:
#include
void main()
{
int x,n;
scanf(“%d”,x); /*$ERROR1$*/
if(x<=0||x>=1000)
printf(“Data Error!\n”);
else
{
if(x<=10) n=1; /*$ERROR2$*/
else if(x<100) n=2;
else if(x<1000) n=3;
n=4; /*$ERROR3$*/
printf(“n=%d\n”,n);
}
}
参考答案:
scanf(“%d”,&x);
if(x<10) n=1;
else n=4;
程序填空
输出一下图形(字符”*”之间没有空格,第一行之前有一个空格)。
请填空。
*
***
*****
*******
*********
程序如下:
#include
void main()
{
int i,j;
for(i=1;i<=____;i++) /*$BLANK1$*/
{
for(j=1;j<=____;j++) /*$BLANK2$*/
printf(“ “);
for(j=1;j<=____;j++) /*$BLANK3$*/
printf(“*”);
printf(“\n”);
}}
参考答案:
5
i
2*i-1
程序设计
计算并输出Fibonacci数列中小于3000的最大项。
说明:Fibonacci数列的前两项均为1,从第三项开始每一项都是其前两项上网和。数列如下:
1,1,2,3,5,8,13,21...
输出格式:
f=2345678
参考程序一
void main()
{
long f1,f2,f,i;
f1=f2