玄关厂家
免费服务热线

Free service

hotline

010-00000000
玄关厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

计算机三级C语言上机试题总结之一是嘛

发布时间:2021-07-23 05:44:46 阅读: 来源:玄关厂家

计算机三级C语言上机试题总结(之一)

100个产品销售记录排序(此类共10题)

code:

/*

已知在文件T中存有100个产品销售记录, 每个产品销售

记录由产品代码dm(字符型4位), 产品名称mc(字符型10位), 单价

dj(整型), 数量sl(整型), 金额je(长整型)五部分组成。 其中:

金额=单价*数量计算得出。函数ReadDat( )读取这100个销售记录

并存入结构数组sell中。请编制函数SortDat( ), 其功能要求:

按金额从小到大进行排列, 若金额相等, 则按产品代码从小到大

进行排列, 最终排列结果仍存入结构数组sell中。最后main( )函

数调用函数WriteDat()把结果输出到文件T中。

注意: 部分源程序存放在PROG1.C中。

请勿改动主函数main( )、读数据函数ReadDat()和输出数据函

数WriteDat()的内容。

*/

#include

#include

#include

#include

#include

#define MAX 100

typedef struct {

char dm[5] ; /* 产品代码 */

char mc[11] ; /* 产品名称 */<但在肯定收缩率时/p>

int dj ; /* 单价 */

int sl ; /* 数量 */

long je ; /* 金额 */

} PRO ;

PRO sell[MAX] ;

void ReadDat() ;

void WriteDat() ;

void SortDat()

{/**/

int i,j,k;

PRO tt;

for(i=0; i MAX-1; i++)

{ k=i;

for(j=i+1; j MAX; j++)

if((sell[k].je sell[j].je)||(sell[k].je==sell[j].je) (strcmp(sell[k].dm, sell[j].dm) 0))

k=j;

if(k!=i)

{ tt=sell[k]; sell[k]=sell[i]; sell[i]=tt;}

}

/**/

}

void main()

{

memset(sell, 0, sizeof(sell))使用了大量轻量材料 ;

ReadDat() ;

SortDat() ;

WriteDat() ;

}

void ReadDat()

{

FILE *fp ;

char str[80], ch[11] ;

int i ;

fp = fopen("T", "r") ;

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("T", "w") ;

for(i = 0 ; i 100 ; i++) {

fprintf(fp, "%s %s %4d %5d %10ld\n", sell[i].dm, sell[i].mc, sell[i].dj, sell[i].sl, sell[i].je) ;

}

fclose(fp) ;

}

100个产品销售记录排序其余9题说明

1) t 内容完全相同。

2) 程序也基本雷同,仅排序的要求不一样。

3) 考生应熟悉 strcmp() 函数,否则有的题相当不好处理。

之二

排序要求:

按金额从小到大进行排列, 若金额相等, 则按产品代码从大到小

进行排列

相应语句:

if(sell[k].je sell[j].je|| (sell[k].je==sell[j].je)

(strcmp(sell[k].dm, sell[j].dm) 0))

之三

排序要求:

按金额从大到小进行排列, 若金额相等, 则按产品代码从小到大

进行排列

相应语句:

if((sell[k].je

sell[j].je)||(sell[k].je==sell[j].je) (strcmp(sell[k].dm,

sell[j].dm) 0))

之四

排序要求:

按金额从大到小进行排列, 若金额相等, 则按产品代码从大到小

进行排列

相应语句:

if((sell[k].je

sell[j].je)||(sell[k].je==sell[j].je) (strcmp(sell[k].dm,sell[j].dm) 0))

之五

排序要求:

按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小

到大进行排列

相应语句:

if((strcmp(sel1、严禁超负荷,超速度规定使用机器l[k].mc,

sell[j].mc) 0)||(strcmp(sell[k].mc,sell[j].mc)==0) (sell[k].je sell[j].je))

之六

排序要求:

按产品名称从小到大进行排列, 若产品名称相同, 则按金额从大

到小进行排列

相应语句:

if(strcmp(sell[i].mc, sell[j].mc) 0 || (strcmp(sell[i].mc,

sell[j].mc)==0) (sell[i].je sell[j].je))

之七

排序要求:

按产品名称从大到小进行排列, 若产品名称相同, 则按金额从小

到大进行排列

相应语句:

if((strcmp(sell[k].mc, sell[j].mc) 0)

(strcmp(sell[k].mc,sell[j].mc)==0) (sell[k].je sell[j].je))

之八

排序要求:

按产品名称从大到小进行排列, 若产品名称相同, 则按金额从大

到小进行排列

相应语句:

if((strcmp(sell[k].mc, sell[j].mc) 0)|| (strcmp(sell[k].mc,

sell[j].mc)==0) (sell[k].je sell[j].je))

之九

排序要求:

按产品代码从小到大进行排列, 若产品代码相同, 则按金额从小

到大进行

应城市试验机厂家
加格达奇职业装订做
定西职业装定做