| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> C++知识库 -> c语言字符串&结构体考试总结 -> 正文阅读 |
|
[C++知识库]c语言字符串&结构体考试总结 |
博客主页:https://blog.csdn.net/weixin_46094737?type=blog 今吾师以试应之,吾则欣然思其矣。 答题间,吾之思路如滔滔江水,或怦然而出,或差之枯竭。然吾均以之答曰,毕矣。 吾以其卷之易,甚之欣悦,俟察其答案,甚惊矣。 吾之曰较之答案,差之甚远,谬之过半矣。 吾深思其因,或以为答其间思之甚微,或粗心矣。今以之为点,后必深思远虑矣!!! 分析: A:字符型指针只能在初始化时整体进行赋值,或者说只能在初始化时指针指向一串字符首地址。 B:这种写法错误:str[ ]={“china”;} C:正确 D:不能连等,会报错。char c[4]=d[4]=”abc” ; 分析:首先需要注意这个字符串中的\0,我们会以为\0作为字符串结束标志,会扰乱做题思维,这里的\01作为整体会以一个8进制数1去读取,所以本题各个字符作为循环条件会有:\t a \01 8 b c,一共6个。循环次数为6. 分析:A:字符型数组s需要给\0预留一个空间去存。 B:本题要求字符串赋值,单个字符赋值不对题目要求。 c:正确 d:在定义指针s的时候没有指向,没有地址去存将要赋值的字符串。或者说s是一个野指针 ?分析:需要注意在打印是,后面的变量是一个s,s是一个指针,故打印出来的是s所指向的地址的值,只不过是以十进制进行输出的。 验证:
? 分析:a:两个指针去内容相加赋值给c,没毛病 b:p2是一个指针,c是变量,没有取地址& c:两个指针指向同一个地址,取得的内容当然一样 d:和a异曲同工,相乘而已 分析:a:字符型数组可以直接赋值 b:正确写法,指针指向数组首地址,然后赋值存入 c:先定义指针,然后指向一串字符首地址。 d:连等写法错误,不能连等,或者说,数组a只能在初始化是进行整体赋值。 分析:a:ps指针偏移2,但是还是指针,,没有取内容*,故错误 b:正确数组引用 c:ps指针,加上[2],表示指针偏移2,然后取内容,正确写法 d:指针偏移2,然后取内容,正确 验证:
?分析:1、将p2+1所指内容(“fgh”)复制写入str+1(“BCDEFG”),字符串此时为:Afgh 2、?将p1+3所指内容(“d”)复制写入str+1(“h”),字符串此时为:Afgd 注意:strcpy(str01,str02)字符串赋值函数是将str02整体覆盖赋值写入str01中,str01中未覆盖的字符还存在,并未消失。 分析:a:可以这样赋值,只是将字符串从数组元素第3个开始写入。 验证:
?c:注意c项是getchar(),一个字符一个字符写入,最后写入\0,这种当然也可以 d:和c项一样,一个字符一个字符写入,完全可以,只是些许麻烦而已 ?注意条件:q=p,两个指针指向开辟的同一块区域地址,p指向q的首地址,q的内容为“def”,故p所指向的内容也是“def”。 分析:首先第一个\b退格符将a进行退格(干掉),第二个退格符将\退格,排除法直接c
分析:考试太马虎,不细心,经验主义错误太多 分析:本题还是在考察strcpy()字符串复制函数,“Hello”字符串整体赋值写入“welcome”中,计算的长度也是“Hello”的字符串长度为:5 注意此时的sizeof(str)值为:8,因为字符串复制函数,只是覆盖对应字符长度,不改变原有字符串长度,而且sizeof也将\0计算在内。 验证:
分析:注意题目要求,long int类型为8字节,故本题的对齐字节数为8,char name[20]实际占20个字节,但是本题基本单位对齐数为8,故需要开辟3*8=24字节,long int再开辟8字节,最后int实际占16字节,为8字节开辟需要2个基本单位2*8,故三者相加为6*8=48字节。 分析:首先我们将struct HAR类型的数组h[2]值写清楚,h[2]={{1,2}{3,4}};然后h[0].p=&h[1]表示h[0].p指向h[1]的首地址即3的地址,h[1].p=h表示h[1].p指向数组h的[2]的首地址即1,然后再看题目中的打印,h[0].p)->x取x的值为3,,(h[1].p)->y)取y的值为2。故答案输出32. 本题结构还是比较清晰的,就是需要仔细。认真读题!!!!! 分析:首先分析联合体的字节数为8,然后嵌套到第二个结构体中,记住一点,无论如何嵌套,基本对齐数永远是以最大类型变量为准,与联合体大小无关,故第二个结构体对齐数为8,这里的8并不是因为联合体的字节数为8才开辟的8,而是因为第二个结构体struct st中出现了double类型才开辟的8.故计算也比较简单:8+3*8+8=40. |
|
C++知识库 最新文章 |
【C++】友元、嵌套类、异常、RTTI、类型转换 |
通讯录的思路与实现(C语言) |
C++PrimerPlus 第七章 函数-C++的编程模块( |
Problem C: 算法9-9~9-12:平衡二叉树的基本 |
MSVC C++ UTF-8编程 |
C++进阶 多态原理 |
简单string类c++实现 |
我的年度总结 |
【C语言】以深厚地基筑伟岸高楼-基础篇(六 |
c语言常见错误合集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/11 8:54:41- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |