A. 1和2 
  B. 2和3 
  C. 7和2 
  D. 7和8 
  17. 将一个整数10002存到磁盘上,以ASCII码形式存储和以二进制形式存储,占用的字节数分别是 (  ) 
  A. 2和2 
  B. 2和5 
  C. 5和2 
  D. 5和5 
  18. 在文件使用方式中,字符串″rb″表示 (  ) 
 
 A. 打开一个已存在的二进制文件,只能读取数据 
  B. 打开一个文本文件,只能写入数据 
  C. 打开一个已存在的文本文件,只能读取数据 
  D. 打开一个二进制文件,只能写入数据 
  19. 执行下列程序 
  # define F(y) 15>>y 
  # define PRINT(a) printf(″﹪d″,a) 
  main() 
  { 
  PRINT(F(2)); 
  } 
  后输出的结果是 (  ) 
  A. 3 
  B. 3.5 
  C. 14 
  D. 7.5 
  20. main()函数可以带两个形参,一般分为argc和argv,其中argv可以定义为(  ) 
  A. int argv; 
  B. char * argv[]; 
  C. char argv[]; 
  D. char ** argv[]; 
  第二部分 非选择题(80分) 
  二、填空题 (本大题共10小题,每小题2分,共20分) 
  21. 初始化值是0.618的双精度变量a的定义形式为_____________________。 
  22. 表达式 !10! = 1的值是____________________。 
  23. “20  
  24. 表达式a = 1,a + 1,a + + 的值是___________________。 
  25. 设int i = 5;则循环语句while (i > = 1) i - -;执行后,i的值为_______________。 
  26. 被调函数在执行结束时,这个函数中定义的_______________类型的变量不被释放。 
  27. 设 
  struct student 
  { 
  int no; 
  char name[12]; 
  float score[3]; 
  } sl,* p = &sl; 
  用指针法给sl的成员no赋值1234的语句是___________________。 
  28. C语言程序中对文本文件的存取是以________________为单位进行的。 
  29. 设char string[] =″This_is_a_book!″;则数组的长度应是________________。 
  30. 设int a[2][3] = {{2},{3}};则数组元素_____________________的值为3。 
  三、程序分析题 (本大题共5小题,每小题5分,共25分)  
  阅读下列程序,将输出结果写到各题右侧的空白处 
  31. int a = 200; 
  main() 
  {int i; 
  for(i = 1;i< = 5;i + +) 
  {a + + ; 
  printf(″﹪d,″,a); 
  s() 
  } 
  { 
  s() 
  {static int a = 20; 
  a + + ; 
  printf(″﹪d \ n″,a); 
  } 
  32. # include ″stdio.h″ 
  main() 
  {char c; 
  c = getchar(); 
  if((c> =′a′&&c< =′z′) ‖c> =′X′&&c< =′Z′)c = c - 23; 
  printf(″﹪c \ n″,c); 
  } 
  设从键盘上输入Next ↙ 
  33. # define N 7 
  main() 
  {int i,j,temp,a[N]={1,2,3,4,5,6,7}; 
  for(i = 0;i  
  {j = N - 1 - i; 
  temp = a[i];a[i]=a[j];a[j]=temp; 
  } 
  for(i = 0;i  
  } 
  34. struct porb 
  {char * name; 
  int count; 
  }x[]={″Li ning″,19,″Lang ping″,21,″Zhu jian hua″,20}; 
  main() 
  {int i; 
  for(i = 0;i<3;i + + ) 
  printf(″﹪s: ﹪d \ n″,x[i].name,x[i].count); 
  } 
  35. main() 
  {union 
  {short a;char ch; 
  }M; 
  M.a = 100;M.ch =′A′; 
  printf(″﹪d,﹪d,﹪c \n″,sizeof(M),M.a,M.ch); 
  } 
  四、程序填充题 (本大题共3小题,每小题6分,共18分)  
  给出下列程序,将横线处缺少的部分补上,使其能正确运行。 
  36. 以下程序的功能是用选择法对数组a中的整数由小到大进行排序。 
  void sort(int b[],int n) 
  { int i,j,t; 
  for(i = 0;i  
  for(______;j  
  if(b[i]_____b[j]) 
  {t = b[i];_____________;b[j]=t;}