自考“高级语言程序设计”习题答案详解(33)
6.1 单项选择题
1.函数调用语句“f((el,e2),(e3,e4,e5));”中参数的个数是( )
①1 ②2
③4 ④5
「解」上述函数调用中,(e1,e2)和(e3,e4,e5)是两个带括号的表达式,所以函数调用只提供两个实参,其中第一个实参先计算el的值,然后计算e2,并以e2的值为实参。第二个实参顺序计算e3,e4,e5,并以e5的值为实参。所以解答是②。
2.C语言中,函数的隐含存储类型是( )
①auto ②static
③extern ④无存储类别
「解」由于C函数内不能再定义函数,C函数的存储类型只能是静态的或外部的之一。若定义函数时不指定存储类型是静态的,则它的存储类型就是外部的(extern),即函数允许被程序的其它函数调用。所以解答是③。
3.以下对C语言函数的有关描述中,正确的是( )
①在C语言中,调用函数时,只能把实参的值传递给形参,形参的值不能传递给实参
②C函数既可以嵌套定义,又可以递归调用
③函数必须有返回值,否则不能定义成函数
④C程序中,有调用关系的所有函数必须放在同一个源程序文件中
「解」C语言规定,调用函数时,只能把实参的值传递给函数的形参。函数调用时,形参从实参表达式得到初值,报参也是函数的一种局部变量,其值可以改变,但形参的值不能传回给对应的实参。当函数设置非指针类型的形参时,实参可以是同类型的一般表达式;当函数设置指针类型的形参时,对应的实参也必须是同类型的指针表达式。所以叙述①是正确的。C语言虽可以递归调用,但同时规定,在函数内不能再定义函数,所以叙述②是错误的。通常C函数会有返回值,但也可以没有返回值。有许多情况,函数的执行是完成某种预定的工作,并没有返回值,所以叙述③是不正确的。在C程序中,如函数未指定是静态的,则就是外部的,能让别的文件中的函数调用。但函数要调用别的文件中的函数,在调用代码之前,需对它作说明,所以叙述④也是不正确的。正确的解答只有①。
4.设函数的功能是交换X和y的值,且通过正确调用返回交换结果。不能正确执行此功能的函数是( )
① funa(int *x, int *y)
{ int * p;
* p=*x; *x=*y; *y=*p;
}
② funb(int x, int y)
{ int t;
t=x;x=y;y=t;
}
③ func(int *x, int *y)
{ int p;
p=*x; *x=*y; * y=p;
}
④fund( int *x,int *y)
{
*x=*x+ *y;*y=*x- *y;*x= *x- *y;
}
「解」设计实现交换两个变量值的函数。希望函数调用能改变调用环境中的变量,方法之一是让函数设置指针类型的形参,实参传送给形参的是希望交换值的两个变量的指针。函数的两个形参得到这两个变量的指针后,函数就能通过形参间接引用要交换值的变量,或引用它们的值,或改变它们的值。从而实现从函数传回信息存于调用环境的变量中。以上所述是设计交换变量值函数的一般原则,具体编写函数时还需注意对上述原则的正确应用。
对于函数funa,该函数的定义满足设置指针形参,并通过指针形参间接引用环境变量的要求。但是在函数体中定义了指针变量p,并在p宋明确设定它所指向的变量下,代码*p=* x企图将值存入它所指的变量中,这是初学者经常出现的一种严重的错误。该函数因有错,不能实现交换变量值的功能。
对于函数funb,该函数不定义指针形参,函数体也没有可用的指针间接引用调用环境中的变量,所以该函数也不能实现交换变量值的功能。
对于函数func,该函数正确定义了指针形参,函数体也正确通过指针形参间接引用环境中的变量,并正确定义了自己的局部变量。该函数能实现交换变量值的功能。
对于函数fund,该函数也正确定义指针形参和函数体通过形参间接引用环境变量。特别要指出的是,该函数是利用*x和*y的;日值与新值之间的关系实现问题要求的。其中第一个赋值使。x存有原来未交换之前的*x与*y之和;第二个赋值从这个和中减去原来的*y,并将差赋给*y,使*y的值是交换之前的*x的值;第三个赋值再次从和中减去新的*y,即减去交换之前的*x,这个差就是交换之前的*y,并将差赋给*x.经以上三个赋值,实现两变量之间的值交换。
所以不能正确执行交换变量值的函数是funa和funb,即正确选择是①②。
【自考“高级语言程序设计”习题答案详解(33)】相关文章:
★ 2012年自考“高级语言程序设计”经典习题及答案(21)
★ 2012年自考“高级语言程序设计”经典习题及答案(26)
★ 2012年自考“高级语言程序设计”经典习题及答案(15)
★ 2012年自考“高级语言程序设计”经典习题及答案(29)
★ 2012年自考“高级语言程序设计”经典习题及答案(32)
★ 2012年自考“高级语言程序设计”经典习题及答案(25)
★ 2012年自考“高级语言程序设计”经典习题及答案(28)
热点推荐:
工学
- 2020-11-17【工学】2012年自考“工程项目管理”单选练习(9)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(1)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(18)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(34)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(35)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(38)
- 2020-11-17【工学】2012年自考“互联网软件应用与开发”复习资料(41)
- 2020-11-17【工学】2012年自考“互联网及其应用”串讲笔记(1)
其他最新资讯
- 2023-12-29【自考政策】广西自考网络助学平台新增61门课程
- 2020-12-04【免考问题】哪些证书可以免考自考相关课程?
- 2020-12-04【免考问题】自考免考有哪些条件?
- 2020-12-04【综合问题】自考本科文凭有用吗?
- 2020-12-04【综合问题】自考本科需要考多少门课?
- 2020-11-17【综合问题】江苏省高等教育自学考试网上报名常见问题及解答
- 2020-11-17【经济学】2012年自考“中国税制”笔记串讲(8)
- 2020-11-17【自考政策】全国自考办领导:未来自考将大力发展网络助学
网友关注
- 【公共课】自考《思想道德修养与法律基础》真题练习:爱国主义的优良传统
- 【公共课】自考《马克思主义基本原理概论》真题练习:个人自由全面发展
- 【公共课】自考《英语(二)》真题练习:名词词义选择
- 【公共课】自考《思想道德修养与法律基础》真题练习:我国的国家性质
- 【公共课】自考《马克思主义基本原理概论》真题练习:平均利润率
- 【公共课】自考《思想道德修养与法律基础》真题练习:人民代表大会制度
- 【公共课】自考《高等数学(一)》真题练习:解微分方程
- 【公共课】自考《概率论与数理统计(经管类)》真题练习:事件概率
网友关注视频
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 【部编】人教版语文七年级下册《老山界》优质课教学视频+PPT课件+教案,安徽省
- 七年级英语下册 上海牛津版 Unit3
- 二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
- 外研版英语三起6年级下册(14版)Module3 Unit1
- 冀教版英语五年级下册第二课课程解读
- 苏科版数学七年级下册7.2《探索平行线的性质》
- 沪教版牛津小学英语(深圳用) 六年级下册 Unit 7