c语言考前复习 - 习题abi 下载本文

A. auto B. static C. extern D. 无存储类型

(12)能把函数处理结果的两个数据返回给主调函数,在下面的方法中不正确的是 。A A. return 这两个数 B. 形参用两个元素的数组 C. 形参用两个这种数据类型的指针 D. 用两个全局变量 (13)C语言可执行程序从什么地方开始执行 ( )。 C A. 程序中第一条可执行语句 B. 程序中第一个函数

C. 程序中的main函数 D. 包含文件中的第一个函数 (14)有一个函数原型如下所示,则该函数的返回类型为( ) 。 C abc(float x,float y);

A. void B. double C. int D. float

2. 填空题

(1) 变量的作用域主要取决于变量 ,变量的生存期既取决于变量 ,又取决于量 。 所处的位置,所处的位置,存储类型

(2) 说明变量时,若省略存储类型符,系统默认其为 存储类别,该存储类别的类型符为: 。动态,auto

(3) 静态型局部变量的作用域是 ,生存期是 。它所在的局部,整个程序 (4) 函数中的形参和调用时的实参都是数组名时,传递方式为 ,都是变量时,传递方式为 。 址传递,值传递

(5) 函数的形式参数的作用域为 ,全局的外部变量和函数体内定义的局部变量重名时, _________变量优先。 该函数中,局部

(6) 若自定义函数要求返回一个值,则应在该函数体中有一条 语句,若自定义函数要求不返则应在该函数说明时加一个类型说明符 。 return,void

(7) 若函数的形式参数是指针类型,则实参可以是 或 。指针,数组名 (8) 函数的参数为 char *类型时,形参与实参结合的传递方式为 。址传递

(9) 函数的实参为常量时,形参与实参结合的传递方式为 。值传递

(10) 下面这个函数的功能是求两个整数的积,并通过形参传回结果,请填空。int int int* void mul(___x,___y,___result) {

___=x*y; }

3. 判断题

( × )(1) 函数说明指的是在程序中设定一个函数模块。 ( √ )(2) 形参只有在被调用时才分配存储空间。 ( × )(3) 在C的函数中,最好使用全局变量。

( × )(4) 在调用函数时,实参传值给形参,调用结束时,形参值传给实参。 ( √ )(5) 所有函数定义都是并行的,相互独立的。 ( × )(6) 函数的隐含存储类型是extern。 ( × )(7) 形参可以是常量、变量或表达式。 ( × )(8) 函数调用可以作为一个函数的形参。

( √ )(9) C语言规定,实参应与其对应的形参类型一致。 ( × )(10) 定义函数时,形参的类型说明可以放在函数体内。

4. 程序填空题

(1) 对数组按值从大到小的顺序排序后输出,请填空。 #include

void main() {

float a[7]={2,6,3,8,3,12,9}; int i ;

void sort(float*,int); ;

for(i=0;i<7;i++) printf(\ printf(\}

void sort( ) {

int i,j,k; float t; for(i=0;i

for(j=i+1;j

if( )

{ t=*(p+i); *(p+i)=*(p+k); *(p+k)=t; } } }

sort(a,7) float* p,int n *(p+k)<*(p+j)

k=j; if(k!=i)

(2) 下列函数在 n 个元素的一维数组中,找出最大值、最小值并传送到调用函数,请填空。 #include

void find(float *p, int max, int min, int n) {

int k;

*max=*p; for(k=1;k

t=*(p+k);

if( if(t<*min) *min=t; } }

float t; *min=*p; *max

5. 写出下列程序运行结果 (1) main() {

int i=1,p; p=fun(i,i+1);

) *max=t;