函数错题整理

当实参是简单数据类型时,以下正确的说法是(A )。

  • A. 实参和与其对应的形参各占用独立的存储单元
  • B. 实参和与其对应的形参共占用一个存储单元
  • C. 只有当实参和与其对应的形参同名时才共占用相同的存储单元
  • D. 形参是虚拟的,不占用存储单元

若有以下程序

#include <stdio.h>
void f1(int n);
int main()
{
    void f1(int n);
    f1(5);
}
void f2()
{
f1(33);
}
void f1(int n)
{
    printf("%d\n",n);
}

则以下叙述中不正确的是(C)

  • A. 若只在主函数中对函数f1进行说明,则只能在主函数中正确调用函数f1
  • B. 若在主函数前对函数f1进行说明,则在主函数和f2函数中都可以正确调用函数f1
  • C. 若只在主函数中对函数f1进行说明,则在主函数和f2函数中都可以正确调用函数f1
  • D. 函数f1无返回值,所以可用void将其类型定义为无返回值型

    若只在主函数中对函数f1进行说明,则只能在主函数中正确调用函数f1

对于二维整型数组int a[3][4];有函数调用语句function(a);则function函数正确的声明方式(C)。

  • A. void function (int array[][]);
  • B. void function(int array[3][ ]);
  • C. void function (int array[][4]);
  • D. void Function(int array[3][4]);

     第二维不可省略,故AB错,D中大小写错误

对于一维整型数组int a[10];有函数调用语句function(a,10);则function函数错误的声明方式(B)。

  • A. void function (int array[],int n );
  • B. void function(int , int);
  • C. void function (int array[10], int n);
  • D. void function(int [],int);

    形参名可省略,但数组下标不可省略

下列有关静态变量的说法不正确的是(B)

  • A. 静态局部变量占用静态存储区空间,在程序运行期间不释放该空间
  • B. 静态外部变量存放在静态存储区,非静态外部变量存放在动态存储区
  • C. 定义全局静态变量时,编译器会自动为它赋初值
  • D. 静态局部变量不能被其他函数引用,静态外部变量不能被其他文件中的函数引用

    外部变量存放在静态存储区

以下代码中有几次类型转换(D)
 

int main ( ){
   float  add2 (  int ) ;
   double  a =3 , sum;
   sum  =   add2 ( a)   ;
   return 0;
}
float  add2 ( int  i  )
{   return ( i+1.0  ) ;  }
  • A. 2
  • B. 3
  • C. 4
  • D. 5

    double a=3,int转double(第一次),add2(a),double转int(第二次),i+1.0,int转double(第三次),return(i+1.0),double转float(第四次),sum=add(2),float转double(第五次)。

 Visual c++6.0环境下,下列程序段的输出结果是 (A

        int x = 10 ;

        int y = x ++ ;

        printf ( “ %d, %d \n ”,( x++, y ) , y++ ) ;

  • A. 11 , 10        B. 11 ,11         C. 10, 10         D. 10, 11

函数参数计算是由右向左。

执行完前两个语句时,x=11,y=10,输出y++即10,y变为11,输出(x++,y)即y即11 

下面说法错误的是(D

A. 被调用的函数必须是已定义函数

B.如果使用库函数,应在本文件开头用#include将库函数所需信息包含进来

C.用户自定义函数位置在调用它的函数后面,在主调函数中需对其作声明

D.函数可嵌套定义,也可嵌套调用

以下程序的输出结果是( D

#include<stdio.h>
  int a = 9;
int f()
{

   static int a = 6;
   a++;
return a;
}
int main()
{
   int a = 12,i;
   for(i = 0; i< 3; i++)
   f();
   a = f();
   printf("a = %d", a);
 return 0;
}

        A. a = 6            B. a = 12          C. a = 9            D. a = 10     


static变量一大优势:记住前值 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值