已知数据文件in. dat中存有10组每组20个四位数的数据,每个数据间用空格分隔,调用读函数ReadDat()把这10组数据存人数组aa中(其中,aa定义为int aa [10][20])。请编制一函数jsVal(),其功能是:首先将每组20个数按从小到大的顺序进行排序,排序后的结果仍存人数组aa中,接着去掉每组中最中间的两个数以及最小的两个数,然后计算其余16个数的算术平均值,并将计算结果按组的顺序依次存人数组bb中(其中,数组bb定义为float bb[10]),最后调用写函数WriteDat()把结果bb输出到文件out.dat中。
注意:部分源程序已给出。
程序中已定义全局变量:aa[10][20]、bb[10]。
请勿改动数据文件in. dat中的任何数据、主函数main()、读函数ReadDat()和写函数WriteDat()的内容。
.试题程序
include
int aa[10][20];
float bb[10];
void jsVal()
{
}
void ReadDat()
{
int i,j;
FILE * fp;
fp=fopen("in, dat","r");
for(i=0; i<10; i++)
for(j=0 d<20; j++) fseanf (fp,"%d", &aa[i][j])
fclose(fp);
}
void main()
int i;
ReadDat(); /*读数据*/
jsVal(); / *按要求计算* /
for(i=0;i<10;i++) /*从屏幕输出结果*/
prinff("%6.21f\n", bb[i])
WriteDat(); / *输出结果到文件* /
}
WriteDat()
{
FILE * fp;
int i;
fp=fopen("out, dat","w");
for(i=0; i<10;i++)
fprintf(fp,"%6.21f\n",bb[i]);
fclose(fp);
}
图1-3
要求:去掉程序中的注释符"‘",把程序中的"?"改为正确的内容, 使其实现上述功能,但不能修改程序中的其他部分。最后把修改后的文件按原文件名存盘。
(2)在考生文件夹下有工程文件sj4.vbp及窗体文件sj4.frm,该程序是不完整的,请在有"?"号的地方填入正确内容,然后删除"?"及代码前的所有注释符(即‘号),但不能修改其他部分。存盘时不得改变文件名和文件夹。
本题描述如下:
本程序的功能为当用户单击窗体上的命令按钮"输入"时,可以输入6个数值,随后程序对这6个数值进行升序排序,单击按钮"输出"则把大于平均值的数显示出来,程序运行时的窗体如图1-4所示。
图1-4
已知在文件IN.dat中存有若干个(少于200个)四位数字的正整数,函数ReadDat()读取这若干个正整数并存入数组number中。请编写函数CalValue(),其功能要求是:①求出文件中共有的正整数个数totNum;②求这些数右移1位后,产生的新数是奇数的数的个数totCnt以及满足此条件的这些数(右移前的值)的算术平均值totAve。最后调用函数writeDat()把所求的结果输出到OUT.dat文件中。
注意:部分源程序已经给出。请勿改动主函数main()、读函数ReadDat()和写函数writeDat()的内容。
include <stdio.h>
include <conio. h>
define MAXNUM 200
int number [MAXNUM];
int totNum = 0; /* 文件IN.dst 中共有的正整数个数*/
int totCnt = 0; /* 符合条件的正整数的个数*/
double totAve = 0.0; /* 平均值 */
int ReadDat (void);
void writeDat(void);
void CalValue(void)
{
}
void main ()
{ int i;
for (i=0; i<MAXNUM; i++)
number [i] = 0;
if (ReadDat())
{ printf (" 数据文件 IN.dst 不能打开! \007\n");
return;
}
CalValue ();
printf(" 文件 IN.dst 中共有的正整数个数=%d个\n", totNum);
printf (" 符合条件的正整数的个数 =%d个\n", totCnt);
printf("平均值=%.2f\n", totAve);
writeDat ();
}
int ReadDat (void)
{ FILE *fp;
int i = 0;
if ((fp = fopen("IN.dat", "r")) == NULL)
return 1;
while (!feof(fp))
fscanf(fp, "%d,", &number [i++]);
fclose (fp);
return 0;
}
void writeDat (void)
{ FILE *fp;
fp = fopen("OUT.dat", "w");
fprintf(fp, "%d\n%d\n%6.2f\n", totNum, totCnt, totAve);
fclose (fp);
}
本程序不完整,请补充完整,并能正确运行。
要求:
去掉程序中的注释符“'”,把程序中的问号“?”改为正确的内容,使其实现上述功能,但不得修改程序的其他部分。最后,按原文件名并在原文件夹中保存修改后的文件。
在文件in33.dat中有200个正整数,且每个正整数均在1000至9999之间。函数readDat()的功能是读取这200个数并存放到数组aa中。请编制函数jsSort(),该函数的功能是:要求按照每个数的后3位的大小进行升序排列,将排序后的前10个数存入数组bb中,如果数组bb中出现后3位相等的数,则对这些数按原始 4位数据进行降序排列,最后调用函数writeDat()把结果bb输出到文件out33.dat中。
例如:处理前6012 5099 9012 7025 8088
处理后9012 6012 7025 8088 5099
注意:部分源程序已给出。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
试题程序:
include<stdio. h>
include<string. h>
include<conio. h>
int aa[200] ,bb[10];
void readDat ();
void writeDat();
void jsSort()
{
void main ()
{
readDat ();
jsSort ();
writeDat ();
}
void readDat ()
{
FILE *in;
int i;
in=fopen ("in33 .dat" , "r" );
for(i=0;i<200;i++) fscanf (in, "%d ".&aa[i]);
fclose (in);
}
void writeDat ()
{
FILE *out;
int i;
clrscr ();
ut =fopen ("out33 .dar" , "w" );
for (i=0; i<10; i++)
{
printf ("i=%d, %d\n", i+1, bb[i] ;
fprintf (out, "%d\n" ,bb[i] );
}
fclose (out);
}
向顺序文件Temp.txt中写入1,2,3这3个数。在程序中加入以下语句的那项可以使程序功能完整。 Private Sub Command1_Click() Open"c:\Temp.txt",Output As #1 For i=0 To 3 ______ Next Close #1 End Sub
A.Print #1,Temp.txt
B.Get #1,i
C.Print #1,i
D.Unit #1,i
A.0 10000110 01100100010000000000000
B.0 10000111 01100100010000000000000
C.1 10000100 01100100010000000000000
D.0 10000110 11100100010000000000000