上一题下一题
跳转到
 
 
  世界如此多姿,发展如此迅速,窥一斑未必还能知全豹。但正如万花筒一样,每一个管窥都色彩斑斓。  
 
 
  知识通道 | 学习首页 | 教师首页 | PK首页 | 知识创造首页 | 企业首页 | 登录
 
本文对应知识领域
C语言复习习题-函 数
作者:未知 申领版权
2010年12月12日 共有 1113 次访问 【添加到收藏夹】 【我要附加题目
受欢迎度:
    

第七章    函  数

1.函数pi的功能是根据以下近似公式求π值: 
    (π*π)/6=1 1/(2*2) 1/(3*3)  …  1/(n*n) 
    现在请你在下面的函数中填空,完成求π的功能。 
    #include  " math.h" 
    double pi(long n) 
    { double s=0.0; long i; 
    for(i=1;i<=n;i )s=s 【               】; 
    return(sqrt(6*s)); } 
    2.若函数fun的类型为void ,且有以下定义和调用语句: 
    #define  M   50 
    main() 
    {  int  a[M] ; 
    … 
    fun(a) ; 
    … } 
    定义fun函数首部可以用三种不同的形式 ,请写出这三种形式:【            】、【               】、【                】。 
    (注意:①形参的名字请用q ,②使用同一种风格)。
    3.函数fun的功能是:使一个字符串按逆序存放,请填空。
    void fun (char str[ ])
    { char   m ; int  i ,j ;
    for(i=0 ,j=strlen(str) ;i<【            】 ;i  ,j--)
    { m=str[i];
    str[i]= 【            】;
    str[j-1]=m;    }
    printf("%s\n",str);    }
    4.设在主函数中有以下定义和函数调用语句,且fun函数为void类型;请写出fun函数的首部【                 】 。要求形参名为b。 
    main() 
    { double   s[10][22]; 
    int  n ;  
    … 
    fun(s); 
    … } 
    5.有以下程序
    #include "stdio.h"
    int abc(int  u ,int  v);
    main()
    { int  a=24 ,b=16 ,c ;
    c=abc(a ,b) ;
    printf("%d\n" ;c);
    }
    int abc(int  u ,int  v)
    { int  w;
    while(v)
    { w=u%v ; u=v ; v=w ; }
    return   u ;    }
    输出结果是
    A)6      B)7      C)8      D)9
    6.下面程序的输出结果是
    #include<stdio.h>
    main()
    {  int  i=2 ,p ;
    p=f(i ,i 1) ;
    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)0      C)1      D)2
    7.请读程序:
    # include < stdio.h>
    FUNC( int A , int B)
    { int  C ;C=A B ;return  C ;}
    main( )
    {  int  X=6 ,Y=7 ,Z=8 ,R ;
    R=FUNC((X--,Y ,X Y),Z--);
    printf("%d\n",R);}
    上面程序的输出结果是【              】。
    8.以下正确的说法是
    建立函数的目的之一是
    A)提高程序的执行效率             B)提高程序的可读性
    C)减少程序的篇幅                 D)减少程序文件所占内存
    9.以下正确的说法是
    A) 用户若需调用标准库函数,调用前必须重新定义
    B) 用户可以重新定义标准库函数,若如此,该函数将失去原有含义
    C) 系统根本不允许用户重新定义标准库函数
    D) 用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包到用户源文件中,系统自动去调
    10.设有如下的函数
    ggg(float x)
    { printf("\n%d" ,x*x) ;}
    则函数的类型
    A)与参数x的类型相同      B)void
    C) int                     D)无法确定
    11.下面程序的输出是【            】。
    unsigned  fun6(unsigned  int  num)
    { unsigned  int  k=1;
    do {  k *=num%10;num/=10;} while(num);
    return(k);}
    main()
    { unsigned  int  n=26;
    printf("%d\n",fun6(n)); }
    12.有以下程序
    viod fun (int  a ,int  b ,int  c)
    { a=456 ; b=567 ; c=678 ;}
    main()
    { int  x=10 , y=20 ,z=30 ;
    fun (x ,y ,z) ;
    printf("%d ;%d;%d \n" ,x ,y,z) ;}
    输出结果是
    A)30 ;20 ;10         B)10 ;20 ;30
    C)456 ;567 ;678      D)678 ;567 ;456
    13.有如下程序 
    int  func(int  a ,int  b) 
    { return(a b);   } 
    main()
    { int  x= 2 ,y=5 ,z=8 ,r ; 
    r=func(func(x ,y) ,z) ; 
    printf("%d\n",r) ; } 
    该程序的输出的结果是 
    A)12      B)13      C)14      D)15 
    14.有以下函数 
    char  *fun(char  *p) { return  p ; } 
    该函数的返回值是 
    A)无确切的值               B)形参p中存放的地址值 
    C)一个临时存储单元的地址   D)形参p自身的地址值 
    15.以下正确的说法是
    在C语言中,函数调用时,
    A) 实参和与其对应的形参各占用独立的存储单元
    B) 实参和与其对应的形参共用一个的存储单元
    C) 只有当实参和与其对应的形参同名时才共用存储单元
    D) 形参是虚拟的,不占用存储单元
    16. C语言规定,简单变量做实参时,它和对应形参之间的数据传递方式是
    A)地址传递             B)由实参传给形参,再由形参传给实参
    C)单向值传递           D)由用户指定传递方式
    17.若调用一个函数,且此函数中没有return语句,则正确的说法是
    该函数
    A)没有返回值                      B)返回若干个系统默认值
    C)能返回一个用户所希望的函数值    D)返回一个不确定的值
    18.以下不正确的说法是
    C语言规定:
    A) 实参可以是常量、变量或表达式
    B) 形参可以是常量、变量或表达式
    C) 实参可以为任意类型
    D) 形参应与其对应的实参类型一致
    19.以下说法正确的是
    A) 定义函数时,形参的类型说明可以放在函数体内
    B) return后边的值不能为表达式
    C) 如果函数值的类型与返回值的类型不一致,以函数值的类型为准
    D) 如果形参与实参的类型不一致,以实参类型为准
    20.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是
    A)float型     B)int型     C)long型     D)double型
    21.C语言规定,函数返回值的类型是由
    A) return语句中的表达式类型决定
    B) 调用该函数时的主调函数类型所决定
    C) 调用该函数时系统临时决定
    D) 在定义该函数时所指定的函数类型所决定
    22.有如下函数调用语句 
    func(rec1,rec2 rec3,(rec4,rec5)); 
    该函数调用语句中,含有的实参个数是 
    A)3      B)4      C)5      D)有语法错 
    23.以下错误的描述是
    函数调用可以
    A)出现在执行语句中        B)出现在一个表达式中
    C)做为一个函数的实参      D)做为一个函数的形参 
    24. 下列程序执行后的输出结果是
    A)hello      B)hel      C)hlo      D)hlm
    void  func1(int  i);
    void  func2(int  i);
    char st[]="hello,friend!";
    void  func1(int i)
    {  printf("%c",st[i]);
    if(i<3){ i =2 ;func2(i) ;}
    }
    void  func2(int  i)
    { printf("%c",st[i]);
    if(i<3){ i =2 ;func1(i) ;}}
    main()
    { int  i=0 ; func1(i) ; printf("\n");}
    25.C语言规定,程序中各函数之间
    A) 既允许直接递归调用也允许间接递归调用
    B) 不允许直接递归调用也不允许间接递归调用
    C) 允许直接递归调用不允许间接递归调用
    D) 不允许直接递归调用允许间接递归调用
    26.以下正确的描述是
    在C语言程序中
    A) 函数的定义可以嵌套,但函数的调用不可以嵌套
    B) 函数的定义不可以嵌套,但函数的调用可以嵌套
    C) 函数的定义和函数的调用均不可以嵌套
    D) 函数的定义和函数的调用均可以嵌套
    27.下面程序的输出结果是【             】。
    fun(int  x )
    {  int  p ;
    if(x= =0││x= =1) return(3);
    p=x-fun(x-2);
    return p;}
    main( )
    { printf("%d\n",fun(4));}
    28.下面程序的输出是【             】。
    long fun5(int  n)
    { long   s ;
    if((n= =1)||(n= =2))  s=2;
    else   s=n fun5(n-1);
    return(s);}
    main()
    { long  x ;
    x=fun5(4);
    printf("%ld\n",x) ;}
    29.有如下程序 
    long  fib(int  n) 
    {  if(n >2) return(fib(n-1) fib(n-2)); 
    else return(2); 
    }
    main() 
    { printf("%d\n",fib(3)); }
    该程序的输出结果是 
    A)2      B)4      C)6      D)8 
    30.若输入3个整数3 ,2 ,1 ,则下面程序的输出结果是 【            】。
    # include <stdio.h>
    void sub( int  n ,int  uu[ ])
    {  int  t ;
    t=uu[n--] ; t =3*uu[n] ;
    n=n  ;
    if(t>=10) { uu[n ]=t/10 ; uu[n]=t%10 ;}
    else uu[n]= t ;}
    main( )
    {  int i , n , aa[10]={0 ,0 ,0 ,0 ,0 ,0}
    scanf( "%d%d%d" ,&n ,&aa[0] ,&aa[1]) ;
    for(i=1 ; i<n ; i ) sub(i ,aa) ;
    for(i=0 ; i<=n ; i ) printf("%d" ,aa[i]) ;
    printf("\n") ;}
    31.用数组名作为函数调用的实参,传递给形参的是
    A)数组的首地址           B)数组第一个元素的值
    C)数组中全部元素的值     D)数组元素的个数
    32.若使用一维数组名作为函数的实参,则以下正确的说法是
    A) 必须在主调函数中说明此数组的大小
    B) 实参数组类型与形参数组类型可以不匹配
    C) 在被调函数中,不需要考虑形参数组的大小
    D) 实参数组名与形参数组名必须一致
    33. 下列程序执行后输出的结果是
    # include 〈stdio.h〉
    f(int a)
    {  int   b=0 ;
    static  int  c=3 ;
    a=c    ,b   ;
    returu(a) ;     }
    main( )
    { int  a=2 ,i ,k ;
    for(i=0 ;i<2 ;i )   k=f(a ) ;
    printf("%d\n",k);     }
    A)3         B)0        C)5         D)4
    34.以下叙述中不正确的是 
    A) 在C中,函数中的自动变量可赋初值 ,每调用一次 ,赋一次初值。
    B) 在C中调用函数时,实际参数和对应形参在类型上只需赋值兼容。
    C) 在C中 ,外部变量的隐含类别是自动存储类别。
    D) 在C中 ,函数形参可以说明为register变量。
    35.下面程序的输出是
    A)3      B)4      C)6      D)9
    fun3(int  x)
    { static  int  a=3;
    a =x;
    return(a);
    }
    main()
    { int  k=2 ,m=1 ,n ;
    n=fun3(k);
    n=fun3(m);
    printf("%d\n",n);}
    36.以下程序的输出结果是【              】。 
    void fun() 
    { static  int  a=0 ; 
    a =2; printf(" %d",a); } 
    main() 
    {  int  cc; 
    for(cc=1 ;cc<4 ;cc ) fun() ;
    printf(" \n"); } 
    37. 以下程序的输出结果是 
    A)699      B)669      C)61515      D)6615 
    int  d=1; 
    fun(int  p) 
    { static  int  d=5; 
    d =p; printf("%d ",d); 
    return(d); } 
    main( ) 
    { int  a=3 ; printf("%d \n",fun(a fun(d))) ; } 
    38.以下正确的说法是
    如果在一个函数中的复合语句中定义了一个变量,则该变量
    A)只在该复合语句中有效     B)在该函数中有效
    C)在本程序范围内均有效     D)为非法变量
    39.C语言中,函数的隐含存储类别是
    A)auto      B)static      C)extern      D)无存储类别
    40.下列叙述中正确的是
    A)C语言编译时不检查语法 
    B)C语言的子程序有过程和函数两种
    C)C语言的函数可以嵌套定义
    D)C语言所有函数都是外部函数
    41.下程序运行后,输出结果是
    A)8,15      B)8,16      C)8,17      D)8,8
    func(int a,int b)
    {  static  int  m=0 ,i=2 ;
    i =m 1 ;m=i a b ;
    return(m);
    }
    main()
    {  int  k=4 ,m=1 ,p ;
    p=func(k ,m);printf("%d,",p);
    p=func(k ,m);printf("%d\n",p);}
    42.下列程序执行后输出的结果是
    int  d=1;
    fun (int  p)
    {    int  d=5 ;
    d   =p   ;
    printf("%d",d) ; 
    }
    main( )
    {    int   a=3 ;
    fun(a) ;    d   = a   ;
    printf("%d\n",d) ;   }
    A)8 4      B)9 6      C)9 4      D)8 5
    43.下面程序的输出是
    A)1      B)2      C)7      D)10
    int  m=13;
    int  fun2(int x ,int y)
    {  int  m=3 ;
    return(x*y-m) ;
    }
    main()
    {  int  a=7 ,b=5 ;
    printf("%d\n",fun2(a,b)/m) ;}
    44.以下叙述中不正确的是
    A) 在不同的函数中可以使用相同名字的变量
    B) 函数中的形式参数是局部变量
    C) 在一个函数内定义的变量只在本函数范围内有效
    D) 在一个函数内的复合语句中定义的变量在本函数范围内有效
    45.以下对C语言函数的有关描述中 ,正确的是 
    A)C调用函数时,只能把实参的值传给形参,形参的值不能回传给实参
    B)C函数既可以嵌套定义又可以递归调用 
    C)函数必须有返回值 ,否则不能使用函数 
    D)C程序中有调用关系的所有函数必须放在同一个源程序文件中 
    46.下面程序的输出结果是【                】。
    # include<stdio.h>
    main()
    {  int  a=3 , b=2 , c=1 ;
    c-= b ;b*=a c ;
    { int  b=5 , c=12 ;c/=b*2 ;a-=c ;
    printf(" %d ,%d ,%d ," ,a ,b ,c) ;a =--c ;}
    printf(" %d ,%d ,%d ," ,a ,b ,c) ;
    }
    47. 若已定义:int   a[10], i;,以下fun函数的功能是:在第一个循环中给前10个数组元素依次赋1、2、3、4、5、6、7、8、9、10;在第二个循环中使a数组前10个元素中的值对称折叠,变成1、2、3、4、5、5、4、3、2、1。请填空。
    fun( int  a[ ])
    {   int   i;
    for(i=1; i<=10; i )  【            】=i;
    for(i=0; i<5; i )  【           】=a[i];
    }
    48. 以下函数的功能是:求x的y次方,请填空。
    double  fun( double  x,  int  y)
    {   int  i;
    double  z;
    for(i=1, z=x; i<y;i )  z=z*  【           】;
    return   z;
    }
    49. 若有以下程序
    #include    <stdio.h>
    void    f(int  n);
    main()
    {  void  f(int  n);
    f(5);
    }
    void f(int  n)
    {  printf("%d\n",n);  }
    则以下叙述中不正确的是
    A) 若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f
    B) 若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f
    C) 对于以上程序,编译时系统会提示出错信息:提示对对f函数重复说明
    D) 函数f无返回值,所以可用void将其类型定义为无值型
    50. 在C语言中,形参的缺省存储类是
    A) auto    B) register    C) static     D) extern
    50. 以下程序的输出的结果是
    int x=3;
    main()
    {   int i; 
    for (i=1;i<x;i )  incre();
    }
    ncre()
    {   staic   int  x=1;
    x*=x 1;
    printf("  %d",x);
    }
    A) 3  3     B) 2   2      C) 2   6      D) 2   5
    51. 以下程序的输出结果是【            】 。
    main()
    {  int  x=0;
    sub(&x,8,1);
    printf("%d\n",x);
    }
    sub(int  *a,int  n,int   k)
    {  if(k<=n)  sub(a,n/2,2*k);
    *a =k;
    }
    52. 有以下程序
    void fun(char *c,int d)
    {   *c=*c 1;d=d 1;
    printf(“%c,%c,”,*c,d);
    }
    main()
    {  char a=’A’,b=’a’;
    fun(&b,a);  printf(“%c,%c\n”,a,b);
    }
    程序运行后的输出结果是
    A)B,a,B,a      B) a,B,a,B     C) A,b,A,b     D) b,B,A,b
    53. 以下程序中函数reverse的功能是将a所指数组中的内容进行逆置。
    void reverse(int  a[ ],int n)
    { int  i,t;
    for(i=0;i<n/2;i )
    { t=a[i]; a[i]=a[n-1-i];a[n-1-i]=t;}
    }
    main()
    { int  b[10]={1,2,3,4,5,6,7,8,9,10}; int i,s=0;
    reverse(b,8);
    for(i=6;i<10;i ) s =b[i];
    printf(“%d\n”,s);
    }
    程序运行后的输出结果是
    A) 22     B) 10 C) 34 D) 30
    54. 有以下程序
    int a=3;
    main()
    {  int s=0;
    { int a=5;  s =a ; }
    s =a ;printf(“%d\n”,s);
    }
    程序运行后的输出结果是
    A) 8 B) 10 C) 7   D) 11
    55. fun函数的功能是:首先对a所指的N行N列的矩阵,找出各行中的最大的数,再求这N个最大值中的最小的那个数作为函数值返回。请填空。
    #include  <stdio.h>
    #define   N  100
    int  fun(int(*a)[N])
    { int  row,col,max,min;
    for(row=0;row<N;row )
    { for(max=a[row][0],col=1;col<N;col )
    if(                )max=a[row][col];
    if( row==0)min=max;
    else if(                 )min=max;
    }
    return  min;
    } 
    56. 下面程序的运行结果是:          。
    void swap(int *a,int *b)
    {  int  *t;
    t=a;   a=b;  b=t;
    }
    main()
    {  int  x=3,y=5,*p=&x,*q=&y;
    swap(p,q);
    printf(“%d%d\n”,*p,*q); 
    }  
    

    

 

相关新闻

testtest
上善制度的炼成
新时代呼唤管理理论创新——大卫�梯斯与动态能力理论
创业的不变逻辑
创新管理需要回答的5个问题
十一、弥离
十、转院
九、生机
八、传染
七、求血

您可能对这些感兴趣  

第7讲 综合分析BIM在运用与推广中的障碍问题
考核学生质量的困难
日本福岛核电站事故初步分析
论科技异化与科技人化
中国科技计划项目管理现状与对策
财政科技资金的审计重点和内容
软科学研究机构在政府决策中的功效、困境及对策研究
打造超级DOS系统(下)
DOS命令基础应用(6)
打造超级DOS系统(上)

题目筛选器
日期:
类型:
状态:
得分: <=
分类:
作者:
职业:
关键字:
搜索

 
 
 
  焦点事件
 
  知识体系
 
  职业列表
 
 
  最热文章
 
 
  最多引用文章
 
 
  最新文章
 
 
 
 
网站介绍 | 广告服务 | 招聘信息 | 保护隐私权 | 免责条款 | 法律顾问 | 意见反馈
版权所有 不得转载
沪ICP备 10203777 号 联系电话:021-54428255
  帮助提示    
《我的太学》是一种全新的应用,您在操作中遇到疑问或者问题,请拨打电话13564659895,15921448526。
《我的太学》