2023年5月程序员 模拟二 下午之四
作者:mb64a2dd422e24f2023-12-25 01:00:15
备考咨询 刷题指导
添加专属学姐
2024上半年软考备考资料+考试大纲
下载
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2023年5月程序员 模拟二 下午】部分试题的详解,一起来看看吧~1、试题四(共15分,每空3分)阅读以下函数说明和C语言函数,将应填入 (n)
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2023年5月程序员 模拟二 下午】部分试题的详解,一起来看看吧~
1、试题四(共15分,每空3分)阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。【说明】这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和货车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。 程序中用到的函数有enqueue(queue*sq,elemtype*x)在队列sq中入队一个元素x;outqueue(queue*sq,elemtype*x)在队列sq中出队一个元素,并将其值赋给x;empty(queue*sq)判断队列sq是否为空队,若为空,返回1;否则返回0。。【C函数】#include<stdio.h> void pass(){ queue bus,truct; /*bus表示客车队列,truck表示货车队列*/ char ch; int n,tag; /* ]n为车号,tag为标志,tag=0表示客车,tag=1表示货车*/ intcount=0,countbus=0,counttruck=0; /*分别表示上渡船汽车数、客车数、货车数*/ while(1){ printf("输入命令: \n"); Scanf("%c",&ch); switch(ch){ case'e': case'E': printf("车号: \n"); Scanf("%d",&n); printf("客车\货车(0\1): \n"); scanf("%d",&tag); if( (1) ) enqueue(&bus,n); else enqueue(&truck,n); break; case'i': case'I': while(count<10){ if( (2) && empty(&bus)==0){ /*客车出队*/ outqueue(&bus,&n); printf("上船的车号为: \n"); count++; (3) ; } eise if( (4) ){ /*货车出队*/ countbus=0; outqueue(&truck,&n); printf("上船的车号为: \n"); count++; counttruck++; } else if(empty(&bus)==0){ (5) ; outqueue(&truck,&n); printf("没有10辆车排队轮渡\n"); count++; countbus++; } else{ printf("没有10辆车排队轮渡\n"); retUrn; } break; } case'q': case'Q':break; } if(ch=='q' || ch=='Q') break; } }
答案:
答题解析:
1、试题四(共15分,每空3分)阅读以下函数说明和C语言函数,将应填入 (n) 处的字句写在对应栏内。【说明】这是一个模拟渡口管理的算法。某汽车轮渡口,过江渡船每次能载10辆车过江。过江车辆分为客车类和货车类,上船有如下规定:同类车先到先上船,客车先于货车上渡船,且每上4辆客车,才允许上一辆货车;若等待客车不足4辆,则以货车代替,若无货车等待则允许客车都上船。 程序中用到的函数有enqueue(queue*sq,elemtype*x)在队列sq中入队一个元素x;outqueue(queue*sq,elemtype*x)在队列sq中出队一个元素,并将其值赋给x;empty(queue*sq)判断队列sq是否为空队,若为空,返回1;否则返回0。。【C函数】#include<stdio.h> void pass(){ queue bus,truct; /*bus表示客车队列,truck表示货车队列*/ char ch; int n,tag; /* ]n为车号,tag为标志,tag=0表示客车,tag=1表示货车*/ intcount=0,countbus=0,counttruck=0; /*分别表示上渡船汽车数、客车数、货车数*/ while(1){ printf("输入命令: \n"); Scanf("%c",&ch); switch(ch){ case'e': case'E': printf("车号: \n"); Scanf("%d",&n); printf("客车\货车(0\1): \n"); scanf("%d",&tag); if( (1) ) enqueue(&bus,n); else enqueue(&truck,n); break; case'i': case'I': while(count<10){ if( (2) && empty(&bus)==0){ /*客车出队*/ outqueue(&bus,&n); printf("上船的车号为: \n"); count++; (3) ; } eise if( (4) ){ /*货车出队*/ countbus=0; outqueue(&truck,&n); printf("上船的车号为: \n"); count++; counttruck++; } else if(empty(&bus)==0){ (5) ; outqueue(&truck,&n); printf("没有10辆车排队轮渡\n"); count++; countbus++; } else{ printf("没有10辆车排队轮渡\n"); retUrn; } break; } case'q': case'Q':break; } if(ch=='q' || ch=='Q') break; } }
答案:
(1)tag==O
(2)count<4
(3)countbus++
(4)empty(&truck)==0
(5)counttruck=0
答题解析:
命令E(e)表示有汽车来等船渡江,按客车、货车分类进入相应的队列排队。所以空(1)填“tag==0”,表示客车来渡船。命令I(i)表示渡船到渡口,在count小于10时环形:①若count<4,客车队列又非空,将客车队列的队头汽车出队上渡船。count和countbus增1;否则转②。所以空(2)填“count<4”,空(3)填“countbus++”。②若count>=4,或客车队列为空队且货车队列非空,将货车队列的队头汽车出队上渡船。count和counttruck增1,否则转③。即空(4)填“empty(&tmck)==0”。③若货车队列为空队且客车队非空,将客车队列的队头汽车出队上渡船。count和countbus增1,否则转④。因此(5)填“counttruck=0”。④提示相应错误信息并退出程序运行。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>