2020年度钻石C++C--《博学谷》

1.以下标示符中命名合法的是A

A、__A__

B、ab.c

C、@rp

D、2Y_

2.设 a 和 b 均为 double 型变量,且a=5.5、b=2.5,则表达式(int)a + b / b的值是D

 

A、6.500000

B、6

C、5.500000

D、6.000000

3.C语言中的基本数据类型包括D

 

A、整型、浮点型、字符型、逻辑型、枚举

B、整型、浮点型、字符型、枚举

C、整型、浮点型、字符型、逻辑型

D、整型、浮点型、字符型

4.一个C程序的执行一般都是从A

 

A、本程序的main()函数开始,到main()函数结束

B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

C、本程序的main()函数开始, 到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序main()函数结束

5.对两个字符数组a和b进行初始化 char a[]="ABCDEF"; char b[]={'A', 'B', 'C', 'D', 'E', 'F'}; 则以下叙述正确的是D

 

A、a与b数组完全相同

B、a与b数组大小相同

C、a和b中都存放字符串

D、数组a比数组b长度长

6.若定义int a[3][4] = { 0 }; 则对a数组元素的非法引用是B

 

A、a[0][2*1]

B、a[1][4]

C、a[4-2][0]

D、a[2][3]

7.下面不正确的字符串常量是A

 

A、'abc'

B、"12'12"

C、"0"

D、" "

8.在多层嵌套的条件结构语句 if-else 中, else 子句总是与(  B  )配对

 

A、其距离最近的尚未配对的if

B、其之前最近的尚未配对的if

C、其之后最近的尚未配对的if

D、其同一行上的尚未配对的if

9.x、y、z被定义为 int 型变量,若从键盘给x、y、z输入数据,正确的输入语句是B

 

A、printf("%d%d%d", &x, &y, &z);

B、scanf("%d%d%d", &x, &y, &z);

C、scanf("%d%d%d", x, y, z);

D、printf("%d%d%d", x, y, z);

10.设 int x = 1, y = 1; 表达式 (!x || y--)的值是B

 

A、0

B、1

C、2

D、-1

11.若变量a已正确定义,以下非法的表达式是B

 

A、a /= b + c

B、a % (4.0)

C、a = 1 / 2 * ( x = y = 20, x * 3)

D、a = b = c

12.若有数组定义int a[] = {1,3,5,4,9,2,7,6,8,10}; int i = 4; 则 a[a[i]] 元素的值等于D

 

A、4

B、9

C、8

D、10

13.程序 char c[5] = {'a', 'b', '\0', 'c', '\0'};  printf("%s", c);的运行结果是B

 

A、'a''b'

B、ab

C、ab c

D、ab0c0

14.判断字符串 a 是否大于 b,应当使用D

 

A、if (a > b)

B、if (strcmp(a, b))

C、if (strcmp(b, a) > 0)

D、if (strcmp(a, b) > 0)

15.如果执行语句 for(int a = 0, b = 0; b != 100 && a < 5; a++) scanf("%d", &b); 那么scanf()函数最少执行(  D   )次

 

A、0

B、6

C、5

D、1

16.表示关系 12 <= x <= y 的C语言表达式为B

 

A、(12 <= x <= y)

B、(12 <= x) && (x <= y)

C、(12 <= x) <= y)

D、(12 <= x) || (x <= y)

17.使用语句 scanf("a=%s,b=%d", &a, &b);输入数据时,正确的数据输入是A

 

A、a=2.2,b=3

B、a=2.2 b=3

C、2.2 3

D、2.2,3

18.以下关于运算符优先顺序的描述中正确的是C

 

A、关系运算符 < 算术运算符 < 赋值运算符 < 逻辑与运算符

B、逻辑与运算符 < 关系运算符 < 算术运算符 < 赋值运算符

C、赋值运算符 < 逻辑与运算符 < 关系运算符 < 算术运算符

D、算术运算符 < 关系运算符 < 赋值运算符 < 逻辑与运算符

19.若 int x=0, y=3, z=3; 则以下表达式的值为 0 的是C

 

A、!x

B、 x < y ? 1 : 0

C、x / 2 && y != z

D、y = x || z % 2

20.

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

#include <stdio.h>

int main(void)

{

int a = 7 ,b = 5;

printf("%d\n",b=b/a)

return 0 ;

}

 

A、5

B、1

C、0

D、不确定

简答题

21.简述C语言程序的编译过程和每个阶段生成的目标文件4分

参考答案:

1)预处理:宏定义展开、头文件展开、条件编译等,同时将代码中的注释删除,这里并不会检查语法

2)编译:检查语法,将预处理后文件编译生成汇编文件

3)汇编:将汇编文件生成目标文件(二进制文件)

4)链接:C语言写的程序是需要依赖各种库的,所以编译之后还需要把库链接到最终的可执行程序中去

 

22.简述C语言标识符的命名规则3分

参考答案:

1标识符使用来标识源程序中的某个对象的名字的,一个标识符由字母、数字和下划线组成

2关键字可以定义变量、表达语句功能和对一些文件进行预处理,关键字已被编译系统本身使用,所以用户编写程序时不能够使用这些关键字来作为标识符,

 

23.字符数组与字符串是否相同?若不相同,有何区别?3分

参考答案:不相同,C语言中没有专门的字符串变量,如果要将一个字符串存放在变量中,必须使用字符数组,即用一个字符型数组来存放一个字符串,数组中每一个元素存放一个字符。字符串:必须以'\0'结尾字符数组:可以包含多个'\0'。

 

24.C语言中参数传递有什么特点?我们应当注意些什么?3分

参考答案:

1)数值传递:被调用函数中对形参的操作不影响主调用函数中的实参值。 
2)地址传递:可以通过被调用函数中对形参的操作来修改主调用函数中的实参值。

注意事项:用malloc 申请内存之后,应该立即检查指针值是否为NULL。防止使用指针值为NULL 的内存。

 

25.指针与地址有什么联系?在使用指针的过程中应注意哪些细节?指针类型对于程序设计有哪些意义?3分

参考答案:

1)指针保存了某个变量的地址,指针本身是一个变量,它也有自身的地址, 而指针的内容是某个变量的地址。注意细节: 要初始化、正确的传递地址方式、使用时要判断。

2)指针可以用来有效地表示复杂的数据结构,可以用于函数参数传递并达到更加灵活使用函数的目的.使C语言程序的设计具有灵活、实用、高效的特点。

最新文章

  1. 编译器开发系列--Ocelot语言6.静态类型检查
  2. Publication的 immediate_sync 属性
  3. C语言 第六章 多重循环
  4. (四)WebGIS中通过行列号来换算出多种瓦片的URL 之离线地图
  5. spark dataframe unionall
  6. mybatis批量插入数据到oracle
  7. GATK使用说明(一)
  8. linux基本命令学习笔记
  9. Mongodb使用总结
  10. Android 基于Netty的消息推送方案之字符串的接收和发送(三)
  11. android ListView和GridView拖拽移位实现代码
  12. Industry Engineer
  13. XML解析之SAX解析技术案例
  14. pytorch multi-gpu train
  15. 【Django基本命令002】
  16. sql server 将两列数据合并到一列 拼接
  17. Service_name 和Sid的区别
  18. BZOJ4280 : [ONTAK2015]Stumilowy sad
  19. Datastage重启服务
  20. CentOS 6.5 下搭建vsftp服务

热门文章

  1. 基于Ubuntu下以Docker方式gitlab软件的部署
  2. 玩转STM32MP157- 使用fbtft驱动 lcd st7735r
  3. R语言六种数据类型
  4. js笔记16
  5. js 获取系统当前时间,判断时间大小
  6. json串向后台传递数值自动四舍五入的问题
  7. 让你发布的nuget包支持源代码调试
  8. 使用 python 把一个文件生成 C 语言中的数组并保存到头文件中
  9. 使用curl断点续传下载文件
  10. springboot整合拦截器如何让其不拦截默认的访问路径