軟件設計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2022/2/2)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2022/2/2
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內(nèi)容(2022/2/2)
試題七
閱讀以下說明和C程序,將應填入 (n) 處的字句寫在答題紙的對應欄內(nèi)。
[說明]
現(xiàn)有n(n<1000)節(jié)火車車廂,順序編號為1,2,3,…,n,按編號連續(xù)依次從A方向的鐵軌駛入,從B方向鐵軌駛出,一旦車廂進入車站(Station)就不能再回到A方向的鐵軌上:一旦車廂駛入B方向鐵軌就不能再回到車站,如下圖所示,其中Station為棧結構,初始為空且最多能停放1000節(jié)車廂。
下面的C程序判斷能否從B方向駛出預先指定的車廂序列,程序中使用了棧類型 STACK,關于?;静僮鞯暮瘮?shù)原型說明如下:
void InitStack(STACK*s):初始化棧
void Push(STACK *s,int e):將一個整數(shù)壓棧,棧中元素數(shù)目增1
void Pop(STACK *s):棧頂元素出棧,棧中元素數(shù)目減1
int Top(STACK s):返回非空棧的棧頂元素值,棧中元素數(shù)目不變
int IsEmpty(STACK s):若是空棧則返回1,否則返回0
[C程序]
#include<stdio.h>
/*此處為棧類型及其基本操作的定義,省略*/
int main29{
STACK station;
int state[1000];
int n; /*車廂數(shù)*/
int begin,i,j,maxNo; /*maxNo為A端正待入棧的車廂編號*/
printf("請輸入車廂數(shù):");
scanf("%d",&n);
printf("請輸入需要判斷的車廂編號序列(以空格分隔):");
if (n<1) return-1;
for(i=0;i<n;i++) /*讀入需要駛出的車廂編號序列,存入數(shù)組state[]*/
scanf("%d",&state[i]);
(1);/*初始化棧*/
maxNo=1;
for(i=0;i<n;){/*檢查輸出序列中的每個車廂號state[i]是否能從棧中獲取*/
if( (2) ){/*當棧不為空時*/
if(state[i]= =Top(station)){/*棧頂車廂號等于被檢查車廂號*/
printf("%d",Top(station));
Pop(&station); i++;
}
else
if( (3) ){
printf("error\n");
return 1;
}
else {
begin= (4) ;
for(j=begin+1;j<=state[i];j++) {
Push(&station,j);
}
}
}
else{ /*當棧為空時*/
begin=maxNo;
for(j=begin;j<=state[i];j++){
Push(&station,j);
}
maxNo=(5) ;
}
}
printf("OK");
return 0;
}
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:m.xiexiliangjiufa.com/st/2459117178.html
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權威部門公布的內(nèi)容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。
發(fā)表評論 查看完整評論 | |