当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年全国计算机等级二级C语言模拟试题及答案(15)
发布时间:2010/11/7 23:27:36 来源:城市学习网 编辑:ziteng
  一、填空与选择
  1.   C语言从源程序的书写到上机运行输出结果要经过_______________四个步骤。
  2.   C语言的表达式与语句的区别在于___________________________________。
  3.   C语句_____________ (有、没有)输入、输出语句。
  4.   结构化程序的编写有_______________________________三种程序结构。
  5.   C语言中,变量的存储类别共有四种,即时___________________和寄存器型。
  6.   表达式10/3*9%10/2的值是___________________。
  7.   设有“int x=2,y”说明,则逗号表达式“y=x+5,x+y”的值是_________________。
  8.   设有“int x=1”,则“x>0?2*x+1: 0”表达式的值是______________________。
  9.   变量Y满足以下两条件中的任意一个:①能被4整除,但不能被100整除;②能被400整除。请用逻辑表达式表示所给条件。
  _________________________________________________________________
  10.C语言调用函数中,参数的虚实结合是_________________
  A. 传值
  B. 传址
  C. 不分
  11. 逻辑运算符“&&、||、          !”中是短路运算符号是____________________
  12. C语言是由________________基本单位组成的。
  A.过程
  B.语句
  C.函数
  D.程序
  13.有如下语句: X+Y*Z>39 && X*Z||Y*Z是什么表达式__________
  A.算术表达式
  B.逻辑表达式
  C.关系表达式
  D.字符表达式
  14.若进入TC集成环境后,运行(RUN)源程序系统提示包含文件(Include)或库文件(Lib) 无法定义时,应修改TC菜单中的哪一项中的哪个子菜单项?
  A.File\Change
  B. File\Directory
  C. Option\Directories
  D.TC系统出故障了,应重新安装TC环境。
  15.下面几种说法中哪个是正确的?_____________
  A. else语句需与它前面的if语句配对使用;
  B. else语句需与前面最接近它的if语句配对使用;
  C. else语句需与前面最接近它的,且没有和其它else语句配对的if语句配对;
  D. 以上都正确。
  16.定义结构体的关键字是_______________
  A. union
  B. enum
  C.struct
  D.typedef
  17.定义联合体的关键字是___________________
  18.链表的首指针能根据程序的需要进行移动读取链表中的某项内容,即链表可以没有首指针吗?
  A.当然可以
  B.不可以
  C.无所谓
  D.最好不要移动首指针
  19.定义一个数组a是一个具有3个元素的指针数组,它的定义语句格式是____
  A. <类型标识符>  (*a)[3]
  B. <类型标识符>  *a[2]
  C. <类型标识符>  *a[3]
  D.以上写法都不对。
  20.有说明语句:char a[ ]=“this is a book”。请问该数组到底占了几个字节?_____
  A.11
  B.12
  C.14
  D.15
  21.设整型变量a为5,使b不为2的表达式是___________
  A. b=a/2
  B. b=6-(--a)
  C. b=a%2
  D.b=a>3?2:1
  22.设整型变量n的值为2,执行语句“n+=n-=n*n”后,n的值是_________
  A.0
  B.2
  C.-4
  D. 4
  23.设A,B均为整型变量,下列表达式中不是赋值表达式的是__________
  A. A=b+3,b+5,--b
  B. A=4*5;
  C. A=++A-B
  D.a=b=5
  24.执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为_________
  A. 3, 3, 2
  B. 3,2,2
  C.3,2,3
  D.2,3,2
  25.下列对数组操作不正确的语句是_________
  A. int a[5];
  B.char b[ ]={‘h’,’e’,’l’,’l’,’o’};
  C. int a[ ]={2,3,4,5};
  D. char b[3 ][ ]={1,2,3,4,5,6};
  26.设A为存放短整型的一维数组,如果A的首地址为P,那么A 中第I个元素的地址为_______________
  A. P+I*2
  B. P+(I-1)*2
  C. P+(I-1)
  D. P+I
  27.如果X=5,执行语句X*=X+=X*3后,则X的值为__________
  A.100
  B. 400
  C. 450
  D. 900
  28.下列常量中哪个是不合法的_________________
  A.2e32.6
  B. 0.2e-5
  C. “basic”
  D. 0x4b00
  29.下列标识符错误的是_______
  A. x1y
  B._123
  C. 2ab
  D. _ab
  30. c语言中int型数-8在内存中的存储形式为_____
  A.1111111111111000
  B. 1000000000001000
  C. 0000000000001000
  D. 1111111111110111 [NextPage]   二、读程序
  1.写出下列程序段的输出结果:
  main()
  {int x=5;
  int y=10;
  printf("%d\n",x++);
  printf("%d\n",++y); }
  2.写出下列程序的输出结果:
  main()
  {int x,y,z;
  x=y=z=-1;
  printf("x=%d\ty=%d\tz=%d\n",x,y,z);
  ++y&&++x||++z;
  printf("x=%d\ty=%d\tz=%d\n",x,y,z);
  x=y=z=-1;
  ++x||y++&&z;
  printf("x=%d\ty=%d\tz=%d\n",x,y,z);}
  3.下面程序的输出结果是什么?
  #include "stdio.h"
  main()
  { int x=3;
  switch(x)
  { case 1:
  case 2:printf("x<3\n");
  case 3:printf("x=3\n");
  case 4:
  case 5:printf("x>3\n");
  default:printf("x unknow\n");   }   }
  4.标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
  int p=1,q=5;
  float f1(int a)
  {int b,c;
  char ch;
  …                 局部变量ch在此范围内有效
  }
  char c1;
  char f2(int x,int y)
  {int i,j;
  5.根据源程序,写出相应的数学表达式
  #include “stdio.h”
  main()
  {int x,y;
  scanf(“%d”,&x);
  if (x<0) y= -1;
  else if (x= = 0)
  y=0;
  else y=1;
  printf(“x=%d,y=%d\n”,x,y);   }
  6.分析下列程序所完成的功能。
  main()
  {int a,b,c,*pa=&a,*pb=&b,*pc=&c,*p;
  scanf("%d,%d,%d",pa,pb,pc);
  if (*pa>*pb)
  p=pa,pa=pb,pb=p;
  if (*pa>*pc)
  p=pa,pa=pc,pc=p;
  if (*pb>*pc)
  p=pb,pb=pc,pc=p;
  printf("%d<=%d<=%d",*pa,*pb,*pc);    }
  三、  程序填空:(根据题意,将空缺的语句补上。)
  1.该程序完成的功能是求1+2+3+…+10的累加和,并进行累加和的输出打印。变量sum是存放累加值的。
  #include "stdio.h"
  main()
  {    ________________
  i=1,sum=0;
  for(; i<=10;)
  {sum+=i;
  _________ }
  printf("%d\n",sum);   }
  2.阅读函数,根据函数完成的主要功能,补充、完善主函数。
  float av(float a[],int n)
  {int i;float s;
  for (i=0,s=0;i<n;i++) s=s+a[i];
  return (s/n);                          }
  main()
  {float a[10];
  _______________
  for (i=0;_________)
  scanf("%f"______);
  printf("%f",av(a,10));          }
  3.从键盘输入一些字符,逐个把它们送到磁盘文件TEXT.txt中,直到输入一个“$”为止。请将空缺地方补充完善。
  #include "stdio.h"
  main()
  {FILE *fp;
  char ch;
  if ((fp=fopen("test.txt","w"))==NULL)
  {printf("cannot open file\n");
  ;
  }
  ;
  while(ch!=’$’)
  { fputc(ch,fp);putchar(ch);
  ch=getchar();                       }
  _______________________;    }
  四、编程:
  1.输入一单精度二维数组a[4][3],计算该二维数组中的最大元素的值及其所在位      置(行、列),并输出计算结果。
  2.个学生,每个学生的信息包括学号、性别、姓名、四门课的成绩,从键盘上输入N个学生的信息,要求输出总平均成绩最高的学生信息,包括学号、性别、姓名和平均成绩。
 [NextPage]   参考答案
  一、 填空与选择
  1. 编辑、编译、连接、执行
  2. “表达式”未尾加“;”号就成“语句”
  3. 没有
  4. 顺序、分支、循环
  5 自动型、外部型、静态型
  9. y%4= =0 && y%100!=0 || y%400==0
  6. 7.  8.  10. 11      12. 13. 14  15      16      17
  3    9    3    A    &&、||   C  B    C    C        C        Union
  18  19  20  21  22      23  24  25  26      27      28      29  30
  B    C    D    C    C        B    C    D    D        B        A        C   A
  二、 读程序
  1.   5                  2.   X=-1 Y=-1 Z=-1               3.   X=3
  11                      X=-1 Y=0      Z=0                         X>3
  X=0      Y=0      Z=-1                    X  unknow
  4. 标记出变量 p、q、 a、b、c、x、y和c1的作用范围和变量性质(局部、全局)
  5.
  6. 从小到大排序。
  三、 程序填空:(根据题意,将空缺的语句补上。)
  1.   int  I ,  sum
  I++;
  2.        int  I
  I<10;I++
  &a[I]
  3.        exit(o)
  ch=getchar()
  fclose(fp)
  四、编程:(略)
  1.
  main()
  {
  float  a[4][3]={1,2,3,4,5,6,7,8,9,10,11,12}
  int  m,n,b,c,d;
  b=a[0][0];c=0;d=0;
  for(m=0;m<4;m++)
  for(n=0;n<4;n++)
  if(b<a[m][n])
  {  b=a[m][n]; c=m;d=n; }
  printf(“a[%f][%f]=%f”c,d,a[c][d],);  }
  2.       N个学生,每个学生的信息包括学号、性别,从键盘上输入N个学生的信     息,要求输出学号、性别等信息。
  struct  abc
  {   char a[20];
  char b;      }
  main()
  {
  struct abc  stud1[10];
  int  a;
  for(a=0;a<10;a++)
  scanf(“%s”,a);
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved