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

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


第1题

有下列程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
main()
{
    FILE*fp;int k,n,a[6]={1,2,3,4,5,6};
    fp=fopen("d2.dat","w");
    fprintf(fp,"%d%d%d\n",a[0],a[1],a[2]);
    fprintf(fp,"%d%d%d\n",a[3],a[4],a[5]);
    fclose(fp);
    fp=fopen("d2.dat","r");
    fscanf(fp,"%d%d",&k,&n);
    printf("9%d%d\n",k,n);
    fclose(fp);
}

程序运行后的输出结果是

共 1 分 

第2题

以下叙述中正确的是

共 1 分 

第3题

已知字符‘A’的ASCII代码值是65,字符变量c1的值是A,c2的值是'D'。则执行语句 printf("%d,%d",c1,C2-2);的输出结果是

共 1 分 

第4题

设有定义:int a=1,b=2,c=3;以下语句中执行效果与其它三个不同的是

共 1 分 

第5题

若有定义语句:double x,y,*px,*py;执行px=&x;py=&y;正确的输入语句是

共 1 分 

第6题

有三个关系R,S和T如下图所示,关系T违反了哪一类完整性约束()

Snipaste_2021-04-15_15-51-52.png

共 1 分 

第7题

下列叙述中错误的是

共 1 分 

第8题

以下叙述中正确的是

共 1 分 

第9题

下列叙述中正确的是

共 1 分 

第10题

在数据库的三级模式中,可以有任意多个

共 1 分 

第11题

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

共 1 分 

第12题

一间宿舍可住多个学生,则实体宿舍和学生之间的联系是

共 1 分 

第13题

在希尔排序法中,每经过一次数据交换后

共 1 分 

第14题

下列叙述中正确的是

共 1 分 

第15题

有以下程序段

1
2
3
4
5
int a,b,c;
a=10;b=50;c=30;
if(a>b)
    a=b,b=c;c=a;
printf("a=%d b=%d c=%d\n",a,b,c);

程序的输出结果是

共 1 分 

第16题

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

Snipaste_2021-04-15_17-32-42.png


共 1 分 

第17题

下列叙述中正确的是

共 1 分 

第18题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <stdio.h>
void main() 
{
    int a[]={2,3,5,4},i; 
    for(i=0;i<4;i++) 
    switch(i%2)
    {
        case 0:
        switch(a[i]%2)
           {case 0:a[i]++;break;
             case 1:a[i]--;}
        break;
        case 1:a[i]=0;
    }
        for(i=0;i<4;i++) 
        printf("%d",a[i]);
        printf("\n");
}

程序运行后的输出结果是


共 1 分 

第19题

有以下程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#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");
}

程序运行后的输出结果是

共 1 分 

第20题

有下列程序

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <stdio.h>
main()
{
    FILE *fp; int a[10]={1, 2, 3}, i, n; 
    fp=fopen("d1.dat""w"); 
    for(i=0; i<3; i++) 
    fprintf (fp, "%d", a[i]); 
    fprintf (fp, "\n"); 
    fclose (fp); 
    fp=open ("d1.dat""r"); 
    fscanf (fp, "%d" ,&n); 
    fclose(fp); 
    printf("%d\n",n);
}

程序的运行结果是

共 1 分 

第21题

设二叉树的前序序列为ABDEGHCFJ,中序序列为DBGEHACIFJ。则按层次输出的序列为

共 1 分 

第22题

数据库系统的三级模式不包括

共 1 分 

第23题

下面描述中正确的是

共 1 分 

第24题

若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是

共 1 分 

第25题

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

Snipaste_2021-04-15_17-44-32.png

共 1 分 

第26题

面向对象方法中,继承是指

共 1 分 

第27题

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

Snipaste_2021-04-15_17-45-42.png

共 1 分 

第28题

学院的每个系都有一名系主任,且一个教师可同时担任多个系的系主任,则实体系主任和实体系间的联系是

共 1 分 

第29题

下列叙述中正确的是

共 1 分 

第30题

有以下程序

1
2
3
4
5
6
7
8
9
#include <stdio.h>
main()
{
    int i, j, m=55; 
    for (i=1; i<=3; i++)
    for(j=3; j<=i; j++) 
    m=m%j;
    printf("%d\n",m);
}

程序的运行结果是

共 1 分 

第31题

在数据库中,数据模型包括数据结构、数据操作和

共 1 分 

第32题

下列叙述中错误的是

共 1 分 

第33题

数据字典所定义的对象都包含于

共 1 分 

第34题

有以下程序

1
2
3
4
main(){
int i=0; 
i=~i; 
printf("%d\n", i);}

程序运行后的输出结果是

共 1 分 

第35题

有以下程序

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 分 

第36题

有以下程序

1
2
3
4
5
6
7
#include<stdio.h>
main()
{
    int a=7; 
    while(a--); 
    printf("%d\n", a);
}

程序运行后的输出结果是

共 1 分 

第37题

有以下程序

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

程序的输出结果是

共 1 分 

第38题

以下选项中,合法的一组C语言数值常量是

共 1 分 

第39题

以下不合法的字符常量是

共 1 分 

第40题

下列叙述中正确的是

共 1 分 

第41题

函数fun的功能是:根据所给的年、月、日,计算出该日是这一年的第几天,并作为函数值返回。其中函数isleap用来判别某一年是否为闰年。

例如,若输入:200851,则程序输出:2008年5月1日是该年的第122天。

请在程序的下划线处填入正确的内容

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
#include <stdio.h>
#include <stdlib.h>
int isleap(int year)
{
    int leap;
    leap= (year%4==0 && year%100!=0 || year%400==0);
    /**********found**********/
    return __(1)__;
}
int fun(int year, int month, int day) 
{
    int table[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};
    int days=0,i;
    for(i=1; i<month; i++)
    {
        days=days + table[i];
    }
    /**********found**********/
    days=days+__(2)__;
    if(isleap(year) && month>2)
    {
        /**********found**********/
        days=days+__(3)__;
    }
    return days;
}
main()
{  
    int year, month, day,days;
    printf("请输入年、月、日:");
    scanf("%d%d%d", &year, &month, &day);
    days = fun(year, month, day);
    printf("%d年%d月%d日是该年的第%d天\n", year, month, day, days);
    system("pause");
}


共 18 分 

第42题

函数fun的功能是:在有n名学生,2门课成绩的结构体数组std中,计算出第1门课程的平均分,作为函数值返回。

例如,主函数中给出了4名学生的数据,则程序运行的结果为:第1门课程的平均分是:76.125000。

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

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>
typedef struct
    char num[8];
    double score[2];
} STU;
double fun(STU std[],int n)
{
    int i;
    /**********found**********/
    double sum;
    for(i=0; i<n; i++)
    {
        /**********found**********/
        sum += std[i].score[1]; 
    }
    return sum/n;
}
main()
{
    STU std[]={"N1001",76.5,82.0 ,"N1002",66.5,73.0,
                      "N1005",80.5,66.0,"N1006",81.0,56.0};
    printf("第1门课程的平均分是:%lf\n", fun(std,4));
    system("pause");
}


共 18 分 

第43题

请编写函数proc,其功能是:判断形参n中的正整数是几位数(输入数据的位数不超过4位),并将结果通过函数值返回。

例如:若输入的数据为123,则输出结果为:输入的数字是3位。

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
#include <stdio.h>
#include <stdlib.h>
void NONO();
int proc(int n)
{
     int t=0;
     if(①)
     {
          ②;
     }
     else if(③)
     {
          ④;
     }
     else if(⑤)
     {
          ⑥;
     }
     else
     {
           ⑦;
     }
     return t;
}
main()
{
    int n, place;
    do
    {
        printf("请输入一个4位以内的正整数:");
        scanf("%d", &n);
    }
    while (n<0 || n>9999);
    place=proc(n);
    printf("输入的数字是%d位\n", place);
    NONO();
    system("pause");
}
void NONO()
{/* 本函数用于打开文件,输入数据,
 调用函数,输出数据,关闭文件。*/
    FILE *rf,*wf;
    int i, n, place;
    rf=fopen("in.dat","r");
    wf=fopen("out.dat","w");
    for( i=0; i<8; i++ )
    {
        fscanf(rf, "%d ", &n);
        place=proc(n);
        fprintf(wf, "%d\n", place);
    }
    fclose(rf);
    fclose(wf);
}
共 24 分