高级语言程序设计(C)答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

学习中心/ 函授站_

姓名学号

西安电子科技大学网络与继续教育学院

2015 学年上学期

《高级语言设计(C)》期末考试试题

(综合大作业)

题号一二三四总分

题分15 25 30 30

得分

考试说明:

1、大作业于2015 年4 月3 日公布,2015 年5 月9 日前在线提交;

2、考试必须独立完成,如发现抄袭、雷同、拷贝均按零分计。

一、名词解释(每小题 3 分,共15 分)

1、【初始化】: 初始化就是把变量赋为默认值,把控件设为默认状态,把没准备的准

备好。

2、【软件测试】: 描述一种用来促进鉴定软件的正确性、完整性、安全性和质量的过

程。换句话说,软件测试是一种实际输出与预期输出间的审核或者比较过程。

3、【库函数】:顾名思义是把函数放到库里,是别人把一些常用到的函数编完放到一个

文件里,供程序员使用,程序员用的时候把它所在的文件名用#include<> 加到里面就可以了(尖括号内填写文件名),例如#include

4、【作用域】:通常来说,一段程序代码中所用到的名字并不总是有效/可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。作用域的使用提高了程序逻辑的局部

性,增强程序的可靠性,减少名字冲突。

5、【编译预处理】:编译预处理是 C 语言区别于其它高级程序设计语言的特征

之一,它属于 C 语言编译系统的一部分。 C 程序中使用的编译预处理命令均以# 开头,它在 C 编译系统对源程序进行编译之前,先对程序中这些命令进行“预处

理”。本章的知识点是编译预处理命令的三种不同形式:宏定义、文件包含和条

件编译。

二、简答题(每小题 5 分,共25 分)

1、为什么要用变量?

答:1) 、计算机在工作过程中所产生的所有数据,都是在“内存”是存储和读取的。

大家可以把“内存”想象成一个工厂的仓库,数据呢就是这个工厂工作过程中要使用的“零

件”。在一段程序中,有很多很的数据(零件),它们分别存放在内存(仓库)中的不同地方。需要用变量把它引用出来。

2、算法设计的一般步骤有哪些?

答:1)、分析问题:输入是什么?输出是什么?条件是什么?能用什么方法?

2 )、用流程图画出解决方案:决定了程序的结构。三大结构有:顺序结构、判断结构、循

环结构

3 )、算法设计:常见的算法设计方法:穷举法、迭代法、递推法、递归法、回溯法、贪婪

法、分治法

4 )、程序设计:用编程语言来实现

3、引入数组机制的好处是什么?

答:数组在内存中分配是栈内存,是【连续】存储【同一种类型】的【线性】结构。它

的作用主要体现在对同一类型的数据进行存储。(要是int 型,全都是int 型,要是char 型,全都是char 型),不可以出现其他类型。对数据的访问是具名访问,可是直接读出数

据中某一块的数据,例如int array[5]={1,2,3,4,5}; array[3] 等于 3. 这里需要注意的是:数组的下标是从0 开始的。如果你想访问array[5], 会提示错误,因为已经越界了。提取数据比较方便,因为数组在内存中是连续存储数据的,好找。随便说句,数组可以当指针用,但它绝不是指针。

4、函数设计三要素包括功能、输入和输出三个方面的内容,它们和函数结构的关系是

怎么样的?

答:函数设计的功能告诉这个函数具有具体的功能。输入对应函数的首部,输出对应函数的返回值。

5、值调用的特点是什么?

答:函数体内相应数据的改变不影响调用它的函数中的数据。

三、分析填表题(每小题 6 分,共30 分)

1. struct student

{ int StuId;

int Score[4];

int Total ;

}

struct student com [10]

={{ 1, 90, 83, 72, 82},{ 2, 71, 92, 88, 78 },

{ 3, 85, 72, 98, 66 },{ 4, 78, 95, 63, 90 } };

struct student x, *sPtr;

sPtr=com;

x=com[0];

结构成员引用值

x. Total 0

x.Score[2] 72

com[1].StuId 2

com[2].Score[2] 98

sPtr->Total 0

sPtr->Score[3] 82

(*sPtr).StuId 1

(*sPtr).Score[3] 82

(sPtr+1)->Score[3] 78

2. main()

{

for (int i=0; i<2; i++)

for (int j=3; j>0; j--) printf("*");

}

i 0 1 2

j 3 2 1 3 2 1 3

输出*** *** 结束

3. main()

{ int i =5;

char c[6] ="abcd" ;// 步骤(1)

do

{ c[i] =c[i ―1] ;// 步骤(2)

} while (――i>0);}

下标0 1 2 3 4 5 步骤(1)c[] a b c d \0 \0 步骤(2 )i=5 时c[] a b c d \0 \0

步骤(2 )i=4 时c[] a b c d d \0

步骤(2 )i=3 时c[] a b c c d \0

步骤(2 )i=2 时c[] a b b c d \0

步骤(2 )i=1 时c[] a a b c d \0 4.main()

{

int a[10], b[10];

int *aPtr, *bPtr, i;

aPtr=a; bPtr=b;

for ( i=0; i< 6; i++, aPtr++, bPtr++)

{

*aPtr=i+2;

*bPtr=3*i;

}

aPtr=&a[1]; ①

bPtr =&b[1]; ②

for ( i=0; i<5; i++ ,aPtr++, bPtr++)

{

*aPtr +=i; ③

第 3 页(共 6 页)

相关文档
最新文档