軟件設計師案例分析當天每日一練試題地址:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4
往期軟件設計師每日一練試題匯總:m.xiexiliangjiufa.com/class/27/e4_1.html
軟件設計師案例分析每日一練試題(2021/8/6)在線測試:m.xiexiliangjiufa.com/exam/ExamDayAL.aspx?t1=4&day=2021/8/6
點擊查看:更多軟件設計師習題與指導
軟件設計師案例分析每日一練試題內容(2021/8/6)
閱讀以下說明和C程序,將應填入 (n) 處的字句寫在答題紙的對應欄內。
【說明】
現(xiàn)有n(n<1000)節(jié)火車車廂,順序編號為1,2,3,?,n,按編號連續(xù)依次從A方向的鐵軌駛入,從B方向鐵軌駛出,一旦車廂進入車站(Station)就不能再回到A方向的鐵軌上;一旦車廂駛入B方向鐵軌就不能再回到車站,如圖7-1所示,其中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 main(){
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+l;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)試題答案與解析:m.xiexiliangjiufa.com/st/3809024974.html
信管網(wǎng)考友試題答案分享:
信管網(wǎng)試題答案與解析:
m.xiexiliangjiufa.com/st/3809024974.html
溫馨提示:因考試政策、內容不斷變化與調整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請以權威部門公布的內容為準!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛好者、大學生提供專業(yè)、高質量的課程和服務,解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過深研歷年考試出題規(guī)律與考試大綱,深挖核心知識與高頻考點,為學員考試保駕護航。面授、直播&錄播,多種班型靈活學習,滿足不同學員考證需求,降低課程學習難度,使學習效果事半功倍。