计算机等级考试三级网络技术标准Word文件下载.docx
《计算机等级考试三级网络技术标准Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算机等级考试三级网络技术标准Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
inttemp;
/*定义数据交换时的暂存变量*/
for(i=0;
i++)/*逐个取每个4位数*/
if(a[i]%2!
=0)/*如果当前数是奇数*/
for(j=i+1;
j++)/*取该数后面的5个数进行比较*/
if(a[i]<
a[j])
break;
/*如果当前数不满足比后面5个数都大的条件,则跳出循环*/
if(j==i+6)/*如果当前数比后面的5个数都大*/
b[cnt]=a[i];
/*将满足条件的数存入数组b中*/
cnt++;
/*并统计满足条件的数的总个数*/
cnt-1;
i++)/*利用选择法对数组b中的元素进行从小到大的排序*/
if(b[i]>
temp=b[i];
b[i]=b[j];
b[j]=temp;
****************************************************************************
★题目8(整数排序题)
(五个星)
下列程序的功能是:
将一正整数序列{K1,K2,...,K9}重新排列成一个新的序列。
新序列中,比K1小的数都在K1的前面(左面),比K1大的数都在K1的后面(右面)。
要求编写函数jsValue()实现此功能,最后调用writeDat()函数将新序列输出到文件out.dat中。
说明:
在程序中已给出了10个序列,每个序列有9个正整数,并存入数组a[10][9]中,分别求出这10个新序列。
例:
序列{6,8,9,1,2,5,4,7,3}
经重排后成为{3,4,5,2,1,6,8,9,7}
voidjsValue(inta[10][9])
{inti,j,k,val,num;
10;
{val=a[i][0];
for(j=0;
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;
*************************************************************************
题目48字符型题
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中;
请编制函数StrOR(),其函数的功能是:
以行为单位依次把字符串中所有小写字母o左边的字符串内容移到该串的右边存放,然后把小写字母o删除,余下的字符串内容移到已处理字符串的左边存放,之后把已处理的字符串仍按行重新存入字符串数组xx中。
最后main()函数调用函数WriteDat()把结果xx输出到文件OUT5.DAT中
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);
//初始化数组tem;
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);
else
continue;
********书上答案*************
inti,j,k,index,strl;
charch;
strl=strlen(xx[i]);
index=strl;
strl;
k<
strl-1;
k++)
xx[i][k]=xx[i][k+1];
xx[i][strl-1]='
'
;
index=j;
for(j=strl-1;
=index;
j--)
ch=xx[i][strl-1];
for(k=strl-1;
xx[i][k]=xx[i][k-1];
xx[i][0]=ch;
★题目49(字符处理——倒序输出)
(不会)
(要牢记)
函数ReadDat()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组xx中,请编制函数StrOL(),其函数的功能是:
以行为单位对行中以空格或标点符号为分隔的所有单词进行倒排。
最后把已处理的字符串(应不含标点符号)仍按行重新存入字符串数组xx中,最后调用函数writeDat()把结果xx输出到文件OUT6.DAT中。
例如:
原文:
YouHeMe
Iamastudent.
结果:
MeHeYou
studentaamI
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;
{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]='
\0'
strcpy(xx[i],str);
☆题目52(亲朋字符替换题)
函数READDAT()实现从文件IN.DAT中读取一篇英文文章存入到字符串数组XX中;
请编制函数CHA(),其函数功能是:
以行为单位把字符串中的第一个字符的ASCII值加第二个字符的ASCII值,得到第一个亲朋字符,第二个字符的ASCII值加第三个字符的ASCII值,得到第二个新字符,依此类推一直处理到最后第二个字符,最后一个字符的ASCII值加原第一个字符的ASCII值,得到最后一个新的字符,得到的新字符分别存放在原字符串对应的位置上。
最后把已处理的字符串逆转后按行重新存入字符串数组XX中,最后调用函数WRITEDAT()把结果XX输出到文件OUT9.DAT中.原始数据文件存放的格式是:
每行的宽度均小于80个字符,含标点符号和空格.
voidChA(void)
{inti,j;
{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]);
//进行逆转
******************************************************************************
字符串处理题
☆题目54(字符串字母移位题)
程序prog1.c的功能是:
把s字符串中的所有字母改写成该字母的下一个字母,字母z改写成字母a。
要求大写字母仍为大写字母,小写字母仍为小写字母,其它字符不做改变。
请考生编写函数chg(char*s)实现程序要求,最后调用函数readwriteDAT()把结果输出到文件bc1.out中。
例如:
s字符串中原有的内容为:
Mn.123Zxy,则调用该函数后,结果为:
No.123Ayz。
voidchg(char*s)
{intI;
for(I=0;
I<
strlen(s);
I++)
if(s[i]=='
z'
||s[i]=='
Z'
)s[i]-=25;
elseif(s[i]>
a'
s[i]<
y'
||s[i]>
A'
Y'
)s[i]+=1;
**************************************************************************
题目56(字符串左右排序交换题)
函数ReadDat()实现从文件in.dat中读取20行数据存放到字符串数组xx中(每行字符串长度均小于80)。
请编制函数jsSort(),其函数的功能是:
以行为单位对字符串按给定的条件进行排序,排序后的结果仍按行重新存入字符串数组xx中,最后调用函数WriteDat()把结果xx输出到文件out.dat中。
条件:
从字符串中间一分为二,左边部分按字符的ASCII值升序排序,排序后左边部分与右边部分进行交换。
如果原字符串长度为奇数,则最中间的字符不参加处理,字符仍放在原位置上。
例如:
位置 0 1 2 3 4 5 6 7 8
源字符串 dcbahgfe
432198765
则处理后字符串hgfeabcd
876591234
Abcdhgfe
123498765
voidjsSort()
{inti,j,k,strl,half;
chartemp;
20;
half=strl/2;
half-1;
for(k=j+1;
half;
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--)
方差运算题
★☆题目61(方差运算题)
请编制函数ReadDat()实现从文件IN.DAT中读取1000个十进制整数到数组xx中;
请编制函数Compute()分别计算出xx中偶数的个数even,奇数的平均值ave1,偶数的平均值ave2以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。
计算方差的公式如下:
N2
totfc=1/N∑(xx[i]-ave2)
i=1
设N为偶数的个数,xx[i]为偶数,ave2为偶数的平均值。
原始数据文件存放的格式是:
每行存放10个数,并用逗号隔开。
(每个数均大于0且小于等于2000)
/*********编制函数ReadDat()的部分************/
MAX;
{fscanf(fp,"
%d,"
&
xx[i]);
if((i+1)%10==0)
fscanf(fp,"
\n"
);
/*******************************************/
voidCompute(void)
{inti,yy[MAX];
yy[i]=0;
if(xx[i]%2==0){yy[even++]=xx[i];
ave2+=xx[i];
else{odd++;
ave1+=xx[i];
if(odd==0)ave1=0;
elseave1/=odd;
if(even==0)ave2=0;
elseave2/=even;
even;
totfc+=(yy[i]-ave2)*(yy[i]-ave2)/even;
☆题目62(方差运算题)
请编制函数Compute()分别计算出xx中奇数的个数odd,奇数的平均值ave1,偶数的平均值ave2以及所有奇数的方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。
计算方差的公式如下:
totfc=1/N∑(xx[i]-ave1)
设N为奇数的个数,xx[i]为奇数,ave1为奇数的平均值。
/*********编制函数ReadDat()的部分************/
{fscanf(fp,"
voidCompute(void)
if(xx[i]%2){yy[odd++]=xx[i];
else{even++;
odd;
totfc+=(yy[i]-ave1)*(yy[i]-ave1)/odd;
☆题目63(方差运算题)
请编制函数Compute(),分别计算出xx中奇数的个数odd,偶数的个数even,平均值aver以及方差totfc的值,最后调用函数WriteDat()把结果输出到OUT.DAT文件中。
totfc=1/N∑(xx[i]-aver)
/***************编制函数ReadDat()*****************/
{fscanf(fp,"
*********************************************
{inti;
{if(xx[i]%2)odd++;
elseeven++;
aver+=xx[i];
aver/=MAX;
totfc+=(xx[i]-aver)*(xx[i]-aver);
totfc/=MAX;
*******************************************************************************
选票问题
题目87(选票问题)
现有一个10个人100行的选票数据文件IN.DAT,其数据存放的格式是每条记录的长度均为10位,第一位表示第一个人的选中情况,第二位表示第二个人的选中情况,依此类推:
内容均为字符0和1,1表示此人被选中,0表示此人未被选中,若一张选票人数小于等于5个人时被认为无效的选票。
给定函数ReadDat()的功能是把选票数据读入到字符串数组xx中。
请编制函数CountRs()来统计每个人的选票数并把得票数依次存入yy[0]到yy[9]中。
把结果yy输出到文件OUT.DAT中。
voidCountRs(void)
{inti,j,count;
100;
{count=0;
j++)//无效选票的判定,每一行表示一个人的投票情况
1'
)count++;
if(count<
=5)continue;
)yy[j]++;
***************************************************************************
★☆题目90(级数运算题)
某级数的前两项A1=1,A2=1,以后各项具有如下关系:
An=An-2+2An-1(注:
n-2与n-1为下标)
下列程序prog1.c的功能是:
要求依次对于整数M=100,1000和10000求出对应的n值,使其满足:
Sn<
M且Sn+1>
=M,这里Sn=A1+A2+...+An,并依次把n值存入数组单元b[0],b[1]和b[2]中,请编制jsValue()函数来实现此功能,最后调用函数writeDat()把数组b[]中的值输出到out.dat文件中。
请勿改动主函数main()和写函数writeDat()的内容。
#include<
stdio.h>
intb[3];
jsValue()
{inta1=1,a2=1,a12,sn,k=2;
sn=a1+a2;
while
(1)
{a12=a1+2*a2;
if(sn<
100&
sn+a12>
=100)b[0]=k;
1000&
=1000)b[1]=k;
10000&
=10000){b[2]=k;
sn=sn+a12;
a1=a2;
a2=a12;
k++;
运行结果为:
M=100,n=6
M=1000,n=9
M=10000,n=11
其他问题
☆题目91(单词个数统计题)
编写一个函数findStr(char*str,char*substr),该函数统计一个长度为2的子字符串在另一个字符串中出现的次数。
例如,假定输入的字符串为"
asdasasdfgasdaszx67asdmklo"
,子字符串为"
as"
,函数返回值是6。
(表明了返回值是整数型)
函数ReadWrite()实现从文件in.dat中读取两个字符串,并调用函数findStr(),最后把结果输出到文件out.dat中。
intfindStr(char*str,char*substr)
{inti,j,len1,len2,cnt=0,flag;
len1=strlen(str);
len2=strlen(substr);
len1;
{for(j=0;
len2;
if(str[i+j]==substr[j])flag=1;
else{flag=0;
if(flag==1)cnt++;
returncnt;
★题目92(Fibonacci数列题)
编写函数jsValue,它的功能是:
求Fibonacci数列中大于t的最小的一个数,结果由函数返回。
其中Fibonacci数列F(n)的定义为:
F(0)=0,F
(1)=1
F(n)=F(n-1)+F(n-2)
最后调用函数writeDat()读取50个数据t,分别得出结果且把结果输出到文件out.dat中。
当t=1000时,函数值为:
1597。
intjsValue(intt)
{intf0=0,f1=1,fn;
fn=f0+f1;
while(fn<
=t)
{f0=f1;
f1=fn;
returnfn;
******************************************************************