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

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


第1题

下列叙述中正确的是

共 1 分 

第2题

在快速排序法中,每经过一次数据交换(或移动)后

共 1 分 

第3题

线性表的长度为n。在最坏情况下,比较次数为n-1的算法是

共 1 分 

第4题

设某棵树的度为3,其中度为2、1、0的结点个数分别为3、4、15。则该树中总结点数为

共 1 分 

第5题

下列叙述中正确的是

共 1 分 

第6题

软件系统总体结构图的作用是

共 1 分 

第7题

下面不属于结构化程序设计风格的是

共 1 分 

第8题

将数据库的结构划分成多个层次,是为了提高数据库的物理独立性和

共 1 分 

第9题

学院的每名教师只能属于一个系,则实体系和实体教师间的联系是

共 1 分 

第10题

定义学生选修课程关系模式SC(S#,Sn,C#,Cn,G)(其属性分别为学号、姓名、课程号、课程名、成绩)该关系的范式最高达到

共 1 分 

第11题

在C语言中,以下说法不正确的是(    )。

共 1 分 

第12题

一个C语言程序是由(    )。

共 1 分 

第13题

以下标识符不是关键字的是(    )。

共 1 分 

第14题

下列选项中,不能作为合法常量的是(    )。

共 1 分 

第15题

以下不合法的用户标识符是(    )。

共 1 分 

第16题

下列叙述中正确的是(    )。

共 1 分 

第17题

执行以下程序段后,w的值为(    )。

1
2
int  w='A', x=14, y=15; 
w=((x || y)&&(w<'a'));
共 1 分 

第18题

设有定义:"long x=123450L;",则以下能够正确输出变量x的是(    )。

共 1 分 

第19题

已有定义int a=3;和输出语句printf("%8x",a);以下正确的叙述是(    )。

共 1 分 

第20题

若有定义int x,y; 并已正确给变量赋值,则下列选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的

是(    )。

共 1 分 

第21题

若a、b、c、d都是int型变量且都已经正确赋初值,则以下不正确的赋值语句是(    )。

共 1 分 

第22题

有以下程序

1
2
3
4
5
#define F(X,Y)(X)*(Y)
main()
{int a=3, b=4;
printf("%d\n", F(a++, b++));
}

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

共 1 分 

第23题

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

1
2
3
4
main()
{int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a;
printf("%d\n",*(p+2));
}
共 1 分 

第24题

有以下程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
main()
{int a=6,b=7,m=1;
switch(a%2)
{case 0:m++;break;
case 1:m++;
switch(b%2)
{defaut:m++;
case0:m++;break;
}
}
printf("%d\n",m);
}

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

共 1 分 

第25题

有以下程序

1
2
3
4
5
6
7
#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));}

程序的运行结果是(    )。

共 1 分 

第26题

关于字符常量,以下叙述正确的是(    )。

共 1 分 

第27题

下面函数调用语句含有实参的个数为(    )。

1
func((exp1,exp2),(exp3,exp4,exp5));
共 1 分 

第28题

语句int(*ptr)()的含义是(    )。

共 1 分 

第29题

以下不正确的定义语句是(    )。

共 1 分 

第30题

若有以下定义,则对数组元素的正确引用是(    )。

1
int a[5],*p=a;
共 1 分 

第31题

下列字符数组初始化语句中,不正确的是(    )。

共 1 分 

第32题

下列程序的运行结果为(    )。

1
2
3
4
5
6
7
8
9
10
11
12
13
#include<stdio.h>
void abc(char*str)
{int a,b,i,j;
for(i=j=0;str[i]!='\0';i++)
if(str[i]!='a')
str[j++]=str[i];
str[j]='\0';
}
void main()
{char str[]="abcdef";
abc(str);
printf("str[]=%s",str);
}
共 1 分 

第33题

阅读下面程序,程序执行后的结果为(    )。

1
2
3
4
5
6
#include "stdio.h"
main()
{char *str="abcdefghijklmnopq";
while(*str++!='e');
printf("%c\n",*str);
}
共 1 分 

第34题

设有如下的程序段:

1
2
3
char str[]="HelloWorld";
char*ptr;
ptr=str;

执行上面的程序段后,*(ptr+10)的值为(    )。

共 1 分 

第35题

下述语句中,在字符串s1和s2相等时显示"they are Equal"的是(    )。

共 1 分 

第36题

在一个C源程序文件中,定义一个只允许本源文件中所有函数使用的全局变量的存储类别是(    )。

共 1 分 

第37题

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

1
2
3
4
5
6
7
#include <stdio.h>
void prt (int  *x, int  *y, int  *z)
{printf("%d,%d,%d\n",++*x,++*y,*(z++));}
main()
{int a=10,b=40,c=20;
prt (&a,&b,&c);
prt (&a,&b,&c);}
共 1 分 

第38题

设有以下说明,则不正确的叙述是(    )。

1
2
3
4
5
union un
{int a;
char b;
float c;
}arr;
共 1 分 

第39题

若x=4,y=5,则x&y的结果是(    )。

共 1 分 

第40题

下列关于C语言数据文件的叙述中正确的是(    )。

共 1 分 

第41题

给定程序中,函数fun的功能是用函数指针指向要调用的函数,并进行调用。规定在__2__处使fa指向函数f1,在__3__处使fb指向函数f2。当调用正确时,程序输出:

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

请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。

注意:源程序存放在考生文件夹下的BLANK.C中。

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

给定源程序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include  <stdio.h>
double f1(double x)
{return x*x;}
double f2(double x, double y)
{return x*y;}
double fun(double a, double b)
{
/**********found**********/
  __1__ (*f)();
  double r1, r2;
/**********found**********/
  f = __2__ ;   /* point fountion f1 */
  r1 = f(a);
/**********found**********/
  f = __3__ ;   /* point fountion f2 */
  r2 = (*f)(a, b);
  return r1 + r2;
}
main()
{double x1=5, x2=3, r;
  r = fun(x1, x2);
  printf("\nx1=%f, x2=%f, x1*x1+x1*x2=%f\n",x1, x2, r);
}
共 18 分 

第42题

给定程序MODI1.C是建立一个带头结点的单向链表,并用随机函数为各结点赋值。函数fun的功能是将单向链表结点(不包括头结点)数据域为偶数的值累加起来,并且作为函数值返回。

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

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

给定源程序:

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
#include <stdio.h>
#include <stdlib.h>
typedef struct aa
{int data; struct aa *next;}NODE;
int fun(NODE *h)
{int sum = 0 ;
  NODE *p;
/***********found**********/
  p=__1__;
  while(p)
  {if(p->data%2==0)
     sum +=p->data;
/***********found**********/
     p=__2__;
  }
  return sum;
}
NODE *creatlink(int n)
{NODE *h, *p, *s;
   int i;
   h=p=(NODE *)malloc(sizeof(NODE));
   for(i=1; i<=n; i++)
   {s=(NODE *)malloc(sizeof(NODE));
      s->data=rand()%16;
      s->next=p->next;
      p->next=s;
      p=p->next;
   }
   p->next=NULL;
   return h;
}
outlink(NODE *h, FILE *pf)
{NODE *p;
   p = h->next;
   fprintf(pf ,"\n\nTHE LIST :\n\n HEAD ");
   while(p)
   {fprintf(pf ,"->%d ",p->data); p=p->next;}
      fprintf (pf,"\n");
}
outresult(int s, FILE *pf)
{fprintf(pf,"\nThe sum of even numbers : %d\n",s);}
main()
{NODE *head; int even;
   head=creatlink(12);
   head->data=9000;
   outlink(head , stdout);
   even=fun(head);
   printf("\nThe result :\n"); outresult(even, stdout);
}
共 18 分 

第43题

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

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

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

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
56
57
58
59
60
61
62
63
64
65
66
67
#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);
}
共 24 分 

试卷信息