201809 全国计算机等级考试真题(C语言二级) 建议答题时长:60min
1. 单选题

若有以下程序

main() 

{

    int a=6, b=0, c=0; 

    for(;a;)

    {

        b+=a;

        a-=++c;

    }

    printf("%d,%d,%d\n",a,b,c); 

}

则程序的输出结果是(    )

A

1,14,3

B

0,18,3

C

0,14,3

D

0,14,6

2. 单选题

循环队列的存储空间为Q(1:200),初始状态为front-rear=200,经过一系列正常的入队与退队操作后,front-rear-1,则循环队列中的元素个数为(    )

A

0或200

B

1

C

2

D

199

3. 单选题

以下叙述中正确的是(    )

A

对于逻辑表达式:a++&&b++,设a的值为0,则求解表达式的值后,b的值会发生改变

B

对于逻辑表达式:a++||b++,设a的值为1,则求解表达式的值后,b的值会发生改变

C

关系运算符的结果有三种:0,1,-1

D

else不是一条独立的语句,它只是语句的一部分

4. 单选题

计算机软件包括(    )

A

算法和数据

B

程序和数据

C

程序和文档

D

程序、数据及相关文档

5. 单选题

若有定义语句:char*s1-"OK",*s2="ok";以下选项中,能够输出"OK"的语句是(    )

A

if(strcmp(s1,s2)!=0)puts(s1);

B

if(strcmp(s1,s2)!=0)puts(s2);

C

if(strcmp(s1,s2)==1)puts(s1) ;

D

if(strcmp(s1,s2)==0)puts(s1);

6. 单选题

有以下程序

#include <stdio.h>

int f(int n); 

main() 

  int a=3,s; 

  s=f(a); 

  s=s+f(a)

  printf("%d\n",s);

}

int f(int n) 

  static int a=1;

  n+=a++; 

  return n;

}

程序运行后的输出结果是(    )

A

9

B

8

C

7

D

10

7. 单选题

下列结构中属于线性结构链式存储的是(    )

A

双向链表

B

循环队列

C

二叉链表

D

二维数组

8. 单选题

在数据库设计中,描述数据间内在语义联系得到E-R图的过程属于(    )

A

逻辑设计阶段

B

需求分析阶段

C

概念设计阶段

D

物理设计阶段

9. 单选题

软件需求规格说明的内容应包括(    )

A

E-R模型

B

算法详细设计

C

软件的主要功能

D

软件总体结构

10. 单选题

某二叉树共有13个结点,其中有4个度为1的结点,则叶子结点数为(    )

A

5

B

4

C

3

D

2

11. 单选题

在黑盒测试方法中,设计测试用例的根据是(    )

A

数据结构

B

程序调用规则

C

模块间的逻辑关系

D

软件要完成的功能

12. 单选题

有以下程序

#include <stdio.h>

main()

{

    int a[]={10,20,30,40};

    *p=a,i;

    for (i=0;i<=3;i++)

    {

        a[i]=*p;

        p++;

    }

    printf("%d\n",a[2];

}

程序运行后的输出结果是(    )

A

20

B

30

C

10

D

40

13. 单选题

下列函数的功能是

void fun(char*a,char*b){

    while((*b=*a)!='\0'){

    a++;b++;}

}

A

使指针b指向a所指字符串

B

将a所指字符串和b所指字符串进行比较

C

将a所指字符串赋给b所指空间

D

检查a和b所指字符串中是否有'\0'

14. 单选题

某系统总体结构如下图所示,该系统结构图的最大扇出数是(    )

A

1

B

2

C

3

D

5

15. 单选题

某系统结构图如下图所示,则该系统结构图的宽度是(    )

A

2

B

3

C

4

D

n

16. 单选题

某二叉树共有399个结点,其中有199个度为2的结点,则该二叉树中的叶子结点数为(    )

A

不存在这样的二叉树

B

200

C

198

D

199

17. 单选题

以下不合法的数值常量是(    )

A

1e1

B

011

C

Oxabcd

D

8.0E0.5

18. 单选题

我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是(    )

A

一条C语句可能会被转换成多条机器指令

B

一条C语句对应转换成一条机器指令

C

一条C语句可能会被转换成零条机器指令

D

某种类型和格式的C语句被转换成机器指令的条数是固定的

19. 单选题

有以下结构体说明、变量定义和赋值语句struct STD{char name[10];int age;char sex;}s[5].*ps;ps=&s[0];则以下scanf函数调用语句有错误的是(    )

A

scanf("%d",&s[0].age);

B

scanf("%c",&(ps->sex));

C

scanf("%s",s[0].name);

D

scanf("%d",ps->age);

20. 单选题

有以下程序

void fun (chars) 

{

    char a[10]; 

    strcpy(a,"STRING"); 

    s=a; 

}

main()

{

    char*p="PROGRAM";

    fun(p);

    printf("%s\n",p);

}

程序运行后的输出结果是(此处口代表空格)

A

STRING口口口口

B

PROGRAM

C

STRING口口口

D

STRING

21. 单选题

有三个关系R,S和T如下图所示,则由关系R和S得到关系T的操作是

A

选择

B

投影

C

D

22. 单选题

下列叙述中错误的是(    )

A

循环链表是循环队列的存储结构

B

二叉链表是二叉树的存储结构

C

栈是线性结构

D

循环队列是队列的存储结构

23. 单选题

第三范式是在第二范式的基础上消除了(    )

A

非主属性对键的传递函数依赖

B

非主属性对键的部分函数依赖

C

多值依赖

D

以上三项

24. 单选题

有以下程序

#include <stdio.h>

int f(int x, int y)

{

    return((y-x)*x);}

main()

{

    int a=3,b=4,c=5,d; 

    d=f (f(a,b), f(a,c)); 

    printf("%d\n",d);

}

程序运行后的输出结果是(    )

A

10

B

8

C

9

D

7

25. 单选题

以下叙述中正确的是(    )

A

函数的返回值不能是结构体类型

B

函数的返回值不能是结构体指针类型

C

在调用函数时,可以将结构体变量作为实参传给函数

D

结构体数组不能作为参数传给函数

26. 单选题

某图书集团数据库中有关系模式R,其中要求①每个书店的每种书籍只在该书店的一个部门销售;②每个书店的每个部门只有一个负责人;③每个书店的每种书籍只有一个库存数量。则关系模式R最高是(    )

A

1NF

B

2NF

C

3NF

D

BCNF

27. 单选题

下列叙述中正确的是(    )

A

在C程序中main函数的位置是固定的

B

C程序中所有函数之间都可以相互调用

C

每个C程序文件中都必须要有一个main函数

D

在C程序的函数中不能定义另一个函数

28. 单选题

有两个关系R和S如下图所示,则由关系R得到关系S的操作是

A

选择

B

投影

C

插入

D

连接

29. 单选题

以下叙述中正确的是(    )

A

在C语言程序设计中,所有函数必须保存在一个源文件中

B

在算法设计时,可以把复杂任务分解成一些简单的子任务

C

只要包含了三种基本结构的算法就是结构化程序

D

结构化程序必须包含所有的三种基本结构,缺一不可

30. 单选题

有以下程序

#include <stdio.h>

main()

{

    int y=10; 

    while(y--); 

    printf("y=%d\n",y);

}

程序执行后的输出结果是(    )

A

y=0

B

y=-1

C

y=1

D

while构成无限循环

31. 单选题

下列叙述中正确的是(    )

A

顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的

B

顺序存储结构只针对线性结构,链式存储结构只针对非线性结构

C

顺序存储结构能存储有序表,链式存储结构不能存储有序表

D

链式存储结构比顺序存储结构节省存储空间

32. 单选题

若变量已正确定义,以下选项中非法的表达式是(    )

A

a!=4||'b'

B

'a'%4

C

'a'=1/2*(x=y=20,x*3)

D

'A'+ 32

33. 单选题

有以下程序

#include <stdio.h>

void main()

{

    char b,c; 

    int i;

    b='a';c='A';

    for(i=0;i<6;i++)

    {

        if(i%2) putchar(i+b); 

        else putchar(i+c);

    }

    printf("\n");

}

程序运行后的输出结果是(    )

A

ABCDEF

B

aBcDeF

C

abcdef

D

AbCdEf

34. 单选题

算法的空间复杂度是指(    )

A

算法在执行过程中所需要的计算机存储空间

B

算法所处理的数据量

C

算法程序中的语句或指令条数

D

算法在执行过程中所需要的临时工作单元数

35. 单选题

软件需求规格说明书的作用不包括(    )

A

软件验收的依据

B

用户与开发人员对软件“做什么"的共同理解

C

软件设计的依据

D

软件可行性研究的依据

36. 单选题

有以下程序

#include <stdio.h>

void fun(char **p)

{

    ++p; 

    printf("%s\n",*p);

}

main()

{

    char *a[]=("Morning","Afternoon","Evening","Night");

    fun(a);

}

程序的运行结果是(    )

A

fternoon

B

Morning

C

orning

D

Afternoon

37. 单选题

以下叙述中正确的是(    )

A

对于变量而言,"定义"和“说明"这两个词实际上是同一个意思

B

在复合语句中不能定义变量

C

全局变量的存储类别可以是静态类

D

函数的形式参数不属于局部变量

38. 单选题

设栈的存储空间为S(1:50),初始状态为top-0,现经过一系列正常的入栈与退栈操作后,top=51,则栈中的元素个数为(    )

A

不可能

B

50

C

0

D

1

39. 单选题

结构化程序包括的基本控制结构是(    )

A

程序与子程序

B

选择结构、循环结构与层次结构

C

顺序结构、选择结构与循环结构

D

模块结构、选择结构与层次结构

40. 单选题

有以下程序

#include <stdio.h>

int fun (int a,int b) 

{

    if (b==0) 

    return a; 

    else return (fun(--a,--b));

}

main()

{

    printf("%d\n",fun(4,2));

}

程序的运行结果是(    )

A

1

B

2

C

3

D

4

41. 填空题

给定程序中,函数fun的功能是根据形参i的值返回某个函数的值。当调用正确时,程序输出:


x1=5.000000,x2=3.000000,x1*x1 +x1*x2=40.000000

不得增行或删行,也不得更改程序的结构!

#include <stdio.h>

#include <stdlib.h>

double f1(double x)

{

    return x*x;

}

double f2(double x, double y)

{

    return x*y;

}

/**********found**********/

__(1)__ fun(int i, double x, double y)

{

    if(i==1)   

    {

        /**********found**********/

        return __(2)__(x);

    }

    else 

    {

        /**********found**********/

        return __(3)__(x,y);

    }

}

main()

{

    double x1=5, x2=3, r;

    r = fun(1, x1, x2);

    r += fun(2, x1, x2);

    printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r);

    system("pause");

}

42. 填空题

给定程序函数fun的功能是:比较两个字符串,将长的那个字符串的首地址作为函数值返回。


请改正程序中的错误,使它能得出正确的结果。

不要改动main函数,不得增行或删行,也不得更改程序的结构!

#include <conio.h>

#include <stdio.h>

/**********found**********/

char fun(char *s, char *t)

{

    int s1=0, t1=0;

    char *ss, *tt;

    ss=s;

    tt=t;  

    while(*ss)

    {

        s1++;

        /**********found**********/

        (*ss)++;

    }

    while(*tt)

    {

        t1++;

        tt++;

    }

    if (t1>s1)

    {

        return t;

    }

    else 

    {

        return s;

    }

}

main()

{

    char a[80],b[80];

    printf("\nEnter a string:");

    gets(a);

    printf("\nEnter a string again:");

    gets(b);

    printf("\n\nThe longer is:\n\n%s\n",fun(a,b));

    system("pause");

}

43. 填空题

请编写函数fun,函数的功能是:判断字符串是否为回文?若是,函数返回1,主函数中输出:YES;否则返回0,主函数中输出NO,回文是指顺读和倒读都一样的字符串。


例如,字符串LEVEL是回文,而字符串123312就不是回文。


请勿改动主函数main和其它函数中的任何内容,仅在函数fun中填入你编写的若干语句。

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#define N 80

int fun(char *str)

{

    int i,n=0,fg=1;

    char *p=str;

    while(①)

    {

         ②

         ③

    }

    for(i=0;i<n/2;i++)

    {

         if(④)

        {

            ⑤

            ⑥

        }

     

    }

    return fg;

 

}

main()

{

char s[N];

void NONO();

printf("Enter a string:"); 

gets(s);

printf("\n");

puts(s);

if(fun(s)) 

{

printf("YES\n");

}

else 

{

printf("NO\n");

}

NONO();

system("pause");

}

void NONO()

{/* 请在此函数内打开文件,输入测试数据,

 调用函数,输出数据,关闭文件。 */

FILE *rf, *wf;

int i; 

char s[N];

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

for(i=0; i<8; i++)

{

fscanf(rf, "%s", s);

if(fun(s)) 

{

fprintf(wf, "%s YES\n", s);

}

else 

{

fprintf(wf, "%s NO\n", s);

}

}

fclose(rf); 

fclose(wf);

}

试题目录
单选题
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
填空题
41 42 43
赣ICP备20007335号-2