C语言N大于100且10的倍数,计算机C语言二级上机考试套题(十六)

第61套

1.程序填空题:

请补充函数fun,该函数的功能是:判断一个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回"yes!",否则返回"no!"。

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

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

试题程序:

#include

#include

#include

char *fun(int n)

{

int

g,s,b;

g=n%10;

s=n/10%10;

b=【1】;

if((g+b)==s)

return 【2】;

else

return 【3】;

}

void main()

{

int

num=0;

system("CLS");

printf("******Input data *******\n");

scanf("%d",&num);

printf("\n\n\n");

printf("****** The result *******\n");

printf("\n\n\n%s",fun(num));

}

2.程序改错题:

下列给定程序中,函数fun的功能是:传入一个整数m,计算如下公式的值。

t=1/2-1/3-…-1/m

例如,若输入5,则应输出-0.283333。

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

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

试题程序:

#include 

#include 

#include 

double fun(int m)

{

double t=1.0;

int I;

for(I=2;I<=m;I++)

t=1.0-1/I;

;

}

void main()

{int m;

system("CLS");

printf("\nPlease enter 1 integer

numbers:\n");

scanf("%d",&m);

printf("\n\nThe result is %1f\n",

fun(m));

}

1. 程序设计题:

请编写函数fun,其功能是:计算并输出3到n之间所有素数的平方根之和。

例如,若主函数从键盘给n输入100后,则输出为sum=148.874270。

注意:n的值要大于2但不大于100。部分源程序给出如下。

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

试题程序:

#include 

#include 

double fun(int n)

{

}

main()

{int n;

double sum;

FILE *out;

printf("Input N=");

scanf("%d",&n);

sum=fun(n);

printf("\n\nsum=%f\n\n",sum);

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

fprintf(out,"%f\n",fun(180));

fclose(out);

}

【参考答案】:1. (1) n/100%10 (2)

"yes!" (3) "no!"

2.

(1)错误:t=1.0-1/i; 正确:t-=1.0/i;

(2)错误:; 正确:return t;

3. double fun(int n)

{

int

m,k,i;

double

s=0.0;

for(m=3;m<=n;m++)

{

k=sqrt(m);

for(i=2;i<=k;i++)

if(m%i==0) break;

if(i>=k+1)

s+=sqrt(m);

}

return

s;

}

第62套

1. 程序填空题:

数组xx[N]保存着一组3位数的无符号正整数,其元素的个数通过变量num传入函数fun。请补充函数fun,该函数的功能是:从数组xx中找出个位和百位的数字相等的所有无符号整数,结果保存在数组yy中,其个数由函数fun返回。

例如,当xx[8]={135,787,232,222,424,333,141,541}时,bb[6]={787,232,222,424,333,141}。

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

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

试题程序:

#include

#include

#include

#define N 1000

int fun(int xx[],int bb[],int num)

{

int I,n=0;

int g,b;

for(I=0;I

{

g=【1】;

b=xx[I]/100;

if(g==b)

【2】;

}

return【3】;

}

void main()

{

int xx[8]={135,787,232,222,424,333,141,541};

int yy[N];

int num=0,n=0,i=0;

num=8;

system("CLS");

printf("***original data ***\n");

for(i=0;i

printf("%u ",xx[i]);

printf("\n\n\n");

n=fun(xx,yy,num);

printf("\nyy= ");

for(i=0;i

printf("%u ",yy[i]);

}

2. 程序改错题:

下列给定函数中,函数fun的功能是:统计字符串中各元音字母(即A、E、I、O、U)的个数。注意:字母不分大小写。例如,输入THIs

is a boot,则应输出是1 0 2 2 0。

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

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

试题程序:

#include 

#include 

#include 

fun(char *s, int num[5])

{ int k, i=5;

for(k=0;k

num[i]=0;

for(;*s;s++)

{ i=-1;

switch(s)

{ case 'a': case'A':{i=0;break;}

case 'e ': case 'E':{i=1;break;}

case 'i': case 'I':{i=2;break;}

case 'o': case 'O':{i=3;break;}

case 'u': case 'U':{i=4;break;}

}

if(i>=0)

num[i]++;

}

}

void main()

{ char s1[81]; int num1[5], i;

system("CLS");

printf("\nPlease enter a string: ");

gets(s1);

fun(s1, num1);

for(i=0;i<5;i++) printf("%d

",num1[i]);

printf("\n");

}

3.程序设计题:

请编写一个函数void fun(int m, int k, int

xx[]),该函数的功能是:将大于整数m且紧靠m的k个素数存入所指的数组中。

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

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

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

试题程序:

#include

#include

#include

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

{

}

void main()

{

FILE *wf;

int m,n,zz[1000];

system("CLS");

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

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

fun(m, n, zz);

for(m=0;m

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

printf("\n ");

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

fun(17,5,zz);

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

fprintf(wf,"%d ",zz[m]);

fclose(wf);

}

【参考答案】:1. (1) xx[i]%10 (2)

bb[n++]=xx[i] (3) n

2. (1)错误:fun(char *s, int num[5])

正确:void fun(char *s, int num[5])

(2)错误:num[i]=0; 正确:num[k]=0;

(3)错误:switch(s) 正确:switch(*s)

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

{

int

i,j,n;

for(i=m+1,n=0;n

{for(j=2;j

if(i%j==0) break;

if(j>=i)

xx[n++]=i;

}

}

第63套

程序填空题:

请补充函数fun,该函数的功能是:判断一个数是否为素数。该数是素数时,函数返回字符串"yes!",否则函数返回字符串"no!",并在主函数中输出。

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

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

试题程序:

#include

#include 

#include 

【1】

{

int I, m;

m=1;

for(I=【2】;I

if (【3】)

{

m=0;

break;

}

if

(m==1&&n>1)

return("yes!");

else

return("no!");

}

void main()

{

int k=0;

system("CLS");

printf("Input:");

scanf("%d",&k);

printf("%s\n",fun(k));

}

程序改错题:

下列给定程序中,函数fun的功能是:按顺序给s所指数组中的元素赋予从2开始的偶数,然后再按顺序对每5个元素求一个平均值,并将这些值依次存放在w所指的数组中。若s所指数组中元素的个数不是5的倍数,多余部分忽略不计。例如,s所指数组有14个元素,则只对前10个元素进行处理,不对最后的4个元素求平均值。

请改正函数fun中的错误,使它能得出正确的结果。

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

试题程序:

#include 

#define SIZE 20

fun (double *s,double *w)

{ int k,i; double sum;

for(k=2,i=0;i

{s[i]=k;k+=2;}

sum=0.0;

for(k=0,i=0;i

{sum+=s[i];

if(i+1%5==0)

{w[k]=sum/5; sum=0;k++;}

}

return k;

}

void main()

{ double a[SIZE],b[SIZE/5];

int i, k;

k=fun(a,b);

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

for(i=0;i

{

if(i%5==0) printf("\n");

printf("%4.0f",a[i]);

}

printf("\n\nThe result:\n");

for(i=0;i

printf("%6.2f",b[i]);

printf("\n\n");

}

程序设计题:

程序定义了 的二维数组,并在主函数中自动赋值。请编写函数fun(int

a[][N],intn),该函数的功能是:使数组左下半三角元素中的值乘以n。例如,若n的值为3,a数组中的值为:

则返回主程序后a数组中的值应为:

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

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

试题程序:

#include 

#include 

#include 

#define N 5

void fun(int a[ ][N], int n)

{

}

main()

{

int a[N][N],n, i,j;

FILE *out;

printf("***** The array *****\n");

for(i=0; i

{

for(j=0; j

{

a[i][j]=rand()%10;

printf("%4d", a[i][j]);

}

printf("\n");

}

n=rand()%10;

printf("n=%4d\n",n);

fun(a, n);

printf("*****THE RESULT*****\n");

for(i=0; i

{

for (j=0; j

printf("%4d",a[i][j]);

printf("\n");

}

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

for(i=0;i

for(j=0;j

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

fun(a,9);

for(i=0;i

{

for(j=0;j

fprintf(out,"%4d",a[i][j]);

fprintf(out,"\n");

}

fclose(out);

}

【参考答案】:1. (1) char *fun(int

n) (2) 2

(3) n%i==0或!(n%i)

2. (1)错误:if(i+1%5==0) 正确:if((i+1)%5==0)

3. un(int a[][N],int n)

{

int

i,j;

for(i=0;i

for(j=0;j<=i;j++)

a[i][j]=a[i][j]*n;

}

第64套

1. 程序填空题:

给定程序中,函数fun的功能是:在形参s所指字符串中的每个数字字符之后插入一个*号。

例如,形参s所指的字符串为:def35adh3kjsdf7。执行结果为:def3*5*adh3*kjsdf7*。

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

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

试题程序:

#include

void fun(char *s )

{

int i,j,n;

for(i=0;s[i]!='\0';i++)

if(s[i]>='0'【1】s[i]<='9')

{

n=0;

while(s[i+1+n]!=【2】)

n++;

for(j=i+n+1;j>i;j--)

s[j+1]=【3】;

s[j+1]='*';

i=i+1;

}

}

main()

{

char

s[60]="ba3a54cd23a";

printf("\n the original string is: %s\n",s);

fun(s);

printf("\nthe result is: %s\n",s);

}

2. 程序改错题:

下列给定程序中,函数fun的功能是:找出一个大于给定整数m且紧随m的素数,并作为函数值返回。

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

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

试题程序:

#include 

#include 

#include 

int fun( int m)

{ int I,k;

for (I=m+1; ;I++)

{ for (k=2;k

if (I%k!=0)

break;

if (k

return(I);

}

}

void main()

{ int n;

system("CLS");

printf("\nPlease enter n:

");

scanf("%d",&n);

printf ("%d\n",fun(n));

}

3. 程序设计题:

请编写函数void fun (int x, int pp[], int

*n),它的功能是:求出能整除x且不是偶数的各整数,并按从小到大的顺序放在pp所指的数组中,这些除数的个数通过形参n返回。

例如,若x中的值为30,则有4个数符合要求,它们是1、3、5、15。

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

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

试题程序:

#include

#include

#include

void fun (int x, int pp[], int *n)

{

}

void main ()

{

FILE *wf;

int x,aa[1000], n, i ;

system("CLS");

printf("\nPlease enter an integer number : \n

") ;

scanf ("%d", &x) ;

fun (x, aa, &n) ;

for (i=0 ; i

printf ("%d ", aa [i]);

printf ("\n ") ;

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

fun (30, aa, &n) ;

for (i=0 ; i

fprintf (wf,"%d ", aa [i]);

fclose(wf);

}

【参考答案】:1. (1)

&& (2)

0 (3) s[j]或*(s+j)

2.

(1)错误:if(i%k!=0) 正确:if(i%k==0)

(2)错误:if(k=i)

3. void fun (int x, int pp[], int *n)

{

int

i,j=0;

for(i=1;i

if(x%i==0)

pp[j++]=i;

*n=j;

}

第65套

1. 程序填空题:

请补充函数fun,该函数的功能是:依次取出字符串中所有的小写字母以形成新的字符串,并取代原字符串。

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

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

试题程序:

#include

#include

#include

void fun(char *s)

{

int I=0;

char *p=s;

while(【1】)

{

if(*p>='a'&&*p<='z')

{

s[I]=*p;

【2】;

}

p++;

}

s[I]=【3】;

}

void main()

{

char str[80];

system("CLS");

printf("\nEnter a string:");

gets(str);

printf("\n\nThe string is :%s\n",str);

fun(str);

printf("\n\nThe string of changing

is:%s\n",str);

}

2. 程序改错题:

下列给定程序中,函数fun的功能是:计算并输出high以内最大的10个素数之和。high由主函数传给函数fun。例如high的值为100,则函数的值为732。

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

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

试题程序:

#include 

#include 

#include 

#include 

int fun(int high)

{

int sum=0,n=0, j, yes;

while((high>=2)&&(n<10))

{

yes = 1;

for(j=2; j<=high/2; j++)

if(high%j==0)

{

yes=0;

break

}

if(yes)

{

sum+=high;

n++;

}

high--;

}

return sum;

}

void main()

{

system("CLS");

printf("%d\n",fun(100));

}

3. 程序设计题:

请编写一个函数fun,它的功能是:根据以下公式求 的值(要求满足精度0.005,即某项小于0.005时停止迭代)。

/2=1+1/3+1*2/(3*5)+1*2*3/(3*5*7)+1*2*3*4/(3*5*7*9)+…+1*2*3*…*n/(3*5*7*…*(2n+1))

程序运行后,如果输入精度0.0005,则程序输出3.14…。

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

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

试题程序:

#include

#include

#include

double fun(double eps)

{

}

void main()

{

double x;

FILE *wf;

printf("Input eps: ");

scanf("%lf",&x);

printf("\neps=%1f,PI=%1f\n",x,fun(x));

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

fprintf (wf,"%lf",fun(0.0005));

fclose(wf);

}

【参考答案】:1. (1)*p

(2) i++或++i或i+=1或i=i+1

(3)'\0'

2. (1)错误:break 正确:break;

3. double fun(double eps)

{

double

s=1.0,s1=1.0;

int

n=1;

while(s1>=eps)

{ s1=s1*n/(2*n+1);

s=s+s1;

n++;

}

return

2*s;

}

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值