if(b[j]>b[j+1])
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
18
104610581254146215781644180818861906216823622398243825602624273628843388
04.已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:
金额=单价*数量计算得出。
函数ReadDat()是读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按产品名称从小到大进行排列,若产品名称相等,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT1.DAT中。
提示:
若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题。
例如:
seli[i]=temp
注意:
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
/*参考答案*/
inti,j;
PROcell;
for(i=0;i<99;i++)
for(j=0;j<99;j++)
if(strcmp(sell[j].mc,sell[j+1].mc)>0||strcmp(sell[j].mc,sell[j+1].mc)==0&&sell[j].je>sell[j+1].je)
{cell=sell[j];sell[j]=sell[j+1];sell[j+1]=cell;}
运行结果前几行:
10063M3.53150450
10063M3.53150450
10063M3.53250750
10063M3.53300900
1012ACCESS64784992
1012ACCESS64784992
1012ACCESS64784992
1012ACCESS6417811392
05.已知数据文件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()的内容。
/*参考答案*/
inti,j,t;
for(i=0;iif(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0&&a[i]%2==0)
b[cnt++]=a[i];
for(i=0;ifor(j=0;jif(b[j]>b[j+1])
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
2
10461058
06.函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结果xx输出到文件PS3.DAT中。
替代关系:
f(p)=p*17mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)式计算后无符号的整型值(注意:
中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)值是奇数,则该字符不变,否则将f(p)所对应的字符进行替代。
部分源程序存在文件prog1.c中。
原始数据文件存放的格式是:
每行的宽度均小于80个字符。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()的内容。
/*参考答案*/
inti,j,f;
for(i=0;ifor(j=0;j{f=xx[i][j]*17%256;
if(f<=32||(f%2!
=0))
;
elsexx[i][j]=f;
}
运行结果:
YoumayWA.?
AEL?
iN苅e,?
iNeac?
抏co挙磑uNique,yiN磇苰磋a?
R3t
抏co挙茠oma,,o磋e?
抏co挙sI.斎ELE.?
e鴄mp,e?
磋eEmp,oyee1R3t5?
.um俥?
苅e,?
isuNiquei?
you凮.O?
ASSIG.磋esameNum俥?
磑磜o1R3t5?
?
破e抏N?
emp,oyees?
aN?
youNe謊?
抏assigN斎ESE.UMbErS磑o磋e?
R3t5?
?
emp,oyees.I?
youwis?
磑.?
OrMO処磋e抏co挙俥,oNgiNg磑a11111111
speci苅cemp,oyee?
磋isuNiqueEL?
SA禘S磋e磋ou?
eo?
磂抦iNiNgRRRRR
w鑕磋e?
you鑑謊磋eco拻ec?
抏co挙.1R3t5?
?
01R3t5?
I?
youNo?
鑑謊auNique苅e,れYOUMUS?
.?
斎E苅抯?
抏co挙1R3t5?
?
磋ema碿鑕syou?
keyaN?
磂抦iNew鑕磋e?
斎E.rECOr?
is磋eoNeyou33333
waN?
I?
i?
isNo?
磋eCOrrEC?
O.E?
youmus?
sea抍?
agaiN磑苅N?
o磋e抯.t
07.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
如果四位数各位上的数字均是0或2或4或6或8,则统计出满足此条件的个数cnt,并把这些四位数按从大到小的顺序存入数组b中。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件prog1.c中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
/*参考答案*/
inti,j,t;
for(i=0;iif(a[i]/1000%2==0&&a[i]/100%10%2==0&&a[i]/10%2==0%10&&a[i]%10%2==0)
b[cnt++]=a[i];
for(i=0;ifor(j=0;jif(b[j]
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
11
84486820448840602888288426862624248424202042
08.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrCharJR(),其函数的功能是:
以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。
最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT8.DAT中。
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
/*参考答案*/
inti,j;
for(i=0;i{for(j=0;jxx[i][j]=xx[i][j]+(xx[i][j]>>4);
}
运行结果前几行:
^u|"igt"iykg{k"gt"otjk"ut"gt€"lokrj."ut"zk}kygr"lokrjz"{u"hk"|zkj
{umk{nky."uy"ut"wgy{z"{nkykul."{ng{"€u|"~gt{"{u"|zk"gz"g"qk€0"Ynk
qk€z"ot"otjkkz"grru~"€u|"x|oiq"giikzz"{u"zwkioloi"ykiuyjz"gtj"jklotk
uyjkyz"luy"zkx|kt{ogr"wyuikzzotm"ul"g"MXEQ"lork0"El{ky"€u|"tu"rutmky
09.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件prog1.c中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
/*参考答案*/
inti,j,s1,s2;
for(i=0;is2=a[i]%10*10+a[i]/100%10;
if(s1=0&&s2%2==0&&s1>=10&&s2>=10)
b[cnt++]=a[i];
}
for(i=0;ifor(j=0;jif(b[j]
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
12
787854373897289328772438203920352033161914941493
10.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和个位数字重新组成一个新的十位数(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的个位数字),以及把百位数字和十位数字组成另一个新的十位数(新十位数的十位数字是原四位数的百位数字,新十位数的个位数字是原四位数的十位数字),如果新组成的两个十位数均是奇数并且两个十位数中至少有一个数能被5整除,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件prog1.c中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
/*参考答案*/
inti,j,s1,s2;
for(i=0;is2=a[i]/100%10*10+a[i]/10%10;
if((s1%5==0||s2%5==0)&&s1%2&&s2%2&&s1>=10&&s2>=10)
b[cnt++]=a[i];
}
for(i=0;ifor(j=0;jif(b[j]
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
10
9851827563755755535949514595439535753135
11.现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:
内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。
给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。
请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。
把结果yy输出到文件OUT.DAT中。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
/*参考答案*/
inti,j,count;
for(i=0;i<100;i++)
{count=0;
for(j=0;xx[i][j];j++)
if(xx[i][j]=='1')count++;
if(count<=5);
elsefor(j=0;xx[i][j];j++)
{if(xx[i][j]=='1')yy[j]++;}
}
运行结果:
44
31
33
25
25
24
30
29
25
27
12.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数jsVal(),其功能是:
把千位数字和十位数字重新组成一个新的十位数ab(新十位数的十位数字是原四位数的千位数字,新十位数的个位数字是原四位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新十位数的十位数字是原四位数的个位数字,新十位数的个位数字是原四位数的百位数字),如果新组成的两个十位数ab-cd>=10且ab-cd<=20且两个数均是偶数,同时两个新数的十位数字均不为零,则将满足此条件的四位数按从大到小的顺序存入数组b中,并要计算满足上述条件的四位数的个数cnt。
最后main()函数调用写函数writeDat()把结果cnt以及数组b中符合条件的四位数输出到OUT.DAT文件中。
注意:
部分源程序存在文件prog1.c中。
程序中已定义数组:
a[200],b[200],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和写函数writeDat()的内容。
/*参考答案*/
inti,j,t,s1,s2;
for(i=0;i{s1=(a[i]/1000)*10+a[i]/10%10;s2=a[i]%10*10+a[i]/100%10;
if(s1-s2>=10&&s1-s2<=20&&!
(s1%2)&&!
(s2%2)&&s1>=10&&s2>=10)
b[cnt++]=a[i];
}
for(i=0;ifor(j=0;jif(b[j]
{t=b[j];b[j]=b[j+1];b[j+1]=t;}
运行结果:
5
90685224502438212281
13.函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数ConverCharD(),其函数的功能是:
以行为单位把字符串中的所有小写字母改写成该字母的上一个字母,如果是字母a,则改写成字母z。
大写字母仍为大写字母,小写字母仍为小写字母,其它字符不变。
最后把已处理的字符串仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT4.DAT中。
例:
原文:
Adb.Bcdza
abck.LLhj
结果:
Aca.Bbcyz
zabj.LLgi
原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格。
部分源程序存在文件prog1.c中。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数writeDat()的内容。
inti,j,p;
for(i=0;ifor(j=0;xx[i][j];j++)
if(xx[i][j]>'a'&&xx[i][j]<='z')
xx[i][j]--;
elseif(xx[i][j]=='a')
xx[i][j]='z';
运行结果前几行:
Yntbzmbqdzsdzmhmcdwnmzmxehdkc,nmrdudqzkehdkcrsnadtrdc
snfdsgdq,nqnmozqsrsgdqdne,sgzsxntvzmssntrdzrzjdx.Tgd
jdxrhmhmcdwdrzkknvxntpthbjzbbdrrsnrodbhehbqdbnqcrzmccdehmd
nqcdqrenqrdptdmshzkoqnbdrrhmfnezISAMehkd.Aesdqxntmnknmfdq
14.已知数据文件IN.DAT中存有200个四位数,并已调用读函数readDat()把这些数存入数组a中,请考生编制一函数js