C程序设计语言部分章节习题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第8章函数
一、选择题(在下列各题的A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上。)
8.1 若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是
A)函数调用可以作为独立的语句存在B)函数调用可以作为一个函数的实参
C)函数调用可以出现在表达式中D)函数调用可以作为一个函数的形参
考生答案: 正确答案: D
8.2 在调用函数时,如果实参是简单的变量,它与对应形参之间的数据传递方式是
A)地址传递B)单向值传递C)由实参传形参,再由形参传实参D)传递方式由用户指定
考生答案: 正确答案: B
8.3 以下正确的说法是
A)定义函数时,形参的类型说明可以放在函数体内B)return后边的值不能为表达式
C)如果函数值的类型与返回值类型不一致,以函数值类型为准D)如果形参与实参类型不一致,以实参类型为准
考生答案: 正确答案: C
8.4 以下正确的说法是
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动调用
考生答案: 正确答案: B
8.5 以下叙述正确的是
A)函数可以嵌套定义但不能嵌套调用B)函数既可以嵌套调用也可以嵌套定义
C)函数既不可以嵌套定义也不可以嵌套调用D)函数可以嵌套调用但不可以嵌套定义
考生答案: 正确答案: D
8.6 下面对C语言的描述中,正确的是
A)函数一定有返回值,否则无法使用函数B)C语言函数既可以嵌套定义又可以递归调用C)在C语言中,调用函数时,只能将实参的值传递给形参
D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中
考生答案: 正确答案: C
8.7 下列说法中错误的是
A)静态局部变量的初值是在编译时赋予的,在程序执行期间不再赋予初值
B)若全局变量和某一函数中的局部变量同名,则在该函数中,此全局变量被屏蔽
C)静态全局变量可以被其他的编辑单位所引用
D)所有自动类局部变量的存储单元都是在进入这些局部变量所在的函数体(或复合语
句)时生成,退出其所在的函数体(或复合语句)时消失
考生答案: 正确答案: C
8.8 以下程序有语法错误,有关错误原因的正确说法是
void main()
{ int G=5,k;
void prt_char();
...
k=prt_char(G);
...
}
A)语句 void prt_char();有错,它是函数调用语句,不能用void说明B)变量名不能使用大写字母
C)函数说明和函数调用语句之间有矛盾D)函数名不能使用下划线考生答案: 正确答案: C
8.9 以下正确的函数首部定义形式是
A)double fun(int x,int y)B)double fun(int x;int y)C)double fun(int x,int y); D)double fun (int x,y);
考生答案: 正确答案: A
8.12 下面函数调用语句含有实参的个数为
func((exp1,exp2),(exp3,exp4,exp5));
A)1 B)2 C)4 D)5 考生答案: 正确答案: B
8.13 设有如下函数
fun (float x)
{ printf("\n%d",x*x);
}
则函数的类型是
A)与参数x的类型相同B)是void C)是int型D)无法确定考生答案: 正确答案: C 8.14 有以下程序
float fun(int x,int y)
{ return(x+y);}
void main()
{ int a=2,b=5,c=8;
printf("%3.0f\n",fun((int)fun(a+c,b),a-c));
}
程序运行后的输出结果是
A)编译出错B)9 C)21 D)9.0
考生答案: 正确答案: B
8.17 以下函数返回a所指数组中最大值所在的下标值
fun(int *a,int n)
{ int i,j=0,p;
p=j;
for(i=0;i if(a[i]>a[p]) _________; return(p); } 在下划线处应填入的内容是 A)i=p B)a[p]=a[i]C)p=j D)p=i 考生答案: 正确答案: D 8.18 有以下程序 int f(int n) { if(n==1) return 1; else return f(n-1)+1; } void main() { int i,j=0; for(i=1;i<3;i++) j+=f(i); printf("%d\n",j); } 程序运行后的输出结果是 A)4 B)3 C)2 D)1 考生答案: 正确答案: B 8.19 有如下程序: long fib(int n) { if(n>2) return(fib(n-1)+fib(n-2)); else return(1); } void main() { printf("%d\n",fib(3)); } 该程序的输出结果是 A)1 B)2 C)3 D)4 考生答案: 正确答案: B 8.20 下列函数的运行结果是 void main() { int i=2,p; int j,k; j=i; k=++i; p=f(j,k); printf("%d",p); } int f(int a,int b) { int c; if(a>b) c=1; else if(a==b) c=0; else c=-1; return(c); } A)-1 B)1 C)2 D)编译出错,无法运行考生答案: 正确答案: A 8.21 阅读下列程序,当运行函数时,输入asd af aa z67,则输出为 #include #include int fun (char *str) { int i,j=0; for(i=0;str[i]!=′\ 0′;i++) if(str[i]!=′′) str[j++]=str[i]; str[j]= ′\0′; } void main() { char str[81]; int n; printf("Input a string : "); gets(str); puts(str);