程序员下午试卷

发布 2023-04-21 23:54:28 阅读 4235

试题一(共 15 分)

阅读以下说明和流程图,填补流程图中的空缺(1)~(9),将解答填入答题纸的对应栏内。

说明]假设数组 a 中的各元素 a(1),a(2) ,a(m)已经按从小到大排序(m≥1);数。

组 b 中的各元素 b(1),b(2),…b(n)也已经按从小到大排序(n≥1)。执行下面的流程图后,可以将数组 a 与数组 b 中所有的元素全都存入数组 c 中,且按从小到大排序(注意:序列中相同的数全部保留并不计排列顺序)。

例如,设数组 a 中有元素:2,5,6,7,9;数组 b 中有元素:2,3,4,7;则数组 c 中将有元素:

2,2,3,4,5,6,7,7,9。

流程图]试题二(共 15 分)

阅读以下说明和 c 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

说明] 下面的程序按照以下规则输出给定名词的复数形式: a. 若名词以“y”结尾,则删除 y 并添加“ies”;

b. 若名词以“s”、“ch”或“sh”结尾,则添加“es”;

c. 其他所有情况,直接添加“s”。

c 程序]#include <>

#include <>

char *plural(char *word)

int n;

char *pstr;

n = strlen(word); 求给定单词的长度*/

pstr = char *)malloc(n+3); 申请给定单词的复数形式存储空间*/

if (!pstr ||n < 2)

return null;

strcpy(pstr,word); 复制给定单词*/

if ( 1) )

pstr[n-1] =i'; pstr[n] =e'; pstr[n+1] =s'; 2) ;

elseif(pstr[n-1]==s'||pstr[n-1]==h3) )

pstr[n] =e'; pstr[n+1] =s'; pstr[n+2] =0';

else pstr[n] =s'; pstr[n+1] =0';

main( )

int i; char *ps;

char wc[9][10] =

"chair","dairy","boss","circus","fly","dog","church","clue","dish"};

for(i = 0; i < 9; i++)

ps = 5) ;

printf("%s: %s",wc[i],ps); 输出单词及其复数形式*/

free(ps); 释放空间*/

system("pause");

试题三(共 15 分)

阅读以下说明和 c 程序,将应填入 (n) 处的字句写在答题纸的对应栏内。

说明]下面的程序用 dole rob 算法生成 n 阶(n 为奇数)魔方阵(各行、列、对角线数字之和相等)。该算法的过程为:从 1 开始,按如下方法依次插入各自然数,直到 n2 为止:

a. 在第一行的正中插入 1;

b. 新位置应当处于最近插入位置的右上方,若该位置已超出方阵的上边界,则新位置取应选列的最下一个位置;若超出右边界,则新位置取应选行的最左一个位置;

c. 若最近插入的元素是 n 的整数倍,则选同列的下一行位置为新位置。 例如,3 阶魔方阵如下所示:

c 程序]#include <>

#include <>

#define size 50

main( )

int row, col, n, value;

int a[size+1][size+1]; 不使用下标为 0 的元素*/ printf("请输入要输出魔方阵的阶数 n(奇数,

if (!n % 2)||n < 1 ||1) )

printf("输入数据有误!");exit(0);

row = 1; col = n+1)/2; value = 1;

while(value <=2

a[row][col] =value;

*计算下一位置*/

if(value%n !=0){

row--;3) ;if(row < 1) row = n; if(col > n) (4) ;

else row++;

value = 5) ;

printf("%d 阶魔方阵如下所示:",n);

for(row = 1; row <=n; row++)

for(col = 1; col <=n; col++)

printf("%5d",a[row][col]);

printf("");

试题四(共 15 分)

阅读以下说明和 c 函数,将应填入 (n) 处的字句写在答题纸的对应栏内。

说明]计算机在处理算术表达式时 , 首先将其转换为后缀表达式 。 例如 , 表达式。

46+5*(120-37)”的后缀表达式形式为“46 5 120 37计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇。

到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中,重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37的计算过程为:

a. 依次将 压入栈中;

b. 遇到“-”取出,计算 120–37,得 83,将其压入栈中;

c. 遇到“*”取出,计算 5*83,得 415,将其压入栈中;

d. 遇到“+”取出,计算 46+415,得 461,将其压入栈中;

e. 表达式结束,则计算过程完成。

函数 computing(char expr,int *result)的功能是基于栈计算后缀形式的表达式。

以串形式存入字符数组 expr)的值,并通过参数 result 返回该值。函数的返回值为。

1/0 分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+减(“-乘(“*除(“\

函数 computing 中所用栈的基本操作的函数原型说明如下:

void initstack(stack *s):初始化栈。

void push(stack *s, int e): 将一个整数压栈,栈中元素数目增 1。

void pop(stack *s):栈顶元素出栈,栈中元素数目减 1。

int top(stack s):返回非空栈的栈顶元素值,栈中元素数目不变。

int isempty(stack s):若 s 是空栈,则返回 1 否则返回 0。

c 函数]int computing(char expr,int *result)

stack s; int tnum, a,b; char *ptr; initstack(&s);

ptr = expr; /字符指针指向后缀表达式串的第一个字符*/

while (*ptr!='0')

if (*ptr当前字符是空格*/

(1) ;字符指针指向下一字符*/

continue;

elseif (isdigit(*ptr))

*当前字符是数字,则将该数字开始的数字串转换为数值*/

tnum = 2) ;

while (*ptr>=’0’ &ptr <=9’)

tnum = tnum * 10 + 3) ;

ptr++;

push( (4) )

else /*当前字符是运算符或其他符号*/

if (*ptr=='ptr=='ptrptr ==

if (!isempty(s))

a = top(s); pop(&s); 取运算符的第二个运算数*/

if (!isempty(s))

b = top(s); pop(&s); 取运算符的第一个运算数*/

else return -1;

else return -1;

switch (*ptr) {

case '+push(&s,b+a); break; case '-push(&s,b-a); break; case '*push(&s,b*a); break; case '/push(&s,b/a); break;

elsereturn -1;

ptr++;字符指针指向下一字符*/

/*while */

if (isempty(s)) return -1;

else {

(5) =top(s); pop(&s); 取运算结果*/

if (!isempty(s)) return -1;

return 0;

从下列 3 道试题(试题五至试题七)中任选 1 道解答。

如果解答的试题数超过 1 道,则题号小的 1 道解答有效。

试题五(共 15 分)

阅读下列说明、图和 c++**,将应填入 (n) 处的字句写在答题纸的对应栏内。

说明]已知对某载客车辆(car)进行类建模,如图 5-1 所示,其中类 engine 表示发动机引擎,类 wheel 表示车轮,类 body 表示车身,类 driver 表示司机,类 passenger 表示乘客。

图 5-1 类图。

程序员考试大纲程序员考试大纲

程序员测试大纲。一 测试说明。1 测试要求 1 掌握数制及其转换 数据的机内表示 算术和逻辑运算,以及相关的使用数学基础知识 2 理解计算机的组成以及各主要部件的性能指标 3 掌握操作系统 程序设计语言的基础知识 4 熟练掌握计算机常用软件的基本操作 5 熟练掌握基本数据结构和常用算法 6 熟练掌握...

初级程序员与高级程序员的区别

初级程序员与高级程序员的区别一般对于一个问题,初级程序员和高级程序员考虑这个问题的方法绝对是不同的。比如,在初级程序员阶段时,他会觉得vb也能做出应用来,且看起来也不错。但到了中级程序员时,他可能就不会选择vb了,可能会用mfc,这时,也能做出效果不错的程序。到高级程序员时,他绝对不是首先选择以上工...

程序员大纲

张友生丛书主编 电子工业出版社出版的 程序员考试考点分析与真题详解 程序员教程全国计算机技术与软件专业技术资格 水平 考试指定用书程序员教程 第三版。初级程序员级考试大纲。一 考试说明。1.考试要求 1 熟练掌握dos windows95 word和上网软件的使用方法,以及有关基础知识 2 掌握程序...