试题 百分网手机站

计算机等级考试二级C语言笔试模拟题及答案

时间:2020-09-26 18:42:10 试题 我要投稿

计算机等级考试二级C语言笔试模拟题及答案

  计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。那么计算机等级考试二级C语言会怎么考?以下仅供参考!

计算机等级考试二级C语言笔试模拟题及答案

  一、选择题(1-30 每小题1 分,31-45 每小题2 分,共60 分)

  下列各题 A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题

  卡相应位置上涂黑。答在试卷上不得分。

  (1) 二进制数101110 转换为等值的八进制数是 ( ) 。

  A.45

  B.56

  C.67

  D.78

  (2) CPU 是由( )组成的。

  A.内存储器和控制器

  B.控制器和运算器

  C.内存储器和运算器

  D.内存储器、控制器和运算器

  (3) DOS 是为IBM PC 系列微型计算机及其兼容机所配置的 ( ) 磁盘操作系统。

  A.多用户多任务

  B.单用户单任务

  C.分时

  D.分布式

  (4) 启动MS-DOS 操作系统后, ( ) 已驻留内存。

  A.

  B.

  C.

  D.CCCC.EXE

  (5) 设驱动器B 中软盘上的目录结构如下图所示。

  设当前目录为F2,则把A 盘根目录下的PROG.BAS 文件复制到B 盘F3 子目录中的命

  令是 ( ) 。

  A.COPY PROG.BAS B:

  B.COPY A:PROG.BAS B:

  C.COPY A:PROG.BAS B:F3

  D.COPY A:PROG.BAS B:F3

  (6) 下面四组DOS 命令中,意义完全相同的一组是 ( ) 。

  A.COPY 和DISKCOPY

  B.COMP 和DISKCOMP

  C.DEL 和RD

  D.RENAME 和REN

  (7) 防止软盘感染病毒的有效方法是 ( ) 。

  A.不要把软盘和有毒软盘放在一起

  B.在写保护缺口上贴上胶条

  C.保持机房清洁

  D.定期对软盘格式化

  (8) 双面高密度5 英寸软磁盘的容量是 ( ) 。

  A.360KB

  B.720KB

  C.1.2MB

  D.1.44MB

  (9) 在FOXBASE 中,可以使用的两类变量是 ( ) 。

  A.内存变量和字段变量

  B.全局变量和局部变量

  C.字段变量和简单变量

  D.内存变量和自动变量

  (10) 建立一个新子目录的DOS 命令是 ( ) 。

  A.CREATE

  B.RD

  C.MD

  D.CD

  (11) 在C 语言中,如果下面的变量都是int 类型,则输出的结果是 ( ) 。

  sum=pad=5; pAd=sum + + ,pAd + + , + + pAd;

  printf("%d ",pad);

  A.7

  B.6

  C.5

  D.4

  (12) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int i=010 , j = 10;

  printf("%d,%d ",+ +i , j - -); }

  A.11,10

  B.9,10

  C.010,9

  D.10,9

  (13) 已知在ASCII 代码中,字母A 的序号为65,以下程序的输出的结果是 ( ) 。

  # include

  main()

  { char c1=’A’, c2=’Y’;

  printf("%d,%d ",c1,c2); }

  A.因输出格式不合法,输出错误信息

  B.65,90

  C.A,Y

  D.65,89

  (14) 指针s 所指字符串的长度为 ( ) 。

  char *s=""NameAddress ";

  A.19

  B.15

  C.18

  D.说明不合法

  (15) 设有说明int(*ptr)[m];其中的标识符ptr 是 ( ) 。

  A.M个指向整型变量的指针

  B.指向M个整型变量的函数指针

  C.一个指向具有M个整型元素的一维数组的指针

  D.具有M个指针元素的一维指针数组,每个元素都只能指向整型量

  (16) 语句while(!E);中的条件!E 等价于 ( ) 。

  A.E = = 0

  B.E!=1

  C.E!=0

  D.~E

  (17) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { printf("%d ",NULL); }

  A.不确定的(因变量无定义)

  B.0

  C.-1

  D.1

  (18) 以下函数调用语句中含有 ( ) 个实参。

  func((exp1,exp2),(exp3,exp4,exp5));

  A.1

  B.2

  C.4

  D.5

  (19) 设有以下语句:

  char a=3,b=6,c;

  c=a^b<<2;

  则c 的二进制值是 ( ) 。

  A.00011011

  B.00010100

  C.00011100

  D.00011000

  (20) 下面的程序中 ( ) 有错误(每行程序前面的数字是行号)。

  1 #include

  2 main()

  3 {

  4 float a[3]={0,0};

  5 int i;

  6 for(i=0;i<3;i + + ) scanf("%d",&a[i]);

  7 for(i=1;i<3;i + + ) a[0]=a[0]+a[i];

  8 printf("%f ",a[0]);

  9 }

  A.没有

  B.第4 行

  C.第6 行

  D.第8 行

  (21) 设有语句int a=3;则执行了语句a+=a-=a*a;后,变量a 的值是 ( ) 。

  A.3

  B.0

  C.9

  D.-12

  (22) 以下的for 循环 ( ) 。

  for(x=0,y=0; (y!=123)&&(x<4); x + + );

  A.是无限循环

  B.循环次数不定

  C.执行4 次

  D.执行3 次

  (23) 设有语句char a=’72’;则变量a ( ) 。

  A.包含1 个字符

  B.包含2 个字符

  C.包含3 个字符

  D.说明不合法

  (24) 以下程序的输出结果是 ( ) 。

  # include

  # include

  main()

  { int a=1,b=4,c=2;

  float x=10..5 , y=4.0 , z;

  z=(a+

  B./c+sqrt((double)y)*1.2/c+x;

  pritnf("%f ",z); }

  A.14.000000

  B.015.400000

  C.13.700000

  D.14.900000

  (25) sizeof(double)是 ( ) 。

  A.一种函数调用

  B.一个双精度型表达式

  C.一个整型表达式

  D.一个不合法的表达式

  (26) C 语言中 ( ) 。

  A.不能使用do-while 语句构成的循环

  B.do-while 语句构成的'循环必须用break 语句才能退出

  C.do-while 语句构成的循环,当while 语句中的表达式值为非零时结束循环

  D.do-while 语句构成的循环,当while 语句中的表达式值为零时结束循环

  (27) 以下程序的输出结果是 ( ) 。

  # include

  # include

  main()

  { char str[12]={’s’,’t’,’r’,’i’,’n’,’g’};

  printf("%d ",strlen(str)); }

  A.6

  B.7

  C.11

  D.12

  (28) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int a=2,c=5;

  printf("a=%%d,b=%%d ",a,

  C.; }

  A.a=%2,b=%5

  B.a=2,b=5

  C.a=%%d,b=%%d

  D.a=%d,b=%d

  (29) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int a ,b,d=241;

  a=d/100%9;

  b=(-1)&&(-1);

  printf("%d,%d ",a,

  B.; }

  A.6,1

  B.2,1

  C.6,0

  D.2,0

  (30) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int i;

  for ( i=1;i<=5;i + + ) {if ( i%2 ) printf("*");

  else continue; printf("#");}

  printf("$ "); }

  A.*#*#*#$

  B.#*#*#*$

  C.*#*#$

  D.#*#*$

  (31) 以下for 语句构成的循环执行了 ( ) 次。

  # include

  # define N 2

  # define M N+1

  # define NUM (M+1)*M/2

  main()

  { int i , n=0;

  for ( i=1;i<=NUM;i + + );

  {n + + ; printf("%d",n); }

  printf(" "); }

  A.5

  B.6

  C.8

  D.9

  (32) 设有以下语句,则 ( ) 不是对a 数组元素的正确引用,其中0≤i<10。

  int a[10]={0,1,2,3,4,5,6,7,8,9}, *p=a;

  A.a[p-a]

  B.*(&a[i])

  C.p[i]

  D.*(*(a+i))

  (33) 有以下程序:

  # include

  # define N 6

  main()

  { char c[N]; int i=0;

  for ( ;i for ( i=0 ; i 开始,代表一个

  回车符:

  a

  b

  cdef

  程序的输出结果是 ( ) 。

  A.abcdef

  B.a

  C.a

  D.a

  b b b

  c cd cdef

  d

  e

  f

  (34) 以下程序调用findmax 函数求数组中值最大的元素在数组中的下标,请选择填空。

  # include

  findmax ( s , t , k )

  int *s , t , *k;

  { int p; for(p=0,*k=p;p if ( s[p] > s[*k] )( ); }

  main()

  { int a[10] , i , k ;

  for ( i=0 ; i<10 ; i + + ) scanf("%d",&a[i]);

  findmax ( a,10,&k );

  printf ( "%d,%d " , k , a[k] ); }

  A.k=p

  B.*k=p-s

  C.k=p-s

  D.*k=p

  (35) 有以下程序:

  #include

  union pw

  { int i; char ch[2]; } a;

  main()

  { a.ch[0]=13; a.ch[1]=0; printf("%d ",a.i); }

  程序的输出结果是 ( ) 。(注意: ch[0]在低字节,ch[1]在高字节。)

  A.13

  B.14

  C.208

  D.209

  (36) 有以下程序:

  # include

  main()

  { int c;

  while((c=get))!=’ ’)

  { switch(c-’2’)

  { case 0:

  case 1: putc+4);

  case 2: putc+4);break;

  case 3: putc+3);

  case 4: putc+2);break; } }

  printf(" "); }

  从第一列开始输入以下数据,代表一个回车符。

  2743

  程序的输出结果是 ( ) 。

  A.668977

  B.668966

  C.6677877

  D.6688766

  (37) 以下程序的输出结果为 ( ) 。

  main()

  { char *alpha[6]={"ABCD","IJKL","MNOP","QRST","UVWX"};

  char **p; int i;

  p=alpha;

  for(i=0;i<4;i + + ) printf("%s",p[i]); printf(" "); }

  A.ABCDEFGHIJKL

  B.ABCD

  C.ABCDEFGHIJKLMNOP

  D.AEIM

  (38) 以下程序的输出结果是 ( ) 。

  # include

  # define FUDGE(y) 2.84+y

  # define PR(

  A.printf("%d",(int)(

  A.)

  # define PRINT1(

  A.PR(

  A.;put’ ’)

  main()

  {int x=2; PRINT1(FUDGE(5)*x); }

  A.11

  B.12

  C.13

  D.15

  (39) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int i=1,j=3;

  printf("%d",i + + );

  { int i=0; i+=j*2; printf("%d,%d",i,j); }

  printf("%d,%d ",i,j); }

  A.1,6,3,1,3

  B.1,6,3,2,3

  C.1,6,3,6,3

  D.1,7,3,2,3

  (40) 以下程序的输出结果是 ( ) 。

  # include

  main()

  { int k=4,m=1,p;

  p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d ",p);}

  func(a,

  B.

  int a,b;

  { static int m=0,i=2;

  i+=m+1; m=i+a+b; return(m); }

  A.8,17

  B.8,16

  C.8,20

  D.8,8

  (41) 设有以下语句:

  char str[4][12]={"aaa","bbbb","ccccc","dddddd"},

  *strp[4];

  int i;

  for(i=0;i<4;i + + )strp[i]=str[i];

  ( )不是对字符串的正确引用,其中0≤k<4。

  A.strp

  B.str[k]

  C.strp[k]

  D.*strp

  (42) 设有以下语句:

  char str1[]="string",str2[8],*str3,*str4="string";

  则 ( ) 不是对库函数strcpy 的正确调用,此库函数用业复制字符串。

  A.strcpy(str1,"HELLO1");

  B.strcpy(str2,"HELLO2");

  C.strcpy(str3,"HELLO3");

  D.strcpy(str4,"HELLO4");