计算机三级网络技术上机试题100道南开100题目及答案_考试题库(编辑修改稿)内容摘要:

if (*pf%2 amp。 amp。 *pf*11%25632) *pf = *pf*11%256。 pf++。 } } } 题目 19:编写一个函数 findstr(),该函数统计一个长度为 2 的子字符串在另一个字符串中出现的次数。 例如:假定输入的字 符串为asd asasdfg asd as zx67 asd mklo,子字符串为 as,函数返回值为 6。 函数 readwriteDat()实现从文件 ,并调用函数 findstr(),最后把结果输出到文件 中。 int findStr(char *str, char *substr) { int n。 char *p, *r。 n = 0。 while (*str) { p = str。 r = substr。 while (*r) if (*r == *p) { r++。 p++。 } else { break。 } if (*r == 39。 \039。 ) n++。 str++。 } return n。 } 题目 20:编写函数 jsvalue,它的功能是:求 Fibonacci数列中大于 t的最小的一个数,结果由函数返回。 其中 Fibonacci数列 F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n1)+F(n2) 最后调用函数 writeDat()读取 10 个数据 t,分别得出结果且把结果输出到文件 中。 例如:当 t=1000时,函数值为: 1597。 int jsValue(int t) { int f1 = 0, f2 = 1, fn。 fn = f1+f2。 while (fn = t) { f1 = f2。 f2 = fn。 fn = f1+f2。 } return fn。 } 题目 21:下列程序的功能是:利用发下所示的简单迭代方法求方程: cos(x)x=0的一个实根。 X(n+1)下 标 =cos(x(n)下标 ) 迭代步骤如下: ( 1)取 X1 初值为 ; ( 2) X0=X1,把 X1的值赋给 X0; ( 3) X1=COS( X0),求出一个新的 X1; ( 4)若 X0X1 绝对值小 ,执行步骤 (5),否则执行步骤 (2)。 (5)所求 X1 就是方程 cos(X)X=0的一个实根 ,作为函数值返回。 请编写函数 countvalue()实现程序的要求,最后调用函数 WRITEDAT ()把结果输出到文件 中。 float countValue() { float X0, X1 =。 while (1) { X0 = X1。 X1 = (float)cos(X0)。 if (fabs(X0X1) 1e6) break。 } return X1。 } 题目 22:请编写函数 countvalue(),它的功能是:求 n 以内(不包括 n)同时能被 3 和 7整数的所有自然数之和的平方根 s,并作为函数值返回,最后结果 s 输出到文件。 例如若 n 为 1000 时,函数值应为: s=。 double countValue(int n) { double xy =。 int i。 for (i=1。 in。 i++) if (i%3==0 amp。 amp。 i%7==0) xy += i。 xy = sqrt((double)xy)。 return xy。 } 题目 23:已知在文件 中存有 N 个(个数 200)四位数字的正整数,函数 readdat()读取这 N 个正整数并存入数组 xx 中。 请编制函数 calvalue(),其功能要求: 求出这 N个实数的平均值 aver;分别求出这 N 个实数的整数部 分之和 sumint 以及小数部分之和sumdec,最后调用函数 writedat()把所求的结果输出到文件 中。 void CalValue(void) { int i。 double x,sum=0。 for (i=0。 iMAXNUM。 i++) { if (xx[i] 1e6) break。 sumint=sumint+(int)xx[i]。 x=xx[i](int)xx[i]。 sumdec=sumdec+x。 sum=sum+xx[i]。 } aver=sum/i。 } 题目 24:在三位整数 (100至 999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如14 676 等。 请编制函数实现此功能,满足该条件的整数的个数通过所编制的函数返回。 最后调用函数 writeDat()把结果输出到文件 中。 jsValue(int bb[]) { int i, a, b, c, t = 0。 for (i=10。 i*i1000。 i++) { a = i*i/100。 b = i*i/10%10。 c = i*i%10。 if (a==b || b==c || c==a) bb[t++] = i*i。 } return t。 } 题目 25:下列程序的功能是:寻找并输出 11 至 999 之间的数 m,它满足 m,m2和 m3均为回文数。 所谓回文数是指其各位数字左右对称的整数,例如 121, 676, 94249 等。 满足上述条件的数如m=11,m2=121,m3=1331 皆为回文数。 请编制函数 int svalue(long m)实现此功能,如果是回文数,则函数返回 1,反之则返回 0。 最后把结果输出到文件 中。 int jsValue(long n) { int i, strl, half。 char xy[20]。 ltoa(n, xy, 10)。 strl = strlen(xy)。 half = strl/2。 for (i=0。 ihalf。 i++) if (xy[i] != xy[strl]) break。 if (i = half) return 1。 else return 0。 } 题目 26:已知在 文件 中存有若干个(个数 200)四位数 字的正整数,函数 readdat()读取这若干个正整数并存入数组 xx中。 请编制函数 calvalue(),其功能要求: 求出这文件中共有多少个正整数 totnum; 求这些数右移 1位后,产生的新数是偶数的数的个数 tott,以及满足此条件的这些数(右移前的值)的算术平均值 totpjz,最后调用函数 writedat()把所求的结果输出到文件 中。 void CalValue(void) { int i, data。 for (i=0。 iMAXNUM。 i++) { if (!xx[i]) break。 if (xx[i] 0) totNum++。 data = xx[i]1。 if (data%2 == 0) { totCnt++。 totPjz += xx[i]。 } } totPjz /= totCnt。 } 题目 27:已知数据文件 中存有 300 个四位数,并已调用读函数 ReadDat()把这些数存入数组 a 中,请编制一函数 jsvalue(),其功能是:求出千位数 上的数减百位数减十位数上的数减个位数上的数大于零的个数 t,再求出所有满足此条件的四位数 依次存入数组b 中,然后对数组 b的四位数按从小到大的顺序进行排序,最后调用写函数 writedat(),把结果输出到 文件 例如:9123,91230,则该数满足条件 存入数字 b中,且个数 t=t+1。 9812,98120,则该数不满足条件计 忽略 注意:部分源程序已给出。 程序中已定义数组: a[300],已定义变量: t void jsValue() { int i, thou, hun, ten, data, j。 for (i=0。 i300。 i++) { thou = a[i]/1000。 hun = a[i]%1000/100。 ten = a[i]%100/10。 data = a[i]%10。 if (thouhuntendata 0) { b[t] = a[i]。 t++。 } } for (i=0。 it1。 i++) for (j=i+1。 jt。 j++) if (b[i] b[j]) { data = b[i]。 b[i] = b[j]。 b[j] = data。 } } 题目 28:已知数据文件 中存有 200个四位数 , 并已调用读函数 readDat()把这些数存入数组 a中 ,请考生编制一函数 jsVal(),其功能是 : 把千位数字和十位数字重新组成一个新的十位数 ab(新十位数的十位数字是原四位数的千位数字 ,新十位数的个位数字是原四位数的十位数字 ), 以及把个位数字和百位数字组成另一个新的十位数 cd (新十位数的十位数字是原四位数的个位数字 ,新十位数的个位数字是原四位数的百位数字 ), 如果新组成的两个十位数 abcd=0且 abcd=10 且两个数均是奇数 , 同 时两个新数的十位数字均不为 零 ,则将满足此条件的四位数按从大到小的顺序存入数组 b 中 , 并要计算满足上述条件的四位数的个数 t。 最后 main()函数调用写函数writeDat( )把结果 t 以及数组 b 中符合条件的四位数输出到 文件中。 void jsVal() { int i, thou, hun, ten, data, j。 int ab, cd。 for (i=0。 i200。 i++) { thou = a[i]/1000。 hun = a[i]%1000/100。 ten = a[i]%100/10。 data = a[i]%10。 if (thou==0 || data==0) continue。 ab = 10*thou+ten。 cd = 10*data+hun。 if ((abcd)=0 amp。 amp。 (abcd)=10 amp。 amp。 ab%2==1 amp。 amp。 cd%2==1) { b[t] = a[i]。 t++。 } } for (i=0。 it1。 i++) for (j=i+1。 jt。 j++) if (b[i] b[j]) { data = b[i]。 b[i] = b[j]。 b[j] = data。 } } 题目 29:已知数据文件 200 个四位数 , 并已调用读函数 readDat()把这些数存入数组 a 中 ,请考生编制一函数 jsVal(),其功能是 : 把千位数字和十位数字重新组成一个新的十位数 ab(新十位数的十位数字是原四位数的千位数字 ,新十位数的个位数字是原四位数的十位数字 ), 以及把个位数字和百位数字组成另一个新的十位数cd (新十位数的十位数字是原四位数的个位数字 ,新十位数的个位数字是原四位数的百位数字 ), 如果新组成的两个十位数 abcd=10 且abcd=20且两个数均是偶数 ,同时两个新 数的十位数字均不为零 ,则将满足此条件的四位数按从大到小的顺序存入数组 b 中 , 并要计算满足上述条件的四位数的个数 t。 最后 main()函数调用写函数writeDat( )把结果 t 以及数组 b 中符合条件的四位数输出到 文件中。 void jsVal() { int i, thou, hun, ten, data, j。 int ab, cd。 for (i=0。 i200。 i++) { thou = a[i]/1000。 hun = a[i]%1000/100。 ten = a[i]%100/10。 data = a[i]%10。 if (thou==0 || data==0) continue。 ab = 10*thou+ten。 cd = 10*data+hun。 if ((abcd)=10 amp。 amp。 (abcd)=20 amp。 amp。 ab%2==0 amp。 amp。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。