2015年11月 程序员 上午题之十一
摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、函数f30、g30的定义如下所示,已知调用f时传递给其形参x的值是10。若在f中以传值方
1、函数f30、g30的定义如下所示,已知调用f时传递给其形参x的值是10。若在f中以传值方式调用g,则函数f的返回值为( );若以引用方式调用g,则函数f的返回值为(请作答此空)。
A、 10
B、 15
C、 25
D、 30
答案:D
答题解析:
本题考查程序语言基础知识。
若实现函数调用时,将实参的值传递给对应的形参,则称为是传值调用。这种方式下形式参数不能向实参传递信息。引用调用的本质是将实参的地址传给形参,函数中对形参的访问和修改实际上就是针对相应实际参数变量所作的访问和改变。
根据题目说明,当调用函数f时,形参x首先得到10,接下来以传值方式调用函数g,也就是将f中x的值传给g的参数x。在这种情况下,系统为f中的x与g中的x分别分配存储单元。执行g中的"x=x+5"运算后,g中x的值变为15,返回值15存入f的变量y(即y的值变为10),而f中x的值没有变,因此函数f的返回值为25(x=10,y=15)。
在引用方式调用g时,g中对其形参x的修改可视为是对调用g时实参的修改,因此调用g之后,f中的y得到返回值15,f中的x也被修改为15,所以f的返回值为30。
2、算术表达式a+b-c*d的后缀式是( )(-、+、*表示算术的减、加、乘运算,运算符的优先级和结合性遵循惯例)。
A、 ab+cd*-
B、 abc+-d*
C、 abcd+-*
D、 ab+c-d*
答案:A
答题解析:
本题考查程序语言基础知识。
后缀式(逆波兰式)是波兰逻辑学家卢卡西维奇发明的一种表示表达式的方法。这种表示方式把运算符写在运算对象的后面,例如,把a+b写成ab+,所以也称为后缀式。
算术表达式a+b-c*d的后缀式为ab+cd*-。
用二叉树表示a+b-c*d如下图所示。
3、设数组A[1..m,1..n]的每个元素占用1个存储单元,对于数组元素A[i,j](1≤i≤m,1≤j≤n),在按行存储方式下,其相对于数组空间首地址的偏移量为(请作答此空);在按列存储方式下,其相对于数组空间首地址的偏移量为( )。
A、 i*(n-1)+j
B、 (i-1)*n+j-1
C、 i*(m-1)+j
D、 (i-1)*m+j-1
答案:B
答题解析:
本题考查数据结构基础知识。数组A[1..m,1..n]的元素排列如下。
解答该问题需先计算排列在a[i,j]之前的元素个数。
按行方式存储下,元素a[i,j]之前有i-1行,每行n个元素,在第i行上a[i,j]之前有j-1个元素,因此,a[i,j]之前共有(i-1)*n+j-1个元素。
在按列存储方式下,元素a[i,j]之前有i-1列,每列m个元素,在a[i,j]所在列(即第j列),排在它之前的元素有i-1个,因此,a[i,j]之前共有(i-1)*m+i-1个元素。
数组中指定元素的存储位置相对于数组空间首地址的偏移量等于k*d,其中k为排在该元素前的元素个数,d为每个元素占用的存储单元数。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>