做得比较好的公司网站,自己可以学做网站吗,wordpress文章标题设为标签,遵义网页指针相关博客 打响指针的第一枪#xff1a;指针家族-CSDN博客 深入理解#xff1a;指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 以下叙述中正确的是#xff08;#xff09; A#xff1a;\0 表示字符 0 B#xff1a;a 表示一个字符常量 C#xff1a;表… 指针相关博客 打响指针的第一枪指针家族-CSDN博客 深入理解指针变量的解引用 与 加法运算-CSDN博客 第一题 1. 以下叙述中正确的是 A\0 表示字符 0 Ba 表示一个字符常量 C表达式a b 的结果是 假; D\ 是非法的 答案及解析 C 本题考查的是基础 A字符 \0 的ASCII是0而字符 0 的ASCII值为48所以他们不一样 Ba这是一个字符串后面有个隐藏的\0要注意是双引号 C正确看ASCII值就知道了 D \ 这个是一个转义字符\把后面的原本表达的意思改变了所以\是一个新字符正确用法。 第二题 2. 已知 int a[] { 0,2,4,6,8,10 }, *p a1;其值等于0的表达式是 A* (p) B*(p) C*(p--) D*(--p) 答案及解析 D 做了这么久的朋友这个题应该没什么问题吧 首先p指向的是a数组第二个元素的地址而要值等于0就要通过p拿到数组首元素的地址。 所以必须让p缩小排除AB C D的区别就是前置--和后置--前置--的表达式的值为--之后的值后置--为--之前的值 所以D--p就是数组首元素地址*(--p) *a 0 第三题 3. 在c语言中下面能正确进行字符串赋值操作的是 Achar s[5]{ABCDE}; Bchar s[5]{‘A’,‘B’,’C’,’D’,’E’}; Cchar *s; sABCDE; Dchar *s; scanf(%s,s); 答案及解析 C C语言中字符串必须是以’\0结尾所以给字符串赋值必须赋值\0 As定义为5个元素的字符型数组即最多能存放5个字符字符串结尾符’\0’无法存放 B对数组赋值没错但同A一样没有字符串结尾符’\0’ D“野指针”赋值是错误的 C先定义字符指针s而后将字符串ABCDE”的首地址赋值给指针变量ss指向这个字符串 第四题 4. 下面C程序的输出结果是 #include stdio.h
int main()
{int a[5] {1, 2, 3, 4, 5};int *ptr(int *)(a 1);printf(%d, %d,*(a 1), *(ptr - 1 ));return 0;
} A2, 5 B1, 3 C1, 5 D2, 43586 答案及解析 A 这个题我记得是出现了3次非常经典 我建议大家可以看一下我的这个博客没做对的自己再去做一遍还是不行评论区发出来 深入理解指针变量的解引用 与 加法运算-CSDN博客 第五题 5. 下面程序的输出结果是 #include stdio.h
int main()
{char str1[] hello world; char str2[] hello world; const char str3[] hello world; const char str4[] hello world; const char* pstring1 hello world; const char* pstring2 hello world; if(str1 str2) printf(true,);elseprintf(false,);if(str3 str4) printf(true,);elseprintf(false,);if(pstring1 pstring2) printf(true\n);elseprintf(false\n);return 0;
} Afalse,false,true Bfalse,false,false Ctrue,true,true Dfalse,true,true 答案及解析 A 本题考查的是比较变量是否相等 第一组 这一组比较的是数组名数组名是首元素的地址也就是比较两个地址是否相同一定是不相同的因为这是两个不同的变量这两个变量都会在栈上开辟空间然后分别存放字符串 第二组和第一组一个道理 第三组 这个是在栈区上定义两个指针变量指向的一个字符串而这两个指针变量都是存的这个字符串的首元素地址。所以比较的就是这个字符串的首元素地址但是这个字符串是在常量区定义的所以上下两个字符串是一样的因为我们系统很聪明在常量区的字符串是只读的不可以修改。所以没必要给你弄两个字符串。