试题

计算机二级《C语言》冲刺模拟题及答案

时间:2024-07-14 00:51:50 试题 我要投稿

2016年计算机二级《C语言》冲刺模拟题及答案

  为了帮助考生们更好、更有准备地参加计算机二级考试,下面百分网小编为大家搜索整理了关于计算机二级《C语言》冲刺模拟题及答案,欢迎参考练习,希望对大家备考有所帮助!想了解更多相关信息请持续关注我们应届毕业生考试网!

  一、选择题

  1.若有以下数组说明,则i=10;a[a[i]]元素数值是(C )。

  int a[12]={1,4,7,10,2,5,8,11,3,6,9,12};

  A、10

  B、9

  C、6

  D、5

  先算a[a[i]]内层的a[i],由于i=10,因此a[i]即a[10].

  a[10]对应下面数组中的元素为9. 因此a[a[i]]即为a[9]

  a[9]对应下面数组中的元素为6. 因此a[9]即为6

  2.若有说明:int a[][3]={{1,2,3},{4,5},{6,7}}; 则数组a的第一维的大小为: ( B )

  A、2

  B、3

  C、4

  D、无确定值

  5 7

  D、3 6 9

  二维数组的一维大小,即指二维数组的行数,在本题中,按行对二维数组赋值,因此内层有几个大括号,数组就有几行

  3.对二维数组的正确定义是(C )

  详见教材P149~152,二维数组的定义、初始化

  类型符 数组名 [常量表达式][常量表达式]

  二维数组可以看做是矩阵

  类型符是指数组中数组元素的类型;数组名要符合标识符命名规则;第一个常量表达式是指数组的行数;第二个常量表达式是指数组的列数;常量表达式的值只能是整数,不可以是变量,而且从1开始计数。

  一维数组初始化时可以省略数组长度

  二维数组初始化时可以省略行数,但不能省略列数

  选项A,B,都省略了列数

  选项D,不符合二维数组定义的一般形式,行、列常量表达式应该放在不同的[]中

  A、int a[ ][ ]={1,2,3,4,5,6};

  B、int a[2] []={1,2,3,4,5,6};

  C、int a[ ] [3]={1,2,3,4,5,6};

  D、int a[2,3]={1,2,3,4,5,6};

  4.已知int a[3][4];则对数组元素引用正确的是__C___

  A、a[2][4]

  B、a[1,3]

  C、a[2][0]

  D、a(2)(1)

  详见教材P150,数组元素的引用

  数组名[下标] [下标]

  引用数组元素时,[ ]中的下标为逻辑地址下标,只能为整数,可以为变量,且从0开始计数

  第一个[下标]表示行逻辑地址下标,第二个[下标]表示列逻辑地址下标。

  本题图示详见P149图6.7

  因此a的行逻辑地址范围0~2;a的列逻辑地址范围0~3;

  选项A,列逻辑地址下标超过范围

  选项B,D,的引用形式不正确。

  5.C语言中函数返回值的类型是由 A 决定的.

  A、函数定义时指定的类型

  B、 return语句中的表达式类型

  C、 调用该函数时的实参的数据类型

  D、形参的数据类型

  6. 在C语言中,函数的数据类型是指(A )

  A、 函数返回值的数据类型

  B、 函数形参的数据类型

  C、 调用该函数时的实参的数据类型

  D、任意指定的数据类型

  7.在函数调用时,以下说法正确的是( B )

  A、函数调用后必须带回返回值

  B、实际参数和形式参数可以同名

  C、函数间的数据传递不可以使用全局变量

  D、主调函数和被调函数总是在同一个文件里

  8. 在C语言中,表示静态存储类别的关键字是: ( C )

  A、 auto

  B、 register

  C、static

  D、extern

  9.未指定存储类别的变量,其隐含的存储类别为(A )。

  A、auto

  B、static

  C、extern

  D、register

  10. 若有以下说明语句:

  struct student

  { int num;

  char name[ ];

  float score;

  }stu;

  则下面的叙述不正确的是: (D )

  A、 struct是结构体类型的关键字

  B、 struct student 是用户定义的结构体类型

  C、 num, score都是结构体成员名

  D、 stu是用户定义的结构体类型名

  11.若有以下说明语句:

  struct date

  { int year;

  int month;

  int day;

  }brithday;

  则下面的叙述不正确的是__C___.

  A、 struct是声明结构体类型时用的关键字

  B、 struct date 是用户定义的结构体类型名

  C、 brithday是用户定义的结构体类型名

  D、year,day 都是结构体成员名

  12. 以下对结构变量stul中成员age的非法引用是 B

  struct student

  { int age;

  int num;

  }stu1,*p;

  p=&stu1;

  A、 stu1.age

  B、 student.age

  C、 p->age

  D、(*p).age

  13.设有如下定义:

  struck sk

  { int a;

  float b;

  }data;

  int *p;

  若要使P指向data中的a域,正确的赋值语句是 C

  A、 p=&a;

  B、 p=datA、a;

  C、p=&datA、a;

  D、*p=datA、a;

  14.设有以下说明语句:

  typedef struct stu

  { int a;

  float b;

  } stutype;

  则下面叙述中错误的是( D )。

  A、struct是结构类型的关键字

  B、struct stu是用户定义的结构类型

  C、a和b都是结构成员名

  D、stutype是用户定义的结构体变量名

  15.语句int *p;说明了 C 。

  A、p是指向一维数组的指针

  B、p是指向函数的指针,该函数返回一int型数据

  C、p是指向int型数据的指针 // 指针的定义教材P223

  D、p是函数名,该函数返回一指向int型数据的指针

  二、程序填空题

  1下列给定程序中,函数fun的功能是:在形参ss所指字符串数组中查找与形参t所指字符串相同的串,找到后返回该串在字符串数组中的位置(即下标值),若未找到则返回-1。ss所指字符串数组中共有N个内容不同的字符串,且串长小于M。

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

  注意:部分源程序给出如下。

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

  试题程序:

  参考解析:

  【参考答案】

  (1)N (2)i (3)一1

  【考点分析】

  本题考查:for循环语句;函数返回值;if语句条件表达式。

  【解题思路】

  填空l:变量i是循环变量,它的取值范围是0一N。

  填空2:如果ss所指字符串数组中的字符串与t所指字符串相同,则返回其下标值,即return i;,否则返回一1,即return一1;o

  填空3:在main函数中输出最后结果,判断函数返回值n,如果n=一1,说明没有找到,否则输出n。

  三、程序改错题

  2下列给定程序中函数fun的功能是:通过某种方式实现两个变量值的交换,规定不允许增加语句和表达式。

  例如,变量a中的值原为8,b中的值原为3,程序运行后a中的值为3,b中的值为8。

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

  注意:不要改动main函数,不得增行或删行,也不得更

  改程序的结构!

  试题程序:

  参考解析:

  【参考答案】

  (1)t=*x;*X=Y;(2)return(t);或return t;

  【考点分析】

  本题考查:指针型变量的使用;通过return语句完成函数值的返回。

  【解题思路】

  首先,定义变量t作为中间变量,然后进行数据交换,注意参数x是指针变量,交换时应使用*x,最后确定返回值;根据代码b=fun(8a'b),可以知道返回值将赋给变量b,而b中应存放交换前*x中的值,所以函数应返回变量t。

  四、程序设计题

  3规定输入的字符串中只包含字母和*号。编写函数fun,其功能是:删除字符串中所有的*号。编写函数时,不得使用c语言提供的字符串函数。

  例如,字符串中的内容为“****A*BC*DEF*G*******”,删除后,字符串中的内容应当是“ABCDEFG”。

  注意:部分源程序给出如下。

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

  试题程序:

  参考解析:

  【参考答案】

  【考点分析】

  本题考查:删除字符串中所有*号,需用循环语句遍历字符串,用判断语句判断字符是否为*号,由此可以决定该程序应使用循环判断结构。

  【解题思路】

  用循环操作从字符串开始往后逐个进行比较,若不是要删除的字符(用if(aEi]!=’*’)来控制)则保留。变量i和j用来表示原字符串的下标和删除*号后新字符串的下标。注意,下

  标变量J要从0开始,最后还要加上字符串结束标识‘\0’。

【计算机二级《C语言》冲刺模拟题及答案】相关文章:

2016计算机二级《C语言》模拟题及答案09-08

计算机二级《C语言》考试冲刺试题及答案202410-30

2015年全国计算机二级考试《C语言》冲刺模拟题(三)答案07-22

计算机二级C++模拟题及答案05-12

2017计算机二级考试《C语言》考前冲刺题及答案07-06

2016计算机二级C语言考前冲刺题(含答案)07-23

2016年计算机二级考试C语言冲刺模拟题05-11

2017计算机二级C++模拟题及答案06-22

计算机二级《C语言》试题及答案201610-30

计算机二级C语言模拟试题及答案07-04