《高级语言程序设计》模拟试题B卷 - 参考答案 下载本文

内容发布更新时间 : 2024/5/3 6:15:57星期一 下面是文章的全部内容请认真阅读。

{ short int a; long b; a=10; b=f(a);

printf(\ getchar(); return 0; }

四. 程序实现题(每小题15分,共30分)

15、设计一个函数insert(a,n,m);其中a为有序数组(按照元素取值由小到大排列),n为任意整数,m为数组a中元素的个数。该函数将n按照顺序插入到数组a相应位置。例如,原数列a为6,8,10,12,14,则调用insert(a,9,5); 后数组a为6,8,9,10,12,14。 答案:

void insert(int *a,int n,int m) { int i=0;

while(a[i]

for(j=m;j>i;j--)

a[j]=a[j-1]; a[i]=n; }

分析程序执行流程基本正确,流程图和程序执行流程基本一致为评分标准。

16、设计一个函数index(s1,s2);如果字符串s1(子串)在字符串s2中出现过,则该函数返回s1(子串)在字符串s2首次出现的位置号;否则如果字符串s1(子串)在字符串s2中没有出现过,函数返回-1。例如s1为”ad”,s2为”sfad123ad”,则调用index(s1,s2);返回值为2。 答案:

int index(char *s1,char *s2) { int i,j,k;

for(i=0; s2[i]!=’\\0’; i++)

for(j=i, k=0; s2[j]==s1[k]; j++,k++) if(s1[k+1]==’\\0’) return i; return -1; }

分析程序执行流程基本正确,流程图和程序执行流程基本一致为评分标准。

五. 算法设计(共15分)

说明:

? 分析思路,说明算法中的重要数据类型的定义;

? 说明算法中的模块划分;各模块的功能、形式参数、函数返回值说明;并用伪代码、

流程图或其它方法描述子程序的执行过程; ?

不必完整写出函数程序的代码,完整代码将不作为判分依据

17、编写一个程序,用户输入一串整数,以-1结束,将用户输入的整数构成一个取值从大到小排列的有序单链表并输出。

具体要求如下

A、说明采用C语言如何定义链表结点;

B、说明程序中划分多少模块?并给出每个模块的原型; C、描述每个模块的算法。

参考答案:评分要点:以算法可行,基本正确为主要评分指标 A、 结构类型 struct node{int data; struct node *next;};

B、 算法中主要功能包括:在有序链表中插入新节点;创建有序链表;输出链表所有

节点数据。