软件水平考试模拟练习题及解析
设函数的功能是交换X和y的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是( )
① funa(int *x, int *y)
{
int * p;
* p=*x; *x=*y; *y=*p;
}
② funb(int x, int y)
{
int t;
t=x;x=y;y=t;
}
③ func(int *x, int *y)
{
int p;
p=*x; *x=*y; * y=p;
}
④fund( int *x,int *y)
{
*x=*x+ *y;*y=*x- *y;*x= *x- *y;
}
【解】设计实现交换两个变量值的函数。希望函数调用能改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的'变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。
对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=* x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因有错,不能实现交换变量值的功能。
对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。
对于函数func,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。该函数能实现交换变量值的功能。
对于函数fund,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。特别要指出的是,该函数是利用*x和*y的;日值与新值之间的关系实现问题要求的。其中第一个赋值使。x存有原来未交换之前的*x与*y之和;第二个赋值从这个和中减去原来的*y,并将差赋给*y,使*y的值是交换之前的*x的值;第三个赋值再次从和中减去新的*y,即减去交换之前的*x,这个差就是交换之前的*y,并将差赋给*x。经以上三个赋值,实现两变量之间的值交换。所以不能正确执行交换变量值的函数是funa和funb,即正确选择是①②。
-
考试考砸了作文300字4篇(优选)
在学习、工作、生活中,许多人都有过写作文的经历,对作文都不陌生吧,作文可分为小学作文、中学作文、大学作文(论文)。为了让您在写作文时更加简单方便,下面是小编整理的考试考砸了作文300字4篇,供大家参考借鉴,希望可以帮助到有需要的朋友。考试考砸了作文300字篇1今天...
-
考试之后作文(范例9篇)
在平日的学习、工作和生活里,大家对作文都再熟悉不过了吧,作文一定要做到主题集中,围绕同一主题作深入阐述,切忌东拉西扯,主题涣散甚至无主题。相信写作文是一个让许多人都头痛的问题,以下是小编精心整理的考试之后作文9篇,仅供参考,大家一起来看看吧。考试之后作文篇1...
-
语文考试反思(精)
在现在的社会生活中,我们的任务之一就是教学,反思过往之事,活在当下之时。那么应当如何写反思呢?下面是小编为大家整理的语文考试反思,仅供参考,欢迎大家阅读。语文考试反思1这次语文考试没有考好。我要深刻反思。首先,要学会审题。我要改掉考试不细心读题目的坏习惯...
-
学生期末考试心得
当我们积累了新的体会时,可以寻思将其写进心得体会中,这样能够让人头脑更加清醒,目标更加明确。那么写心得体会要注意的内容有什么呢?以下是小编收集整理的学生期末考试心得,仅供参考,希望能够帮助到大家。学生期末考试心得篇1只要是考试,我不会特别紧张的(在考试前一...