首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #include int add(int x,int y){return(x+y);} void main() {int s,(*pf)(),a=1,b=2; pf=add; … } 则以下函数调用语句错误的是( )。
有以下程序: #include int add(int x,int y){return(x+y);} void main() {int s,(*pf)(),a=1,b=2; pf=add; … } 则以下函数调用语句错误的是( )。
admin
2020-06-16
65
问题
有以下程序:
#include
int add(int x,int y){return(x+y);}
void main()
{int s,(*pf)(),a=1,b=2;
pf=add;
…
}
则以下函数调用语句错误的是( )。
选项
A、s=pf(a,b);
B、s=add(a,b);
C、s=(*pf)(a,b);
D、s=*pf(a,b);
答案
D
解析
pf是一个指向函数的指针,本题的难度在于函数指针的调用。在C语言中,函数名会被转换为指向这个函数的指针,除非这个函数名作为&操作符的操作对象。因此,函数指针的调用可以是add(a.b)和pf(a,b),它们两者是一样的。另外,(*pf)(a,b)也是合法的,表示先对指针pf引用,再调用函数,指针两侧的括号必须有,可以理解为将函数指针反过来转换为函数名再调用函数,其实在ANSI C标准中将pf(a,b)认为是(*pf)(a,b)的简写形式,并且推荐使用前者,因为它更符合函数调用的逻辑。但若写成*pf(a,b)的形式,则因为()优先级高于*,所以将先调用函数,再进行指针的解引用操作,但函数返回的是一个整型数值,因此,调用会出错,选项D不正确。
转载请注明原文地址:https://www.kaotiyun.com/show/vpCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
设有定义:charp[]={’1’,’2’,’3’},*q=p;以下不能计算出一个char型数据所占字节数的表达式是()。
以下数组定义中错误的是()。
下列给定程序中,函数fun的功能是:将主函数中两个变量的值进行交换。例如,若变量a中的值为8,b中的值为3,则程序运行后,a中的值为3,b中的值为8。请改正程序中的错误,使它能得出正确的结果。注意:不要改动main函数,不得增行或删行,也不
C语言主要是借助以下哪个功能来实现程序模块化?()
若有以下定义:structtt{charname[10];charsex;}aa={"aaaa”,,F’},*P=&aa;则错误的语句是()。
请编写函数fun,它的功能是计算下列级数和,和值由函数值返回。例如,当n=10,x=0.3时,函数值为1.349859。注意:请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。试题程序:#include
若要求定义具有10个int型元素的一维数组a,则以下定义语句中错误的是()。
以下说法正确的是()。
下列说法不正确的是()。
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
随机试题
中国古代哲学家陆九渊主张“宇宙便是吾心,吾心即是宇宙”。这一观点是()
亚急性感染性心内膜炎病变的好发部位为
吲哚的化学结构是()。
关于土地抵押,下列说法中错误的是()。
下列表述中,不正确的是()。
目前各家银行规定,只有()的存单才可用于在本行作质押贷款。
()可以成为评价实际成本的依据,也可以用来对存货和销货成本计价。
()是社会主义道德区别和优越于其他社会形态道德的显著标志。
Theterm"disruptivetechnology"ispopular,butiswidelymisused.Itrefersnotsimplytoaclevernewtechnology,huttoone
Manypeoplebelievetheglarefromsnowcausessnowblindness.Yet,darkglassesornot,theyfindthemselves【C1】______headaches
最新回复
(
0
)