想要成為一個(gè)專業(yè)的程序設(shè)計(jì)人員,必須參加全國軟件工程師程序員考試,這是唯一的途徑。唯學(xué)網(wǎng)是一個(gè)大型的教育考試培訓(xùn)平臺(tái),唯學(xué)網(wǎng)小編應(yīng)廣大考生的強(qiáng)烈要求,為準(zhǔn)備參加2013年軟件工程師考試的考生們整理了程序員考試程序設(shè)計(jì)試題及答案。具體如下:
試題一
【說明】
該程序的功能是從文件IN.DAT中讀取一篇英文文章存入到字符串?dāng)?shù)組xx中,以行為單位對(duì)行中以空格或標(biāo)點(diǎn)符號(hào)為分隔的所有單詞進(jìn)行倒排。最后把已處理的字符串(應(yīng)不含標(biāo)點(diǎn)符號(hào))仍按行重新存入字符串?dāng)?shù)組xx中,最后把結(jié)果xx輸出到文件OUT6.DAT中。
例如:原文:You He Me
I am a student.
結(jié)果:Me He You
student a am I
原始數(shù)據(jù)文件存放的格式是:每行的寬度均小于80個(gè)字符,含標(biāo)點(diǎn)符號(hào)和空格。
【函數(shù)】
#include
#include
#include
#include
char xx[50][80];
int maxline=0;/*文章的總行數(shù)*/
int ReaaDat(void);
void WriteDat(void);
void StrOL(void)
{
char*pl,*p2,t[80];
int i;
for(i=0;i{p1=xx[i];t[0]=0;
while(*p1)p1++;
while(p1>=xx[i])
{while(!isalpha(*p1)&&p1!=xx[i])p1--;
p2=p1;
while( (1) )p1--;
if(p1==xx[i])
if(isalpha(*p1))p1--;
else if(!isalpha(*(p1+1)))break;
p2++;
(2) ;
strcat(t,p1+1);
strcat(t," ");
}
strcpy(xx[i],t);
}
}
void main()
{
if( (3) ){
printf("數(shù)據(jù)文件in.dat不能打開!\n\007");
return;
}
StrOL();
writeDat();
getch();
}
int ReadDat(void)
{
FILE*fp;
int i=0;
char*p;
if((fp=fopen("e:\\a\\in.dat","r"))==NULL)return 1;
while(fgets(xx[i],80,fp)!=NULL){
p=strchr(xx[i],′\n′);
if(p)*p=0;
i++;
}
maxline= (4)
fclose(fp);
return 0;
}
void WriteDat(void)
{
FILE*fp;
int i;
fp=fopen("e:\\a\\out6.dat","w");
for(i=0;i< (5) ;i++){
printf("%s\n",xx[i]);
fprintf(fp,"%s\n",xx[i]);
}
fclose(fp);
}
【答案】
(1)isalpha(*p1)&&p1!=xx[i]
(2)*p2=0
(3)ReadDat()
(4)i
(5)maxline
試題二
閱讀下列說明和流程圖,將應(yīng)填入(n)的語句寫在答題紙的對(duì)應(yīng)欄內(nèi)。
【流程圖說明】
下面的流程(如圖1所示)用N-S盒圖形式描述了在一棵二叉樹排序中查找元素的過程,節(jié)點(diǎn)有3個(gè)成員:data,left和right。其查找的方法是:首先與樹的根節(jié)點(diǎn)的元素值進(jìn)行比較:若相等則找到,返回此結(jié)點(diǎn)的地址;若要查找的元素小于根節(jié)點(diǎn)的元素值,則指針指向此結(jié)點(diǎn)的左子樹,繼續(xù)查找;若要查找的元素大于根節(jié)點(diǎn)的元素值,則指針指向此結(jié)點(diǎn)的右子樹,繼續(xù)查找。直到指針為空,表示此樹中不存在所要查找的元素。
【算法說明】
【流程圖】
將上題的排序二叉樹中查找元素的過程用遞歸的方法實(shí)現(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(4) ;∥小于查找左子樹
else if(tree->data(5) ;∥大于查找左子樹
else return tree;
}
return tree;
}
【答案】
(1)p=p->left
(2)p=p->right
(3)return P
(4)return SearchSortTree(tree->left)
(5)return SearchSortTree(tree->right)