当前所在位置:珠峰网资料 >> 计算机 >> 计算机等级考试 >> 正文
2015年全国计算机等级二级C语言模拟试题及答案(3)
发布时间:2010/11/4 10:29:36 来源:城市学习网 编辑:ziteng
  一.单项选择题
  1. 设int x=1,y=1;表达式(!x++ || y--)的值是_________
  A.0
  B. 1
  C. 2
  D.-1
  2.main( )
  {  int n;
  ( n=6*4,n+6),n*2;
  printf(“n=%d\n”,n);
  }   此程序的输出结果是______________.
  A.30
  B.  24
  C.  60
  D.  48
  3.若有如下定义,则__________是对数组元素的正确的引用。
  int  a[10] , *p ;
  p=a ;   p=a ;   p=a ;   p=a ;
  A.  *&a[10]
  B.  a[11]
  C.  *(p+10)
  D. *p
  4.设整型变量n的值为2,执行语句“n+=n-=n*n;”后,n的值是__________
  A.  0
  B.  4
  C.  - 4
  D.  2
  5.以下不能正确定义二维数组的语句是___________
  A . int a[2][2]={{1},{2}};
  B. int a[][2]={1,2,3,4};
  C. int a[2][2]={{1},2,3};
  D. int a[2][]={{1,2},{3,4}};
  6. 程序段___________的功能是将变量 u 、s中的最大值赋给变量t 。
  A.  if(u>s) t=u;t=s;
  B.  t=u;   if(t )  t=s;
  C.  if(u>s) t=s;else t=u;
  D .  t=s; if(u )  t=u;
  7.下列程序段的输出结果是___________。
  void main()
  {   int k;
  for (k=1;k<5;k++〉
  {  if(k%2!=0)
  printf("#");
  else
  printf(“*”) ;  }
  }
  A. #*#*
  B . *#*#
  C.  ##
  D. 以上都不对
  8.设变量定义为 int a[3]={1,4,7},*p=&a[2], 则*p的值是  (35)    。
  A. &a[2]
  B. 4
  C. 7
  D. 1
  9.能正确表示a和b同时为正或同时为负的逻辑表达式是_________。
  A.a>=0||b>=0)&&(a<0 ||b<0)
  B.(a>=0 && b>=0)&&(a<0 && b<0)
  C.(a+b>0) &&(a+b<=0)
  D. a*b>0 [NextPage]  10.C语言中,合法的字符型常数是_________。
  A.‘A’
  B.“A”
  C. 65
  D. A
  11.设有数组定义:char array[]=”China”; 则数组所占的空间是________。
  A.4个字节
  B.5个字节
  C.6个字节
  D.7个字节
  12.若变量c为char类型,能正确判断出c为小写字母的表达式是_______。
  A.’a’<=c<=’z’
  B. (c>=’a’) || (c<=’z’)
  C.(‘a’<=c) and (‘z’>=c)
  D. (c>=’a’) && (c<=’z’)
  13.设有定义:long x=-123456L; 则以下能够正确输出变量x值的语句是_______。
  A.printf(“x=%d\n”,x)
  B.printf(“x=%ld\n”,x)
  C.printf(“x=?l\n”,x)
  D.printf(“x=%LD\n”,x);
  14.下列关于指针定义的描述,___________是错误的。
  A.指针是一种变量,该变量用来存放某个变量的地址值的。
  B.指针变量的类型与它所指向的变量类型一致。
  C.指针变量的命名规则与标识符相同。
  D.在定义指针时,标识符前的“*”号表示后面的指针变量所指向的内容。
  15.已知:int x;  int y[10]; 下列______是合法的。
  A.&x
  B.&(x+3)
  C.&5
  D .&y
  16.指出下面正确的输入语句__________。
  A.  scanf(“a=b=%d”,&a,&b) ;
  B. scanf(“%d,%d”,&a,&b) ;
  C.  scanf(“%c”,c) ;
  D. scanf(“% f%d\n”,&f) ;
  17.C语言中以追加方式打开一个文件应选择_______________参数。
  A.“r”
  B.“w”
  C.“rb”
  D.“a”
  18.Break语句的正确的用法是(    )。
  A. 无论在任何情况下,都中断程序的执行,退出到系统下一层。
  B. 在多重循环中,只能退出最靠近的那一层循环语句。
  C. 跳出多重循环。
  D. 只能修改控制变量。
  19. 为表示关系x≥y≥z,应使用C语言表达式
  A.(x>=y)&&(y>=z)
  B. (x>=y) AND (y>=z)
  C.(x>=y>=z)
  D. (x>=z)&(y>=z)
  20.以下可以作为C语言合法整数的是________。
  A.1010B
  B. 0368
  C.0Xffa
  D. x2a2
  21.在函数中默认存储类型说明符的变量应该是________存储类型。
  A.内部静态
  B. 外部
  C.自动
  D. 寄存器
  [NextPage]   二.判断题
  1.  C 语言源程序文件通过了编译、连接之后 , 生成一个后缀为 .EXE 的文件。 (           )
  2. 在 C 程序中 , 函数既可以嵌套定义 , 也可以嵌套调用。(        )
  3. 在 C 程序中,  APH 和 aph 代表不同的变量。(        )
  4. 表达式 0195 是一个八进制整数。(        )
  5. 表达式 _ya是不合法的C语言标识符。(        )
  6. C程序总是从main( ) 函数的第一条语句开始执行的。 (      )
  7. A-=7等价于a=a-7。  (        )
  8. 利用fclose函数关闭已打开的文件。(        )
  9. 数组名可以作为参数进行传递。(        )
  10. 执行printf("%x",12345);, 输出 12345 。(        )
  三、填空
  1.C语言的预处理语句以__________开头。
  2.表达式7+8>2 && 25 %5的结果是_______________________。
  3.下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。
  int  n=0, ch;
  ch=getchar( );
  while( __________________ )
  {  if ( ________________ )  n++;
  c=getchar( );                  }
  4.C语言中putchar(c ) 函数的功能是_________________________________。
  5.int *p 的含义是___________________________________________。
  6.定义fp为文件型指针变量的定义方法为_______________________。
  7.数组 int  a[3][4];共定义了____________个数组元素。
  四、读出程序。
  1. 改正下列程序中不正确的语句。
  main()
  { int a=8 , b=1;
  a=a+b;
  b=a*b;
  printf("%d, %d",a,b);    }
  2.写出下列程序的运行结果。
  fun(int a, int b)
  { if(a>b) return (a);
  Else  return (b);  }
  main()
  { int x=3,y=8,z=6,r;
  r=fun(fun(x,y),2*z);
  printf(“%d\n”,r);  }
  3. 改正下列程序中不正确的语句。
  main()
  { int n ;
  float s=1.0;
  for(n=10;n>1;n- -)
  s=s+1/n;
  printf(“%6.1f\n”,s);  }
  4. 写出下列程序的运行结果。
  main()
  { int n;
  For(n=3; n<=10; n++)
  { if(n%5= =0) break;
  Printf(“%d”,n); }            }
  5.写出下列程序的运行结果。
  #include “stdio.h”
  main()
  { int a[]={1,2,3,-4,5};
  int m,n,*p;
  p=&a[0]; p=&a[0];
  m=*(p+2);
  n=*(p+4);
  printf(“%d  %d  %d  ”,*p,m,n);  }
  五.编程序
  1.    编程计算下列表达式:s=1!+2!+3!+4!+……+10!
  2.从键盘上输入a与n的值,计算sum=a+aa+aaa+aaaa+……(共n项)的和。例a=2, n=4, 则sum=2+22+222+2222。
  3.求3X3矩阵的主对角线元素之和。
  4.从键盘上输入10个数存入一维数组中,求这10数中的最大值与最小值并输出。
  5.从键盘上输入若干个字符存入文件write.txt中,遇到回车键输入结束。(用“\n”表示回车键)
 [NextPage]   参考答案
  一.单项选择题
  1 B 2B 3D 4C 5D
  6C 7A 8C 9D 10A
  11C 12D 13B 14D 15A
  16B 17D 18B 19A 20C 21C
  二.判断题
  1√ 2Ⅹ 3√ 4Ⅹ 5Ⅹ 6√ 7√ 8√ 9√ 10Ⅹ
  三、填空
  1 #号
  2 0
  3 ch!=’\n’ ch>=’0’ && ch<=’9’
  4 将变量c中的字符显示到屏幕上。
  5 指针变量p为整型
  6 FILE *fp
  7 12
  四、读出程序。
  1 printf("%d, %d",&a,&b); 2 12
  3 s=s+1.0/n
  4. 3 4
  5 1 3 5
  五.编程序
  1.
  #include "stdio.h"
  main()
  { long s=0,t=1;
  int i;
  for(i=1;i<=10;i++)
  { t=t*i;
  s=s+t;
  }
  printf("%ld",s); }
  2
  #include "stdio.h"
  main()
  { int a,n count=1,sn=0,tn=0;
  scanf("%d %d",&a,&n);
  while(count<=n)
  { tn=tn+a;
  sn=sn+tn;
  a=a*10;
  ++count; }
  printf("%d",sn); }
  3.
  #include "stdio.h"
  main()
  { int a[3][3],i,j,s=0;
  for(i=0;i<3;i++)
  for(j=0;j<3;j++)
  scanf("%d",&a[i][j]);
  for(i=0;i<3;i++)
  for(j=0;j<3;j++)
  if(i==j)
  s=s+a[i][j];
  printf("%d",s); }
  4.
  #include "stdio.h"
  main()
  { int a[10],max,min;
  for(i=0;i<10;i++)
  scanf("%d",&a[i]);
  max=a[0];
  for(i=1;i<10;i++)
  if(a[i]>max)
  max=a[i];
  min=a[0];
  for(i=1;i<10;i++)
  if(a[i]
  min=a[i];
  printf("%d %d",max,min); }
  5.
  #include "stdio.h"
  main()
  { int c;
  FILE *fp;
  fp=open("write.txt","w");
  c=getchar();
  while(c!=’\n’)
  { fputc(c,fp);
  c=getchar();
  }
  fclose(); }
广告合作:400-664-0084 全国热线:400-664-0084
Copyright 2010 - 2017 www.my8848.com 珠峰网 粤ICP备15066211号
珠峰网 版权所有 All Rights Reserved