C++函数数组及指针章习题指导.docx
- 文档编号:3990268
- 上传时间:2022-11-27
- 格式:DOCX
- 页数:26
- 大小:41.46KB
C++函数数组及指针章习题指导.docx
《C++函数数组及指针章习题指导.docx》由会员分享,可在线阅读,更多相关《C++函数数组及指针章习题指导.docx(26页珍藏版)》请在冰豆网上搜索。
C++函数数组及指针章习题指导
函数
知识要点
1. 掌握C++中函数的定义、调用以及主调函数和被调函数之间的数据传递规则。
2. 掌握函数的返回值和它的类型。
3. 理解函数递归调用的过程,掌握简单的递归算法。
4. 掌握内联函数的概念和应用。
5. 理解函数重载的概念和使用场合。
典型例题分析与解答
例题1:
关于函数的调用下面不正确的是()。
A.A. 由于程序总是从主函数开始,所以函数的调用总是在主函数和其他函数之间进行
B.B. 函数的调用可以在任意函数之间进行,只要有需要
C.C. 一个函数可以自己调用自己
D.D. 函数返回时可以不必带返回值,这时函数在定义时其类型应用void表示
答案:
A
分析:
因为在C++中程序从主函数开始是正确的,但并未规定函数的调用只能发生在主函数和其他函数之间。
例题2:
关于函数的声明和定义正确的是()。
A.A. 函数的声明是必须的,只有这样才能保证编译系统对调用表达式和函数之间的参数进行检测,以确保参数的传递正确
B.B. 函数的定义和声明可以合二为一,可以只有函数定义即可
C.C. 函数在声明时,其参数标识符可省略,但参数的类型、个数与顺序不能省略
D.D. 函数的存储类型为外部型,所以可以在其他函数中被调用,它在定义时象其他外部变量一样,可以在其他函数内定义
答案:
C
分析:
函数的声明并非必须,可以只要函数定义而不要声明,但要注意符合一定条件,函数不可嵌套定义。
例题3:
在函数的返回值类型与返回值表达式的类型的描述中,错误的是()。
A.A. 函数返回值的类型是在定义函数时确定,在函数调用时是不能改变的
B.B. 函数返回值的类型就是返回值表达式的类型
C.C. 函数返回值表达式类型与返回值类型不同时,函数表达式类型应转换成返回值类型
D.D. 函数返回值类型决定了返回值表达式的类型
答案:
B
分析:
因为函数的返回值类型与返回值表达式的类型可能不同,在不同时将返回值表达式类型自动转换为函数返回值的类型。
例题4:
下面程序的输出结果为()。
#include
f(inta)
{intb=0;
staticintc=3;
b++;c++;
return(a+b+c);
}
intmain()
{inta=2,I;
for(I=0;I<3;I++)
cout< } A.7B.7C.7D.7 87109 971311 答案: A 分析: 注意静态局部变量c的特点: 在编译时候只赋一次初值,以后每次调用函数时不再重新赋初值而是保留上次函数调用结束时的值,故本题选A。 例题5: 编写一个函数来检验输入的一个字符是大写字母还是小写字母或不是26个英文字母。 分析: 本题要掌握判断字符是大写或者小写字母的方法,程序代码如下: #include charch; fun(charch) {intI; if((ch>=’a’)&&(ch<=’z’)) I=1; elseif((ch>=’A’)&&(ch<=’Z’))I=2; elseI=3; returnI;} intmain() {intI; cout<<”请输入一个字符: ”; cin>>ch; I=fun(ch); If(I==1) cout<<”是小写字母! ”< elseif(I==2) cout<<”是大写字母! ”< elsecout<<”是其他字符! ”< } 例题6: 使用函数重载的方法定义两个重名函数,分别求出整型数的两点间距离和浮点型数的两点间距离。 分析: 本题要求我们理解函数重载,另外两点间距离公式为: d=sqrt((x1-x2)2+(y1-y2)2),程序代码如下: #include”iostream.h” #include”math.h” doublefunc(int,int,int,int),func(double,double,double,double); voidmain() {cout< cout< } doublefunc(intx1,inty1,intx2,inty2) {returnsqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));} doublefunc(doublex1,doubley1,doublex2,doubley2) {returnsqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));} 5.3教材习题分析与解答 1.选择题 (1)以下正确的说法是()。 A.用户若需要调用标准函数,调用前必须重新定义 B.用户可以直接调用所有标准库函数 C.用户可以定义和标准库函数重名的函数,但是在使用时调用的是系统库函数 D.用户可以通过文件包含命令将系统库函数包含到用户源文件中,然后调用系统库函数 答案: D (2)如果一个函数无返回值,定义时它的函数类型应是()。 A.任意B.intC.voidD.无 答案: C (3)关于函数返回值的的描述正确的是()。 A.函数返回表达式的类型一定与函数的类型相同 B.函数返回值的类型决定了返回值表达式的类型 C.当函数类型与返回值表达式类型不同,将对返回值表达式的值进行类型转换 D.函数返回值类型就是返回值表达式类型 答案: C (4)下列哪个不是重载函数在调用时选择的依据()。 A.参数类型B.参数个数C.函数类型D.函数名 答案: C (5)在参数传递过程中,对形参和实参的要求是()。 A.函数定义时,形参一直占用存储空间B.实参可以是常量、变量或表达式 C.形参可以是常量、变量或表达式D.形参和实参类型和个数都可以不同 答案: B (6)下列各类变量,哪个不是局部变量()。 A.register型变量B.外部static变量 C.auto型变量D.函数形参 答案: B (7)在C++语言中,关于参数默认值的描述正确的是()。 A.只能在函数定义时设置参数默认值 B.设置参数默认值时,应当从右向左设置 C.设置参数默认值时,应当全部设置 D.设置参数默认值后,调用函数不能再对参数赋值 答案: B (9)预处理命令以()开头。 A.*B.#C./D.: 答案: B (10)对数组名作函数的参数,下面描述正确的是(B)。 A.数组名作函数的参数,调用时将实参数组复制给形参数组 B.数组名作函数的参数,主调函数和被调函数共用一段存储单元 C.数组名作参数时,形参定义的数组长度不能省略 D.数组名作参数,不能改变主调函数中的数据 答案: B 2.分析程序并写出结果 (1)#include voidfun(); intn=5; intmain() {intn=10; cout< fun(); } voidfun() {cout< 运行结果: 10 5 (2)#include usingnamespacestd; voidfun(); intmain() {inti; for(i=0;i<5;i++)fun(); } voidfun() {staticintm=0; cout< } 运行结果: 0 1 2 3 4 (3)#include #include voidfun(intarray[],intn); intmain() {inta[10]={5,8}; inti; fun(a,10); for(i=0;i<10;i++) cout< cout< } voidfun(intarray[],intn) { inti; for(i=2;i array[i]=array[i-1]+array[i-2]; } 运行结果: 581321345589144233377 (5)#include usingnamespacestd; intadd(intx,inty=8); intmain() { inta=4; cout< cout< } intadd(intx,inty) { returnx+y;} 运行结果: 12 16 (6)#include usingnamespacestd; intfun(doublea,doubleb); intmain() {cout< intfun(doublea,doubleb) { returna*b;} 运行结果: 8 (7)#include #include usingnamespacestd; voidfun(charstring[]); intmain() {charstr[20]="thisisabook"; cout< fun(str); cout< } voidfun(charstring[]) {inti; for(i=0;i if(string[i]>='a'&&string[i]<='z')string[i]-=32; } 运行结果: thisisabook. THISISABOOK. 3.编写函数将化氏温度转换为摄氏温度,公式为C=(F-32)*5/9;并在主函数中调用。 #include floatfun(floatf) {floatc; c=5.0/9*(f-32);//注意这里是5.0/9,不能写成5/9 returnc; } intmain() {floatx; cout<<"请输入一个温度值"; cin>>x;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 函数 数组 指针 习题 指导