C1.note1.
选A 结果为0,先运算赋值语句右边的3>6,然后将结果赋值
运算符类别:
1.算术运算符:双目:+ 、- 、* 、/ 、% 单目:自加(++)、 自减(–)
2.逻辑运算符:双目:==、>、>=、<、<=、!=(不等于号) 、&&(与)、||(或) 单目:!
3.位运算符:按位:&(按位与)、 |(按位或)、^(按位异或 相同为0,不同为1)、~(按位取反)
移位操作:左移 << 、 右移 >>
4.赋值运算符:= 复合赋值运算符:+= -= /= = %= |= &= ^= >>= <<=
5.地址相关操作符 :&(取地址运算符)、
7.条件运算符:三目运算符 : 表达式?公式1:公式2
运算符顺序:
- [ ]、()、对象.成员名 对象指针->成员名
2.单目运算符:++、–、&、、!(逻辑非运算符)、~(按位取反运算符)、sizeof 结合顺序:从右至左结合
3.算术运算符 :+ 、- 、 、/ 、%
4.移位运算:左移 << 、 右移 >>
5.逻辑运算符:==、>、>=、<、<=、!=
6.位运算:&(按位与)、 |(按位或)、^(按位异或 相同为0,不同为1)
7.逻辑与或:&& > ||
8.赋值运算符:= 复合+= -= /= *= %= |= &= ^= >>= <<=
简单记就是:!(单目) > 算术运算符 > 关系运算符 > && > || > 赋值运算符
基本的优先级需要记住:
指针最优,单目运算优于双目运算。如正负号。
先算术运算,后移位运算(<<、>>),最后位运算(^ & |),逻辑运算(&& ||)最后计算。
请特别注意:1 << 3 + 2 && 7等价于 (1 << (3 + 2))&&7.
逻辑运算最后计算。
相同优先级中,按结合顺序计算。大多数运算是从左至右计算
,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。
2.自加运算符 p++ 先赋值再加 ++p 先加再赋值
3.
选D,选项A 使用空指针,不能*p ,会导致错误
选C --/bin 系统程序(ls、rm等命令行) /etc(临时挂载目录) /dev(设备文件) /lib(系统库文件)
5.程序从开始编码到生成二进制可执行文件要经过4个步骤:预处理、编译、汇编、链接
6. 静态库:库中封装的二进制代码,在链接阶段被复制到调用模块中,生成程序,可执行程序运行时不再需要静态库的支持
静态库对函数的链接是在链接时期完成的,在程序运行时与函数库再无瓜葛,移植方便,比动态库浪费空间和资源。
动态库:把对一些库函数的链接载入推迟到程序运行时期,可以实现进程之间的资源共享。??
7.?
https://blog.csdn.net/sinat_20265495/article/details/72417137
8.
ttyS0是串口设备,选B
9. b e
B. char strcpy(char dest,const char*src); 将后面字符串拷贝到前面的字符串 将s2拷贝到s1
C.
D s1=s2,返回0 ,s1>s2 返回>0 , s1<s2 返回<0
E.输出vte string s2(s1,1,3)作用:拷贝s1字符串,位置1个字符后面的3个字符;v t e
??计算的是地址的长度,32位操作系统,地址长度=4个字节,int=4个字节,64位操作系统,地址长度=8个字节,int=4个字节
https://blog.csdn.net/qq_32621445/article/details/78084802
7.
case1后面没有break;将会继续执行后面case2,case3 的内容;
switch(j)
{
case 1: …; break;
default : break;
}
8.Linux系统将设备驱动分为:字符设备、块设备、网络设备
10.对所有用户的变量设置,应当放在哪个文件下?
A. /etc/bashrc
B. /etc/profile
C. ~/.bash_profile
D. /etc/skel/.bashrc
Linux 考试题(带答案)https://blog.csdn.net/sunfengye/article/details/88742252
11.??? atuo muntable
- https://blog.csdn.net/weixin_33769125/article/details/86415574
常量区分出来了
15. 结果为 16 ,6 j=[(5)+(5)]+6 =16
#include <stdio.h>
int main()
{
int i=3;
int j=(++i)+(++i)+(++j);
printf("%d,%d\n",j,i);
return 0;
}
解析
m = (++i)+(++i)+(++i)
i初始值为1,求m计算结果。
计算机在计算m = (a+b)+(c+d)+(e+f)先计算(a+b)+(c+d),并把结果存储(例如:存储在j中),然后再计算j+(e+f)=j;
所以计算机先计算了两个++i(前两项i为3,++i先于+号);也就是m=3+3;然后m=6+(++i)(最后的i为4),也就是m=6+4=10。
首先++i=2,再计算第二个++i=3,此时计算机里i=3,第一个i也=3,第二个i也=3,因为计算机里只有一个i,因此原式=(3+3)+4=10,记住计算机里只有一个i,算第二个时第一个i改变了。
————————————————
原文链接:https://blog.csdn.net/houzijushi/article/details/81152940
16. 常用波特率频率:1200、2400、4800、9600、19200、38400、115200
选D 19600
17. ??
-
gpio常见的输入模式:模拟输入模式、下拉输入模式、上拉输入模式、开漏输入模式
输出 和 :49
21.cvte编程题
include <stdio.h>
void main( )
{
char s1[]=“Hello World!”;
char s2[]=“Hello World!”;
if( s1==s2 )
printf(“Equal!”);
else
printf(“Not equal!”);
}
输出“Not equal! 解析:s1 s2代表字符串数组的首地址,不相同
23.
24.void merge (char d, int size,char s1,char* s2)
{
while ( *s1 != 0 && *s2 != 0)
{
if (*s1 < *s2)
*d++ = s1++; //先计算d =*s1 ; d++;s1++;
else
*d++ = *s2++;
}
while ( *s1 != 0 ) *d++ = *s1++;
while ( *s2 != 0 ) *d++ = *s2++;
*d = 0;
}
void main( )
{
char s1[]=“acmghn”,s2[]=“bcfhi”,s3[20];
memset(s3,0,sizeof(s3));
merge(s3,sizeof(s3)-1,s1,s2);
puts(s3);
}
只移动一个指针,不是同时移动两个字符串的指针