- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
高级语言程序设计(下)
练习与答案
(南京邮电大学通达学院专用)
传媒技术学院
2007年3月
第五章及第九章 函数
一、选择题
以下程序运行结果为_____。
void func(int n)
{ static int a=1;
a+=n;
printf(%d,,a);
}
main()
{ int a=2;
func(a);
func(a);
}
A、3,3, B、3,5, C、2,2, D、2,4,
下列程序的执行结果为______。
int f(int n)
{ if (n0) f(n-1);
else{
if (n==0) return(1);
else return(n*f(n-1));
}
}
main()
{ printf(%d,f(5));}
A、120 B、8 C、15 D、1
以下正确的函数说明是 。
A、int fun(int a, b) B、float fun(int a; int b)
C、double fun( ) D、int fun(char a[ ][ ])
以下正确的说法是 。
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用一个存储单元
C、只有当实参和与其对应的形参同名时才共用存储单元
D、形参是虚拟的,不占用存储单元
C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是 。
A、地址传递
B、单向值传递
C、由实参传给形参,再由形参传回实参
D、由用户指定传递方式
如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是 。
A、该变量只在该复合语句中有效
B、该变量在该函数中有效
C、该变量在本程序范围内有效
D、该变量为非法变量
以下不正确的说法为 。
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有效
D、在函数内的复合语句中定义的变量在本函数范围内有效
在一个源文件中定义的全局变量的作用域为 。
A、本文件的全部范围
B、本程序的全部范围
C、本函数的全部范围
D、从定义该变量的位置开始至本文件结束
以下说法不正确的是 。
函数main()中定义的变量仅在main()中有效。
不同函数中可以使用相同的变量名。
形式参数是局部变量。
一个函数内部,可以在复合语句中定义变量,这些变量在本函数中均有效。
实参数组名作为参数传递给被调函数,则实参的数组名被处理为 。
A、该数组的长度 B、该数组的元素的个数
C、该数组中各元素的值 D、该数组的首地址
若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是A、函数调用可以作为独立的语句存在B、函数调用可以作为一个函数的实参? C函数调用可以出现在表达式中D、函数调用可以作为一个函数的形参“%d\n”,fun(9)); }
A、7 B、 2 C、 0 D、 3
以下叙述中正确的是 。A、全局变量的作用域一定比局部变量的作用域范围大B、静态(static)类别变量的生存期贯穿于整个程序的运行期间C、函数的形参都属于全局变量D、未在定义语句中赋初值的auto变量和static变量的初值都是随机值
二、填空题
凡在函数中未指定存储类别的变量,其隐含的存储类别是 (1) 。
以数组名做为函数实参时,参数传递的方式为 (2) 。
以下程序的运行后的两个结果分别是 (3) 和 (4) 。
#include stdio.h
void ff1( )
{ extern int x, y;
int a=15, b=10;
x=a-b;
y=a+b;
}
int x, y;
main( )
{ int a=7, b=5;
x=a+b;
y=a-b;
ff1( );
printf(%d, %d\n, x, y);
}
以下程序的运行结果是 (5) 。
void f1(int x, int y, int z)
{ x=111; y=222; z=333;
}
main( )
{ int x=100, y=200, z=300;
f1
文档评论(0)