2013年6月c语言二级省考,2013年计算机二级C语言上机试题五及答案

填空题

给定程序的功能是求二分之一的圆面积,函数形参得到圆的半径,函数返回二分之一的圆面积(注:圆面积公式为:S= ,在程序中定义的变量名要与公式的变量相同)。

例如,输入圆的半径值:19.527,输出为:S=598.950017。

请勿改动主函数main和其他函数中的任何内容,仅在fun函数的横线上填入所编写的若干表达式或语句。

试题程序:

#include

double fun(double r)

{

return 3.14159*___1___/2.0;

}

main()

{

double x;

printf("Enter x: ");

scanf("%lf", ___2___);

printf(" s = %lf\n ", fun(___3___));

}

【第1处填空:r*r  第2处填空:&x  第3处填空:x】

改错题

假定整数数列中的数不重复,并存放在数组中。下列给顶程序中,函数fun的功能是删除数列中值为x的元素,同时将其他元素前移。N中存放的是数列中元素的个数。

请改正程序中的错误,使它能得出正确的结果。

注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!

试题程序:

#include

#define N 20

fun(int *a, int n, int x)

{

int p = 0, i;

a[n] = x;

while (x != a[p])

p = p+1;

if (p == n)

{

return -1;

}

else

{

/********found********/

for (i=p; i

a[i+1] = a[i];

return n-1;

}

}

main()

{

int w[N] = {-3, 0, 1, 5, 7, 99, 10, 15, 30, 90}, x, n, i;

n = 10;

printf("The original data:\n");

for (i=0; i

printf("%5d", w[i]);

printf("\nInput x (to delete):");

scanf("%d", &x);

printf("Delete :%d\n", x);

n = fun(w, n, x);

if (n == -1)

{

printf("***Not be found!***\n\n");

}

else

{

printf("The data after delete :\n");

for (i=0; i

printf("%5d", w[i]);

printf("\n\n");

}

}

【第1处:a[i+1]=a[i];应改为a[i]=a[i+1]】

编程题

请编写一个函数void fun(int m,int k,int xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入xx所指的数组中。

例如,若输入:17,5,则应输出:19,23,29,31,37。

注意:部分源程序给出如下。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。

试题程序:

#include

#include

void fun(int m, int k, int xx[])

{

}

main()

{

int m,n,zz[1000];

FILE *out;

printf("\nPlease enter two integers:");

scanf("%d,%d",&m,&n);

fun( m,n,zz);

for(m=0; m

printf("%d ", zz[m]);

printf("\n");

fun(28, 20, zz);

out = fopen("out.dat", "w");

for (m = 0; m < 20; m++)

fprintf(out, "%d\n", zz[m]);

fclose(out);

}

答案是:

void fun(int m,int k,int xx[])

{

int g=0,I,j,flag=1;

for(i=m+1;i

{

for(j=2;j

{

if(i%j!=0)

flag=1;

else

{

flag=0;

break;

}

}

if(flag==1&&j>=i)

{

if(k>=0)

{

xx[g++]=I;

k--;

}

else

break;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值