Dotcpp  >  试卷列表  >  2019年9月全国计算机等级考试真题(二级C语言)

2019年9月全国计算机等级考试真题(二级C语言)


第1题

1、“商品”与“顾客”两个实体集之间的联系一般是

共 1 分 

第2题

定义学生选修课程的关系模式:SC(S#,Sn,C#,Cn,G)则该关系的主键为

共 1 分 

第3题

有以下程序

1
2
3
4
5
6
7
#include <stdio.h>
#define S(x)4*(x)*x+1
void main()
  int k=5, j=2; 
  printf("%d\n",S(k+j));
  }

程序运行后的输出结果是

共 1 分 

第4题

某二叉树的前序序列为ABDFHCEG,中序序列为HFDBACEG。该二叉树的后序序列为

共 1 分 

第5题

下列叙述中正确的是

共 1 分 

第6题

带链栈空的条件是

共 1 分 

第7题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <stdio.h>
int *f(int*s, int*t)
{
  int k; 
  if (*s<*t) 
  {
    k=*s; *s=*t; *t=k;
  }
  return s;
}
main()
{
  int i=3,j=5,*p=&i,*q=8&j,*r;
  r=f(p,q);
  printf("%d,%d,%d,%d,%d\n",I,j,*p,*q,*r);
}

则程序的输出结果是

共 1 分 

第8题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void fun2 (char a, char b)
    printf("%c%c", a, b);
}
char a='A', b='B'
void fun1()
{
    a='C';b='D';
}
main()
    fun1(); 
    printf("%c%c", a, b); 
    fun2('E''F'); 
  }


共 1 分 

第9题

由关系R1和R2得到关系R3的操作是

Snipaste_2021-04-19_00-20-34.png

共 1 分 

第10题

下列叙述中正确的是

共 1 分 

第11题

不能正确表示数学式的表达式是

共 1 分 

第12题

设二叉树的前序序列为ABDEGHCFJ,中序序列为DBGEHACIFJ。则后序序列为

共 1 分 

第13题

在结构化程序设计中,模块划分的原则是

共 1 分 

第14题

若有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
int k=7, m=5; 
void f(int **s)
{
  int *t=&k;
  s=&t;
  *s=&m;
  printf("9%d,%d,%d,",k,*t,**s);
}
main()
{
  int i=3,*p=&i,**r=&p;
  f(r);
  printf("%d,%d,%d\n",i,*p,**r);
}

则程序的输出结果是

共 1 分 

第15题

与数学表达式x≥y≥z对应的C语言表达式是

共 1 分 

第16题

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

Snipaste_2021-04-19_00-34-17.png

共 1 分 

第17题

sizeof(double)是

共 1 分 

第18题

在数据库中存储的是

共 1 分 

第19题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
int d=1; 
void fun (int p)
{
  int d=5; 
  d+=p++; 
  printf("%d",d);
}
main()
{
  int a=3; 
  fun(a); 
  d+=a++; 
  printf("%d\n", d);
}

程序的输出结果是

共 1 分 

第20题

在关系A(S,SN,D)和B(D,CN,NM)中,A的主关键字是S,B的主关键字是D,则D是A的

共 1 分 

第21题

有以下程序

1
2
3
4
5
#include <stdio.h>
main(){
int a=0, b=0;
/* 给a赋值a=10;b=20;给b赋值*/
printf"a+b=%d\n",a+b);/*输出计算结果*/}

程序运行后的输出结果是

共 1 分 

第22题

若已建立以下链表结构,指针p、s分别指向如图所示结点

Snipaste_2021-04-19_00-53-54.png

则不能将s所指节点插入到链表未尾的语句组是

共 1 分 

第23题

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

共 1 分 

第24题

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

共 1 分 

第25题

有以下程序

1
2
3
4
5
6
7
8
9
10
#include <stdio.h>
void fun (char**p)
{
    ++p;
    printf("%s\n",*p)}
main()
{
    char*a[]=("Morning""Afternoon""Evening""Night"); 
    fun(a);
}

程序的运行结果是

共 1 分 

第26题

若有定义:

double a=22;

int i=0,k=;

则不符合C语言规定的赋值语句是

共 1 分 

第27题

以下选项中叙述错误的是

共 1 分 

第28题

设有宏定义:#define IsDIV(k,n)((k%n==1)?1:0)且变量m已正确定义并赋值,则宏调用:IsDIV^(m,5)&&IsDIV(m,7)为真时所要表达的是

共 1 分 

第29题

以下叙述中错误的是

共 1 分 

第30题

软件生命周期是指

共 1 分 

第31题

软件生存周期中,解决软件“怎么做”的阶段是

共 1 分 

第32题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
    int c[6]={10,20,30,40,50,60},*p,*s;
    p=C;
    s=&c[5];
    printf("%d\n",sp) ;
}

程序运行后的输出结果是

共 1 分 

第33题

以下叙述中正确的是

共 1 分 

第34题

若有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
main()
{
    char c1, c2; 
    c1='C'+'18'-13; 
    C2='19'-0;
    printf("%c%d\n", c1, c2);
}

则程序的输出结果是

共 1 分 

第35题

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

共 1 分 

第36题

若在定义语句:int a,b,c,*p=&c;接着执行以下选项中的语句,则能正确执行的语句是

共 1 分 

第37题

软件生命周期中的活动不包括

共 1 分 

第38题

一名员工可以使用多台计算机,每台计算机只能由一名员工使用,则实体员工和计算机间的联系是

共 1 分 

第39题

下面属于系统软件的是()

共 1 分 

第40题

有以下程序

1
2
3
4
5
6
7
8
#include <stdio.h>
#define SUB(X,Y)(X+1)*Y 
main()
{
    int a=3,b=4;
    printf("%d\n",
    SUB(a++,b++));
}

程序运行后的输出结果是

共 1 分 

第41题

给定程序中,函数fun的功能是建立一个NxN的矩阵。矩阵元素的构成规律是:最外层元素的值全部为1;从外向内第2层元素的值全部为2;第3层元素的值全部为3,.…依次类推。

例如,若N=5,生成的矩阵为:

11111

12221

12321

12221

11111

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
44
#include <stdio.h>
#include <stdlib.h>
#define N 5
/**********found**********/
void fun(int (*a)__(1)__)
{
    int i, j, k, m;
    if(N%2==0)
    {
        m=N/2 ;
    }
    else
    {
        m=N/2+1;
    }
    for(i=0; i<m; i++) 
    {
        /**********found**********/
        for(j=__(2)_ ; j<N-i; j++)
        {
            a[i][j]=a[N-i-1][j]=i+1;
        }
        for(k=i+1; k<N-i; k++)
        {
            /**********found**********/
            a[k][i]=a[k][N-i-1]=__(3)__;
        }
    }
}
main()
{
    int x[N][N]={0},i,j;
    fun(x);
    printf("\nThe result is:\n");
    for(i=0; i<N; i++)
    {
        for(j=0; j<N; j++) 
        {
            printf("%3d",x[i][j]);
        }
        printf("\n");
    }
    system("pause");
}


共 18 分 

第42题

函数fun的功能是:将十进制正整数m转换成k(2sks9)进制数,并按高位到低位顺序输出。

例如,若输入8和2,则应输出1000(即+进制数8转换成二进制表示是1000)。

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

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
#include <stdio.h>
#include <stdlib.h>
void fun(int m, int k);
{
    int aa[20], i;
    for(i = 0; m; i++)
    {
        /**********found**********/
        aa[i] = m/k;
        m /= k;
    }
    for(; i; i--)
    {
        /**********found**********/
        printf("%d",aa[i]);
    }
}
main()
{
    int b, n;
    printf("\nPlease enter a number and a base:\n");
    scanf("%d %d", &n, &b);
    fun(n, b);
    printf("\n");
    system("pause");
}
共 18 分 

第43题

编写一个函数fun,从num个字符串中找出最长的一个字符串,并通过形参指针max传回该串地址。(注意:主函数中用****作为结束输入的标志。)

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
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void fun(char(*a)[81], int num, char **max)
{
int i, maxlen; 
maxlen=strlen(a[0]); 
for(①)
{
if(②)
{
*max=a[i];④
}
}
main()
{
    char ss[10][81], *ps;
    void NONO();
    int n, i=0;
    printf("输入若干个字符串:");
    gets(ss[i]);
    puts(ss[i]);
    while(!strcmp(ss[i],"****")==0)
    {
        i++;
        gets(ss[i]);
        puts(ss[i]);
    }
    n=i;
    fun(ss, n, &ps);
    printf("\nmax=%s\n", ps);
    NONO();
}
void NONO ()
{/* 请在此函数内打开文件,输入测试数据,
 调用函数,输出数据,关闭文件。 */
    char ss[20][81], *ps;
    int n, i=0;
    FILE *rf, *wf;
    rf=fopen("in.dat","r");
    wf=fopen("out.dat","w");
    fgets(ss[i], 81, rf);
    while(!strncmp(ss[i],"****",4)==0)
    {
        i++;
        fgets(ss[i], 81, rf);
    }
    n=i;
    fun(ss, n, &ps);
    fprintf(wf, "%s", ps);
    fclose(rf);
    fclose(wf);
    system("pause");
}


共 24 分