计算机三级考试上机最新南开100精简版 联系客服

发布时间 : 星期五 文章计算机三级考试上机最新南开100精简版更新完毕开始阅读52f6a7e79b89680203d82575

#define MAX 100 typedef struct{

char dm[5]; /*产品代码*/ char mc[11]; /*产品名称*/ int dj; /*单价*/ int sl; /*数量*/ long je; /*金额*/ }PRO;

PRO sell[MAX]; void ReadDat(); void WriteDat();

void SortDat() {int i,j; PRO xy;

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

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

if(strcmp(sell[i].mc,sell[j].mc)>0||strcmp(sell[i].mc,sell[j].mc)==0&&sell[i].je>sell[j].je) {xy=sell[i];sell[i]=sell[j];sell[j]=xy;} }

void main() {

memset(sell,0,sizeof(sell)); ReadDat(); SortDat(); WriteDat(); }

void ReadDat() {

FILE *fp;

char str[80],ch[11]; int i;

fp=fopen(\ for(i=0;i<100;i++){ fgets(str,80,fp);

memcpy(sell[i].dm,str,4); memcpy(sell[i].mc,str+4,10); memcpy(ch,str+14,4);ch[4]=0; sell[i].dj=atoi(ch);

memcpy(ch,str+18,5);ch[5]=0;

sell[i].sl=atoi(ch);

sell[i].je=(long)sell[i].dj*sell[i].sl; }

fclose(fp); }

void WriteDat() {

FILE *fp; int i;

fp=fopen(\ for(i=0;i<100;i++){

printf(\ fprintf(fp,\ }

fclose(fp); }??

************************************************************************** ★☆题目14(整数统计排序题)

已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:依次从数组a中取出一个四位数,如果该四位数连续大于该四位数以后的五个数且该数是奇数(该四位数以后不满五个数,则不统计),则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat( )把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。 注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #define MAX 200

int a[MAX], b[MAX], cnt = 0 ;

void jsVal() {int i,j,flag;

for(i=0;i

if(a[i]>a[j]&&a[i]%2) flag=1; else {flag=0;break;} if(flag==1) b[cnt++]=a[i]; }

for(i=0;i

if(b[i]>b[j]) {flag=b[i];b[i]=b[j];b[j]=flag;} }

void readDat() {

int i ;

FILE *fp ;

fp = fopen(\

for(i = 0 ; i < MAX ; i++) fscanf(fp, \ fclose(fp) ; }

void main() {

int i ;

readDat() ; jsVal() ;

printf(\满足条件的数=%d\\n\

for(i = 0 ; i < cnt ; i++) printf(\ printf(\ writeDat() ; }

writeDat() {

FILE *fp ; int i ;

fp = fopen(\ fprintf(fp, \

for(i = 0 ; i < cnt ; i++) fprintf(fp, \ fclose(fp) ; }

********************************************************************* ★题目15(整数各位数字运算排序题)

已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数cnt并把这些四位数按从小到大的顺序存入数组b中,最后调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。

注意:部分源程序存在文件prog1.c中。

程序中已定义数组:a[200],b[200],已定义变量:cnt

请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。 #include #define MAX 200

int a[MAX], b[MAX], cnt=0;

void jsVal() {int i,j;

int qw,bw,sw,gw; for (i=0;i

{qw=a[i]/1000; bw=a[i]00/100; sw=a[i]0/10; gw=a[i];

if((qw<=bw)&&(bw<=sw)&&(sw<=gw)&&(a[i]%2==0)) }

for(i=0;i

if (b[i]>b[j]) {qw=b[i];b[i]=b[j];b[j]=qw;} }

void readDat() {

int i ;

FILE *fp ;

fp = fopen(\

for(i = 0 ; i < MAX ; i++) fscanf(fp, \ fclose(fp) ; }

void main() {

int i ;

readDat() ; jsVal() ;

printf(\满足条件的数=%d\\n\

for(i = 0 ; i < cnt ; i++) printf(\ printf(\ writeDat() ; }

writeDat() {

FILE *fp ; int i ;

b[cnt++]=a[i];