20xx年3月三级网络技术上机100题库内容摘要:

{flag=0。 break。 } if(flag==1) b[t++]=a[i]。 } for(i=0。 it1。 i++) for(j=i+1。 jt。 j++) if(b[i]b[j]) {flag=b[i]。 b[i]=b[j]。 b[j]=flag。 } } ********************************************************************* ★ 题目 15( 整数各位数字运算排序 题 ) 已知数据文件 中存有 200 个四位数,并已调用读函数 readDat()把这些数存入数组 a 中,请考生编制一函数 jsVal(),其功能是: 若一个四位数的千位数字上的值小于等于百位数字上的值,百位数字上的值小于等于十位数字上的值,以及十位数字上的值小于等于个位数字上的值,并且原四位数是偶数,则统计出满足此条件的个数t 并把这些四位数按从小到大的顺序存入数组 b 中 ,最后调用写函数 writeDat()把结果 t 以及数组 b 中符合条件的四位数输出到 文件中。 void jsVal() {int i,j。 int qw,bw,sw,gw。 for (i=0。 iMAX。 i++) {qw=a[i]/1000。 bw=a[i]%1000/100。 sw=a[i]%100/10。 gw=a[i]%10。 if((qw=bw)amp。 amp。 (bw=sw)amp。 amp。 (sw=gw)amp。 amp。 (a[i]%2==0)) b[t++]=a[i]。 } for(i=0。 it1。 i++) for(j=i+1。 jt。 j++) if (b[i]b[j]) {qw=b[i]。 b[i]=b[j]。 b[j]=qw。 } } *************************************************************************** ★☆ 题目 16( 字符替换 题 ) 函数 ReadDat()实现从文件 中读取一篇英文文章存入到字符串数组 xx 中,请编制函数 StrCharJR(),其函数的功能是: 以行为单位把字符串中所有字符的 ASCII 值右移 4 位,然后把右移后的字符 ASCII 值再加上原字符的 ASCII 值,得到新的字符仍存入原字符串对应的位置上。 最后把已处理的字符串仍按行重新存入字符串数组 xx 中, 最后调用函数 writeDat()把结果 xx 输出到文件 中。 void StrCharJR() {int i,j。 第 8 页 共 48 页 for(i=0。 imaxline。 i++) for(j=0。 jstrlen(xx[i])。 j++) xx[i][j]+=(xx[i][j]4)。 (右移四位的表达方式) } ********************************************************************** ☆ 题目 17 (亲朋字符替换题) 函数 READDAT()实现从文件 中读取一篇英文文章存入到字符串数组 XX 中。 请编制函数 CHA(),其函数功能是 :以行为单位把字符串中的第一个 字符的 ASCII 值加第二个字符的 ASCII 值,得到第一个亲朋字符,第二个字符的 ASCII 值加第三个字符的 ASCII 值,得到第二个新字符, 依此类推一直处理到最后第二个字符 ,最后一个字符的 ASCII 值加原第一个字符的 ASCII 值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。 最后把已处理的字符串逆转后按行重新存入字符串数组 XX 中 ,最后调用函数 WRITEDAT()把结果 XX 输出到文件 中 .原始数据文件存放的格式是 :每行的宽度均小于 80个字符 ,含标点符号和空格 . void ChA(void) { int i,j。 char ch。 for(i=0。 imaxline。 i++) { ch=xx[i][0]。 for(j=0。 jstrlen(xx[i])1。 j++) xx[i][j]+=xx[i][j+1]。 xx[i][strlen(xx[i])1]+=ch。 strrev(xx[i])。 } } ****************************************************************************** ☆ 题目 18 函数 ReadDat()实现从文件 中读取一篇英文文章,存入到字符串数组 xx 中;请编制函数 encryptChar(),按给定的替代关系对数组 xx 中的所有字符进行替代,仍存入数组 xx 的对应的位置上,最后调用函数 WriteDat()把结果 xx 输出到文件 中。 替代关系: f(p)=p*11 mod 256( p 是数组中某一个字符的 ASCII 值, f(p)是计算后新字符的 ASCII 值),如果原字符的 ASCII 值是偶数或计算后 f(p)值小于等于 32,则该字符不变,否则将 f(p)所 对应的字符进行替代。 void encryptChar() { int i,j。 for(i=0。 imaxline。 i++) for(j=0。 jstrlen(xx[i])。 j++) if(xx[i][j]*11%256=32||xx[i][j]%2==0) continue。 else xx[i][j]=xx[i][j]*11%256。 } ****************************************************************************** ☆题目 19(单词个数统计题 ) 编写一个函数 findStr(char *str,char *substr),该函数 统计一个长度为 2 的子字符串在另一个字符串中出现的次数。 例如, 假定输入的字符串为 asd asasdfg asd as zx67 asd mklo,子字符串为 as,函数返回值是 6。 (表明了返回值是整数型) 函数 ReadWrite()实现从文件 中读取两个字符串,并调用函数 findStr(),最后把结果输出到文件 中。 int findStr(char *str,char *substr) 第 9 页 共 48 页 { int i,j,len1,len2,t=0,flag。 len1=strlen(str)。 len2=strlen(substr)。 for(i=0。 ilen1。 i++) { for(j=0。 jlen2。 j++) if(str[i+j]==substr[j]) flag=1。 else {flag=0。 break。 } if(flag==1) t++。 } return t。 } 解法二: int findStr(char *str,char *substr) { int i,t=0。 for(i=0。 istrlen(str)。 i++) if(str[i]==*substramp。 amp。 str[i+1]==*(substr+1)) t++。 return t。 } 解法三: int findStr(char *str,char *substr) {int t=0。 while(*str) if(*str==*substramp。 amp。 *(str+1)==*(substr+1)) { t++。 str++。 } else str++。 return t。 } 解法四: int findStr(char *str,char *substr) { int n=0。 char *p , *r。 while ( *str ) {p=str。 r=substr。 while(*r) if(*r==*p) { r++。 p++。 } else break。 if(*r==39。 \039。 ) n++。 str++。 } return n。 } **************************************************************************** ★ 题目 20( Fibonacci 数列题 ) 编写函数 jsValue,它的功能是: 求 Fibonacci 数列中大于 t 的最小的一个数,结果由函数返回。 其中 Fibonacci数列 F(n)的定义为: F(0)=0,F(1)=1 F(n)=F(n1)+F(n2) 最后调用函数 writeDat()读取 50 个数据 t,分别得出结果且把结果输出到文件 中。 例如:当 t=1000 时,函数值为: 1597。 int jsValue(int t) { int f0=0,f1=1,fn。 fn=f0+f1。 while(fn=t) { f0=f1。 f1=fn。 fn=f0+f1。 } return fn。 } **************************************************************************** ☆ 题目 21(迭代方法求方程题 ) 第 10 页 共 48 页 下列程序 的功能是: 利用以下所示的简单迭代方法求方程: cos(x)x=0 的一个实根。 Xn+1=cos(Xn) 迭代步骤如下: (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。 x1=。 do{ x0=x1。 x1=cos(x0)。 }while(fabs(x0x1)=)。 return x1。 } 注:本题在无忧或捷成模拟盘中,需定义 double x0,x1。 才能通过,据实际上机抽到该题的考生反映,实际上机 需按上面解法的定义方能通过,特此说明,供参考。 **************************************************************************** ★ 题目 22( 平方根问 题 ) 请编写函数 countValue(),它的功能是: 求 n 以内(不包括 n)同时能被 3 与 7 整除的所有自然数之和的平方根s,并作为函数值返回, 最后结果 s 输出到文件 中。 例如若 n 为 1000 时,函数值应为: s=。 double countValue(int n) { int i。 double s=。 for(i=1。 in。 i++) if(i%21==0) s+=i。 return sqrt(s)。 } ********************************************************************* 题目 23 (实数运算题 ) 已知在文件 中存有 N 个(个数 200)实数,函数 readdat()读取这 N 个实数并存入数组 xx 中。 请编制函数calvalue(),其功能要求: 求出这 N 个实数的平均值 aver; 分别求出这 N 个实数的整数部分之和 sumint 以及小数部分之和 sumdec, 最后调用函数 writedat()把所求的结果输出到文件 中。 注意:部分源程序已给出。 void CalValue(void) {int i。 for (i=0。 iN。 i++) {sumint+=(long)xx[i]。 sumdec+=xx[i](long)xx[i]。 aver+=xx[i]。 第 11 页 共 48 页 } aver/=N。 } **************************************************************************** 题目 24(完全平方数 问 题 ) 下列程序 的功能是: 在三位整数( 100 至 999)中寻找符合条件的整数并依次从小到大存入数组中;它既是完全平方数,又是两位数字相同,例如 14 676 等。 请编制函数实现此功能 ,满足该条件的整数的个数通过所编制的。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。