国家二级c语言机试考试试题,国家二级C语言机试考试题.doc

.

. . .

试题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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值