高级语言程序设计C答案.doc

上传人:聆听****声音 文档编号:273282 上传时间:2023-04-28 格式:DOC 页数:6 大小:97.50KB
下载 相关 举报
高级语言程序设计C答案.doc_第1页
第1页 / 共6页
高级语言程序设计C答案.doc_第2页
第2页 / 共6页
高级语言程序设计C答案.doc_第3页
第3页 / 共6页
高级语言程序设计C答案.doc_第4页
第4页 / 共6页
高级语言程序设计C答案.doc_第5页
第5页 / 共6页
高级语言程序设计C答案.doc_第6页
第6页 / 共6页
亲,该文档总共6页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

高级语言程序设计C答案.doc

《高级语言程序设计C答案.doc》由会员分享,可在线阅读,更多相关《高级语言程序设计C答案.doc(6页珍藏版)》请在冰点文库上搜索。

高级语言程序设计C答案.doc

学习中心/函授站_

姓名学号

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

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.structstudent

{intStuId;

  intScore[4];

  intTotal;

}

structstudentcom[10]

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

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

structstudentx,*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(inti=0;i<2;i++)

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

}

i

0

1

2

j

321

321

3

输出

***

***

结束

3.main()

{ inti=5;

  charc[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()

  {

  inta[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;③

   *bPtr*=i;④

   }

  }

i

0

1

2

3

4

5

6

7

8

9

a

2

3

5

7

9

11

b

0

0

6

18

36

60

i

0

1

2

3

4

5

6

7

8

①*aPtr

2

3

4

5

6

7

③*aPtr

2

3

5

7

9

11

②*bPtr

0

3

6

9

12

15

④*bPtr

0

0

6

18

36

60

5.以下程序有语法错误和逻辑错误。

在改正了语法错误后,为有效率地调试程序,你认为在调试时应该在哪些地方设置断点,应该观察哪几个量?

找出程序中的错误。

(观察的变量、断点设置、各种错误的改正等写在表格的说明栏中)

程序功能:

输入一个以回车结束的字符串(少于80个字符),将它的内容颠倒过来再输出。

如”ABCD”颠倒为”DCBA”。

程序

说明

1

#include

2

intmain()

3

4

inti,k,tmp;

5

charstr[];

数组未指定元素个数

6

7

printf("inputastring:

\n");

8

9

while((str[i]=getchar())!

=’\n’)

i未赋初值

10

i++;

11

str[i]=’\0’;

12

13

k=i;

K=i;应改为k=--i;

14

for(i=0;i

观察i和k,两个变量

15

{

的变化。

16

tmp=str[i];

17

str[i]=str[k];

18

str[k]=tmp;

19

k++;

K++;应改为k--;

20

}

21

22

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

==改为!

=

23

putchar(str[i]);

24

25

return0;

}

四、程序设计题(每小题10,共30分)

编程题要求:

(1)先给出伪代码,然后再写出源码,重要变量和语句要加注释;

(2)若有子函数,则要给出函数框架设计(函数名、形参、返回类型)。

1、编写一个程序,这个程序能够找出几个整数中最小的整数。

假定程序读取的第一个值是程序要处理的整数的个数。

给出伪代码描述及程序实现。

Main()

{intn,x,min;

Scanf(“%d”,&n);/*输入处理的整数个数*/

Scanf(“%d”,&x);/*输入要处理的第一个数*/

min=x;

For(i=2;i<=n;i++)/*用循环找出几个整数的最小值*/

{

scanf(“%d”,x);

if(max>x)min=x;

}

Printf(“%d”,min);

}

2、我们需要一个小程序,输入两个整数,输出这两个数的平方和与平方差,要求:

(1)主函数负责接收这两个整数

Main()

{doublesum,diff;

intx,y;

scanf(“%d%d”,&x,&y);

sum=quadratic_sum(x,y);

diff=quadratic_diff(x,y);

printf(“%lf%lf\n”,sum,diff);

}

(2)将计算代码独立做成子函数quadratic_sum和quadratic_diff

doublequadratic_sum(intx,inty)

{dobulesum;

Sum=x*x+y*y;

Returnsum;

}

doublequadratic_diff(intx,inty)

{dobulediff;

Sum=x*x-y*y;

Returndiff;

}

(3)在主函数中调用子函数并输出结果到屏幕上

功能

输入信息

输出信息

求两个数的平方和quadratic_sum

(intx,inty)

doublesum

求两个数的平方差quadratic_diff

(intx,inty)

doublediff

函数名

形参表

函数类型

3、读入30个取值在20到90之间的数字,读取每个数字时,仅在它不是重复已经读取数字的情况下才输出它。

使用最小的可能数组来解决这个问题。

main()

{inta[30],i,j;

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

{a[i]=20+rand()%70;

for(j=i-1;j>=0;j--)

if(a[i]==a[j]){i--;break;}

if(j<0)printf("%d",a[i]);

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2