文档介绍:三级网络技术题库详解
山东农业大学计算中心
第1类结构体成员筛选并排序 1
第2类数位分解后按筛选统计并排序 6
第3类数位分解后按数筛选及求平均值 13
第4类数位分解并重组后再筛选统计并排序 15
第5类根据相邻数大小进行筛选统计并排序 21
第6类根据后3位排序 23
第7类结构体数组排序 24
第8类迭代算法 26
第9类计算素数 27
第10类统计个数及求平均值 31
第11类整除 34
第12类平均值及方差 35
第13类字符串改写 37
第14类字符串排序 39
第15类字符移动 43
第16类字符串替代 45
第17类遍历统计、移动或倒排 51
第18类选票问题 53
第19类出圈问题 55
第20类其他典型问题 56
第1类结构体成员筛选并排序
1、,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数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) /*按产品名称从大到小进行排列*/
{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }
else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/
if(sell[i].je<sell[j].je) /*则按金额从大到小进行排列*/
{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }
}
}
,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)四部分组成。其中:金额=单价*数量计算得出。函数ReadDat()是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列, 若产品名称相同, 则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()。(★★★)
参考答案:
void SortDat()
{
int i,j;
PRO xy;
for( i=0; i<MAX-1; i++ ) /*注意:MAX值为100*/
for( j=i+1; j<MAX; j++ )
{
if(strcmp(sell[i].mc,sell[j].mc)>0) /*按产品名称从小到大进行排列*/
{ xy=sell[i]; sell[i]=sell[j]; sell[j]=xy; }
else if(strcmp(sell[i].mc,sell[j].mc)==0) /*若产品名称相同*/
if(sell[i].je>sell[j].je) /*则按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。其中:金额=单价×数量。函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。请编制函数SortDat(),其功能要求:按产品名称从小到大进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()(★★)
参考答案:
void SortDat()
{
int i,j;
PRO xy;
for(i=0;i<MAX-1;i++)
for(j=i+1;j<MAX;j++)
{
if ( strcmp(sell[