三级计算机网络上机题精华50题.docx
《三级计算机网络上机题精华50题.docx》由会员分享,可在线阅读,更多相关《三级计算机网络上机题精华50题.docx(57页珍藏版)》请在冰豆网上搜索。
三级计算机网络上机题精华50题
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第01套:
(和第28套对比)
已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些
数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数加百位数
上的数等于十位数上的数加个位数上的数的个数cnt,再把所有满足此条件的四位
数依次存入数组b中,然后对数组b的四位数按从大到小的顺序进行排序。
最后
main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。
例如:
7153,7+1=5+3,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+1!
=2+9,则该数不满足条件忽略。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[300],b[300],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()和
写函数writeDat()的内容。
【参考答案】
jsValue()
{inti,j;/*定义变量*/
inta1,a2,a3,a4;
inttemp;
for(i=0;i<300;i++)
{a1=a[i]%10;/*数位分解*/
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]/1000;
if(a4+a3==a2+a1)/*判断条件*/
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]
{temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第2套:
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到无符号字符串
数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符
进行替代,其替代值仍存入数组xx所对应的位置上,最后调用函数WriteDat()把结
果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的
ASCII值,f(p)是计算后无符号的整型值(注意:
中间变量定义成整型变量),如果
原字符是数字字符0至9或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替
代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽
度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读数据函数ReadDat()和输出数据函数WriteDat()
的内容。
【参考答案】
voidencryptChar()
{inti,j,val;/*定义变量*/
for(i=0;ifor(j=0;j<80;j++)
{val=xx[i][j]*11%256;/*替代关系*/
if(xx[i][j]>='0'&&xx[i][j]<='9'||val<=32)/*判断条件*/
continue;
elsexx[i][j]=val;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第3套:
已知数据文件IN.DAT中存有300个四位数,并已调用读函数readDat()把这些
数存入数组a中,请编制一函数jsValue(),其功能是:
求出千位数上的数加个位
数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的四
位数依次存入数组b中,然后对数组b的四位数按从小到大的顺序进行排序。
最后
main()函数调用写函数writeDat()把数组b中的数输出到文件OUT.DAT中。
例如:
6712,6+2=7+1,则该数满足条件存入数组b中,且个数cnt=cnt+1。
8129,8+9!
=1+2,则该数不满足条件忽略。
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义数组:
a[300],b[300],已定义变量:
cnt
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数readDat()
和写函数writeDat()的内容。
【参考答案】
voidjsValue()
{inti,j;/*定义变量*/
inta1,a2,a3,a4;
inttemp;
for(i=0;i<300;i++)
{a1=a[i]%10;/*数位分解*/
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]/1000;
if(a4+a1==a3+a2)/*判断条件*/
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j])
{temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第4套:
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到无符号字符串
数组xx中,请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符
进行替代,其替代值仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*17mod256,mod为取余运算,p是数组xx中某一个字符的
ASCII值,f(p)是计算后的无符号整型值(注意:
中间变量定义成整型变量),如果
计算后f(p)值小于等于32或f(p)是奇数时,则该字符不变,否则用f(p)替代所对应
的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽
度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
voidencryptChar()
{inti,j,val;/*定义变量*/
for(i=0;ifor(j=0;j<80;j++)
{val=xx[i][j]*17%256;/*替代关系*/
if(val<=32||val%2==1)/*判断条件*/
continue;
elsexx[i][j]=val;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第5套:
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到无符号字符串
数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符
进行替代,其替代值仍存入数组xx的对应的位置上,最后调用函数WriteDat()把结
果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的
ASCII值,f(p)是计算后无符号的整型值(注意:
中间变量定义成整型变量),如果
原字符是大写字母或计算后f(p)值小于等于32,则该字符不变,否则用f(p)替代
所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽
度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
voidencryptChar()
{inti,j,val;/*定义变量*/
for(i=0;ifor(j=0;j<80;j++)
{val=xx[i][j]*11%256;/*替代关系*/
if(xx[i][j]>='A'&&xx[i][j]<='Z'||val<=32)/*判断条件*/
continue;
elsexx[i][j]=val;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第6套:
将文件IN.DAT中的200个整数读至数组xx中。
请编制jsValue()函数,要求:
求出数组xx中的数值为奇数的个数cnt1和数值为偶数的个数cnt2以及数组xx下标
为奇数的元素值的算术平均值pj。
结果cnt1,cnt2,pj输出到OUT.DAT中。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件IN.DAT中的任何数据、主函数main()、读函数read_dat()
和输出函数writeDat()的内容。
【参考答案】
voidjsValue()
{inti;/*定义变量*/
for(i=0;i{if(xx[i]%2==1)cnt1++;
elsecnt2++;
if(i%2==1)pj+=xx[i];
}
pj/=(N/2);/*求平均值*/
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第7套:
程序PROG1.C的功能是:
将大于整数m且紧靠m的k个素数存入数组xx。
请
考生编写函数num(intm,intk,intxx[])实现程序的要求,最后调用函
数readwriteDAT()把结果输出到out.dat文件中。
例如,若输入17,5,则应输出:
19,23,29,31,37。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()和输出函数
readwriteDAT()的内容。
【参考答案】
voidnum(intm,intk,intxx[])
{intcnt=0;/*定义变量*/
while(cnt{m++;
if(isP(m))xx[cnt++]=m;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第8套:
已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已
调用读函数readDat()把这两个文件中的数存入数组a和b中,请考生编制一个
函数jsVal(),实现的功能是依次对数组a和b中的数按条件重新组成一个新数
并依次存入数组c中,再对数组c中的数按从小到大的顺序进行排序,最后调用
输出函数writeDat()把结果c输出到文件OUT.DAT中。
组成新数的条件:
如果数组a和b中相同下标位置的数均是奇数,则数组a
中十位数字为新数的千位数字,个位数字仍为新数的个位数字,数组b中的十
位数字为新的百位数字,个位数字为新的十位数字,这样组成的新数并存入
数组c中。
例如:
a:
123124152115
b:
324517271815
c:
345112751155
排序后c:
115512753451
注意:
部分源程序存在文件PROG1.C文件中。
程序中已定义:
a[100]、b[100]和c[100]。
请勿改动数据文件IN1.DAT和IN2.DAT中的任何数据、主函数main()、读函
数readDat()和写函数writeDat()的内容。
【参考答案】
voidjsVal()
{inti,j;/*定义变量*/
inta1,a2,b1,b2;
intab;
inttemp;
for(i=0;i{a1=a[i]%10;/*数位分解*/
a2=a[i]/10;
b1=b[i]%10;
b2=b[i]/10;
ab=a2*1000+b2*100+b1*10+a1;/*数位重组*/
if(a[i]%2==1&&b[i]%2==1)/*判断条件*/
c[cnt++]=ab;
}
for(i=0;ifor(j=i+1;jif(c[i]>c[j])
{temp=c[i];
c[i]=c[j];
c[j]=temp;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第9套:
编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2
的子字符串substr在另一个字符串str中出现的次数,该次数作为函数值返回。
例如,假定输入的字符串为"asdasasdfgasdaszx67asdmklo",子字符串
为"as",函数返回值是6。
函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),
最后把结果输出到文件out.dat中。
注意:
部分源程序存在文件PROG1.C中。
请勿改动主函数main()和其它函数中
的任何内容,仅在函数findStr()的花括号中填入你编写的若干语句。
【参考答案】
intfindStr(char*str,char*substr)
{inti,cnt=0;/*定义变量*/
for(i=0;i<80;i++)/*统计次数*/
if(*(str+i)==*substr&&*(str+i+1)==*(substr+1))/*判断条件*/
cnt++;
returncnt;
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第10套:
已知在文件in.dat中存有200组数据,每组有3个数,每个数均是三位数。
函
数readDat()是读取这200组数据存放到结构数组aa中。
请编制函数jsSort(),其
函数的功能是:
要求在200组数据中找出条件为每组数据中的第二个数大于第一个
数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满
足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第
三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结
果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到out.dat文
件中。
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()
和写函数writeDat()的内容。
【参考答案】
intjsSort()
{inti,j;/*定义变量*/
Datatemp;
intcnt=0;
for(i=0;i<200;i++)
if(aa[i].x2>aa[i].x1+aa[i].x3)/*判断条件*/
bb[cnt++]=aa[i];
for(i=0;ifor(j=i+1;jif(bb[i].x2+bb[i].x3{temp=bb[i];
bb[i]=bb[j];
bb[j]=temp;
}
returncnt;/*返回函数值*/
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第11套:
函数readDat()是从文件in.dat中读取20行数据存放到字符串数组xx中(每行
字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:
以行为单位对字
符串按下面给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,
最后调用函数writeDat()把结果xx输出到文件out.dat中。
条件:
从字符串中间一分为二,左边部分按字符的ASCII值降序排序,右边部
分不作处理,排序后,左边部分与右边部分按例子所示进行交换。
如果原字符串
长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:
位置012345678
源字符串abcdhgfe
123498765
则处理后字符串hgfedcba
876594321
注意:
部分源程序存在文件PROG1.C文件中。
请勿改动数据文件in.dat中的任何数据、主函数main()、读函数readDat()
和写函数writeDat()的内容。
【参考答案】
voidjsSort()
{unsignedinti,j,k;/*定义变量*/
inttemp;
for(i=0;i<20;i++)
{for(j=0;jfor(k=j+1;kif(xx[i][j]{temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
for(j=0;j{k=j+(strlen(xx[i])+1)/2;
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第12套:
已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
其中:
金额=单价*数量计算得出。
函数ReadDat()读取这100个销售记录并存入结构数组sell中。
请编制函数SortDat(),其功能要求:
按金额从大到小进行排列,若金额相等,则按产品代码从大到小进行排列,最终排列结果仍存入结构数组sell中。
最后main()函数调用函数WriteDat()把结果输出到文件OUT.DAT中。
提示:
若中间变量为PROtemp,则可以直接使用结构赋值语句进行解题;产品代码比较请用函数strcmp进行解题。
例如:
sell[i]=temp;
注意:
部分源程序存放在PROG1.C中。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
voidSortDat()
{inti,j;/*定义变量*/
PROtemp;
for(i=0;ifor(j=i+1;jif(sell[i].je||sell[i].je==sell[j].je&&strcmp(sell[i].dm,sell[j].dm)<0)
{temp=sell[i];
sell[i]=sell[j];
sell[j]=temp;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第13套:
已知文件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()的内容。
【参考答案】
voidjsVal()
{inti,j;/*定义变量*/
inta1,a2,a3,a4;
inttemp;
for(i=0;i{a1=a[i]%10;/*数位分解*/
a2=a[i]%100/10;
a3=a[i]%1000/100;
a4=a[i]/1000;
if(a4<=a3&&a3<=a2&&a2<=a1&&a[i]%2==0)/*判断条件*/
b[cnt++]=a[i];
}
for(i=0;ifor(j=i+1;jif(b[i]>b[j])
{temp=b[i];
b[i]=b[j];
b[j]=temp;
}
}
※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
第14套:
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章,存入到字符串数组xx中;请编制函数encryptChar(),按给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx对应的位置上,最后调用函数WriteDat()把结果xx输出到文件OUT.DAT中。
替代关系:
f(p)=p*11mod256,mod为取余运算,p是数组xx中某一个字符的ASCII值,f(p)是计算后的无符号整型值(注意:
中间变量定义成整型变量),如果计算后f(p)值小于等于32或f(p)对应的字符是"0"至"9",则该字符不变,否则用f(p)替代所对应的字符。
注意:
部分源程序存放在PROG1.C中,原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格,并也按此替代关系进行处理。
请勿改动主函数main()、读函数ReadDat()和输出函数WriteDat()的内容。
【参考答案】
voidencryptChar()
{inti,j,val;/*定义变量*/
for(i=0;ifor(j=0;j<80;j++)
{val=xx[i][j]*11%256;/*替代关系*/
if(val<=32||val>='0'&&val