一、单选题
1、下列正确的标识符是(C)
A -a1
B a[i]
C a2_i
D 4L2
分析: 正确选项是 C,标识符只能由字母、下划线和数字组成 且不能以数字开头。标识符必须以字母打头,所以 A 选项 -a1 和 D 选项的 4L2 是错的。标识符中不能出现很多特殊字符如&&*/’-:;?()[]等等,所以 B 选项的 a[i] 也是错的,实际上他是一个数组的名字。此外标识符中不能包含空格,也不能用保留字,比如像 int i 也是错的,因为 int 属于保留字。
2、数组定义为int a[3] [2]={1,2,3,4,5,6},数组元素(B)的值为6
A a[3] [2]
B a[2] [1]
C a[1] [2]
D a[2] [3]
3、关于函数调用说法正确的是(D)
A 传值后对形参的修改会改变实参的值
B 传地址后实参和形参指向不同的对象
C 函数调用时参数从左到右通过栈传递
D 函数递归调用对堆栈的消耗较大
分析: 正确选项 D,函数调用时,如果传值,形参修改不会影响实参,A 错误;如果传址,形参和实参指向的是同一个对象,形参改变实参也随之改变,B 错误;函数调用时,首先参数压栈,参数的入栈顺序是从右向左,最后压入函数地址,C错误。
4、关于C语言函数内开头处定义static const char* p1; char const *p2;
以下说法正确的是(C)
A p1和p2的作用域不一样
B p1和p2的声明周期相同
C p1和p2指向的字符不能在函数内修改
D p1和p2的初始值均不确定
5、有以下程序,程序运行后的输出结果是(B)
#include<stdio.h>
main()
{
int x,y,z;
x=y=1;
x+=2;
x++;
z=++y;
printf("%d,%d,%d\n",x,y,z);
}
A 4,2,1
B 4,2,2
C 3,2,1
D 3,2,2
6、队列的工作方式是(B)
A FILO
B FIFO
C LILO
D A、B均可
7、以下运算符优先级最低的是(C)
A >>
B ==
C ||
D &&
8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)
A printf _3d db8 aBc
B I\am one_half start$it 3pai
C str_1 Cpp pow while
D Pxq My->book line# His.age
分析: 正确选项 A。B 选项中有 \ 、 $ 和 3 开头不对;C 选项中有 while 关键字不对;D 选项中有 -> 和 #不对。(考察的知识点和第一题一样)
9、C语言程序从(C)开始执行
A 程序中第一条可执行语句
B 程序中第一个函数
C 程序中的 main 函数
D 包含文件中的第一个函数
10、NFS是(B)系统
A 文件
B 网络文件
C 磁盘
D 操作
分析: NFS(Network File System),网络文件系统。
二、多选题
11、下列关于UART通信说法错误的是(A C)
A UART是通用同步收发器的缩写
B UART通信收发双方需使用相同的波特率,波特率不要完全相等
C 起始位和停止位长度需要保持一致
D 数据位长度可配置为7位、8位等多种形式
分析: UART(Universal Asynchronous Receiver/Transmitter)通用异步收发传输器的缩写;起始位是先发出一个逻辑”0”的信号,表示传输字符的开始;而停止位是一个字符数据的结束标志,它可以是1位、1.5位、2位的高电平。所以说起始位和停止位长度不一定是一致的。
12、C语言中简单数据类型包括(ACD)
A 整型
B 逻辑型
C 实型
D 字符型
13、用户标识符,其中合法的是(B D)
A return
B f2_G3
C 3-3A
D adbcd
14、哪些是STM32的ADC系统的特点(BCD)
A 12-位分辨率
B 自校验
C 可编程数据对齐
D 单次和连续转换模式
15、下列选项不合法的字符常量是(ACD)
A “B”
B " \010"
C 68
D ADC
分析: 字符常量的定义:用单引号括起来的单个字符,或用双引号括起来的一串字符即字符常量。 “\010” 表示是八进制数,八进制数中逢八则进一,所以格式和数值都是对的,合法。
三、填空题
16、写出以下函数的输出结果(49)
#define SQUARE(a) ((a)*(a))
int a=7;