A、void swap(int *p1, int *p2);
B、void swap(int &p1, int &p2);
C、void swap(int &a, int &b);
D、void swap(int a, int b);
第1题
A、void swap(int *p1, int *p2);
B、void swap(int &p1, int &p2);
C、void swap(int &a, int &b);
D、void swap(int a, int b);
第2题
A、A.交换*p1和*p2的值
B、B.语法正确.但无法交换*p1和*p2的值
C、C.交换*p1和*p2的地址
D、D.有语法错误
第3题
A、#include <stdio.h> int main() { int a[5]={1,2,3,4,5}; swap(&a[0],&a[1]); printf("调用函数后:a[0]=%d\ta[1]=%d\n",a[0],a[1]); return 0; }
B、#include <stdio.h> int main() { int a[5]={1,2,3,4,5},*p; p=a; swap(p,p+1); printf("调用函数后:a[0]=%d\ta[1]=%d\n",a[0],a[1]); return 0; }
C、#include <stdio.h> int main() { int a[5]={1,2,3,4,5},*p; swap(a,a+1); printf("调用函数后:a[0]=%d\ta[1]=%d\n",a[0],a[1]); return 0; }
D、#include <stdio.h> int main() { int a[5]={1,2,3,4,5},*p; swap(a[0],a[1]); printf("调用函数后:a[0]=%d\ta[1]=%d\n",a[0],a[1]); return 0; }
第5题
A、*p1=*p2;
B、*p1=y;
C、x=*p2;
D、p1=p2;
第6题
一、填空: 1、含有纯虚函数的类称为______。 2、如果在类中定义了一个成员函数为______,则表明在该继承层次链条的派生类中有可能重新定义这个成员函数的实现,即它可能被派生类的同名函数所覆盖。 3、定义一个函数名为fun, 返回值为int, 没有参数的纯虚函数的定义是_____。 4、如果类包含了一个或多个______ ,则它是抽象类。 5、虚函数必须是类的______ 函数。 6、在面向对象的程序设计中,不同的对象可以调用相同名称的函数并导致完全不同的行为现象称为______ 。 7、成员函数有实函数、虚函数和______3 种。 8、动态联编的多态性由______支持。 9、 C++语言支持的两种多态性分别是______ 的多态性和运行时的多态性。 10、如果一个类至少有个纯虚函数,那么就称该类为______。 11、 抽象类不能定义对象。但可以声明抽象类的______转换类型。 二、选择题: (1)关于动态联编的下列叙述中,错误的是 A. 动态联编是以虚函数为基础的 B. 动态联编运行时确定所调用函数代码 C. 动态联编调用函数操作是指向对象的指针或对象引用 D. 动态联编是在编译时确定操作函数 (2)有以下类定义: class A public: virtual void fl0{ cout<<l; }; void f20{ b : public a public: . f1o{ } 若b为b类对象,p为a类指针,则下列选项正确的是( )。 a. 执行: p="&b;" p->f1();语句, 输出3 B. 执行: p=&b; p->f20);语句,输出4 C. 执行: p=&b; p->fl();语句,输出2 D. 执行: p=&b; p->f20);语句,输出1 (3)关于虚函数的描述中,_______是正确的。. A. 虚函数是一个静态成员函数 B. 虚函数是一个非成员函数 C. 虚函数既可以在函数说明时定义,也可以在函数实现时定义 D. 派生类的虚函数与基类中对应的虚函数具有相同的参数个数和类型 (4)下面4个选项中,_______是用来声明虚函数的。. A. virtual B. public C. using D. false (5)下列描述中,属于抽象类的性质是________。 A. 可以说明虚函数 B. 可以进行构造函数重载 C. 可以定义友元函数 D. 不能说明其对象 (6)要实现动态联编必须_______。 A. 通过成员名限定来调用虚函数 B. 通过对象名来调用虚函数 C. 通过派生类对象来调用虚函数 D. 通过对象指针或引用来调用虚函数 (7)在类中用来声明虚成员函数的关键字是_______。 A. virtual B. public C. protected D. private (8)以下哪个基类中的成员的数表示纯虚函数________。 A. virtual void t()=0; B. void tt(int)=0; C. virtual void t(int); D. virtual void t(in){ }; 三、编程题: 使用虚函数编写程序求球体和圆柱体的体积及表面积。由于球体和圆柱体都可以看作由圆继承而来,所以可以定义圆类Circle作为基类。在Circle类中定义一个数据成员radius和两个虚函数area()和volume()。由Circle 类派生Sphere类和Column类。在派生类中对虚函数area()和volume()重新定义,分别求球体和圆柱体的体积及表面积。
第7题
该函数的功能 是
A、将p1所指指字符串复制到p2所指的字符串中。
B、将p1所指的字符串的地址赋给指针p2.
C、对p1和p2两个指针所指字符串进行比较
D、swsjp1和p2两个指针所指字符串中是否有'\0'
第8题
A、4
B、1
C、2
D、运行时出错,无定值
第9题
第10题
实验十一 C程序的指针(二) 一、实验目的 1. 掌握指针和指针变量的概念。 2. 掌握简单指针变量的定义和基本使用方法。 3. 熟悉指针和一维数组的关系,掌握指向一维数组的指针变量的定义方法,熟练使用指针变量访问一维数组元素。 4. 了解指针和二维数组的关系,掌握用指针表示二维数组元素的方法。 5. 了解指针与字符串的关系,能熟练使用指针处理字符串。 二、实验内容及实验步骤 1. 调试下列程序,使之具有如下功能:任意输入2个数,调用两个函数分别求: ⑴ 2个数的和, ⑵ 2个数交换值. 要求用函数指针调用这两个函数,结果在主函数中输出. main() { int a,b,c,(*p)(); scanf("%d,%d",&a,&b); p=sum; *p(a,b,c); p=swap; *p(a,b); printf("sum=%d\n",c); printf("a=%d,b=%d\n",a,b); } sum(int a,int b,int c) { c=a+b; } swap(int a;int b) { int t; t=a; a=b; b=t; } 调试程序时注意参数传递的是数值还是地址. 2. 测试、运行自己编写的程序。 (1)写一个函数,实现两个字符串的比较。即自己写一个strcmp函数,函数原型为 int strcmp(char * p1,char * p2); 设p1指向字符串s2,要求当s1=s2时,函数返回值为0;如果s1<>s2,则返回它们二者第一个不相同的ASCII码值(如“BOY”与“BAD”的第二个字母不相同,“O”与“A”之差为79-65=14);如果s1>s2,则输出正值;如果s1<s2,则输出负值。 两个字符串s1、s2由main函数输入,strcmp函数的返回值也由main函数输出。 (2)用指向指针的指针的方法对n个整数排序并输出。要求将排序单独写成一个函数。n和各整数在主函数中输入,最后在主函数中输出。 (3)有n个人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。 三、实验报告要求 写明: 1. 实验目的 2. 实验内容与步骤 3. 编写的程序(题目,经调试、运行后正确的程序) 4. 思考题的解决方法。 5.>
为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!