首页 > 软考
题目内容 (请给出正确答案)
[主观题]

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10

下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。

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

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

试题程序:

#include<stdio.h>

#include<mallo

C.h>

#include<string.h>

#include<conio.h>

#define N 10

typedef struct ss

{

char num[10];

int order;

}STU;

STU *fun(STU a[], int m)

{

STU b[N],*tt;

int i,j,k;

(1) ;

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

b[i]=a[i];

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

{

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

if ((2) )

j=i;

tt[k]=b[j];

b[j].order=0;

}

return (3) ;

}

outresult(STU a[],FILE *pf)

{

int i;

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

fprintf(pf,"No=%s Mark=%d\n",

a[i].num,a[i].order);

fprintf(pf,"\n\n");

}

main()

{

STU [N]={{"A01",80},{"A02",79},

{"A03",66},{"A04",82},{"A05",87},

{"A06",93},{"A07",78},{"A08",60},

{"A09",85},{"A10",73}};

STU *p_order;

int i,m;

clrscr();

printf("*** The Origial data ***\n");

outresult(a, stdout);

printf("\nGive the numeber of the

students who have better score:");

scanf("%d",&m);

while (m>10)

{

printf("\nGive the number of the

studets who have better score:");

scanf("%d",&m);

}

p_order=fun(a,m);

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

printf("*** The top students ***\n");

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

printf(" %s %d\n",

p_order[i].num,p_order[i].order);

free(p_order);

}

查看答案
答案
收藏
如果结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能还需要:
您的账号:
发送账号密码至手机
发送
安装优题宝APP,拍照搜题省时又省心!
更多“下列给定程序中,函数fun()的功能是:对N名学生的学习成绩…”相关的问题
第1题
下列给定程序中,函数fun()的功能是:计算整数n的阶乘。 请改正程序中的错误,使它能得出正确的结果。

下列给定程序中,函数fun()的功能是:计算整数n的阶乘。

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

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

试题程序:

include <stdio.h>

double fun(int n)

{

double result=l.0;

whil (n>l&&n<170)

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

result*=--n;

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

return;

main()

{int. n;

clrscr();

printf("Enter an integer: ");

scanf("%d",&n);

printf("\n\n%d!=%lg\n\n ",n, fun(n));

}

点击查看答案
第2题
下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之

下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之后插入1个空格。

例如,若给a输入字符串:“ABCDEFGHIJK”,调用函数后,字符数组b中的内容为:“ABC DEF GHI JK”。

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

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

试题程序:

下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之

下列给定程序中,函数fun()的功能是:将P所指字符串中的所有字符复制到b中,要求在每复制3个字符之

点击查看答案
第3题
下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。 t=1-1/(2×2)-1/(3×3)-…

下列给定程序中,函数fun()的功能是:根据整型形参m的值,计算如下公式的值。

t=1-1/(2×2)-1/(3×3)-…-l/(m×m)

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

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

试题程序:

include <conio.h>

include <stdio.h>

double fun(int m)

{ double y=1.O;

int i;

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

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

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

y-=1/ (i*i);

return(y);

}

main()

{ int n=5;

clrscr();

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

}

点击查看答案
第4题
下列给定程序中,函数fun的功能是按以下递归公式求函数值。 例如:当给n输入5时,函数值为240;当给n

下列给定程序中,函数fun的功能是按以下递归公式求函数值。

下列给定程序中,函数fun的功能是按以下递归公式求函数值。 例如:当给n输入5时,函数值为240;当

例如:当给n输入5时,函数值为240;当给n输入3时,函数值为60。

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

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

试题程序:

include <stdio.h>

/*************found****+*******/

fun(int n);

{

int c;

/*************found********+*****/

if(n=1)

c=15;

else

c=fun(n-1)*2;

return(c);

}

main()

{

int n;

printf("Enter n:");

scanf("%d",&n);

printf("The result:%d\n\n",fun(n));

}

点击查看答案
第5题
下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl和

下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。

例如,若nmnl和num2分别为49和21,则输出的最大公约数为7;若num1和num2分别为27和81,

则输也的最大公约数为27。

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

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

试题程序:

下列给定程序中,函数fun的功能是:求两个非零正整数的最大公约数,并作为函数值返回。例如,若nmnl

点击查看答案
第6题
下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。 例如:输入352,则输出应

下列给定程序中函数fun()的功能是计算正整数num的各位上的数字之平方和。

例如:输入352,则输出应该是38;若输入328,则输出应该是77。

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

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

试题程序:

include <stdio.h>

include <conio.h>

long fun(long num)

{

/*+**+*+*+*found************/

long k=1;

do

{

k+=(num%10)*(num%10);

num/=10;

/*********+found*+**+*+******/

}while(num)

return(k);

}

main()

{

long n;

clrscr();

printf("\Please enter a number:");

scanf("%ld",&n);

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

}

点击查看答案
第7题
下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对

下列给定程序中,函数fun()的功能是:先从键盘上输入一个3行3列的矩阵的各个元素的值,然后输出主对角线元素之积。

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

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

试题程序:

include<stdio.h>

int fun()

{

int a[3][3],mu1;

int i,j;

mu1=l;

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

{

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

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

scanf(“%d”,&a[i][j]);

}

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

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

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

printf("Mu1=%d\n",mu1);

}

main()

{

fun();

}

点击查看答案
第8题
下列给定程序中,函数fun()的功能是:传入一个整数m,计算如下公式的值。 t=1/2-1/3-…-1/m 例如,若输

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

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

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

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

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

试题程序:

include <conio.h>

include <stdio.h>

double fun(int m)

{

double t=l.0;

int i;

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

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

t=l.0-1/i;

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

}

main ()

{int m;

clrscr ();

printf ("\nPlease enter 1 integer numbers

: In");

scanf ("%d", &m);

printf("\n\nThe result is %lfln",

fun (m));

}

点击查看答案
第9题
下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边
三角形还是等腰三角形。若能构成等边三角形函数,返回3;若能构成等腰三角形函数,返回2;若构成=三角形函数,返回l;若不能构成三角形函数返回0。 请修改函数fun()中的错误,得出正确的结果。 注意:不要改动main()函数,不能增行或减行,也不能更改程序的结构。 试题程序:下列给定程序中,函数fun()的功能是:根据输人的三条边长(整形),判断能否构成三角形;构成的是等边

点击查看答案
第10题
下列给定程序中,函数fun()的功能是;求S的值。设 S=(22/1*30))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2

下列给定程序中,函数fun()的功能是;求S的值。设 S=(22/1*30))*(42/(3*5))*(62/(5*7))*…*(2k)2/((2k-1)*(2k+1))

例如,当k为10时,函数的值应为1.533852。

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

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

试题程序:

include <conio. h>

include <stdio. h>

include <math.h >

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

fun (int k)

{ iht n; float s, w, p, q;

n=1;

s=1.0;

while (n<=k)

{ w=2. 0*n;

p=w-1.0;

q=w+1.0;

s=s*w*w/p/q;

n++;

}

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

return s

}

main()

{ clrscr ();

printf ("%f\n ", fun (10));

}

点击查看答案
第11题
下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。 y=1/(100×100)+1/(200×200)

下列给定程序中,函数fun()的功能是:根据整型参数m,计算如下公式的值。

y=1/(100×100)+1/(200×200)+1/(300×300)+…+1/(m×m)

例如,若m=2000,则应输出0.000160。

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

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

试题程序:

include <conio.h>

include <stdio. h>

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

fun (int m)

{ double y=0, d;

int i;

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

for (i=100, i<=m, i+=100)

{d= (double) i* (double) i;

y+=l. 0/d;

}

return (y);

}

main ()

{ int n=2000;

clrscr();

printf("\nThe result is %lf\n",fun(n));

点击查看答案
退出 登录/注册
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改