函数和模块设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第6章函数和模块设计
选择题
1、若有以下程序
#include
void f(int n);
main()
{ void f(int n);
f(5);
}
void f(int n)
{ printf("%d\n",n); }
则以下叙述中不正确的是
A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
D) 函数f无返回值,所以可用void将其类型定义为无值型
2、在C语言中,形参的缺省存储类是
A) auto B) register C) static D) extern
3、以下程序的输出结果是
f(int b[],int m,int n)
{ int i,s=0;
for(i=m;i return s; } main() {int x,a[]={1,2,3,4,5,6,7,8,9}; x=f(a,3,7); printf("%d\n",x); } A) 10 B) 18 C) 8 D) 15 4、有如下程序 void f(int x,int y) { int t; if(x } main() { int a=4,b=3,c=5; f(a,b); f(a,c); f(b,c); printf("%d,%d,%d\n",a,b,c); } 执行后输出结果是 A) 3,4,5 B) 5,3,4 C) 5,4,3 D) 4,3,5 5、下函数的功能是:通过键盘输入数据,为数组中的所有元素赋值。 #define N 10 void arrin(int x[N]) { int i=0; while(i scanf("%d", ); } 在下划线处应填入的是 A) x+I B)&x[i+1] C)x+(i++) D)&x[++i] 6、阅读以下函数 fun(char *s1,char *s2) { int i=0; while(s1[i]==s2[i]&& s2[i]!=…\0‟)i++; return(s1[i]== && s2{i}!==…\0‟); } 此函数的功能是 A) 将s2所指字符串赋给s1 B) 比较s1和s2所指字符串的大小,若s1比s2的大,函数值为1,否则函数值为0 C) 比较s1和s2所指字符串是否相等,若相等,函数值为1,否则函数值为0 D) 比较s1和s2所指字符串的长度,若s1比s2的长,函数值为1,否则函数值为0 7、以下叙述中正确的是 A) 全局变量的作用域一定比局部变量的作用域范围大 B)静态(static)类别变量的生存期贯穿于整个程序的运行期间 C)函数的形参都属于全局变量 D)未在定义语句中赋初值的auto变量和static变量的初值都是随机值 8、若已定义的函数有返回值,则以关于该函数调用的叙述中错误的是 A) 调用可以作为独立的语句存在B) 调用可以作为一个函数的实参 C) 调用可以出现在表达式中D) 调用可以作为一个函数的形参 9、以下叙述中正确的是 A) 局部变量说明为static存储类,其生存期将得到延长 B) 全局变量说明为static存储类,其作用域将被扩大 C) 任何存储类的变量在未赋初值时,其值都是不确定的 D) 形参可以使用的存储类说明符与局部变量完全相同 10、有以下函数定义: void fun( int n, double x) { …… } 若以下选项中的变量都已正确定义并赋值,则对函数fun的正确调用语句是 A) fun(int y,double m); B) k=fun(10,12.5); C) fun(x,n); D) void fun(n,x); 11、在一个C语言程序中______。 A、main函数必须出现在所有函数之前 B、main函数可以在任何地方出现 C、main函数必须出现在所有函数之后 D、main函数必须出现在固定位置 12、若程序中定义了以下函数 double myadd(double a,double B) { return (a+B) ;} 并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是 A) double myadd(double a,B) ; B) double myadd(double,double); C) double myadd(double b,double A) ; D) double myadd(double x,double y); 13、有以下程序 void f(int v , int w) { int t; t=v;v=w;w=t; } main( ) { int x=1,y=3,z=2; if(x>y) f(x,y); else if(y>z) f(y,z); else f(x,z); printf(“%d,%d,%d\n”,x,y,z); } 执行后输出结果是 A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1 14、有以下程序 void swap1(int c[]) { int t; t=c[0];c[0]=c[1];c[1]=t; } void swap2(int c0,int c1) { int t; t=c0;c0=c1;c1=t; } main( ) { int a[2]={3,5},b[2]={3,5}; swap1(A) ; swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]); } 其输出结果是 A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3 15、在函数调用过程中,如果函数funA调用了函数funB,函数funB又调用了函数funA,则