[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷50及答案与解析.doc
《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷50及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(初级)程序员下午(应用技术)模拟试卷50及答案与解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(初级)程序员下午(应用技术)模拟试卷 50 及答案与解析 1 如果公司内网 PC 不能从 DHCP 服务器获取 IP 地址,则首先应该检查 (5) ;若在PC中使用 ping 命令分别查询 “sinA. com. cn”和其对应的 IP 地址 61.172.201.194 所得结果如图 3-3所示,则应该检查 (6) ;若所有 PC通过 DHCP服务正确获取了 IP地址,但均无法访问 Internet,则应该检查 (7) 。 (5) (7)备选答案: A. 外网的连通性 B. 内网的连通性 C. DNS服务器的配置是否正确2 阅读下列说明和 C代码,将应填入 (n)处的字句写在对
2、应栏内。 【说明】 本题给出四个函数,它们的功能分别是: 1 int push(PNODE*top, int e)是进栈函数,形参 top是栈顶指针的指针,形参 e是入栈元素。 2 int pop(PNODE*top, int*e)是出栈函数,形参 top是栈顶指针的指针,形参 e作为返回出栈元素使用。 3 int enQueue(PNODE*tail, int e)是入队函数,形参 tail是队尾指针的指针,形参 e是入队元素。 4 int deQueue(PNODE*tail, int*e)是出队函数,形参 tail是队尾指针的指针,形参 e作为返回出队元素使用。 以上四个函数中,返回值为
3、。表示操作成功,返回值为 -1表示操作失败。 栈是用链表实现的;队是用带有辅助结点 (头结点 )的单向循环链表实现的。两种链表的结点类型均为: typedef struct node int value; struct node * next; NODE, * PNODE; 【函数 1】 int push(PNOOE * top,int e) PNODE p = (PNODE) malloc (sizeof (NODE); if (! p) return-1; p- value=e; (1); *top=p; return 0; 【函数 2】 int pop (PNODE * top,int
4、* e) PNODE p = * top; if(p = NULL) return-1; * e = p- value; (2); free(p); return 0; 【函数 3】 int enQueue (PNODE * tail,int e) PNODE p,t; t= *tail; p = (PNODE) malloc(sizeof(NODE); if(!p) return-1; p- value=e; p- next=t- next; (3); * tail = p; return 0; 【函数 4】 int deQueue(PNODE * tail,int * e) PNODE p
5、,q; if( * tail)- next = * tail) return-1; p= (* tail)- next; q = p - next; * e =q - value; (4)=q- next; if(,tail=q) (5); free(q); return 0; 3 阅读以下应用程序说明和 C程序,将 C程序段中 (1) (7)空缺处的语句填写完整。 【说明】 以下【 C程序】能将自然数 1, 2, , N2按蛇形方式逐个存入 N阶矩阵。换言之,程序从 anO开始到 aOn。为止 (n=N-1)顺序填入自然数,交替地对每一斜列从左上元素向右下元素或从右下元素向左上元素存数。 例
6、如,当 N=5时,程序输出结果如图 2-12所示;当 N=8时,程序输出结果如图 2-13所示。 【 C程序】 #include stdio.h #define SIZE 10int aSIZESIZE, k;main() int i, j, n, N; for (N = 3; N =SIZE; N+) k = 1; makeArray (n = N-1); printf (“nN = %d;n“, n+1); for (i = 0; i =n; i+) for (j = 0; j =n; j+) printf(“%4d“, ai j); printf (“n“); makeline (int
7、 row_start, int col_start, int row end) /*完成矩阵一条斜线的整数填写 */ int i, j, sign =(1); for (i = row_start, j = col start;(2); i += sign, j += sign) ai j = k+;makeArray (int n) /*完成矩阵每条斜线的整数填写 */ int d; for (d = 1; d =(3); d+) if (d = n) if (d%2) makeline (4); else makeline (5); else if (d%2) makeline (6);
8、else makeline (7); 4 阅读以下技术说明和问题模型图,根据要求回答问题 1和问题 2。 【说明】 某大学城图书馆需要在无线阅览厅的某些位置上放置无线接入点 AP(Access Poin)。假设每个无线 AP覆盖范围的半径是 6米,因此必须使得每台笔记本 电脑上的无线网卡到某个无线 AP的直线距离不超过 6米。为了简化问题,假设所有无线网卡在同一直线上,并且无线 AP沿该直线放置。该问题可以建模为如图 1-16所示,其中直线表示无线网卡所在的直线,实心正方形表示无线网卡。现利用贪心策略实现用尽可能少的无线 AP覆盖所有的无线网卡。 实现贪心算法的流程如图 1-17所示。其中,
9、di(1iN)表示第 i张无线网卡到通道 A端的距离, N表示无线网卡的总数,无线网卡的编号按照无线网卡到通道 A端的距离从小到大进行编号; sk表示第 k(k1)个无线 AP到通道 A端的距离 。算法结束后 k的值为无线 AP的总数。4 请填补图 1-17流程图中 (1)-(4)空缺处的内容。 5 该贪心算法的时间复杂度为 (5)。 6 阅读以下应用说明以及用 Visual Basic语言编写的程序代码,将应填入 (n)处的字句写在答题纸的对应栏内。【应用 4.1】 设应用程序的运行窗口内有一个文字标签(Label)以及一个框架,其中有三个复选框 (chk1, chk2, chk3),各个复
10、选框单击事件过程的程序代码如下: Private Sub chkl_Click() Label.fontBold=chkl.Value End Sub Private Sub chk2_Click() Label.fontltalic=chk2.Value End Sub Private Sub chk3_Click() Label.fontUnderLine=chk3.Value End Sub 三个复选框 chkl、 chk2、 chk3的功能分别是: (1)。【应用 4.2】 设应用程序的运行窗口内有两个文本框 Txt1和Txt2,其初始内容为空。在 Txt1文本框中输入一个数值,当光标
11、离开此文本框 (例如进入文本框 Txt2)时, 执行的程序代码如下: Private Sub Txt1_LostFocus() dim x aS double x=Val(Txtl Text) 工 f x 0 Or x 100 Then Txtl.Text =“ MsgBox$(“请重新输入 !“) Txtl.SetFocus Else Txt2.Text=Txt1.Text End If End Sub 该程序代码的功能是:若在文本框 Txtl中输入的数值小于 0或大于 100,当光标离开此文本框时,(2);否则,将其值复制到文本框 Txt2中。【应用 4.3】 在下面的应用中,当窗口内发生
12、 C1ick事件时,窗口内将显示如图 2-4所示的杨辉三角 (每一行都是二项式展开的系数 )。请完善程序代码。 Private Sub Form Click() Dim i, j, c As Integer, StrTemp AS String Dim a(9)As Integer a(0)=0=a(1)=l: StrTemp=Str(a(1)+Space(3) CurrentX=(ScaleWidth-TextWidth(StrTemp)/2 Print StrTemp For j=2 TO 9 a(j)=1 For C=j-1 TO 2 Step-1 a(c) =(3) Next (4)=
13、“ For c = 1 To j StrTemp = StrTemp / 纯虚拟函数 ; class Rectangle: (1) protected: double height; double width; public: Rectangle() ; Rectangle(double height, double width) this- height = height; this- width = width; double getArea() return (2) ; class Square: (3) public: Square(double width) (4) ; ; clas
14、s Triangle: (5) double la; double lb; double lc; public: Triangle(double la, double lb, double lc) this- la = la; this- lb =lb; this- lc = lc; double getArea() double s = (la+lb+lc)/2.0; return sqrt(s*(s-la)*(s-lb)*(s-lc); ; void main() Figure* figures3 = new Triangle(2,3,3), new Rectangle(5,8), new
15、 Square(5); for (int i = 0; i 3; i+) com “figures“ i “ area =“ (figuresi)- getArea0 endl; 8 阅 读以下说明和 Java代码,将应填入 (n)处的语句写在对应栏内。 【说明】 本程序通过移动滑动条修改颜色 RGB值,从而控制颜色。程序中有一个面板、 3个标签和 3个滑动条,标签和滑动条一一对应,分别对应三原色红、绿、蓝,任意拖动其中的一个滑动条,所对应的颜色值就会发生变化,面板的颜色也会发生对应的变化,如下图所示,滑动条值的范围是 0 255。 【 Java代码】 import java.awt.*; i
16、mport java.awt.event.*; import javax.swing.*; public class simple extends JFrame implements AdjustmentListener public simple() setTitle(“simple“); setSize(300, 200); addWindowListener(new WindowAdapter() public void windowClosing(1) System.exit(0); ); Container contentPane=getContentPane(); JPanel p
17、=(2); p.setLayout(new GridLayout(3, 2); p.add(redLabel=new JLabel(“Red 0“); p.add(red=new JScrollBar(Adjustable. HORIZONTAL, 0, 0, 0, 255); red.setBlocklncrement(16); red.addAdjustmentListener(this); p.add(greenLabel=(3) (“Green 0“); p.add(green=new JScrollBar(Adjustable.HORIZONTAL 0, 0, 0, 255); gr
18、een setBIocklncrement(16); green.addAdjustmentListener(this); p.add(blueLabel=new JLabel(“Blue 0“); p.add(btue=new JScrollBar(Adjustable. HORIZONTAL, 0, 0, 0, 255); blue,setBIocklncrement(16); blue.addAdjustmentListener(this); contentPane.add(p, “South“); colorPanet=new JPanel(); colorPanet.setBackg
19、round(new Color(0, 0, 0); contentPane.add(4),“Center“); public void adjustmentValueChanged(AdjustmentEvent evt) redLabel.setText(“Red“+red.getValue(); greenLabel.setText(“Green“+green.getValue(); blueLabel.setText(“Blue“+blue.getValue(); coiorPanel.setBackground(new Color(red.getValue(), green.getVa
20、lue(), blue.getValue(); colorPanel.repaint(); public static void main(String args) JFrame f=(5); f.show(); private JLabel redLabel; private JLabel greenLabel; private JLabel blueLabel; private JScrollBar red; private JScroilBar green; private JScrollBar blue; private JPanel colorPanel; 软件水平考试(初级)程序员
21、下午(应用技术)模拟试卷 50 答案与解析 1 【正确答案】 B C A 2 【正确答案】 (1)p- next=*top (2)*top=p- next或 * top=(*top)- next (3)t- next=p或 (*tail)- next=p (4)p- next或 (*tail)- next- next (5)*tail=p或 *tail=(*tail)- next 【试题解析】 (1)插入结点 p后, p应当指向插入前头结点,所以填入 p -next=*top。 (2)出栈后,头指针应指向它的下一结点,所以填入 *top=p- next或*top=(*top)- next。 (
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 初级 程序员 下午 应用技术 模拟 50 答案 解析 DOC
