最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

全国计算机等级考试2019年二级C语言程序设计模拟试题2_真题无答案

来源:动视网 责编:小OO 时间:2025-09-28 19:29:57
文档

全国计算机等级考试2019年二级C语言程序设计模拟试题2_真题无答案

全国计算机等级考试2019年二级C语言程序设计模拟试题2(总分100,做题时间120分钟)选择题(每题1分,共40分)1. 下列叙述中正确的是(   )。A 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D 循环队列中元素的个数是由队头指针和队尾指针共同决定2. 下列各序列中不是堆的是(   )。A (91,85,53,36,47,30,24,12)B (9
推荐度:
导读全国计算机等级考试2019年二级C语言程序设计模拟试题2(总分100,做题时间120分钟)选择题(每题1分,共40分)1. 下列叙述中正确的是(   )。A 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D 循环队列中元素的个数是由队头指针和队尾指针共同决定2. 下列各序列中不是堆的是(   )。A (91,85,53,36,47,30,24,12)B (9


全国计算机等级考试2019年二级C语言程序设计模拟试题2

(总分100, 做题时间120分钟)

选择题

(每题 1 分, 共 40 分)

1. 

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

循环队列有队头和队尾两个指针, 因此, 循环队列是非线性结构

在循环队列中, 只需要队头指针就能反映队列中元素的动态变化情况

在循环队列中, 只需要队尾指针就能反映队列中元素的动态变化情况

循环队列中元素的个数是由队头指针和队尾指针共同决定

2. 

下列各序列中不是堆的是(     )。

(91,85,53,36,47,30,24,12)

(91,85,53,47,36,30,24,12)

(47,91,53,85,30,12,24,36)

(91,85,53,47,30,12,24,36)

3. 

设循环队列为 Q(1: m), 其初始状态为 front=rear=m。 经过一系列入队与退队运算后, front=15, rear=20。现要在该循环队列中寻找最大值的元素, 最坏情况下需要比较的次数为(     )。

4

6

m-5

m-6

4. 

定义无符号整数类为 UInt, 下面可以作为类 UInt 实例化值的是(     )。

-369

369

**

整数集合{1,2,3,4,5}

5. 

一个栈的初始状态为空。 现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E 依次入栈, 然后再依次出栈, 则元素出栈 f 顺序是(     )。

12345ABCDE

EDCBA54321

ABCDE12345

54321EDCBA

6. 

该系统结构图的最大扇出数是(     )。

n

1

3

4

7. 

软件设计中模块划分应遵循的准则是(     )。

低耦合低内聚

高耦合高内聚

低耦合高内聚

内聚与耦合无关

8. 

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

数据约束

数据类型

关系运算

查询

9. 

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

逻辑设计阶段

需求分析阶段

概念设计阶段

物理设计阶段

10. 

一个运动队有多个队员, 一个队员仅属于一个运动队, 一个队一般都有一个教练, 则实体运动队和队员的联系是(     )。

一对多

一对一

多对一

多对多

11. 

以下叙述中错误的是(     )。

使用三种基本结构构成的程序只能解决简单问题

结构化程序由顺序、 分支、 循环三种基本结构组成

C 语言是一种结构化程序设计语言

结构化程序设计提倡模块化的设计方法

12. 

C 源程序中不能表示的数制是(     )。

十进制

八进制

二进制

十六进制

13. 

关于 C 语言标识符, 以下叙述错误的是(     )。

标识符可全部由数字组成

标识符可全部由下划线组成

标识符可全部由小写字母组成

标识符可全部由大写字母组成

14. 

若有定义语句:

int x=10;

则表达式 x-=x+x 的值为(     )。

10

-20

0

-10

15. 

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

分支结构是根据算术表达式的结果来判断流程走向的

在 C 语言中, 逻辑真值和假值分别对应 1 和 0

对于浮点变量 x 和 y, 表达式: x==y 是非法的, 会出编译错误

关系运算符两边的运算对象可以是 C 语言中任意合法的表达式

16. 

以下合法的转义字符是(     )。

'\\x41'

'\\0x41'

'\\X41'

'\\0X41'

17. 

设有定义: double x=2.12;, 以下不能完整输出变量 x 值的语句是(     )。

printf("x=%5.0f\\n",x);

printf("x=%f\\n",x);

printf("x=%1f\\n",x);

printf("x=%0.5f\\n",x);

18. 

设有定义:

int a,b; float x,y;

则以下选项中对语句所作的注释叙述错误的是(     )。

scanf("%d%d",&a,&b,&x);/*多余的输入项不能获得输入数据*/

scanf("%d%d%f",&a,&b);/* 多余的格式符%f 完全不起作用*/

scanf("%d%f%d",&a,&b,&x);/*输入项与格式符类型不匹配, 变量 b 和 x 得不到正确的输入数据*/

scanf("Input:%d%d",&a,&b);/*格式串中允许加入格式符以外的字符串*/

19. 

有以下程序

#include 

main()

{

   int x=1, y=0;

   if (!x) y++;

   else if (x==0)

      if (x) y+=2;

      else y+=3;

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

}

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

0

2

1

3

20. 

有以下程序

#include 

main()

{

   int a,b;

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

   {

      scanf("%d", &b);

      switch(b)

      {

         default: printf("%d,", ++b);

         case 1: printf("%d,", ++b);

         case 2: printf("%d,", ++b);

      }

   }

}

执行时输入: 1 2 3 <回车>, 则输出结果是(     )。

2,3,3,4,5,6,

2,3,4,

2,2,3,4,4,4,

2,3,4,3,4,4,

21. 

有以下程序

#include 

main()

{

   int a=-1, b=-1;

   for(; ++a;)++b;

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

}

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

0,-1

0,0

-1,-1

结果不确定

22. 

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

三种循环 for、 while、 do-while 可以互相嵌套

循环发生嵌套时, 最多只能两层

循环嵌套时, 如果不进行缩进形式书写代码, 则会有编译错误

for 语句的圆括号中的表达式不能都省略掉

23. 

有以下程序

#include 

main()

{

   int a=1,b=1;

   while(a--)

      b--;

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

}

程序的运行结果是(     )。

-1,-1

0,0

-1,0

1,1

24. 

以下数组定义中错误的是(     )。

int x[2][3]={1,2,3,4,5,6};

int x[][3]={0};

int x[][3]={{1,2,3},{4,5,6}};

int x[2][3]={{1,2},{3,4},{5,6}};

25. 

有以下程序

#include 

main()

{

   char *p1=0;

   int *p2=0;

   float *p3=0;

   printf("%d,%d,%d\\n",sizeof(p1),sizeof(p2),sizeof(p3));

}

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

4,4,4

1,4,8

1,2,4

1,1,4

26. 

字符数组 a 和 b 中存储了两个字符串, 判断字符串 a 和 b 是否相等, 应当使用的是(     )。

if(strcmp(a,b)==0)

if(strcpy(a,b))

if(a==b)

if(a=b)

27. 

C 语言程序的模块化通过以下哪个选项来实现? (     )

函数

变量

程序行

语句

28. 

有以下程序

#include 

int m1(int x,int y)

{

   return x<=y ? x :y;

}

int m2(int x,int y)

{

   return x<=y ? y :x;

}

int fun(int a,int b)

{

   return a+b;

}

main()

{

   int x=2,y=3,z=1;

   printf("%d\\n", fun(m1(x,y),m2(y,z)));

}

程序的运行结果是(     )。

5

6

4

3

29. 

以下叙述正确的是(     )。

C 语言函数不可以单独编译

C 语言程序是由过程和函数组成的

C 语言函数可以嵌套调用, 例如: fun(fun(x))

C 语言中除了 main 函数, 其他函数不可作为单独文件形式存在

30. 

有以下程序

#include 

int f(int x);

main()

{

   int n=1,m;

   m=f(f(f(n)));

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

}

int f(int x)

{

   return x*2;

}

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

4

2

8

1

31. 

有以下程序:

#include 

void fun(int a[],int n)

{

   int i,t;

   for(i=0;i    {

      t=a[i];

      a[i]=a[n-1-i];

      a[n-1-i]=t;

   }

}

main()

{

   int k[10]={1,2,3,4,5,6,7,8,9,10},i;

   fun(k,5);

   for(i=2;i<8;i++)printf("%d",k[i]);

   printf("\\n");

}

程序运行的结果是(     )。

345678

876543

1098765

321678

32. 

若有定义语句:

int year=2009, *p=&year ;

以下不能使变量 year 中的值增至 2010 的语句是(     )。

(*p)++;

*p++;

++(*p);

*p+=1;

33. 

有以下程序

#include 

#include 

void fun( double *p1,double *p2,double *s)

{

   s=(double *)calloc( 1,sizeof(double) );

   *s=*p1 + *( p2+1 );

}

main()

{

   double a[2]={ 1.1, 2.2 }, b[2]={ 10.0, 20.0 }, *s=a;

   fun( a, b, s );

   printf( "%5.2f\\n", *s);

}

程序的输出结果是(     )。

**

**

**

**

34. 

以下叙述中错误的是(     )。

当在程序的开头包含头文件 stdio.h 时, 可以给指针变量赋 NULL

函数可以返回地址值

改变函数形参的值, 不会改变对应实参的值

可以给指针变量赋一个整数作为地址值

35. 

设 p 是指针变量, 语句 p=NULL;等价于(     )。

p='0';

p='';

p="";

p=0;

36. 

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

在 C 语言中, 预处理命令行都以“#”开头

预处理命令行必须位于 C 源程序的起始位置

#include 必须放在 C 程序的开头

C 语言的预处理不能实现宏定义和条件编译的功能

37. 

若要使用 C 数学库中的 sin 函数, 需要在源程序的头部加上

#include 

关于引用数学库, 以下叙述正确的是(     )。

将数学库中 sin 函数的源程序插入到引用处, 以便进行编译链接

将数学库中 sin 函数链接到编译生成的可执行文件中, 以便能正确运行

通过引用 math.h 文件, 说明 sin 函数的参数个数和类型, 以及函数返回值类型

实际上, 不引用 math.h 文件也能正确调用 sin 函数

38. 

有以下程序

#include 

typedef struct stu

{

   char name[10];

   char gender;

   int score;

} STU;

void f(STU a, STU *b)

{

   *b=a;

   printf("%s,%c,%d,", b->name, b->gender, b->score);

}

main()

{

   STU a={"Zhao", 'm', 290}, b={"Qian", 'f', 350};

   f(a,&b);

   printf("%s,%c,%d\\n", b.name, b.gender, b.score);

}

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

Zhao,m,290,Zhao,m,290

Qian,f,350,Zhao,m,290

Qian,f,350,Qian,f,350

Zhao,m,290,Qian,f,350

39. 

下面结构体的定义语句中, 错误的是(     )。

struct ord {int x; int y; int z; } struct ord a;

struct ord {int x; int y; int z; }; struct ord a;

struct ord {int x; int y; int z; } a;

struct {int x; int y; int z; } a;

40. 

有以下程序

#include 

typedef struct {int b, p;} A;

void f(A c)

{

   int j;

   c.b+=1;

   c.p+=2;

}

void main()

{

   int i;

   A a={1,2};

   f(a);

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

}

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

2,4

1,2

1,4

2,3

程序填空题

41. 

给定程序中, 函数 fun 功能是: 找出 100~999 之间(含 100 和 999) 所有整数中各位上数字之和为 x(x 为一正整数) 的整数, 然后输出; 符合条件的整数个数作为函数值返回。

例如, 当 x 值为 5 时, 100~999 之间各位上数字之和为 5 的整数有: 104、 113、 122、 131、 140、 203、 212、221、 230、 302、 311、 320、 401、 410、 500。 共有 15 个。 当 x 值为 27 时, 各位数字之和为 27 的整数是: 999。只有 1 个。

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

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

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

/**********code.c**********/

#include 

int fun(int x)

{

   int n, s1, s2, s3, t;

   n=0;

   t=100;

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

   while(t<=①______)

   {

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

      s1=t%10; s2=(②______)%10;

      s3=t/100;

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

      if(s1+s2+s3==③______)

      {

         printf("%d ",t);

         n++;

      }

      t++;

   }

   return n;

}

void main()

{

   int x=-1;

   while(x<0)

   {

      printf("Please input(x>0): ");

      scanf("%d",&x);

   }

   printf("\\nThe result is: %d\\n",fun(x));

}

/**********-code.c**********/

程序修改题

42. 

绐定程序 MODI1.C 中函数 fun 的功能是: 从低位开始取出长整型变量 s 中偶数位上的数, 依次构成一个新数放在 t 中。 高位仍在高位, 低位仍在低位。

例如, 当 s 中的数为: 7654321 时, t 中的数为: 2。

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

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

/**********code.c**********/

#include

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

void fun (long s, long t)

{

   long sl=10;

   s /= 10;

   *t=s % 10;

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

   while (s<0)

   {

      s=s/100;

      *t=s%10*sl + *t;

      sl=sl * 10;

   }

}

void main()

{

   long s, t;

   printf("\\nPlease enter s:");

   scanf("%ld", &s);

   fun(s, &t);

   printf("The result is: %ld\\n", t);

}

/**********-code.c**********/

程序设计题

43. 

学生的记录由学号和成绩组成, N 名学生的数据已在主函数中敲入结构体数组 s 中, 请编写函数 fun, 它的功能是: 按分数的高低排列学生的记录, 高分在前。注意: 部分源程序给出如下。 请勿改动主函数 main 和其它函数中的任何内容, 仅在函数 fun 的花括号中填入你编写的若干语句。

/**********code.c**********/

#include

#define N 16

typedef struct

{

   char num[10];

   int s;

}STREC;

void fun( STREC a[] )

{

   STREC tmp;

   int i,j;

   for(i=1; i      for(j=0; j      {

         /* 请按题目要求, 完成一下代码*/

      }

}

main()

{

   STREC s[N]={{"GA005",85},{"GA003",76},{"GA002",69},{"GA004",85},{"GA001",91},{"GA007",72},{"GA008",},{"GA006",87},{"GA015",85},{"GA013",91},{"GA012",},{"GA014",91},{"GA011",66},{"GA017",},{"GA018",},{"GA016",72}};

   int i;

   FILE *out ;

   fun(s);

   printf("The data after sorted :\\n");

   for(i=0;i   {

      if((i)%4==0 )printf("\\n");

      printf("%s %4d ",s[i].num,s[i].s);

   }

   printf("\\n");

   out=fopen("out.dat

   for(i=0;i   {

      if( (i)%4==0 && i) fprintf(out, "\\n");

      fprintf(out, "%4d ",s[i].s);

   }

   fprintf(out,"\\n");

   fclose(out) ;

}

/**********-code.c**********/

/**********indat**********/

/**********-indat**********/

/**********outdat**********/

    91      91       91       87

    85      85       85       76

    72      72       69       66

                        

/**********-outdat**********/

窗体顶端

窗体底端

文档

全国计算机等级考试2019年二级C语言程序设计模拟试题2_真题无答案

全国计算机等级考试2019年二级C语言程序设计模拟试题2(总分100,做题时间120分钟)选择题(每题1分,共40分)1. 下列叙述中正确的是(   )。A 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D 循环队列中元素的个数是由队头指针和队尾指针共同决定2. 下列各序列中不是堆的是(   )。A (91,85,53,36,47,30,24,12)B (9
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top