一、单项选择题:
  (1)以下叙述中错误的是
   A)C语言中对二进制文件的访问速度比文本文件快
   B)C语言中,随机文件以二进制代码形式存储数据
   C)语句 FILE  fp; 定义了一个名为fp的文件指针
   D)C语言中的文本文件以ASCII码形式存储数据
   
  (2)以下与函数fseek(fp,0L,SEEK_SET)有相同作用的是             
   A)feof(fp)
   B)ftell(fp)
   C)fgetc(fp)
   Drewind(fp)
 
  (3) 若fp已正确定义并指向某个文件,当未遇到该文件结束标志时函数feof(fp)的值为
   A) 0           
   B) 1       
   C) -1       
   D) 一个非0值
 
  (4) 下列关于C语言数据文件的叙述中正确的是
   A) 文件由ASCII码字符序列组成,C语言只能读写文本文件
   B) 文件由二进制数据序列组成,C语言只能读写二进制文件
   C) 文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件
   D) 文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件
 
  (5) 以下叙述中不正确的是
   A)C语言中的文本文件以ASCⅡ码形式存储数据
   B)C语言中对二进制文件的访问速度比文本文件快
   C)C语言中,随机读写方式不适用于文本文件
   D)C语言中,顺序读写方式不适用于二进制文件
(6) 以下程序企图把从终端输入的字符输出到名为的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。
  #include <stdio.h>
  main()
  { FILE *fout; char ch;
  fout=fopen('',’w');
  ch=fgetc(stdin);
  while(ch!=’#’)
  { fputc(ch,fout);
    ch=fgetc(stdin);
  }
  fclose(fout);
  }printf输出格式%b
  出错的原因是
   A) 函数fopen调用形式错误    B) 输入文件没有关闭
   C) 函数fgetc调用形式错误    D) 文件指针stdin没有定义
 
 
 
  (7) 以下叙述中错误的是
   A) 二进制文件打开后可以先读文件的末尾,而顺序文件不可以
   B) 在程序结束时,应当用fclose函数关闭已打开的文件
   C) 在利用fread函数从二进制文件中读数据时,可以用数组名给数组中所有元素读入数据
   D) 不可以用FILE定义指向二进制文件的文件指针
   
  (8) 在C程序中,可把整型数以二进制形式存放到文件中的函数是
   A) fprintf函数 
   B) fread函数     
   C) fwrite函数   
   D) fputc函数
 
  (9) 标准函数 fgets(s, n, f) 的功能是
   A) 从文件f中读取长度为n的字符串存入指针s所指的内存
   B) 从文件f中读取长度不超过n-1的字符串存入指针s所指的内存
   C) 从文件f中读取n个字符串存入指针s所指的内存
   D) 从文件f中读取长度为n-1的字符串存入指针s所指的内存
  (10)以下程序的功能是进行位运算
  main()
  { unsigned char  a, b;
    a=7^3;    b= ~4 & 3; 
  printf("%d %d\n",a,b);
  }
  程序运行后的输出结果是
   A4  3 
   B)7  3 
   C)7  0 
   D)4  0
 
  (11)有以下程序
  main()
  {
    int  c=35;  printf("%d\n",c&c);
  }
  程序运行后的输出结果是                           
   A) 0
   B) 70
   C 35
   D) 1
 
  (12) 设有定义语句:char c1=92,c2=92;,则以下表达式中值为零的是
   A) c1^c2   
   B) c1&c2   
   C) ~c2   
   D) c1|c2
 
  (13) 有以下程序
  main( )
  {  unsigned char a,b;
    a=4|3;
    b=4&3;
    printf(“%d %d\n”,a,b(;
  }
  执行后输出结果是
   A)  7  0   
   B) 0  7   
   C) 1  1   
   D) 43 0
 
  (14) 有以下程序
  main()
  { int  x=3, y=2,z=1;
  printf("%d\n",x/y&~z);
  }
  程序运行后的输出结果是
   A) 3         
   B) 2         
   C) 1         
   D) 0
   
   
  (15) 整型变量x和y的值相等、且为非0值,则以下选项中,结果为零的表达式是
   A) x || y   
   B) x | y   
   C) x & y       
   D) x ^ y
 
 
(16) 设 int  b=2;表达式(b>>2)/(b>>1)的值是
   A) 0           
   B) 2             
   C) 4           
   D) 8
 
  (17) 设有如下定义:int x=l,y=-1;,则语句:printf("%d\n",(x--&++y));的输出结果是
   A) 1     
   B) 0     
   C) -1     
   D) 2
 
  (18) 语句:printf("%d \n",12 &012);的输出结果是
   A) 12   
   B) 8   
   C) 6 
   D) 012
 
(19) 在函数调用过程中,如果函数funA调用了函数 funB,函数funB又调用了函数funA,则
  A) 称为函数的直接递归调用 
  B) 称为函数的间接递归调用
  C) 称为函数的循环调用   
  D) C语言中不允许这样的递归调用
(20) 不合法的main函数命令行参数表示形式是
  A) main(int  a,char  *c[])   
  B) main(int  arc,char  **arv)
  C) main(int  argc,char  *argv) 
D) main(int  argv,char  *argc[])
二、多项选择题:
(1) C语言规定,程序中各函数之间错误的描述为
  A) 既允许直接递归调用也允许间接递归调用
  B) 不允许直接递归调用也不允许间接递归调用
  C) 允许直接递归调用不允许间接递归调用
D) 不允许直接递归调用允许间接递归调用
(2)以下关于函数的叙述中错误的是
  A)每个函数都可以被其它函数调用(包括main函数)
  B)每个函数都可以被单独编译
  C)每个函数都可以单独运行
  D)在一个函数内部可以定义另一个函数
(3) 若程序中定义了以下函数
      double  myadd(double a,double B)
        { return (a+B) ;}
并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中正确的说明是
  A) double myadd(double a,B) ;
  B) double myadd(double,double);
  C) double myadd(double b,double A) ;
  D) double myadd(double  x,double y);
(4) 若已定义的函数有返回值,则以关于该函数调用的叙述中正确的是
  A) 调用可以作为独立的语句存在
  B) 调用可以作为一个函数的实参
  C) 调用可以出现在表达式中 
  D) 调用可以作为一个函数的形参
(5) 有以下函数定义:
void fun( int  n,  double  x)  { …… }
若以下选项中的变量都已正确定义并赋值,则对函数fun的错误调用语句是
  A) fun(int  y,double  m);     
  B) k=fun(10,12.5);
  C) fun(x,n);                 
  D) vold fun(n,x);
(6) 在一个C程序中错误的描述
  A) main函数必须出现在所有函数之前
  B) main函数可以在任何地方出现
  C) main函数必须出现在所有函数之后
  D) main函数必须出现在固定位置
(7) C语言中,函数值类型的定义可以缺省,此时函数值的隐含类型不是
  A) void     
  B) int 
  C) float 
  D) double
(8) 若有以下程序
#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将其类型定义为无值型
(9) 以下所列的各函数首部中,错误的是