首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #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
59
问题
有以下程序:
#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://kaotiyun.com/show/vpCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序(说明:字母A的ASCII码值是65):#includevoidfun(char*s){while(*s){if(*s%2)printf("%c",*s);s++;}}main(
设已有定义:floatx.则以下对指针变量p进行定义且赋初值的语句中正确的是()。
以下叙述中错误的是()。
有以下程序:#include<stdio.h>#defineN2#defineMN+1#defineNUM(M+1)*M/2main(){printf("%d\n",NUM);}程序运行后的
若有以下程序:#include<stdio.h>main(){inta=一11,b=10;a%=b%=4;printf("%d%d\n",a,b);}则程序的输出结果是()。
下列定义数组的语句中,正确的是()。
设有定义:doublex=2.12;,以下不能完整输出变量X值的语句是()。
下面说法正确的是()。
关于数组和指针,以下说法错误的是()。
随机试题
急性肾衰竭少尿期最主要的死亡原因是
患者男性.50岁。脑出血入院,入院3天后发热。体温39.5℃,遵医嘱行全身物理降温。为该患者进行物理降温时应注意观察
证见肌热面红,烦渴欲饮,脉洪大而虚,重按无力。方剂宜选用
柏油样大便见于:
存款人开立基本存款账户时,应送交盖有存款人印章的印鉴卡片。印鉴卡片上填写的户名必须与单位名称一致,同时要求加盖开户单位公章、单位负责人和()三枚图章。
下列说法正确的是()。
操作风险评估遵循的原则一般包括()。
D公司是专门销售甲产品的批发商。为促进销售,目前公司拟研究改进信用政策。相关资料如下:(1)该公司目前(2012年)的年销售量为60000件,平均存货量1000件。该产品单位售价100元,单位进货成本50元。(2)该公司目前采用的信用政策是2/30,n
下列关于人和动物细胞的叙述,正确的一组是()①癌细胞容易在体内转移与其细胞膜上糖蛋白等物质减少有关②由胚胎中胚层细胞分化成红细胞的过程是可逆的③细胞内水分减少,代谢速度减慢是衰老细胞的主要特征之一④癌变是细胞原癌基因从激活状态转为抑制状态的
阅读以下说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】张某和同学毕业后参加大学生创业项目,创建了一个电子商务网站。最近张某负责电子商务系统开发的项目管理工作。该项目经过工作分解后,范围已经明确。为了更好地对该项目的开发过程进行监
最新回复
(
0
)