软件水平考试模拟练习题及解析

软件水平考试模拟练习题及解析

ID:17501889

大小:13.45 KB

页数:3页

时间:2018-09-02

软件水平考试模拟练习题及解析_第1页
软件水平考试模拟练习题及解析_第2页
软件水平考试模拟练习题及解析_第3页
资源描述:

《软件水平考试模拟练习题及解析》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、软件水平考试模拟练习题及解析  设函数的功能是交换X和y的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是()  ①funa(int*x,int*y)  {  int*p;  *p=*x;*x=*y;*y=*p;  }  ②funb(intx,inty)  {  intt;  t=x;x=y;y=t;  }  ③func(int*x,int*y)  {  intp;  p=*x;*x=*y;*y=p;  }  ④fund(int*x,int*y)  {  *x=*x+*y;*y=*x-*y;*x=*x-*y;  }  【解】设计实现交换两个变量值的函数。希望函数调用能

2、改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。  对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=*x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因

3、有错,不能实现交换变量值的功能。  对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。  对于函数func,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。该函数能实现交换变量值的功能。  对于函数fund,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。特别要指出的是,该函数是利用*x和*y的;日值与新值之间的关系实现问题要求的。其中第一个赋值使。x存有原来未交换之前的*x与*y之和;第二个赋值从这个和中减去原来的*y,并将差赋给*y,使*

4、y的值是交换之前的*x的值;第三个赋值再次从和中减去新的*y,即减去交换之前的*x,这个差就是交换之前的*y,并将差赋给*x。经以上三个赋值,实现两变量之间的值交换。所以不能正确执行交换变量值的函数是funa和funb,即正确选择是①②。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。