NCRE二级题库
考试简介
联系方式
C语言
选择题
填空题
改错题
编程题
Python
选择题
基本操作题
简单应用题
综合应用题
C语言选择题
练习二级选择题,点击选项即可查看结果
第91题. C语言中,if语句括号里面
if(5)
,下面描述正确的是()
A. 条件为假,不执行if内部代码
B. 条件为真,执行if内部代码
C. 编译语法报错
D. 需要写成if(5==true)
正确选项:
解析:
C语言没有专门布尔类型,**非0即为真,0代表假**。5是非0整数,条件判定为真。if(0)条件为假。不要和其他语言混淆,任何非0数字、负数都会被判定逻辑真。
第92题. 下面转义字符代表回车,光标移动到本行开头的是()
A. \n
B. \r
C. \t
D. \b
正确选项:
解析:
\n换行,光标跳到下一行开头;\r回车,光标回到当前行最左侧;\t水平制表Tab;\b退格,光标向左回退一格。Windows文本文件换行是"\r\n"两个字符。
第93题. 若
int *p = NULL;
,以下哪行代码会造成程序段错误崩溃()
A. if(p == NULL)
B. int *q = p;
C. *p = 100;
D. p = &a;
正确选项:
解析:
NULL是空指针,表示不指向任何合法内存地址。对空指针做解引用*p,访问0地址内存,属于非法内存访问,直接程序崩溃。单纯指针赋值、判断是否等于NULL不会产生崩溃。
第94题. 下面关于strcmp函数说法正确的是()
A. strcmp比较字符串长度,长的字符串更大
B. 两个字符串完全相等时strcmp返回0
C. strcmp返回1代表两个字符串相等
D. strcmp会修改传入的字符串内容
正确选项:
解析:
strcmp按照ASCII码逐字符对比,不是比较字符串长度。相等返回0;第一个字符串大于第二个返回正数;小于返回负数。函数只读字符串,不会修改原字符串。
第95题. C语言函数参数传递,默认传递方式是()
A. 地址传递
B. 引用传递
C. 值传递,拷贝实参副本给形参
D. 双向传递
正确选项:
解析:
C语言全部参数默认值传递,调用时拷贝一份实参的值给形参。函数内部修改形参,不会影响外部实参。想要修改外部变量,需要主动传入变量地址即模拟地址传递;引用传递是C++特性,C语言不存在。
第96题. 若
int a[6]={2,4,6,8,10,12},*p=a;
,表达式*(p+3)的值是()
A. 6
B. 8
C. 10
D. 4
正确选项:
解析:
p指向数组首元素a[0]。指针算术不是直接加字节,按指向的数据类型偏移。p+3向后跳过3个int元素,等价&a[3];*(p+3)等价a[3],数组a[3]=8。记住公式:*(p+i)完全等价a[i]。
第97题. C语言中continue语句的作用是()
A. 跳出整个循环,结束循环
B. 结束本次循环,跳过循环体内后续代码,直接进入下一轮条件判断
C. 跳出switch分支
D. 终止整个程序运行
正确选项:
解析:
continue只能用于循环。遇到continue,本轮循环剩下代码不再执行,直接跳回循环条件判断。break才是跳出本层循环;continue不能直接用在switch语句内部。
第98题. 下面关于共用体union描述正确的是()
A. 每个成员拥有独立内存空间
B. 所有成员共享同一块内存,大小等于最大成员字节数
C. union内存大小等于所有成员字节相加
D. 修改一个成员不会影响其他成员的值
正确选项:
解析:
共用体union所有成员共用同一块内存空间,占用内存取占用字节最多的成员。修改其中任意一个成员,会覆盖其他成员数据。struct结构体各个成员各自独立分配内存。
第99题. 表达式
!(3>2 || 5<1)
的运算结果是()
A. 1
B. 0
C. ‑1
D. 随机值
正确选项:
解析:
先算括号内部:3>2为真,||逻辑或发生短路,5<1不再运算,括号整体结果为1。!做逻辑取反,!1得到0。德摩根定律:!(A||B)等价!A&&!B,可以用来验算逻辑表达式。
第100题. 函数形参写为
int arr[]
,编译器实际处理等价于()
A. int arr[100]
B. int *arr
C. const int arr
D. int (*arr)[ ]
正确选项:
解析:
一维数组作为函数形参,编译器自动把数组退化为指针int*。方括号里面写任何数字都会被编译器直接忽略。函数内部sizeof(arr)得到的是指针所占字节,不是原始数组总大小。
上一页
1
…
8
9
10
11
12
…
21
下一页
第 10 / 21 页,共 205 题