首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
以下4个程序中,不能实现两个实参值进行交换的是 ( )。
以下4个程序中,不能实现两个实参值进行交换的是 ( )。
admin
2013-05-30
73
问题
以下4个程序中,不能实现两个实参值进行交换的是 ( )。
选项
A、void swap (float *p, float *q) { float *t ,a; t = &a; t = p; *p = *q; *q = *t; } void main () { float x = 8.0;y = 9.0; swap (&x, &y); cout<<x<<", "<<y<<
B、void swap (float *p, float *q) { float a; a = *p; *p = *q; *q = a; } void main() { float x = 8.0;y = 9.0; swap (&x, &y); cout<<x<<", "<<y<<end1;
C、void swap (float *p, float *q) { float x; x = *p; *p = *q; *q = x; } void main() { float a,b.; *a = 8.0;*b = 9.0; swap (a, b) ;
D、void swap (float &p, float &q) { float a; a = p; p = q; q = a; } void main() { float a = 8.0,b = 9.0; swap (a,b); cout<<x<<", "<<y<<
答案
4
解析
本题考核指针和引用作为函数形参。做此类题时,应学会整体比较,要不然花费的时间不亚于一个大的编程题。
①首先,这4个程序都是调用swap函数,而且目的都一致,交换传入的两个实参值。
②分析被调函数swap()。在选项A、B和C中都是指针作为形参,只有在选项D中,函数swap()是以引用作为形参。由指针和引用作为函数形参的特点可知,只要调用了函数,就能达到交换两个实参变量的值,所以这几个被调函数没有问题。
③再看主函数。在选项C中,没有定义指针类型变量,而是直接给指针变量赋值:
“floata,b;*a=8.0;*b=9.0;”,这显然是非法的。想直接开辟存储空间,交换两个常量值,是不可能的。所以只有选项C是错误的。
转载请注明原文地址:https://kaotiyun.com/show/bFNp777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<iostream>usingnamespacestd;classR{public:R(intr1,intr2){R1=r1;R2
cout、cerr和clog是()的对象,cout处理标准输出,cerr和clog都处理标准出错信息。
派生类的对象对它的基类成员中______是可以访问的。
多态性可分为二类:编译时和【】。
如果表达式x=y*z中的“*”是作为成员函数重的运算符,采用运算符函数调用格式,该表达式还可以表示为【】。
友元运算符obj1>obj2被C++编译器解释为()。
switch后面括号中的表达式只能是整型、【】或枚举型表达式。
写出下列程序的运行结果。#include<iostream.h>classX{ public:virtualvoiddisp(){cout<<”X类的disp函数<<”end1;}};
设有二维数组inta[10][20];,则a[i][j]的地址可由首元素a[0][0]的地址来表达,由此可得访问数组元素a[i][j]的表达式为【】。
结构化程序设计的一种基本方法是______。
随机试题
灯光开关在该位置时,前雾灯点亮。
丝绸之路
A.过氧乙酸B.甲醛C.碘酊D.苯扎溴铵E.乙醇可用于深部伤口冲洗的化学消毒剂是
下列对于经济周期的捕述,正确的是()。
假定某投资者欲在3年后获得133100元,年投资收益率为10%,那么他现在需要投资()元。
小张出差回来报销差旅费2700元,原借3000元,交回多余现金300元。则报销时的会计分录为()。
简述微型计算机的主要技术指标。
(2010—单选—7)同盟会创办的刊物是()。
CPU中运算器的主要功能是______。
数据库系统的核心是______。
最新回复
(
0
)