三级网络技术上机题库Word文档格式.docx
《三级网络技术上机题库Word文档格式.docx》由会员分享,可在线阅读,更多相关《三级网络技术上机题库Word文档格式.docx(29页珍藏版)》请在冰豆网上搜索。
sell[j].je)
3
i++)
if(strcmp(sell[i].dm,sell[j].dm)>
0)
{temp=sell[i];
elseif(strcmp(sell[i].dm,sell[j].dm)==0)if(sell[i].je>
10
/*定义数据交换时的暂存变量*/
i++)
{if(sell[i].je>
sell[j].je)/*按金额从小到大进行排列*/
sell[i]=sell[j];
elseif(sell[i].je==sell[j].je)/*若金额相同*/
if(strcmp(sell[i].dm,sell[j].dm)>
0)/*则按产品代码从小到大进行排列*/
{
temp=sell[i];
}
14
voidjsValue()
inta1,a2,a3,a4;
/*定义变量保存4位数的每位数字*/
inttemp;
300;
i++)/*逐个取每一个4位数*/
{a4=a[i]/1000;
/*求4位数的千位数字*/
a3=a[i]%1000/100;
/*求4位数的百位数字*/
a2=a[i]%100/10;
/*求4位数的十位数字*/
a1=a[i]%10;
/*求4位数的个位数字*/
if(a4+a3==a2+a1)/*如果千位数加百位数等于十位数加个位数*/
{
b[cnt]=a[i];
/*把满足条件的4位数依次存入数组b中*/
cnt++;
/*计算满足条件的数的个数*/
}
cnt-1;
i++)/*对数组b中的4位数按从大到小进行排序*/
cnt;
if(b[i]<
b[j])
{temp=b[i];
b[i]=b[j];
b[j]=temp;
18
if(a1-a4-a3-a2>
0)/*如果个位数减千位数减百位数减十位数大于零*/
{b[cnt]=a[i];
/*则将满足条件的数存入数组b中*/
/*统计满足条件的数的个数*/
i++)/*对数组b的4位数按从大到小的顺序进行排序*/
21
voidjsVal()
200;
/*求4位数的千位数字*/
if((a4+a1==a3+a2)&
&
a1%2==1)/*如果千位数加个位数等于百位数加十位数,并且此数是奇数*/
i++)/*将数组b中的数按从小到大的顺序排列*/
if(b[i]>
28
voidjsVal()
intab,cd;
/*存储重新组合成的2位数*/
{
a4=a[i]/1000;
ab=10*a4+a1;
/*把千位数字和个位数字重新组成一个新的2位数*/
cd=10*a3+a2;
/*把百位数字和十位数字组成另一个新的2位数*/
if(ab%2==1&
cd%2==1&
(ab%5==0||cd%5==0)&
a4!
=0&
a3!
=0)/*如果这两个2位数均是奇数并且两个2位数中至少有一个数能被5整除,同时两个新2位数的十位上的数字均不为零*/
/*则把满足条件的数存入数组b中*/
/*并统计满足条件的数的个数*/
i++)/*将数组b中的数按从大到小的顺序排列*/
38
for(i=5;
MAX;
i++)/*逐个取每个4位数*/
if(a[i]%2!
a[i]%7==0)/*如果当前数是奇数且可以被7整除*/
for(j=i-5;
=i-1;
j++)/*取该数前面的5个数进行比较*/
{if(a[i]<
a[j])
break;
/*如果当前数不满足比前面5个数都大的条件,则跳出循环*/
elseif(j==i-1)/*如果当前数比前面的5个数都大*/
{b[cnt]=a[i];
/*将满足条件的数存入数组b中*/
cnt++;
i++)/*利用选择法对数组b中的元素进行从小到大的排序*/
b[j])
41
voidjsSort()
199;
i++)/*用选择法对数组进行排序*/
{if(aa[i]%1000>
aa[j]%1000)/*按照每个数的后3位的大小进行升序排列*/
{temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
elseif(aa[i]%1000==aa[j]%1000)/*如果后3位数值相等*/
if(aa[i]<
aa[j])/*则要按原4位数的值进行降序排列*/
{temp=aa[i];
aa[i]=aa[j];
aa[j]=temp;
10;
i++)/*将排好序的前十个数存入数组bb中*/
bb[i]=aa[i];
45
intjsValue(intt)
{intf1=0,f2=1,fn;
/*定义变量存储Fibonacci数,初始化数列的前两项*/
fn=f1+f2;
/*计算下一个Fibonacci数*/
while(fn<
=t)/*如果当前的Fibonacci数不大于t,则继续计算下一个Fibonacci数*/
{f1=f2;
f2=fn;
fn=f1+f2;
returnfn;
/*返回Fibonacci数列中大于t的最小的一个数*/
50
{inti,n=0;
/*定义循环控制变量和计数器变量*/
i++)/*逐个取4位数*/
if(isP(a[i]))/*如果该数为素数*/
{pjz1+=a[i];
/*将满足条件的数求和*/
else
{pjz2+=a[i];
/*将不满足条件的数求和*/
n++;
/*统计不满足条件的数的个数*/
pjz1/=cnt;
/*求满足条件的数的平均值*/
pjz2/=n;
/*求不满足条件的数的平均值*/
56
voidmain()
{intcnt1,cnt2,xx[N];
floatpj;
FILE*fw;
inti,k=0;
longj=0;
cnt1=0;
cnt2=0;
pj=0.0;
system("
CLS"
);
fw=fopen("
out.dat"
"
w"
read_dat(xx);
N;
{if(xx[i]%2)
cnt1++;
/*求出数组xx中奇数的个数cnt1*/
cnt2++;
/*求出数组xx中偶数的个数cnt2*/
if(i%2==1)
{j+=xx[i];
/*求数组xx下标为奇数的元素值的总和*/
k++;
pj=(float)(j*100/k)/100;
/*求数组xx下标为奇数的元素值的算术平均值pj*/
printf("
\n\ncnt1=%d,cnt2=%d,pj=%6.2f\n"
cnt1,cnt2,pj);
fprintf(fw,"
%d\n%d\n%6.2f\n"
fclose(fw);
60:
C语言中文件读函数,if条件判断结构,对多个整数求平均值和方差的算法等。
intReadDat(void)
{FILE*fp;
inti,j;
/*定义计数器变量*/
if((fp=fopen("
IN.DAT"
r"
))==NULL)
return1;
i++)/*依次读取整型数据放入数组xx中*/
{for(j=0;
fscanf(fp,"
%d,"
&
xx[i*10+j]);
fscanf(fp,"
\n"
if(feof(fp))
break;
/*文件读取结束,则退出*/
fclose(fp);
return0;
voidCompute(void)
{inti;
inttt[MAX];
/*定义数组保存奇数*/
1000;
if(xx[i]%2!
=0)
{odd++;
/*计算出xx中奇数的个数odd*/
ave1+=xx[i];
/*求奇数的和*/
tt[odd-1]=xx[i];
/*将奇数存入数组tt中*/
else
{even++;
/*计算出xx中偶数的个数even*/
ave2+=xx[i];
/*求偶数的和*/
ave1/=odd;
/*求奇数的平均值*/
ave2/=even;
/*求偶数的平均值*/
for(i=0;
odd;
totfc+=(tt[i]-ave1)*(tt[i]-ave1)/odd;
/*求所有奇数的方差*/
65此题属于数学类问题。
分析题干,本题存在2个关键点:
关键点1如何通过条件"
同时能被3与7整除"
筛选出指定范围内满足条件的数;
关键点2对所有满足条件的数计算出总和的平方根。
本题的解题思路为:
通过循环控制,依次判断小于等于n范围内的自然数是否满足关键点1中的条件。
累加满足条件的数,并通过总和求出算术平方根,最后通过函数值返回。
【参考答案】
doublecountValue(intn)
doublesum=0.0;
/*存储满足条件的自然数之和,继而求出平方根*/
for(i=1;
n;
i++)/*求n以内(不包括n)同时能被3与7整除的所有自然数之和*/
if(i%3==0&
i%7==0)
sum+=i;
sum=sqrt((double)sum);
/*再对总和求平方根*/
returnsum;
69
【考点分析】本题考查对字符数组中字符的计算和替换。
考查的知识点主要包括:
字符串数组的访问,字符ASCII码的算术运算,if判断结构以及逻辑表达式。
【解题思路】此题属于字符替代问题;
分析题干要求,可以归纳出3个关键点:
关键点1如何对字符数组的元素逐个访问;
关键点2如何根据给出的函数替代关系"
f(p)=p*11mod256"
对字符进行计算;
关键点3根据条件(本题为"
原字符的ASCII值是偶数或计算后f(p)的值小于等于32"
)对计算结果进行判断,并分别对满足与不满足条件的情况进行处理。
通过问题分析,得出解此题的思路为:
首先通过字符串处理函数strlen获取字符串的长度,根据获得的长度使用下标法逐一对字符数组的元素进行访问;
然后按照题目给出的函数关系式直接对字符进行算术运算;
最后通过if判断结构和逻辑表达式判断计算结果是否满足条件,分别对两种情况进行处理。
voidencryptChar()
intstr;
/*存储字符串的长度*/
charch;
/*存储当前取得的字符*/
maxline;
i++)/*以行为单位获取字符*/
{str=strlen(xx[i]);
/*求得当前行的字符串长度*/
for(j=0;
str;
j++)/*依次取每行的所有字符*/
{ch=xx[i][j]*11%256;
if(xx[i][j]%2==0||ch<
=32)/*如果原字符的ASCII值是偶数或计算后的值小于等于32*/
continue;
/*则该字符不变*/
else
xx[i][j]=ch;
/*否则将所对应的字符进行替代*/
71
【解题思路】此题属于字符替代问题。
计算后f(p)的值小于等于32或f(p)对应的字符是小写字母"
本题与前两题思路相同,不同的是本题的替代条件为计算后的f(p)值小于等于32或f(p)对应的字符是小写字母。
/*求得当前行的字符串长度*/
j++)/*依次取各行的每个字符*/
if((ch>
='
a'
&
ch<
z'
)||ch<
=32)
/*如果计算后的值小于等于32或对应的字符是小写字母*/
/*否则用新字符来替代这个字符*/
74
本题属于字符串类题。
要求对二维数组中的字符元素按行处理。
首先用strlen()函数得到当前行所包含的字符个数。
voidencryptChar()
j++)/*依次取每行的各个字符*/
ch=xx[i][j]*11%256;
if(ch<
=32||ch>
130)/*如果计算后的值小于等于32或大于130*/
else/*否则将所对应的字符进行替代*/
78
本题考查对字符串中字符的替换。
指针对字符串元素的访问,C语言循环结构,if判断结构,逻辑表达式。
【解题思路】此题属于字符替换题型;
分析题干要求,可以归纳出2个关键点:
关键点1用指针实现对字符串元素的逐一访问;
关键点2根据要求"
把所有的小写字母改写成该字母的下一个字母"
对字符进行替换。
接着分析具体的解决方法,首先通过指针的移动来实现对字符串的遍历,当指针指向位置的数值不为空,通过if判断结构和逻辑表达式来实现对所有字母的替换操作;
其中对于字母"
z"
和"
Z"
,要分别将其替换成字母"
a"
A"
。
voidchg(char*s)
{while(*s)/*若当前字符不是字符串结束符,则循环一直进行*/
if(*s=='
||*s=='
Z'
)/*将当前字母是'
或者'
*/
{*s-=25;
/*则分别将其改成'
或'
A'
s++;
/*取下一个字母*/
elseif(*s>
*s<
y'
)/*若是小写字母,则改成该字母的下一个字母*/
{*s+=1;
Y'
)/*若是大写字母,则改成该字母的下一个字母*/
{*