计算机网络三级C语言上机题.docx
- 文档编号:4101807
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:74
- 大小:30.56KB
计算机网络三级C语言上机题.docx
《计算机网络三级C语言上机题.docx》由会员分享,可在线阅读,更多相关《计算机网络三级C语言上机题.docx(74页珍藏版)》请在冰豆网上搜索。
计算机网络三级C语言上机题
素数:
1.大于m且紧靠m的k个素数存入数组xx
voidnum(intm,intk,intxx[])
{intdata=m+1;
inthalf,n=0,i;
while
(1)
{half=data/2;
for(i=2;i<=half;i++)
if(data%i==0)
break;
if(i>half)
{xx[n]=data;
n++;}
if(n>=k)
break;
data++;}
}
34.100以上1000以内所有个位数字与十位数字之和被10除所得余数恰是百位数字的素数(如293)。
计算并输出上述这些素数的个数CNT以及这些素数值的和SUM。
voidcountValue()
{
inti,j,half,hun,ten,data;
for(i=101;i<1000;i++)
{
hun=i/100;
ten=i%100/10;
data=i%10;
if(hun==(ten+data)%10)
{
half=i/2;
for(j=2;j if(i%j==0) break; if(j>=half) { cnt++; sum+=i; } } } } 55.这些四位数是素数的个数cnt,再把所有满足此条件的四位数依次存入数组b中,数组b的四位数按从小到大行排序, voidjsValue() { intj,i,value; for(i=0;i<300;i++) if(isP(a[i])) {b[cnt]=a[i]; cnt++;} for(i=0;i for(j=i+1;j if(b[i]>b[j]) {value=b[i]; b[i]=b[j]; b[j]=value;} } 64.找出100以内(含100)满足I,I+4,I+10都是素数的整数I(I+10也在100以内)的个数cnt以及这些I之和sum。 voidcountValue() {inti; for(i=2;i<=90;i++) if(isPrime(i)&&isPrime(i+4)&&isPrime(i+10)) {cnt++;sum+=i;} } 66.计算500-800区间内素数的个数cnt,从大到小的顺序,再计算其间隔加、减之各,即第1个素数-第2个素数+第3个素数-第4个素数+第5个素数……的值sum。 voidcountValue() { inti,j,half,yy[100]; for(i=800;i>=500;i--) { half=i/2; for(j=2;j if(i%j==0) break; if(j>=half) { yy[cnt]=i; cnt++; } } for(i=0,j=1;i {sum+=j*yy[i]; j=j*-1; } } 82.已知数据文件IN.DAT中存有300个四位数,并已调用读函数READDAT()把这些数存入数组A中.求出所有这些四位数是素数个数CNT,求出所有满足此条件的四位数平均值PJZ1,不满足条件的四位数平均值PJZ2, voidjsValue() {intI; for(I=0;I<300;I++) if(isP(a[I])){pjz1+=a[I];cnt++;} elsepjz2+=a[I]; pjz1=pjz1/cnt; pjz2=pjz2/(300-cnt); } 数字: 22.求n以内(不包括n)同时能被3与7整除的所有自然数之和的平方根s,并作为函数值返回。 doublecountValue(intn) { doublexy=0.0; inti; for(i=1;i if(i%3==0&&i%7==0) xy+=i; xy=sqrt((double)xy); returnxy; } 24.在三位数中寻找符合条件的整数并依次从小到大存入数组中: 该整数既是完全平方数,又有两个数字相同。 jsValue(intbb[]) { inti,a,b,c,cnt=0; for(i=10;i*i<1000;i++) { a=i*i/100; b=i*i/10%10; c=i*i%10; if(a==b||b==c||c==a) bb[cnt++]=i*i; } returncnt; } 79.请编写函数voidcountvalue(int*a,int*n),求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数放在数组a中,并通过n返回这些数的个数。 voidcountValue(int*a,int*n) { inti; *n=0; for(i=1;i<=1000;i++) if(i%7==0&&i%11) { *a=i; *n=*n+1; a++; } elseif(i%7&&i%11==0) { *a=i; *n=*n+1; a++; } } 25.寻找并输出11至999之间的数m,他满足m,m2,m3均为回文数。 intjsValue(longn) { inti,strl,half; charxy[20]; ltoa(n,xy,10); strl=strlen(xy); half=strl/2; for(i=0;i if(xy[i]! =xy[--strl]) break; if(i>=half) return1; else return0; } 90.将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。 新序列中,比K1小的数都在K1的左面(后继的再向U左存放),比K1大的数都在K1的右面(后续的再向右存放),从k1想右扫描。 jsValue(inta[10][9]) { intvalue,i,j,k,num; for(i=0;i<10;i++) { value=a[i][0]; for(j=0;j<9;j++) if(a[i][j] { num=a[i][j]; for(k=j;k>0;k--) a[i][k]=a[i][k-1]; a[i][0]=num; } } } 91.从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx值为偶数的元素值的算术平均值pj for(i=0,j=0,cnt1=0,cnt2=0;i { if(xx[i]%2) cnt1++; else cnt2++; if(i%2==0) j+=xx[i]; } pj=(float)j/(N/2); 92.从文件in.dat中读取200个整数至数组xx中,求出最大数max及最大数的个数cnt和数组xx中值能被3整除或能被7整除的算求增均值pj max=xx[0]; for(i=1,k=0;i { if(xx[i]>max) max=xx[i]; if(xx[i]%3==0||xx[i]%7==0) { j+=xx[i]; k++; } } for(i=0,cnt=0;i if(xx[i]==max) cnt++; pj=(float)(j*100/k)/100; 94.从文件in.dat中读取200个整数至数组xx中,求出奇数的个数cnt1和偶数的个数cnt2以及数组xx值为偶数的元素值的算术平均值pj i=j=k=cnt1=cnt2=0; pj=0.0; for(i=0;i { if(xx[i]%2) cnt1++; else cnt2++; if(i%2) { k+=xx[i]; j++; } } pj=(float)k/j; 23.函数ReadDat()读取这N个实数并存入数组xx中,编写函数CalValue(),其功能: (1)求平均值aver。 (2)整数部分之和sumint以及小数部分之和sumdec。 voidCalValue(void) { inti; doublex,sum=0; for(i=0;i { if(xx[i]<1e-6) break; sumint=sumint+(int)xx[i]; x=xx[i]-(int)xx[i]; sumdec=sumdec+x; sum=sum+xx[i]; } aver=sum/i; } 40.函数readdat()读取这若干个正整数并存入数组xx中。 编制函数calvalue(),其功能要求: 1、求有多少个正整数totnum;2、这些数中的各位数字之和是偶数的数的个数totcnt,这些数的算术平均值totpjz。 voidCalValue(void) { inti,thou,hun,ten,data; intab; longsum=0; for(i=0;i if(xx[i]>999) { totNum++; thou=xx[i]/1000; hun=xx[i]%1000/100; ten=xx[i]%100/10; data=xx[i]%10; ab=thou+hun+ten+data; if(ab%2==0) { totCnt++; sum=sum+xx[i]; } } totPjz=(double)sum/totCnt; } 26.函数ReadDat()读取这N个实数并存入数组xx中,编写函数CalValue(),其功能: (1)共有多少个正整数totNum; (2)求这些数右移1位后,产生的新数是偶数的数的个数totCnt,以及满足此条件的这些数的算术平均值totPjz voidCalValue(void) { inti,data; for(i=0;i { if(! xx[i]) break; if(xx[i]>0) totNum++; data=xx[i]>>1; if(data%2==0) { totCnt++; totPjz+=xx[i]; } } totPjz/=totCnt; } 65.函数readdat()读取这若干个正整数并存入数组xx中。 请编制函数calvalue(),其功能要求: 1、求出有多少个正整数totnum;2、求出这些数中的各位数字之和是奇数的数的个数totcnt,满足此条件的这些数的算术平均值totpjz, voidCalValue(void) { inti,thou,hun,ten,data; for(i=0;i { if(! xx[i]) break; if(xx[i]>0) totNum++; thou=xx[i]/1000; hun=xx[i]%1000/100; ten=xx[i]%100/10; data=xx[i]%10; if((thou+hun+ten+data)%2) { totCnt++; totPjz+=xx[i]; } } totPjz/=totCnt; } 70.函数readdat()读取这若干个正整数并存入数组xx中。 请编制函数calvalue(),其功能要求: 1、求出多少个正整数totnum;2、求这些数右移1位后,新数是奇数的数的个数totcnt,以及算术平均值totpjz, voidCalValue(void) { inti,data; for(i=0;i { if(! xx[i]) break; if(xx[i]>0) totNum++; data=xx[i]>>1; if(data%2) { totCnt++; totPjz+=xx[i]; } } totPjz/=totCnt; } 33.请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: totfc=1/N∑(xx[i]-ave1)2 for(i=0;i<100;i++) { for(j=0;j<10;j++) fscanf(fp,"%d,",&xx[i*10+j]); fscanf(fp,"\n"); if(feof(fp)) break; } 83.请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: totfc=1/N∑(xx[i]-ave1)2 voidCompute(void) { inti,yy[MAX]; for(i=0;i<1000;i++) if(xx[i]%2) { odd++; ave1+=xx[i]; yy[odd-1]=xx[i]; } else { even++; ave2+=xx[i]; } ave1/=odd; ave2/=even; for(i=0;i totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd; } 93.请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;再编制函数COMPUTE()分别计算出XX中奇数的个数ODD,偶数的个数EVEN,平均值AVER以及方差TOTFE的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。 计算方差的公式如下: totfc=1/N∑(xx[i]-ave1)2 voidCompute(void) { inti; for(i=0;i<1000;i++) { if(xx[i]%2) odd++; else even++; aver=aver+xx[i]; } aver/=MAX; for(i=0;i<1000;i++) totfc+=(xx[i]-aver)*(xx[i]-aver)/MAX; } 41.SIX+SIX+SIX=NINE+NINE的个数cnt,其中S,I,X,N,E各代表一个十进制数字。 voidcountValue() { intS,I,X,N,E; intSIX,NINE; for(S=1;S<10;S++) for(I=0;I<10;I++) for(X=0;X<10;X++) for(N=1;N<10;N++) for(E=0;E<10;E++) { SIX=S*100+I*10+X; NINE=N*1000+I*100+N*10+E; if(SIX*3==NINE*2) { cnt++; sum+=SIX+NINE; } } } 60.每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的个数作为函数jsSort()的返回值,存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行升序排列,结果存入结构数组bb中, intjsSort() { inti,cnt=0,j; datach; 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 { ch=bb[i]; bb[i]=bb[j]; bb[j]=ch; } returncnt; } 75.每组中的第一个数大于第二个数加第三个数的之和,其中满足条件的个数作为函数jsSort()的返回值,存入结构数组bb中,再对bb中的数据按照每组数据的第一个数加第三个之和的大小进行升序排列,结果存入结构数组bb中, intjsSort() { inti,j,count=0; dataval; for(i=0;i<200;i++) if(aa[i].x1>aa[i].x2+aa[i].x3) { bb[count]=aa[i]; count++; } for(i=0;i for(j=i+1;j if(bb[i].x1+bb[i].x3>bb[j].x1+bb[j].x3) { val=bb[i]; bb[i]=bb[j]; bb[j]=val; } returncount; } 四位数各个位数字 2.四位数各位上数字均是0,2,4,6,8,从大到小存入数组b中 voidnum(intm,intk,intxx[]) { intdata=m+1; inthalf,n=0,i; while (1) { half=data/2; for(i=2;i<=half;i++) if(data%i==0) break; if(i>half) { xx[n]=data; n++; } if(n>=k) break; data++; } } 15.四位数千位上的数字小于等于百位上的数字,百位上的数字小于等于十位上的数值,十位上的数字小于等于个位上的数字,并且原四位数是偶数。 voidjsVal() { inti,j; inta1,a2,a3,a4,k; for(i=0;i { a1=a[i]/1000; a2=a[i]%1000/100; a3=a[i]%100/10; a4=a[i]%10; if((a1<=a2)&&(a2<=a3)&&(a3<=a4)&&(a[i]%2==0)) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) { k=b[i]; b[i]=b[j]; b[j]=k; } } 78.四位数千位数字大于等于百位数字,百位数字大于等于十位数字,十位数字大于等于个位数字,此四位数是奇数,统计个数cnt,按从小到大的顺序存入数组b中。 voidjsVal() { inti,thou,hun,ten,data,j; for(i=0;i { thou=a[i]/1000; hun=a[i]%1000/100; ten=a[i]%100/10; data=a[i]%10; if((thou>=hun)&&(hun>=ten)&&(ten>=data)&&a[i]%2! =0) { b[cnt]=a[i]; cnt++; } } for(i=0;i for(j=i+1;j if(b[i]>b[j]) { data=b[i]; b[i]=b[j]; b[j]=data; } } 27.千位数减百位数减十位数减个位数大于零的个数cnt,把满足条件的数存入数组b中,从小到大排序 voidjsValue() { inti,thou,hun,ten,data,j; for(i=0;i<300;i++) { thou=a[i]/1000; hun=a[i]%100
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机网络 三级 语言 上机