全国计算机三级考试机试题库100套完整版.docx
《全国计算机三级考试机试题库100套完整版.docx》由会员分享,可在线阅读,更多相关《全国计算机三级考试机试题库100套完整版.docx(101页珍藏版)》请在冰豆网上搜索。
全国计算机三级考试机试题库100套完整版
2013年3月全国计算机三级考试机试题库(100套完整版)
1、已知在文件IN1.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
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;}
elseif(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;}
}
}
2、已知在文件IN2.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT2.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{
if(strcmp(sell[i].mc,sell[j].mc)<0)/*按产品名称从大到小进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(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;}
}
}
3、已知在文件IN3.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT3.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(strcmp(sell[i].dm,sell[j].dm)<0)/*按产品代码从大到小进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].dm,sell[j].dm)==0)/*若产品代码相同*/
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
4、已知在文件IN4.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从大到小进行排列,若产品名称相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT4.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
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;}
elseif(strcmp(sell[i].mc,sell[j].mc)==0)/*若产品名称相同*/
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
5、已知在文件IN5.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按金额从大到小进行排列,若金额相等,则按产品代码从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT5.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)/*若金额相同*/
if(strcmp(sell[i].dm,sell[j].dm)>0)/*则按代码从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
6、已知在文件IN6.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品代码从小到大进行排列,若产品代码相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT6.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;ifor(j=i+1;j{
if(strcmp(sell[i].dm,sell[j].dm)>0)/*按代码从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(strcmp(sell[i].dm,sell[j].dm)==0)/*若代码相同*/
if(sell[i].je>sell[j].je)/*则按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
7、已知在文件IN7.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中:
金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按金额从大到小进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT7.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(sell[i].je{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)/*若金额相同*/
if(strcmp(sell[i].dm,sell[j].dm)<0)/*则按代码从大到小进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
8、已知在文件IN8.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。
其中,金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。
请编制函数SortDat(),其功能要求:
按金额从小到大进行排列,若金额相同,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT8.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(sell[i].je>sell[j].je)/*按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)/*若金额相同*/
if(strcmp(sell[i].dm,sell[j].dm)<0)/*则按代码从大到小进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
9、已知在文件IN9.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)五部分组成。
其中,金额=单价×数量。
函数ReadDat()的功能是读取这100个销售记录并存入数组sell中。
请编制函数SortDat(),其功能要求:
按金额从小到大进行排列,若金额相同,则按产品代码从小到大进行排列,排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT9.DAT中。
注意:
部分源程序已给出。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
【参考答案】
voidSortDat()
{
inti,j;
PROxy;
for(i=0;i<99;i++)
for(j=i+1;j<100;j++)
{
if(sell[i].je>sell[j].je)/*按金额从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
elseif(sell[i].je==sell[j].je)/*若金额相同*/
if(strcmp(sell[i].dm,sell[j].dm)>0)/*则按代码从小到大进行排列*/
{xy=sell[i];sell[i]=sell[j];sell[j]=xy;}
}
}
10、已知数据文件IN10.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT10.DAT文件。
例如:
9123,9-1-2-3>0,则该数满足条件存入数组b,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条件,忽略。
注意:
部分源程序已给出。
程序中已定义数组:
a[300],b[300];已定义变量:
cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】
jsValue()
{
inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{
thou=a[i]/1000;/*取得四位数的千位数字*/
hun=a[i]%1000/100;/*取得四位数的百位数字*/
ten=a[i]%100/10;/*取得四位数的十位数字*/
data=a[i]%10;/*取得四位数的个位数字*/
if(thou-hun-ten-data>0)
{b[cnt]=a[i];cnt++;}
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}
}
11、已知数据文件IN11.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。
请编制一个函数jsValue(),其功能是:
求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT11.DAT文件。
例如:
6712,6+2=7+1,则该数满足条件存入数组bb中,且个数cnt=cnt+1。
8129,8+9≠1+2,则该数不满足条件,忽略。
注意:
部分源程序已给出。
程序中已定义数组:
a[300],b[300];已定义变量:
cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】
voidjsValue()
{
inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{
thou=a[i]/1000;/*取得四位数的千位数字*/
hun=a[i]%1000/100;/*取得四位数的百位数字*/
ten=a[i]%100/10;/*取得四位数的十位数字*/
data=a[i]%10;/*取得四位数的个位数字*/
if(thou+data==hun+ten)
{b[cnt]=a[i];cnt++;}
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){data=b[i];b[i]=b[j];b[j]=data;}
}
12、已知数据文件IN12.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:
求出个位数上的数减千位数上的数减百位数上的数减十位数上的数大于零的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT12.DAT文件。
例如:
1239,9-1-2-3>0,则该数满足条件,存入数组b中,且个数cnt=cnt+1。
8129,9-8-1-2<0,则该数不满足条件,忽略。
注意:
部分源程序已给出。
程序中已定义数组:
a[300],b[300];已定义变量:
cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】
voidjsValue()
{
inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{
thou=a[i]/1000;/*取得四位数的千位数字*/
hun=a[i]%1000/100;/*取得四位数的百位数字*/
ten=a[i]%100/10;/*取得四位数的十位数字*/
data=a[i]%10;/*取得四位数的个位数字*/
if(data-thou-hun-ten>0)
{b[cnt]=a[i];cnt++;}
}
for(i=0;ifor(j=i+1;jif(b[i]
}
13、已知数据文件IN13.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:
求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足条件的四位数依次存入数组b中,然后对数组b中的四位数按从大到小的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT13.DAT文件。
例如:
7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+1≠2+9,则该数不满足条件,忽略。
注意:
部分源程序已给出。
程序中已定义数组:
a[300],b[300];已定义变量:
cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】
voidjsValue()
{
inti,thou,hun,ten,data,j;
for(i=0;i<300;i++)
{
thou=a[i]/1000;/*取得四位数的千位数字*/
hun=a[i]%1000/100;/*取得四位数的百位数字*/
ten=a[i]%100/10;/*取得四位数的十位数字*/
data=a[i]%10;/*取得四位数的个位数字*/
if(thou+hun==data+ten)
{b[cnt]=a[i];cnt++;}
}
for(i=0;ifor(j=i+1;jif(b[i]
}
14、已知数据文件IN14.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中。
请编制一个函数jsValue(),其功能是:
求出所有这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,然后对数组b中的四位数按从小到大的顺序进行排序,最后调用写函数writeDat()把结果输出到OUT14.DAT文件。
例如:
5591是素数,则该数满足条件存入数组b中,且个数cnt=cnt+1。
9812是非素数,则该数不满足条件,忽略。
注意:
部分源程序已给出。
程序中已定义数组:
a[300]、b[300];已定义变量:
cnt。
请勿改动主函数main()、读函数readDat()和写函数writeDat()的内容。
【参考答案】
voidjsValue()
{
intj,i,value;
for(i=0;i<300;i++)
if(isP(a[i])){b[cnt]=a[i];cnt++;}
for(i=0;ifor(j=i+1;jif(b[i]>b[j]){value=b[i];b[i]=b[j];b[j]=value;}
}
15、已知数据文件IN15.DAT中存有300个四位数,并已调用读函数readDat()把这些数存入数组a中,请编制一个函数jsValue(),其功能是:
求出千位数上的数减百位数上的数减十位数上的数减个位数上的数大于零的个数cnt,再求出所有满足此条件的四位数的平均值pjz1,以及不满足此条件的四位数的平均值pjz2,最后调用写函数writeDat()把结果输出到OUT15.DAT文件。
例如:
9123,9-1-2-3>0,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。
9812,9-8-1-2<0,则该数不满足条