计算机三级网络技术编程题集doc.docx

上传人:b****5 文档编号:8006261 上传时间:2023-01-27 格式:DOCX 页数:34 大小:26.67KB
下载 相关 举报
计算机三级网络技术编程题集doc.docx_第1页
第1页 / 共34页
计算机三级网络技术编程题集doc.docx_第2页
第2页 / 共34页
计算机三级网络技术编程题集doc.docx_第3页
第3页 / 共34页
计算机三级网络技术编程题集doc.docx_第4页
第4页 / 共34页
计算机三级网络技术编程题集doc.docx_第5页
第5页 / 共34页
点击查看更多>>
下载资源
资源描述

计算机三级网络技术编程题集doc.docx

《计算机三级网络技术编程题集doc.docx》由会员分享,可在线阅读,更多相关《计算机三级网络技术编程题集doc.docx(34页珍藏版)》请在冰豆网上搜索。

计算机三级网络技术编程题集doc.docx

计算机三级网络技术编程题集doc

一、按结构体成员筛选并排序

已知在文件IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位)、产品名称mc(字符型10位)、单价dj(整型)、数量sl(整型)、金额je(长整型)几部分组成。

函数ReadDat()的功能是读取这100个销售记录并存入结构数组sell中。

请编制函数SortDat(),其功能要求:

按产品名称从小到大进行排列,若产品名称相同,则按金额从小到大进行排列,最终排列结果仍存入结构数组sell中,最后调用函数WriteDat()把结果输出到文件OUT.DAT中。

voidSortDat()

{inti,j;

PROtemp;

for(i=0;i<99;i++)

for(j=i+1;j<100;j++)

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

{temp=sell[i];

sell[i]=sell[j];

sell[j]=temp;

}

elseif(strcmp(sell[i].mc,sell[j].mc)==0)

if(sell[i].je>sell[j].je)

{temp=sell[i];

sell[i]=sell[j];

}

}

二、数位分解后按数筛选统计并排序

1、已知数据文件IN.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制函数jsValue(),其功能是:

求出千位数上的数加个位数上的数等于百位数上的数加十位数上的数的个数cnt,再把所有满足此条件的4位数依次存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用写函数writeDat()把数组b中的数输出到OUT.DAT文件中。

voidjsValue()

{ inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<300;i++)

{a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4+a1==a3+a2)

{b[cnt]=a[i];

cnt++;

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

2、已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制一函数jsVal(),其功能是:

如果4位数各位上的数字均是奇数,则统计出满足此条件的个数cnt,并把这些4位数按从大到小的顺序存入数组b中。

最后调用写函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。

voidjsVal()

{ inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<200;i++)

{a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4%2!

=0&&a3%2!

=0&&a2%2!

=0&&a1%2!

=0)

{b[cnt]=a[i];

cnt++;

}

}

for(i=0;i

for(j=i+1;j

if(b[i]

{temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

3、已知数据文件IN1.DAT和IN2.DAT中分别存有100个两位十进制数,并且已调用读函数readDat()把这两个文件中的数存入数组a和b中。

请编制一函数jsVal(),实现的功能是依次对数组a和b中的数按条件重新组成一个新数并依次存入数c中,再对数组c中的数按从小到大的顺序进行排序,最后调用输出函数writeDat()把结果c输出到OUT.DAT文件中。

组成新数的条件:

如果数组a和b中相同下标位置的数必须符合一个是偶数,另一个是奇数,则数组a中的数按二进制数左移八位后再加上数组b对应位置上的数,把这样组成的新数依次存入数组c中。

voidjsVal()

{ inti,j;

inttemp;

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

if(((a[i]%2==0)&&(b[i]%2!

=0))‖((a[i]%2!

=0&&(b[i]%2==0)))

{

c[i]=(a[i]<<8)+b[i];

cnt++;

}

for(i=0;i

for(j=0;j

if(c[j]>c[j+1])

{

temp=c[j];

c[j]=c[j+1];

}

}

4、下列程序的功能是:

选出5000以下符合条件的自然数。

条件是:

千位数字与百位数字之和等于数位数字与各位数字之和,且千位数字与百位数字之和等于个位数字与千位数字之差的10倍。

计算并输出这些4位自然数的个数cnt及这些数的和sum.请编写函数countValue()实现程序的要求,最后调用函数writeDat()把结果cnt和sum输出到OUT.DAT文件中。

voidcountValue()

{ inti;

inta1,a2,a3,a4;

for(i=5000;i>=1000;i--)

{a4=i/1000;

a3=i%1000/100;

a2=i%100/10;

a1=i%10;

if(a4+a3==a2+a1&&a4+a3==(a1-a4)*10)

{

cnt++;

sum+=I;

}

}

}

5、已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制一函数jsVal(),其功能是:

把一个4位数的千位数上的值减百位数上的值再减十位数上的值最后减个位数上的值,如果得出的值大于等于零且此4位数是奇数,则统计出满足此条件的数的个数cnt并把这些数存入数组b中,然后对数组b的4位数按从小到大的顺序进行排序,最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。

voidjsVal()

{ inti,j;

inta1,a2,a3,a4;

inttemp;

for(i=0;i<200;i++)

{a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if((a4-a3-a2-a1>=0)&&a[i]%2!

=0)

{

b[cnt]=a[i];

cnt++;

}

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{

temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

三、数位分解后按数筛选及求平均值

已知数据文件IN.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制函数jsValue(),其功能是:

求出千位数上的数加百位数上的数等于十位数上的数加个位数上的数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件中。

例如:

7153,7+1=5+3,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1。

8129,8+1≠2+9,则该数不满足条件,计算平均值pjz2。

voidjsValue()

{inti,n=0;

inta1,a2,a3,a4;

for(i=0;i<300;i++)

{a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

if(a4+a3==a2+a1)

{cnt++;

pjz1+=a[i];

}

else

{n++;

pjz2+=a[i];

}

}

pjz1/=cnt;

pjz2/=n;

}

四、数位分解并重组后再筛选统计并排序

1、已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制一函数jsVal(),其功能是:

把千位数字和十位数字重新组成一个新的2位数ab(新2位数的十位数字是原4位数的千位数字,新2位数的个位数是原4位数的十位数字),以及把个位数字和百位数字组成另一个新的十位数cd(新2位数的十位数字是原4位数的个位数字,新2位数的个位数是原4位数的百位数字),如果新组成两个2位数ab-cd>=0且ab-cd<=10且两个数均是奇数,同时两个新十位数字均不为零,则将满足此条件的4位数按从大到小的顺序存入数组b中,并要计算满足上述条件的4位数的个数cnt,最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。

voidjsVal()

{ inti,j;

inta1,a2,a3,a4;

inttemp;

intab,cd;

for(i=0;i<200;i++)

{a4=a[i]/1000;

a3=a[i]%1000/100;

a2=a[i]%100/10;

a1=a[i]%10;

ab=10*a4+a2;

cd=10*a1+a3;

if(ab-cd)>=0&&(ab-cd)<=10&&ab%2==1&&cd%2==1&&a4!

=0&&a1!

=0)

{b[cnt]=a[i];

cnt++;

}

}

for(i=0;i

for(j=i+1;j

if(b[i]

{temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

2、已知数据文件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

voidjsVal()

{ inti,j;

inttemp;

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

if((a[i]%2!

=0)&&(b[i]%2!

=0))

{

c[i]=(a[i]/10)*1000+(b[i]/10)*100+(b[i]%10)*10+(a[i]%10);

cnt++;

}

for(i=0;i

for(j=0;j

if(c[j]>c[j+1])

{temp=c[j];

c[j]=c[j+1];

c[j+1]=temp;

}

}

五、根据相邻数大小进行筛选统计并排序

已知数据文件IN.DAT中存有200个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制一函数jsVal(),其功能是:

依次从数组a中取出一个4位数,如果该4位数连续小于该4位数以后的5个数且该数是偶数(该4位数以后不满5个数,则不统计),则统计出满足此条件的数的个数cnt并把这些4位数按从小到大的顺序存入数组b中,最后调用函数writeDat()把结果cnt及数组b中符合条件的4位数输出到OUT.DAT文件中。

voidjsVal()

{ inti,j;

inttemp;

for(i=0;i<=MAX-5;i++)

if(a[i]

a[i+3]&&a[i]

{b[cnt]=a[i];

cnt++;

}

for(i=0;i

for(j=i+1;j

if(b[i]>b[j])

{temp=b[i];

b[i]=b[j];

b[j]=temp;

}

}

六、根据后3位数排序

在文件IN.DAT中有200个正整数,且每个数均在1000至9999之间。

函数readDat()的功能是读取这200个数存放到数组aa中。

请编制函数jsSort(),该函数的功能是:

要求按每个数的后3位的大小进行降序排列,将排序后的前10个数存入数组bb中,如果出现后3位相等的数,则对这些数按原始4位数据进行升序排列。

最后调用函数writeDat()把结果bb输出到OUT.DAT文件中。

voidjsSort()

{ inti,j;

inttemp;

for(i=0;i<199;i++)

for(j=i+1;j<200;j++)

{if(aa[i]%1000

{temp=aa[i];

aa[i]=aa[j];

aa[j]=temp;

}

elseif(aa[i]%1000==aa[j]%1000)

if(aa[i]>aa[j];

{temp=aa[i];

aa[i]=aa[j];

aa[j]=temp;

}

}

for(i=0;i<10;i++)

bb[i]=aa[i];

}

七、数组排序问题

在文件IN.DAT中有200组数据,每组有3个数,每个数均是3位数。

函数readDat()是读取这200组数据存放到结构数组aa中。

请编制函数jsSort(),该函数的功能是:

要求在200组数据中找出条件为每组数据中的第二个数大于第一个数加第三个数之和,其中满足条件的个数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对结构数组bb中的数据按照每组数据的第二个数加第三个数之和的大小进行降序排列,排序后的结果仍重新存入结构数组bb中,最后调用函数writeDat()把结果bb输出到OUT.DAT文件中。

voidjsSort()

{ inti,j;

intcnt=0;

Datatemp;

for(i=0;i<200;i++)

if(aa[i].x2>aa[i].x1+aa[i].x3)

{bb[cnt]=aa[i];

cnt++;

}

for(i=0;i

for(j=i+1;j

if(bb[i].x2+bb[i].x3

{temp=bb[i];

bb[i]=bb[j];

bb[j]=temp;

}

returncnt;

}

八、迭代算法

1、下列程序的功能是:

利用以下所示的简单迭代方法求方程cos(x)-x=0的一个实根。

xn+1=cos(xn)

迭代步骤如下:

(1)取x1初值为0.0

(2)x0=x1,把x1的值赋给x0

(3)x1=cos(x0),求出一个新的x1

(4)若x0-x1得绝对值小于0.000001,执行步骤(5),否则执行步骤

(2)

(5)所求x1就是方程cos(x)-x=0的一个实根,作为函数值返回

请编写函数countValue()实现程序要求,最后调用函数writeDat()把结果输出到OUT.DAT文件中。

floatcountValue()

{floatx0,x1=0.0;

while

(1)

{x0=x1;

x1=cos(x0);

if(fabs(x0-x1)<1e-6)

break;

}

returnx1;

}

2、编写函数jsValue(),它的功能是求Fibonacci数列中大于t的最小的一个数,结果由函数返回,其中Fibonacci数列F(n)的定义为:

F(0)=0,F

(1)=1

F(n)=F(n-1)+F(n-2)

最后调用函数writeDat()把结果输出到OUT.DAT文件中。

例如:

当t=1000时,函数值为1597。

intjsValue(intt)

{intf1=0,f2=1,fn;

fn=f1+f2;

while(fn<=t)

{f1=f2;

f2=fn;

fn=f1+f2;

}

returnfn;

}

3、某级数的前两项A1=1,A2=1,以后各项具有如下关系:

An=An-2+2An-1

下列程序的功能是:

要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:

Sn

voidjsValue()

{intn=1;

inta1=1,a2=1,an;

intsum0,sum;

sum0=a1+a2;

while

(1)

{an=a1+a2*2;

sum=sum0+an;

a1=a2;

a2=an;

n++;

if(sum0<100&&sum>=100)

b[0]=n;

if(sum0<1000&&sum>=1000)

b[1]=n;

if(sum0<10000&&sum>=10000)

{b[2]=n;

break;

}

sum0=sum;

}

}

九、计算素数

1、下列程序的功能是:

选出100~1000之间的所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。

计算并输出上述这些素数的个数cnt,以及这些素数值的和sum。

请编写函数countValue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到OUT.DAT文件中。

voidcountValue()

{inti,j;

inta3,a2,a1;

inthalf;

for(i=101;i<1000;i++)

{a3=i/100;

a2=i%100/10;

a1=i%10;

if(a3==(a2+a1)%10)

{half=i/2;

for(j=2;j<=half;j++)

if(i%j==0)

break;

if(j>half)

{cnt++;

sum+=i;

}

}

}

}

2、下列程序的功能是:

计算500~800之间的素数的个数cnt,并按所求素数的值从大到小排序,在计算其间隔减、加之和,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。

请编写函数countValue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到OUT.DAT文件中。

voidcountValue()

{inti,j;

inthalf;

intxx[100];

for(i=800;i>500;i--)

{half=i/2;

for(j=2;j<=half;j++)

if(i%j==0)

break;

if(j>=half)

{xx[cnt]=i;

cnt++;

}

}

for(i=0,j=-1;i

{j*=-1;

sum+=j*xx[i];

}

}

3、下列程序的功能是:

将大于整数m且紧靠m的k个素数存入数组xx中。

请编写函数num(intm,intk,intxx[])实现程序要求,最后调用函数readwriteDAT()把结果输出到OUT.DAT文件中。

例如:

若输入17,5,则应输出19,23,29,31,37

voidnum(intm,intk,intxx[])

{inti,half,cnt=0;

intdata=m+1;

while

(1)

{half=data/2;

for(i=2;i<=half;i++)

if(data%i==0)

break;

if(i>half)

{xx[cnt]=data;

cnt++;

}

if(cnt>=k)

break;

data++;

}

}

4、已知数据文件IN.DAT中存有300个4位数,并已调用读函数readDat()把这些数存入数组a中。

请编制一函数jsValue(),其功能是:

求出这些4位数是素数的个数cnt,再求出所有满足此条件的4位数的平均值pjz1,以及所有不满足此条件的4位数的平均值pjz2,最后调用函数writeDat()把结果cnt,pjz1,pjz2输出到OUT.DAT文件中。

例如:

5591是素数,则该数满足条件,计算平均值pjz1,且个数cnt=cnt+1

9812是非素数,则该数不满足条件,计算平均值pjz2。

voidjsValue()

{inti,n=0;

for(i=0;i<300;i++)

if(isP(a[i]))

{pjz1+=a[i];

cnt++;

}

else

{pjz2+=a[i];

n++;

}

pjz1/=cnt;

pjz2/=n;

}

5、下列程序的功能是:

找出所有100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也是在100以内)的个数cnt,以及这些I之和sum。

请编写函数countValue()实现程序要求,最后调用函数writeDat()把结果cnt和sum输出到OUT.DAT文件中。

(数值I不是素数)

voidcountValue()

{inti;

cnt=0;

sum=0;

for(i=2;i<90;i++)

if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10))

{cnt++;

sum+=i;

}

}

十、统计个数及求平均值

1、已知在文件IN.DAT中存有若干个数(个数<200)4位数字的正整数,函数readDat()的功能是读取这若干个正整数并存放到数组xx中。

请编制函数CalValue(),其功能要求:

(1)求出该文件中共有多少个正整数totNum;

(2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数(右移前的值)的算术平均值to

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1