耒耜lþi sì

题目

耒耜lþi sì

如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun(),该函数的功能是:把高于等于平均分的学生数据放在b所指的数组中,低于平均分的学生数据放在c所指的数组中,高于等于平均分的学生人数通过形参n传回,低于平均分的学生人数通过形参m传回,平均分通过函数值返回。

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

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

试题程序:

include <stdio.h>

define N 12

typedef struct

{char num[10];

double S;

} STREC;

double fun(STREC *a,STREC *b,STREC *C,int *n,int *m)

{

}

main()

{

STREC s[N]={{“GA05”,65},{“GA03”,86},

{“GA02”,76},{“GA04”,95},{“GA01”,93},

{“GA07”,78},{“GA08”,68},{“GA06”,88},

{“GA09”,60},{“GAll”,54},{“GAl2”,56},

{“GAl0”,98}};

STREC h[N],l[N],t;

FILE *out;

int i,j,m,n;

double ave;

ave=fun(S,h,l,&n,&m);

printf("The %d student data which is higher than %7.3f:\n",n,ave);

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

printf("%s %4.lf\n",h[i].num,

h[i].s);

printf("\n");

printf("The %d Student data which iS lower than%7.3f:\n",m,ave);

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

printf("%s %4.1f\n",l[i].num, l[i].s);

printf("\n");

ut=fopen("out26.dat", "w");

fprintf(out, "%d\n %7.3f\n",n,ave);

for(i=0;i<n-1;i++)

for(j=i+1;i<n;j++)

if(h[i].s<h[j].s)

{t=h[i];h[i]=h[i];h[j]=t;}

/*分数从现到低排列*/

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

fprintf(out,“%4.1f\n",h[i].s);

fprintf(out,"%d\n %7.3f\n",m,ave);

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

for(j=i+1;i<m;j++)

if(l[i].s<l[j].s)

{t=l[i];l[i]=l[j];l[j]=t;}

/*分数从高到低排列*/

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

fprintf(out,"%4.1f\n",l[i].s);

fclose(out);

}


正确答案:double fun (STREC *aSTREC *bSTREC *C int *nint *m) { int i; double av=0.0; *n=0; *m=0; for(i=0;iN;i++) av=av+a[i].S; av=av/N; /*求平均值*/ for(i=0;iN;i++) if(av=a[i].s) { b[*n]=a[i]; /*将高于等于平均分的学生存从所指存储单元中并统计人数*/ *n=*n+l; } else { c[*m]=a[i]; /*将低于平均分的学生存入c所指存储单元中并统计人数*/ *m=*m+1; } return av; /*返回平均分*/ }
double fun (STREC *a,STREC *b,STREC *C, int *n,int *m) { int i; double av=0.0; *n=0; *m=0; for(i=0;iN;i++) av=av+a[i].S; av=av/N; /*求平均值*/ for(i=0;iN;i++) if(av=a[i].s) { b[*n]=a[i]; /*将高于等于平均分的学生存从所指存储单元中,并统计人数*/ *n=*n+l; } else { c[*m]=a[i]; /*将低于平均分的学生存入c所指存储单元中,并统计人数*/ *m=*m+1; } return av; /*返回平均分*/ } 解析:本题中第1个循环的作用求出所有分数的总和,只有进行了av=av/N后才得到平均值(我们在前面的程序中碰到过类似问题)。第2个循环的作用是将高于等于平均分的学生存/kb所指存储单元中,将低于平均分的学生存入c所指存储单元中。同一结构体变量之间可以互相赋值。
本程序中直接用*n,*m来分别表示b,c的下标,注意开始时要给*n,*m赋0,且使用时不能少*号。因为单独的n, m是一个指针变量,而我们要用的是它所指向的那个存储单元中的值。

第2题:

在IS曲线和LM曲线相交的时候()。

A.I=S=L=M

B.I=S,L=M

C.I=L,S=M

D.I=M,S=L


参考答案:A

第3题:

2 0 .进行键盘输入的大小写转换的控制键是( ) 。

A .C a p s l o c k

B .S h i f t

C .N u m l o c k

D .A I t


正确答案:A
2 0 .【答案】 A
【考点】 键盘的使用 
【解析】 控制键C a p s l o c k 的功能是进行键盘输入的大小写转换。S h i f t 也称转换键,但它必须与字母键同时配合,才能进行大、小写字母的转换。A I t 键通常不能单独使用,要与其他键配合使用,才能发生作用。N u m l o c k 键用于控制小键盘中双符号键的状态转换。

第4题:

以下程序的输出结果是#include <stdio.h>int fun(int x){ static int m=0; return(m *=x);}main(){ int s,i; for(i=l;i<=3;i++) s=fun(i); printf("%d\n",s);}


正确答案:10
本题考查静态局部变量的使用。静态局部变量用static进行声明,该变量的内存存储空间在整个程序的运行期间都不释放,进行编译时,只对静态局部变量赋初值一次,以后每次调用函数时,不再重新赋初值,而只是保留上次函数调用结束时的值。题目中的程序包括两个部分,一个是fun函数,另一个是main函数。main函数给出了变量s的初始值,s=0。for语句是对fun函数进行调用,将结果与s进行相加,并将和赋给s。仔细分析for语句的结构可知,该语句要循环运行3次。函数fun的实参即for语句的循环变量。三次调用的实参数值分别为1、2、3。fun函数的功能是完成m+=x操作,其中m为静态局部变量,初始值为0。第一次调用时,i=1,对于fun函数来说,也就是x=1,m=0,进行m+=x操作后,m=1,将m值返回,在main函数中执行s+=fun(i)语句,得到s=1。第二次调用时,i=2,fun函数中x=2,注意,此时m=1,为上次调用该函数的结果,而不是0,进行m+=x操作后,得到m=3,将该结果返回,s=4。第三次调用时,i=3,x=3,m=3,进行m+=x操作后,得到m=6,将该结果返回得到s=10。到此for语句结束,执行printf语句,输出结果10。

第5题:

已知程序段: s=0 For i=1 to 10 step2 s=s+l i=i*2 Next i当循环结束后,变量i、s值分别为( )。

A.22、3

B.11、4

C.10、5

D.16、6


正确答案:A

第6题:

include void main() int s=0 for(int i=l;i<=8;i十=2) s十=i*i

#include

void main()

int s=0

for(int i=l;i<=8;i十=2)

s十=i*i

cout<<"s="<

}

输出结果:


参考答案s=84

第7题:

已知程序段: s=O For i=O to 10 step 2 S=S+l i=i*2 Next i 当循环结束后,变量i、s值分别为( )。

A.22,3

B.11,4

C.10,5

D.16, 6


正确答案:A
解析:本题考查基本的循环结构。第1次循环后,i值变为2,s值为l第2次循环后,i值变为8,s值为2;依次类推,i值最后为22,s值为3。答案为A。

第8题:

LIAS0101中L代表()、I代表()、A代表()、S代表()。


本题答案:液位;集中指示;报警;联锁

第9题:

执行如下程序,最后S的显示值为 SET TALK OFF S=0 i=5 X=11 DO WHILE S<=x S=S +i I = I +l ENDDO ?s SET TALK ON

A.5

B.11

C.18

D.26


正确答案:C
解析:该循环语句中,变量s和i每次执行循环后值的变化如下:
  s值  i值
  第一次循环  5  6
  第二次循环  11  7
  第三次循环  18  8
  程序在第四次执行循环时,因条件(18<;11)为假而退出循环。

第10题:

以下程序的输出结果是( )。 main { int a[3][3]=“l,2),{3,4),{5,6)},i,j,s=0; for(i=1;i<3;i++) for(j=0;j<=i;j++)s+=a[i][j]; printf(”%d\n”,s); }

A.18

B.19

C.20

D.21


正确答案:A
循环的作用是求行下标从1到2列下标从0到i的元素之和,即s=a[1][0]+a[1][1]+a[2][0]+a[2][1]+a[2][2]=3+4+5+6+0=18。

更多相关问题