我要投稿 投诉建议

全国计算机等级考试二级C语言笔试试题

时间:2022-07-17 23:23:03 计算机等级 我要投稿
  • 相关推荐

全国计算机等级考试二级C语言笔试试题

  XX 年4 月全国计算机等级考试二级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");

  (43) C 语言中形参的缺省存储类别是 (  ) 。

   A.自动(auto)

   B.静态(statiC)

   C.寄存器(register)

   D.外部(extern)

  (44) 设有以下语句:

   struct st {int n; struct st *next;};

    static struct st a[3]={5,&a[1],7,&a[2],9,’’},*p;

   p=&a[0];