函数
一、选择题
100、以下正确的函数说明是_____
A、int fun(int a, b) B、float fun(int a; int b)
C、double fun( ) D、int fun(char a[ ][ ])
101、以下正确的函数形式是_____
A、double fun1(int x, int y) B、fun1(int x, y)
{ z=x+y; return z; } { int z;
return z; }
C、fun1(x, y)
{ int x, y; double z;
z=x+y;
return z; }
D、double fun1(int x, int y)
{ double z;
z=x+y; return z; }
102、以下正确的说法是_____
A、实参和与其对应的形参各占用独立的存储单元
B、实参和与其对应的形参共占用一个存储单元
C、只有当实参和与其对应的形参同名时才共用存储单元
D、形参是虚拟的,不占用存储单元
103、以下正确的描述是_____
A、定义函数时,形参的类型说明可以放在函数体内
B、return后面的值不能为表达式
C、如果函数值的类型与返回值类型不一致,以函数值类型为准
D、如果实参与形参的类型不一致,以实参类型为准
104、C语言规定:简单变量做实参时,它和对应形参之间的数据传递方式是_____
A、地址传递 B、单向值传递
C、由实参传给形参,再由形参传回实参
D、由用户指定传递方式
105、以下程序存在语法性错误,关于错误原因的正确说法是_____
main( )
{ int A=5, b;
void p_ch( );
……
b=p_ch( A );
……
}
A、语句void p_ch( );有错,它是函数调用语句,不能使用void说明
B、变量名不能使用大写字母
C、函数说明和函数调用语句之间有矛盾
D、函数名中不能使用下划线
106、C语言允许函数值类型的缺省定义,此时该函数值隐含的类型是_____
A、float B、int C、long D、double
107、以下程序的功能是计算函数F(x, y, z)=(x+y)/(x-y)
+(z+y)/(z-y)的值,请选择填空。
#include <stdio.h>
#include <math.h>
float fun1(float , float);
main( )
{ float x, y, z, sum;
scanf("%f%f%f", &x, &y, &z);
sum=fun1(__①__)+fun1(__②__);
printf("sum=%f\n", sum);
}
float fun1(float a, float b)
{ float num;
num=a/b;
return(num);
}
① A、x-y, x+y B、x+y, x-y
C、z+y, z-y D、z-y, z+y
② A、x-y,x+y B、x+y,x-y
C、z+y,z-y D、z-y,z+y
108、以下正确的描述是_____
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用均不可以嵌套
D、函数的定义和函数的调用均可以嵌套
109、若使用一维数组名作函数实参,则以下正确的说法是_____
A、必须在主调函数中说明此数组的大小
B、实参数组类型与形参数组类型可以不匹配
C、在被调函数中,不需要考虑形参数组的大小
D、实参数组名与形参数组名必须一致
110、如果在一个函数中的复合语句中定义了一个变量,则以下正确的说法是_____
A、该变量只在该复合语句中有效
B、该变量在该函数中有效
C、该变量在本程序范围内有效
D、该变量为非法变量
111、以下不正确的说法为_____
A、在不同函数中可以使用相同名字的变量
B、形式参数是局部变量
C、在函数内定义的变量只在本函数范围内有效
D、在函数内的复合语句中定义的变量在本函数范围内有效
112、在一个源文件中定义的全局变量的作用域为_____
A、本文件的全部范围
B、本程序的全部范围
C、本函数的全部范围
D、从定义该变量的位置开始至本文件结束
113、以下程序的运行结果是_____
#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);
}
A、12, 2 B、不确定 C、5, 25 D、1, 12
114、凡是函数中未指定存储类别的局部变量,其隐含的存储类别为_____
A、自动(auto) B、静态(static)
C、外部(extern) D、寄存器(register)
115、以下程序的运行结果是_____
main( )
{ int a=1, k;
for (k=0; k<3; k++)
printf("%4d", f1(a));
}
f1(int x)
{ static int z=3, y=0;
y++;
z++;
return(x+y+z);
}
A、6 8 10 B、6 6 6
C、7 8 9 D、7 9 11
116、以下程序的运行结果是_____
main( )
{ char str1[ ]="abcdef";
ff(str1);
printf("str[ ]=%s\n", str1);
}
ff(char str1[ ])
{ int x, y;
for (x=y=0; str1[x]!='\0'; x++)
if (str1[x]!='c')
str[y++]=str1[x];
str1[y]='\0';
}
A、str[ ]=abdef B、str[ ]=abcdef
C、str[ ]=a D、程序中存在语法错误
二、填空题
69、一个C程序是由若干个函数构成的,其中必须有一个_____
70、在C语言中,一个函数通常由两部分组成,它们是_____和_____
71、以下程序的运行结果是_____
void f1(int x, int y, int z)
{ x=111; y=222; z=333;
}
main( )
{ int x=100, y=200, z=300;
f1(x, y, z);
printf("%d, %d, %d\n", z, y, x);
}
72、以下程序的运行结果是_____
int fun(int x, int y)
{ int z;
while (y)
{ z=x%y; x=y; y=z; }
return(x);
}
main( )
{ int i=16, j=6, k;
k=fun(i, j);
printf("%d\n", k);
}
73、以下函数用于统计一行中的单词个数,单词之间用空格分隔。请填空。
word_num(char str [ ])
{ int i, num=0, word=0;
for (i=0; str[i]!= ___; i++)
if (____==32) word=0;
else if (word==0)
{ word=1;
_____; }
return(num);
}
74、以下函数用于出一个2×4矩阵中的最大元素值
max_value(int arr[ ][4])
{ int i, j, max;
max=arr[0][0];
for (i=0; _____; i++)
for (j=0; _____; j++)
if (arr[i][j]>max)
max=_____;
return(max);
}
75、以下函数f1用于求两个整数a和b的最大公约数。
f1(int a, int b)
{ int i, j, m, n;
if (a>b)
{ m=a; a=b; _____; }
i=a; j=b;
while ((n= =_____)!=0)
{ j=i; i=_____; }
return(i);
}
76、以下程序的功能是:从键盘输入若干字符后,可统计出主函数调用count函数的次数,用字符“!”作为输入结束的标志。请填空。
isalpha 函数count(_____)
{ static int k=0;
k++;
if (ch2=='!')
printf("count=%d\n",_____);
}
main( )
{ char ch1;
while (1)
{ scanf("%c", &ch1);
count(ch1);
if (ch1=='!')
break;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论