2016年3月三級網絡技術上機題及答案
1.函數ReadDat( )的功能是實現從文件中讀取一篇英文文章存入到字符串數組xx中。請編制函數SortCharA( ),該函數的功能是:以行爲單位對字符按從小到大的順序進行排序,排序後的結果仍按行重新存入字符串數組xx中。最後調用函數WriteDat( )把結果xx輸出到文件中。
例如,原文:dAe,BfC
CCbbAA
結果:ABCdef
AACCbb
原始數據文件存放的格式是:每行的寬度均小於80個字符,含標點符號和空格。
注意:部分源程序已給出。
請勿改動主函數main( )、讀函數ReadDat( )和寫函數WriteDat( )的內容。
試題程序:
#include
#include
#include
char xx[50][80];
int maxline=0;
int ReadDat(void);
void WriteDat(void);
void SortCharA()
{
}
void main()
{
system("CLS");
if (ReadDat())
{
printf("數據文件不能打開!n07");
return;
}
SortCharA();
WriteDat();
}
int ReadDat(void)
{
FILE *fp;
int i=0;
char *p;
if((fp=fopen("","r"))==NULL)
return 1;
while(fgets(xx[i],80,fp)!=NULL)
{
p=strchr(xx[i],'n');
if (p) *p=0;
i++;
}
maxline=i;
fclose(fp);
return 0;
}
void WriteDat()
{
FILE *fp;
int i;
system("CLS");
fp=fopen("","w");
for(i=0;i
{
printf("%sn",xx[i]);
fprintf(fp,"%sn",xx[i]);
}
fclose(fp);
}
【答案】
void SortCharA()
{
int i,j,k; /*定義循環控制變量*/
int str; /*存儲字符串的長度*/
char temp; /*數據交換時的暫存變量*/
for (i=0;i
{
str=strlen(xx[i]); /*求得當前行的'字符串長度*/
for(j=0;j
for(k=j+1;k<>
if (xx[i][j]>xx[i][k])
{
temp=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=temp;
}
}
}
【解析】本題主要考查數組的訪問及排序問題。
通過雙重循環結構逐行獲取字符進行處理,首先使用字符串處理函數strlen()來求出每一行的字符串長度。然後運用選擇法逐行對字符按照從小到大的順序進行排序。
2.編寫一個函數findStr( ),該函數統計一個長度爲2的字符串在另一個字符串中出現的次數。例如,假定輸入的字符串爲"asd asasdfg asd as zx67 asd mklo",子字符串爲"as",函數返回值是6。
函數ReadWrite( )的功能是實現從文件中讀取兩個字符串,並調用函數findStr(),最後把結果輸出到文件中。
注意:部分源程序已給出。
請勿改動主函數main() 和其他函數中的任何內容,僅在函數 findStr()的花括號中填入你所編寫的若干語句。
試題程序:
#include
#include
#include
void ReadWrite();
int findStr(char *str,char *substr)
{
}
void main()
{
char str[81],substr[3];
int n;
system("CLS");
printf("輸入原字符串:");
gets(str);
printf("輸入子字符串:");
gets(substr);
puts(str);
puts(substr);
n=findStr(str,substr);
printf("n=%dn",n);
ReadWrite();
}
void ReadWrite()
{
char ch,str[81],substr[3];
int n,len,i=0;
FILE *rf,*wf;
rf=fopen("","r");
wf=fopen("","w");
while(i<>
{
fgets(str,80,rf);
fgets(substr,10,rf);
len=strlen(substr)-1;
ch=substr[len];
if(ch=='n'||ch==0x1a)
substr[len]=0;
n=findStr(str,substr);
fprintf(wf,"%dn",n);
i++;
}
fclose(rf);
fclose(wf);
}【答案】
int findStr(char *str,char *substr)
{
int n=0; /*定義計數器變量,統計出現次數*/
char *p,*r; /*定義指針變量來分別指向兩個字符串*/
while(*str) /*如果字符串沒有結束,則一直循環下去*/
{
p=str; /*指針p指向字符串首地址*/
r=substr; /*指針r指向子字符串首地址*/
while(*r) /*若子字符串沒有結束,則循環繼續*/
if(*r==*p)
/*如果子字符串的第一個字符等於字符串中的該字符,則繼續比較下一個字符*/
{
r++;
p++;
}
else
break; /*否則退出循環*/
if(*r=='') /*如果子字符串在字符串中出現了一次*/
n++; /*則n加1,進行統計*/
str++; /*指向字符串中的下一個字符*/
}
return n; /*返回統計結果n*/
}
【解析】本題主要考查了指針的相關操作。
首先,通過外層的while循環取字符串的每一個字符,取完字符串的所有字符之後,循環纔會終止。用兩個字符型指針分別指向兩個字符串。逐個將字符串的字符跟子字符串的字符對比,如果相等,則兩個指針都自加1,分別指向兩個串的下一個字符。若不相等,則主串的指針加1,子串的指針重新指向起始位置,繼續比較下一個字符。
相關文章
-
2016年3月計算機三級網絡技術上機題及答案
很榮幸地被大家認可,在最初的班委選舉中成爲我們班首任學習委員。在這近乎一學期的時間裏,我還是能夠有所作爲地讓自己爲同學們做了些事情。比如校“三創”能力大賽的作品參與,史學概論的課堂討論,文學史的添補課時等等。 -
2016年3月計算機三級網絡技術試題及答案
【例題】讀函數readDat()的功能是從文件中讀取20行數據存放到字符串數組xx中(每行字符串長度均小於80)。請編制函數jsSort(),該函數的功能是:以行爲單位對字符串按下面給定的條件進行排序,排序後的結果仍按行重新存 -
2015年9月計算機三級網絡技術上機試題及答案
【網絡技術試題】函數ReadDat( )實現從文件中讀取1000個十進制整數到數組xx中。請編制函數Compute( )分別計算出xx中偶數的個數even、奇數的平均值ave1、偶數的平均值ave2及所有偶數的方差totfc的值,最後調用函數W -
2016年三級網絡技術上機題及答案
函數ReadDat()的功能是實現從文件中讀取一篇英文文章存入到字符串數組xx中;請編制函數StrOL(),該函數的功能是:以行爲單位對行中以空格或標點符號爲分隔的所有單詞進行倒排。最後把已處理的字符串(應不含標點符號)仍按 -
2016年計算機三級網絡技術上機試題及答案
函數ReadDat( )的功能是實現從文件中讀取一篇英文文章存入到字符串數組xx中。請編制函數CharConvA( ),該函數的功能是:以行爲單位把字符串的最後一個字符ASCII值右移4位後加最後第二個字符的ASCII值,得到最後一個新的字 -
2016計算機三級網絡技術上機題及答案
編寫函數jsValue(),它的功能是求Fibonacci數列中大於t的最小的一個數,結果由函數返回,其中Fibonacci數列F(n)的定義爲:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)最後調用函數writeDat(),把結果輸出到文件中。例如:當t = 1000時,函數值 -
2016年計算機等級考試三級網絡技術上機題及答案
在日復一日的學習、工作或生活中,大家一定都接觸過作文吧,作文根據寫作時限的不同可以分爲限時作文和非限時作文。你知道作文怎樣才能寫的好嗎?以下是小編爲大家整理的種花的樂趣作文,希望能夠幫助到大家。種花的樂趣作文 -
2017年3月計算機三級網絡技術真題及答案
2017年上半年的計算機等級考試馬上就要開始了,下面是小編整理的計算機三級網絡技術真題及答案,希望可以幫助到大家!(1)我國互聯網界曾發生所謂3Q大戰,根據你的瞭解它們發生在哪兩個公司之間?A.3Com與百度之間B.3Com與騰 -
2016計算機三級網絡技術上機考試題及答案
編寫函數jsValue(),它的功能是求Fibonacci數列中大於t的最小的一個數,結果由函數返回,其中Fibonacci數列F(n)的定義爲:F(0)=0,F(1)=1F(n)=F(n-1)+F(n-2)最後調用函數writeDat(),把結果輸出到文件中。例如:當t = 1000時,函數值 -
2016計算機考試三級網絡技術上機題及答案
函數ReadDat()的功能是實現從文件中讀取一篇英文文章存入到字符串數組xx中;請編制函數StrOL(),該函數的功能是:以行爲單位對行中以空格或標點符號爲分隔的所有單詞進行倒排。最後把已處理的字符串(應不含標點符號)仍按