{
char str1[ ]=\ for(int i=0;i<4;i++) {
printf(\ str1[i]=' ';
str1[strlen(str1)-1]='\\0'; } }
******* ***** *** *
(7) 该程序的运行结果是: min= -5.77 ,m= 2 ,n= 1 void main() {
float array[4][3]={ {3.4,-5.6,56.7}, {56.8,999.,-.0123}, {0.45,-5.77,123.5}, {43.4,0,111.2} };
int i,j; int min; int m,n;
min = array[0][0]; m=0;n=0;
for(i=0;i<3;i++) for(j=0;j<4;j++)
if(min > array[i][j]) {
min = array[i][j]; m=i;n=j; }
printf(\ } 2 1
(8) 写出下面这个程序的输出结果:
。 - 21 -
void main() {
char str[]=\
printf(\屏幕上显示 ABCDEFGHIJKL
printf(\屏幕上显示 EFGHIJKL str[2]=str[5];
printf(\屏幕上显示 ABFDEFGHIJKL str[9]='\\0';
printf(\屏幕上显示 ABFDEFGHI }
8 函数
一、单项选择题
1、C 语言总是从( A )函数开始执行。
A. main B. 处于最前的 C.处于最后的 D. 随机选一个 2、函数在定义时,省略函数类型说明符,则该函数值的类型为( A )。 A. int B. float C. long D. double 2、以下( B )函数,真正地没有返回值。
A. int a(){int a=2;return (a);} B. void b(){printf(\ C. int a(){int a=2;return a;} D. 以上都是 3、在 C 语言中,有关函数的说法,以下正确的是( A )。
A. 函数可嵌套定义,也可嵌套调用 B. 函数可嵌套定义,但不可嵌套调用 C. 函数不可嵌套定义,但可嵌套调用 D. 函数不可嵌套定义,也不可嵌套调用 4、以下函数调用语句中,含有实参的个数为( C )。 fun((2,3),(4,5+6,7));
A. 1 B. 2 C. 5 D. 6 5、函数调用可以在(D )。
A. 函数表达式中 B. 函数语句中 C. 函数参数中 D. 以上都是 6、被调函数返回给主调函数的值称为( C )。
A. 形参 B. 实参 C. 返回值 D. 参数 7、 ( D ),可以不进行函数类型说明。
A. 被调函数的返回值是整型或字符型时 B. 被调函数的定义在主调函数定义之前时 C. 在所有函数定义前,已在函数外预先说明了被调函数类型 D. 以上都是 8、被调函数通过( D )语句,将值返回给主调函数。
- 22 -
A. if B. for C. while D. return 9、被调函数调用结束后,返回到( D )。 A.主调函数中该被调函数调用语句处 B.主函数中该被调函数调用语句处
C.主调函数中该被调函数调用语句的前一语句 D.主调函数中该被调函数调用语句的后一语句
10、以下对 C语言函数的有关描述中,正确的是(A )。
A. 在 C 中,调用函数时,只能把实参的值传送给形参,形参的值不能传送给实参 B. C函数既可以嵌套定义又可递归调用 C. 函数必须有返回值,否则不能使用函数
D. C程序中有调用关系的所有函数必须放在同一个源程序文件中 11、C 语言中函数的隐含存储类型是( C )。
A. auto B. static C. extern D. 无存储类型
12、能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是( A )。 A. return 这两个数 B.形参用两个元素的数组 C. 形参用两个这种数据类型的指针 D.用两个全局变量 13、C语言可执行程序从什么地方开始执行 ( C )。 A. 程序中第一条可执行语句 B. 程序中第一个函数
C. 程序中的main函数 D. 包含文件中的第一个函数
14、有一个函数原型为abc(float x,float y);,则该函数的返回类型为( C ) 。 A. void B. double C. int D. float
二、填空题
1、变量的作用域主要取决于变量所处的位置,变量的生存期既取决于变量所处的位置,又取决于变量存储类型。
2、说明变量时,若省略存储类型符,系统默认其为动态存储类别,该存储类别的类型符为: auto。
3、静态型局部变量的作用域是它所在的局部,生存期是整个程序。
4、函数中的形参和调用时的实参都是数组名时,传递方式为址传递,都是变量时,传递方式为值传递。 5、函数的形式参数的作用域为该函数中,全局的外部变量和函数体内定义的局部变量重名时, 局部变量优先。
6、若自定义函数要求返回一个值,则应在该函数体中有一条return语句,若自定义函数要求不返回一个值,则应在该函数说明时加一个类型说明符 void 。 7、若函数的形式参数是指针类型,则实参可以是指针或数组名。
8、函数的参数为 char *类型时,形参与实参结合的传递方式为址传递。 9、函数的实参为常量时,形参与实参结合的传递方式为值传递。
10、下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。
- 23 -
void mul( int x,int___y,int*___result) {
result* =x*y; }
三、判断题
( × )(1) 函数说明指的是在程序中设定一个函数模块。? ( √ )(2) 形参只有在被调用时才分配存储空间。? ( × )(3) ?在C的函数中,最好使用全局变量。?
( × )(4) 在调用函数时,实参传值给形参,调用结束时,形参值传给实参。? ( √ )(5) 所有函数定义都是并行的,相互独立的。? ( × )(6) ?函数的隐含存储类型是extern。? ( × )(7) ?形参可以是常量、变量或表达式。? ( × )(8) ?函数调用可以作为一个函数的形参。
( √ )(9) ?C语言规定,实参应与其对应的形参类型一致。? ( × )(10) ?定义函数时,形参的类型说明可以放在函数体内。?
四、程序填空题
1、对数组按值从大到小的顺序排序后输出,请填空。 #include
float a[7]={2,6,3,8,3,12,9}; int i ;
void sort(float*,int); sort(a,7) ;
for(i=0;i<7;i++) printf(\ printf(\}
void sort( float* p,int n) {
int i,j,k; float t; for(i=0;i k=i; for(j=i+1;j - 24 -
相关推荐: