摘要:希賽網(wǎng)軟考頻道小編為大家整理了2019上半年軟考程序員下午真題第三部分,供大家參考。
3、閱讀以下說明和C代碼,填寫程序中的空缺,將解答寫入答題紙的對應(yīng)欄內(nèi)。
【說明】
某市根據(jù)每天早上5點(diǎn)測得的霧霾指數(shù)(pm2.5值)決定是否對車輛進(jìn)行限行。規(guī)則 如下:
(1)限行時(shí)間為周內(nèi).(即周一到周五),周六周日不限行;
(2)根據(jù)車牌號(hào)的尾號(hào)(最后1位數(shù)字)設(shè)置限行車輛(車牌號(hào)由英文字母和十進(jìn) 制數(shù)字構(gòu)成,長度為6位,至少包含1位數(shù)字);
(3)霧霾指數(shù)低于200時(shí),不限行;
(4)霧霾指數(shù)在區(qū)間[200, 400)時(shí),周內(nèi)每天限行兩個(gè)尾號(hào)的汽車:周一限行1和6, 周二限行2和7,周三限行3和8,周四限行4和9,周五限行5和0,即尾號(hào)除以5的 余數(shù)相同者在同一天限行;
(5)霧霾指數(shù)大于等于400時(shí),周內(nèi)每天限行五個(gè)尾號(hào)的汽車:周一、周三和周五限行1,3,5,7,9,周二和周四限行0,2,4,6,8,即尾號(hào)除以2的余數(shù)相同者在同一天限行;
下面程序運(yùn)行時(shí),輸入霧霾指數(shù)、星期(數(shù)字1表示星期一,數(shù)字2表示星期二,..., 數(shù)字7表示星期日)和車牌號(hào),輸出該車牌號(hào)是否限行的信息。
問題內(nèi)容:
【C代碼】
#include <stdio.h>
#define PM25_L1 200
#defme PM25_L2 400
typedef enum {YES,NO} MARKTAG;
int isDigit(char ch)
{//判斷ch是否為十進(jìn)制數(shù)字字符,是則返回1,否則返回0
return (ch>='0' && ch<='9');
}
void prt_msg(char *msg, MARKTAG flag)
{
if (flag == YES)
printf("%s : traffic restrictions\n", msg);
else
printf("%s : free\n", msg);
}
int isMatched(int weekday, int t, int d) //判斷是否符合限行規(guī)則,是則返回1,否則返回0
{ return (weekday%d == t%d); }
void proc(int pm25, int weekday, char *licence)
{
int i,lastd;
if (weekday == 6 || weekday == 7 || (1) )
prt_msg(licence, NO);
else {
for( i=5; i>=0; i-- )
if (isDigit(licence[i])) {
lastd= (2) ; //獲取車牌號(hào)的尾號(hào)
break;
}
if(pm25>= PM25_L2 ) { //限行5個(gè)尾號(hào)的汽車
if (isMatched( (3) ))
prt_msg(licence, YES);
else
prt_msg(licence, NO);
}
else { //限行2個(gè)尾號(hào)的汽車
if (isMatched( (4) ))
prt_msg(licence, YES);
else
prt_msg(licence, NO);
}
}
}
int main()
{
int weekday=0, pm25=0;
char licence[7];
scanf("%d %d %s’’,&pm25, &weekday, licence);
//輸入數(shù)據(jù)的有效性檢測略,下面假設(shè)輸入數(shù)據(jù)有效、正確
proc( (5) );
return 0;
}
相關(guān)推薦:2019上半年程序員下午真題及答案
在線題庫:程序員歷年真題自測估分
軟考備考資料免費(fèi)領(lǐng)取
去領(lǐng)取
共收錄117.93萬道題
已有25.02萬小伙伴參與做題