首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序: #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
26
问题
有以下程序:
#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全国计算机二级
相关试题推荐
有以下程序:#includemain(){inta=1,b=1;while(a一一)b一一:printf("%d%d\n",a,b);}程序的运行结果是()。
要求定义一个具有6个元素的int型一维数组,以下选项中错误的是()。
有如下程序:#include<stdio.h>main(){if(’\0’==0)putchar(’X’);if(’0’==0)putchar(’Y’);if(’a’>’b’)putchar(’Z’);
若有以下程序:#include<stdio.h>main(){inta=一11,b=10;a%=b%=4;printf("%d%d\n",a,b);}则程序的输出结果是()。
下列给定程序中,函数fun的功能是:在整数10到55之间,查找能被3整除且有一位上的数值是5的数,把这些数放在b所指的数组中,这些数的个数作为函数值返回。规定函数中a1放个位数,a2放十位数。请改正程序中的错误,使它能得出正确的结果。注
以下定义语句中正确的是()。
设有两行定义语句:intscanf;floatcase;则以下叙述中正确的是()。
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
关于地址和指针,以下说法正确的是()。
随机试题
社区居民的价值观在影响健康行为方面属于
亲和层析的基本原理是
下图为热水供暖系统示意图,用户1、2的循环水量各为10t/h,用户处作用压力△PBC=10000Pa,热力站处作用压力△PAO=50000Pa,现在BC处接入一个与1、2完全相同的用户3,接入新用户前后AO压差保持不变,则接入用户3以后每个用户的流量和用户
对于需要试生产的建设工程项目,建设单位应当在项目投入试生产之日起最晚()内,向环保行政主管部门申请对其项目配套的环保设施进行竣工验收。
下列关于财务预算的表述中,正确的有()。
我国小学教育的具体任务有哪些?
属于古典主义时期作曲家的是()
领导的实质是()。
下列叙述中正确的是()。
A、可能便宜一点儿B、质量不错C、确实是贵D、没有别的地方丰富C
最新回复
(
0
)