試題一 閱讀下列說明、流程圖和算法,將應(yīng)填入 n 處的字句寫在答題紙的對應(yīng)欄內(nèi)。
[流程圖說明]
下面的流程圖用N-S盒圖形式描述了在一棵排序二叉樹中查找元素的過程,節(jié)點有三個成員:data,left,right。其查找的方法是:首先與樹的根節(jié)點的元素值進行比較:若相等則找到,返回此結(jié)點的地址;若要查找的元素小于根節(jié)點的元素值,則指針指向此結(jié)點的左子樹,繼續(xù)查找;若要查找的元素大于根節(jié)點的元素值,則指針指向此結(jié)點的游子樹,繼續(xù)查找。直到指針為空,表示此樹中不存在所要查找的元素。
[算法說明]
將上題的排序二叉樹中查找元素的過程用遞歸的方法實現(xiàn)。其中NODE是自定義類型:
typedef struct node {
int data;
struct node *left;
struct node *right;
} NODE;
[算法]
NODE *SearchSortTree(NODE *tree,int e) {
if(tree != NULL)
{ if (tree->data < e)
(4) ; //小于查找左子樹
else if (tree->data < e)
(5) ;//大于查找左子樹
else return tree;
}
return tree;
}
試題二
閱讀下列函數(shù)說明和C函數(shù),將應(yīng)填入 n 處的字句寫在答題紙的對應(yīng)欄內(nèi)。
[函數(shù)2.1說明]
函數(shù)strcat(char s[], char t[])的功能是:將字符串t復(fù)制連接字符串s的尾部,并返回新字符串的首地址作為函數(shù)值。例如:若s=“abcd”,t=“efg”,則新字符串應(yīng)該是“abcdefg”。
[函數(shù)2.1]
char *strcat(char s[], char t[])
{ char *p;
p = s + strlen(s)-1
while( (1) ) {
(2) ;
}
*p = ‘\0’;
return s;
}
[函數(shù)2.2說明]
函數(shù)f(char *str, char del)的功能是:將非空字符串str中的指定字符del刪除,形成一個新字符串仍存放在str所指內(nèi)存單元中。
例如若str的值為“33123333435”,del的值為‘3’,調(diào)用此函數(shù)后,新字符串為:“1245”。
[函數(shù)2.2]
void f(char *str, char del)
{
int i, j, len;
len=strlen(str);
i=j=0;
while(i
if ( (3) )
(4) = str[i];
i++;
}
(5) ;
}
試題三
閱讀以下說明和C代碼,將應(yīng)填入 n 處的字句寫在答題紙的對應(yīng)欄內(nèi)。
[說明]
下面程序中函數(shù)fun的功能是:在含有10 個元素的s數(shù)組中查找數(shù),及數(shù)所在位置(即,下標(biāo)值),數(shù)可能不止一個。數(shù)作為函數(shù)值返回,數(shù)的個數(shù)通過指針變量n傳回,所在位置由數(shù)組pos傳回。
例如:
若輸入 2 8 5 7 8 4 5 3 2 8
則應(yīng)輸出:
The max: 8
Total: 3 //數(shù)出現(xiàn)次數(shù)
The positions: 1 4 9
#include
#define M 10
int fun(int *a, int *n, int pos[])
{ int i, k, max=-32767;
(1)
for(i=0; i
if( (2) ) max=a[i];
for(i=0; i
if( (3) ) pos[k++]=i;
*n=k;
return max;
}
main()
{ int a[M], pos[M], i=0, j, n;
printf("Enter 10 number :");
for(i=0; i
j=fun( (5) );
printf("The max: %d\n", j);
printf("Total: %d",n);
printf("The position:");
for(i=0; i
printf("\n");
}
試題四 (試題四和試題五選做一題)
閱讀下列函數(shù)說明和C函數(shù),將應(yīng)填入 n 處的字句寫在答題紙的對應(yīng)欄內(nèi)。
[函數(shù)說明]
函數(shù)ReadDat()實現(xiàn)從文件in.dat中讀取20行數(shù)據(jù)存放到字符串?dāng)?shù)組dat中(第行字符串長度均小于80)。請編制函數(shù)jsSort(),其函數(shù)的功能是:以行為單位對字符串按給定的條件進行排序,排序后的結(jié)果仍按行重新存入字符串?dāng)?shù)組dat中,最后調(diào)用函數(shù)WriteDat()把結(jié)果dat輸出到文件out.dat中。
條件:從字符串中間一分為二,右邊部分按字符的ASCII值降序排序,排序后左邊部分與右邊部分進行交換。如果原字符串長度為奇數(shù),則最中間的字符不參加排序,字符仍放在原位置上。
例如:位置 0 1 2 3 4 5 6 7
源字符串 h g f e a b c d
則處理后字符串 d c b a h g f e
部分源程序已給出。
請勿改動主函數(shù)main()、讀數(shù)據(jù)函數(shù)ReadDat()和輸出數(shù)據(jù)函數(shù)WriteDat()的內(nèi)容。
#include
#include
char dat[20][80];
void jsSort()
{ int i,j,k,strl;
char ch;
for(i=0;i<20;i++)
{ strl=strlen(dat[i]);
for(j= (1) ;j
for(k=j+1;k
if( (2) )
{
ch=dat[i][j];
dat[i][j]=dat[i][k];
dat[i][k]=ch;
}
for(j=0; (3) ;j++)
{
ch=dat[i][j];
dat[i][j]=dat[i][(strl+1)/2+j];
dat[i][(strl+1)/2+j]=ch;
}
}
}
readDat()
{ FILE *in;
int i=0;
char *p;
(4) ;
while(i<20&&fgets(dat[i],80,in)!=NULL)
{ p=strchr(dat[i],’\n’);
if(p)*p=0;
i++;
}
fclose(in);
}
writeDat()
{ FILE *out;
int i;
out=fopen(“out.dat”,”w”);
for(i=0;i<20;i++)
{ printf(“%s\n” ,dat[i]);
fprintf( (5) );
}
fclose(out);
}
void main()
{ readDat();
jsSort();
writeDat();
}
- 環(huán)球網(wǎng)校:2024年計算機軟考高級旗艦班系規(guī)旗艦班課程
- 2025年計算機技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試時間:5月24日-27日、11月8日-11日
- 2024下半年計算機技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試成績查詢通知
- 2024年上半年計算機軟件資格考試單獨劃線地區(qū)合格標(biāo)準
- 2023上半年計算機軟件資格考試單獨劃線地區(qū)合格標(biāo)準通告
- 2023下半年計算機技術(shù)與軟件專業(yè)技術(shù)資格(水平)考試模擬練習(xí)平臺上線公告
- 查看計算機軟件水平考試全部文檔 >>