三级网络技术上机考前分类详解宝典文档格式.docx
- 文档编号:19536006
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:21
- 大小:25.66KB
三级网络技术上机考前分类详解宝典文档格式.docx
《三级网络技术上机考前分类详解宝典文档格式.docx》由会员分享,可在线阅读,更多相关《三级网络技术上机考前分类详解宝典文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
i;
if(a[i]<
a[j]&
a[i]%2==0)flag=1;
else{flag=0;
break;
if(flag==1)b[cnt++]=a[i];
if(b[i]>
b[j]){flag=b[i];
b[i]=b[j];
b[j]=flag;
=等号一定不要忘还有break语句
(3)各位数字重组组成新两位数的问题
voidjsVal()
{inti,thou,hun,ten,data,j;
intab,cd;
{thou=a[i]/1000;
hun=a[i]/100%10;
ten=a[i]%100/10;
data=a[i]%10;
ab=10*thou+ten;
cd=10*data+hun;
if(((ab-cd)<
0&
ab%2==1&
ab%5!
=0)&
cd%2!
=1&
ab>
=10&
cd>
=10)
两个十位数ab<
cd,ab必须是奇数且不能被5整除,cd必须是偶数,同时两个新数的十位数字均不为零
{b[cnt]=a[i];
cnt++;
b[j]){data=b[i];
b[j]=data;
if((ab%2!
=cd%2)&
((ab%17==0||cd%17==0)&
=10))
两个十位数必须是一个奇数,另一个为偶数并且两个十位数中至少有一个数能被17整除,同时两个新数的十位数字均不为零
(4)满足条件的平均值
jsValue()
{inti,qw,bw,sw,gw,n=0;
300;
{qw=a[i]/1000;
if(qw-bw-sw-gw>
0){cnt++;
pjz1+=a[i];
else{n++;
pjz2+=a[i];
if(cnt==0)pjz1=0;
要有判断是否为0的语句!
!
elsepjz1/=cnt;
if(n==0)pjz2=0;
elsepjz2/=n;
}
2、字符的移位排序(背)
(1)以行为单位把字符串中的所有小写字母O左边的字符串内容移到该串的右边存放,然后并把小写字母O删除,余下的字符串内容移到已处理字符串的左边存放
voidStrOR(void)
{inti,righto,j,s,k;
chartem[80];
maxline;
i++)
for(j=strlen(xx[i])-1;
j>
=0;
j--)
{k=0;
memset(tem,0,80);
if(xx[i][j]=='
o'
)
{righto=j;
for(s=righto+1;
s<
strlen(xx[i]);
s++)
tem[k++]=xx[i][s];
for(s=0;
righto;
if(xx[i][s]!
='
)
strcpy(xx[i],tem);
}
elsecontinue;
(2)以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。
最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中
voidStrOL(void)
{inti,j,k,s,m,strl;
charstr[80];
{strl=strlen(xx[i]);
memset(str,0,80);
s=k=0;
for(j=strl-1;
j--)
{if(isalpha(xx[i][j]))k++;
else{for(m=1;
m<
=k;
m++)
str[s++]=xx[i][j+m];
k=0;
if(!
isalpha(xx[i][j]))
str[s++]='
'
;
for(m=1;
m++)
str[s++]=xx[i][j+m];
str[s]='
\0'
strcpy(xx[i],str);
}
3、
在文件in.dat中有200个正整数,且每个数均在1000至9999之间。
函数ReadDat()
读取这200个数存放到数组aa中。
(1)要求按每个数的后三位的大小进行升序排列,然后取出满足此条件的前10个数依次存入数组bb中,如果后三位的数值相等,则按原先的数值进行降序排列。
voidjsSort()
{inti,j,data;
199;
200;
j++)
if(aa[i]%1000>
aa[j]%1000||aa[i]%1000==aa[j]%1000&
aa[i]<
aa[j]){data=aa[i];
aa[i]=aa[j];
aa[j]=data;
10;
bb[i]=aa[i];
符号“或||”注意~
4、字符串下标和字符串左右排序交换
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort()
(1)以行为单位对字符串变量的下标为奇数的字符按其ASCII值从小到大的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
voidjsSort()
{inti,j,k,strl;
charch;
20;
for(j=1;
strl-2;
j=j+2)
for(k=j+2;
k<
strl;
k=k+2)
if(xx[i][j]>
xx[i][k])
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
(2)从字符串中间一分为二,左边部分按字符的ASCII值降序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
{inti,j,k,strl,half;
chartemp;
half=strl/2;
for(j=0;
half-1;
for(k=j+1;
half;
k++)
if(xx[i][j]<
xx[i][k])
{temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
for(j=half-1,k=strl-1;
j--,k--)左右交换
★如果左边降序右边升序的话以上交换语句替换为(只有左右都排序才考虑)
if(strl%2)half++;
判断中间是否为奇数是奇数的话中间不参加处理
for(j=half;
strl-1;
{ch=xx[i][j];
5、字符串比较排列
IN.DAT中存有100个产品销售记录,每个产品销售记录由产品代码dm(字符型4位),产品名称mc(字符型10位),单价dj(整型),数量sl(整型),金额je(长整型)五部分组成。
(1)按产品代码从大到小进行排列,若产品代码相同,则按金额从大到小进行排列,最终排列结果仍存入结构数组sell中
voidSortDat()
{inti,j;
PROxy;
题目前有PRO用其定义
99;
100;
if(strcmp(sell[i].dm,sell[j].dm)<
0||strcmp(sell[i].dm,sell[j].dm)==0&
sell[i].je<
sell[j].je)
{xy=sell[i];
sell[i]=sell[j];
sell[j]=xy;
字符串的比较用strcpy()函数
(2)有200组数据,每组有3个数,每个数均是三位数
要求在200组数据中找出条件为每组中的第二个数大于第一个数加第三个数的之和,其中满足条件的组数作为函数jsSort()的返回值,同时把满足条件的数据存入结构数组bb中,再对bb中的数据按照每组数据的第二个数加第三个之和的大小进行降序排列(第二个数加第三个数的和均不相等),排序后的结果仍重新存入结构数组bb中
intjsSort()
{inti,j,cnt=0;
datach;
给出上面语句有data的用data
if(aa[i].x2>
aa[i].x1+aa[i].x3)bb[cnt++]=aa[i];
if(bb[i].x2+bb[i].x3<
bb[j].x2+bb[j].x3)
{ch=bb[i];
bb[i]=bb[j];
bb[j]=ch;
returncnt;
一定要返回cnt
6、字符替换
函数ReadDat()实现从文件ENG.IN中读取一篇英文文章,存入到字符串数组xx中;
请编制函数encryptChar(),给定的替代关系对数组xx中的所有字符进行替代,仍存入数组xx的对应的位置上
f(p)=p*11mod256(p是数组中某一个字符的ASCII值,f(p)是计算后新字符的ASCII值),如果原字符是小写字母或计算后f(p)值小于等于32,则该字符不变,否则将f(p)所对应的字符进行替代。
voidencryptChar()
{inti,j;
if(xx[i][j]*11%256<
=32||xx[i][j]>
a'
xx[i][j]<
z'
)continue;
elsexx[i][j]=xx[i][j]*11%256;
7、字符串排序题、替换题、移位题、亲朋字符题
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中
(1)以行为单位对字符按从大到小的顺序进行排序,排序后的结果仍按行重新存入字符串数组xx中
voidSortCharD(void)
{inti,j,k,strl;
{strl=strlen(xx[i]);
for(j=0;
for(k=j+1;
k++)
if(xx[i][j]<
{ch=xx[i][j];
xx[i][k]=ch;
(2)以行为单位把字符串中的所有小写字母改写成该字母的下一个字母,如果是字母z,则改写成字母a。
大写字母仍为大写字母,小写字母仍为小写字母,其他字符不变。
voidConvertCharA(void)
{for(j=0;
xx[i][j]='
elseif(xx[i][j]>
y'
xx[i][j]+=1;
(3)以行为单位把字符串中所有字符的ASCII值右移4位,然后把右移后的字符ASCII值再加上原字符的ASCII值,得到新的字符仍存入原字符串对应的位置上。
最后把已处理的字符串仍按行重新存入字符串数组xx中
voidStrCharJR()
xx[i][j]+=(xx[i][j]>
>
4);
(右移四位的表达方式)
(4)以行为单位把字符串中的所有字符的ASCII值左移4位,低位补0,如果左移后,其字符的ASCII值小于等于32或大于100,则原字符保持不变,否则就把左移后的字符ASCII值再加上原字符ASCII值,得到新的字符仍存入原字符串对应的位置上。
voidStrCharJL(void)
charc;
{c=xx[i][j]<
<
4;
(c<
=32||c>
100))
xx[i][j]+=c;
(5)以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。
最后把已处理的字符串逆转后按行重新存入字符串数组XX中
voidChA(void)
charch;
{ch=xx[i][0];
strlen(xx[i])-1;
xx[i][j]+=xx[i][j+1];
xx[i][strlen(xx[i])-1]+=ch;
strrev(xx[i]);
倒排逆转
8、字符串移位题(指针)(背)
(1)程序prog1.c的功能是:
把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。
要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
voidchg(char*s)
{intI;
for(I=0;
I<
strlen(s);
I++)
if(s[i]=='
||s[i]=='
Z'
)分大小写
s[i]-=25;
elseif(s[i]>
s[i]<
||s[i]>
A'
Y'
s[i]+=1;
看清题目要求是所有字母还是光大小写!
(2)程序prog1.c的功能是:
把s字符串中的所有字符左移一个位置,串中的第一个字符移到最后。
请考生编写函数chg(char*s)实现程序要求
voidchg(char*s)
{inti;
charch=*s;
strlen(s)-1;
s[i]=s[i+1];
s[strlen(s)-1]=ch;
9、字符串个数统计题(背)
编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为"
asdasasdfgasdaszx67asdmklo"
,子字符串为"
as"
,函数返回值是6。
(表明了返回值是整数型)
intfindStr(char*str,char*substr)
{inti,j,len1,len2,cnt=0,flag;
len1=strlen(str);
len2=strlen(substr);
len1;
len2;
if(str[i+j]==substr[j])
flag=1;
else{flag=0;
break;
if(flag==1)cnt++;
returncnt;
10、Fibonacci数列、完全平方数、回文数(背)、级数运算、整数排序题
(1)求Fibonacci数列中大于t的最小的一个数,结果由函数返回。
其中Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1
F(n)=F(n-1)+F(n-2)
intjsValue(intt)
{intf0=0,f1=1,fn;
fn=f0+f1;
while(fn<
=t)
{f0=f1;
f1=fn;
returnfn;
(2)下列程序prog1.c的功能是:
在三位整数(100至999)中寻找符合条件的整数并依次从小到大存入数组中;
它既是完全平方数,又是两位数字相同,例如144、676等。
jsValue(intbb[])
{inti,bw,sw,gw,cnt=0;
for(i=10;
i*i<
1000;
{bw=i*i/100;
sw=i*i%100/10;
gw=i*i%10;
if(bw==sw||sw==gw||gw==bw)
bb[cnt++]=i*i;
returncnt;
(3)寻找并输出11至999之间的数m,它满足m,m2和m3均为回文数。
所谓回文数是指其各位数字左右对称的整数,例如121,676,94249等。
满足上述条件的数如m=11,m2=121,m3=1331皆为回文数。
intjsValue(longn)
{longints=0,k;
k=n;
while(k)
{s=s*10+k%10;
k/=10;
f(s==n)return1;
if(s!
=n)return0;
{inti,strl,half;
charxy[20];
ltoa(n,xy,10);
/*注意这里不能使用itoa()函数,因为n是long型的*/
strl=strlen(xy);
if(xy[i]!
=xy[--strl])
if(i>
=half)
return1;
elsereturn0;
(4)某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1(注:
n-2与n-1为下标)
要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:
Sn<
M且Sn+1>
=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中
jsValue()
{inta1=1,a2=1,a3,sn,k=2;
sn=a1+a2;
while
(1)
{a3=a1+2*a2;
if(sn<
100&
sn+a3>
=100)b[0]=k;
1000&
=1000)b[1]=k;
if(sn<
10000&
=10000)
{b[2]=k;
sn=sn+a3
a1=a2;
a2=a3;
k++;
(5)将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。
新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。
jsValue(inta[10][9])
{inti,j,k,val,num;
{val=a[i][0];
9;
j++)遍历9个数
if(a[i][j]<
val)看是否小于第一个数
{num=a[i][j];
for(k=j;
k>
0;
k--)
a[i][k]=a[i][k-1];
把这个数的前面所有数往后移一位
a[i][0]=num;
把这个数放到第一位
}
11、迭代方法求方程、平方根、SIX/NINE、数字运算题
(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的一个实根,作为函数值返回。
floatcountValue()
{floatx0,x1;
浮点数定义
x1=0.0;
do{x0=x1;
x1=cos(x0);
while(fabs(x0-x1)>
=0.000001);
returnx1;
(2)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 三级 网络技术 上机 考前 分类 详解 宝典
![提示](https://static.bdocx.com/images/bang_tan.gif)