判断题:

1.结构是变量的集合,可以按照对同类型变量的操作方法单独使用其成员变量。T

2.在定义结构类型时,关键字struct和它后面的结构名共同组成一个新的数据类型名。T

3.在定义嵌套的结构类型时,必须先定义成员的结构类型,再定义主结构类型。

T,但是为什么?

4.不同类型的结构变量之间也可以直接赋值。

经过试验后,发现不能,但不同类型里的不同成员只要类型相同,可以相互赋值。

5.在对结构变量操作时,.被称为成员或者分量运算符。T

6.结构数组是结构与数组的结合体,与普通数组的不同之处在于每个数组元素都是一个结构类型的数据,包括多个成员项。T

7.对于结构数组s,既可以引用数组的元素s[i],也可以引用s[i]中的结构成员。

(1)整个s[i]的引用如定义一个指针变量指向它,解引用就等同于s[i];

(2)用指针变量指向成员,或用结构体名.成员都可以对结构成员进行访问

单选题

经过编译器编译后,可以运行,是很正确的说明定义

struct后是结构类型名,example是新创建的一个该形变量

结构体内字符数组无需“&”符号,因为其本身就是地址,所以这题选A

第一次见给*p赋值的情况

首先梦回数组:

int arr[2] = {0,1}; int* p = arr;

那么*p = 0, *(p+1) = 1;它等同于,arr[0]和arr[1];

那如果,int* p; *p = arr;

(1)首先我依然按照上面相同的输出

结果它报错,大致意思为将一个地址(或指针变量)强行赋值给int型变量(*p),得进行强转

所以类比无效;

回到题干,发现是题目看错,这本来就无法赋值

它是定义了一个结构体:struct student *p,然后又把结构体数组的首地址stu赋给了这个指针变量

所以D不合法的原因是将成员变量的地址赋给了结构体变量指针?尝试编译

也就是我定义的如果是结构体数组,不使用指针是无法直接使用结构体名访问成员的

类比到数组,我可以用指针移位来访问整个数组的个数,而赋值指针只需要数组首地址,而如果我需要用数组名访问数组的话,需要加上坐标。

此题是对运算顺序的考察:

在表达式中,优先级较高的先于优先级较低的进行运算。

而在一个运算量两侧的运算符优先级相同时,则按运算符的结合性所规定的结合方向处理。

结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右结合性(自右至左)。

目前需要查表。

此题中:

箭头和括号的优先级相同且最高,他们是左结合,从左到右

++和 * 相同且其次, 但它们是右结合,从右到左,以此为基础,开始读程序

(1)结构体数组变量名赋给指针变量p

(2)第一个printf语句,先执行箭头访问结构体数组第一个结构体的成员 x ,然后对该成员进行++

得到51,有点类似于复合函数的求导。

此处复习一下++运算符作为前后缀,单独成句时没有区别,都是自己给自己+1

但++p = 1指的是先将p赋值1后再++,得到p ==2;.

而p++= 1指的是先将p++后再赋值1;此时p==1;

(3)所以执行第一个printf语句后,p的值并未发生变化

(4)第二个printf语句括号和箭头同时出现,从左到右,p+1指向结构体数组内第二个结构体变量           时,再指向它的成员 x ,得到60

(5)p指向了第二个结构体变量

(6)第三个printf语句,括号内先运算,箭头优先,访问到第二个结构体变量的指针变量y并进行解引用,得到定义数组中的第二个元素20,再进行++,得到21;

答案选C

有了上一题的基础,首先运行括号内对p进行解引用然后执行箭头访问成员最后进行++

然后就选了C选项

但答案选D,原因是:箭头左边应该是指针变量p,解引用了后是结构体名应该用 . 访问

所以应该是:

(*p).str++,或者说是p->str++

填空题

同样考察运算符

(1)第一个printf 访问成员b解引用后进行++,p的值未发生变化

(2)p指向第二个结构体变量

(3)出现长串逗号,运算从右到左(你想如果从左到右它怎么输出?所以一定是从右到左,事实           上逗号运算符就是右结合。)

(4)右1运算,p先指向第三个结构体变量,然后访问该变量成员a,得到3

(5)右2运算,也是p先指向第四个结构体变量,然后访问成员a,得到7

所以答案如上

这个题目的意思就是,在s[80]字符串里里找字符c,找到了就输出字符串里的c开始后面所有的字符直到\0出现,如第一个循环,找到1后,发现1就是第一个字符串的第一个元素,所以返回s+k时,再输出就是123,又如第四个循环,找不到,那就返回原字符串

所以答案是:

123 23 3 321

总结:当函数返回s(字符串名)+k时,就是返回第(k+1)个字符后的全新字符串(因为末尾有                \0)

结构体问题探究_12_18.c相关推荐

  1. sdnu中的结构体问题

    首先是我遇到的第一道结构体问题 1028 Input 第一行一个整数N,代表手机中有N个联系人.1<=N<=1000 接下来的N行表示每一个联系人的信息,每一行首先是联系人的名称,然后有一 ...

  2. java jni 结构体_JAVA 的JNI,传参为结构体问题: 我在网上找的资料://返回一个结构 public native DiskInfo getStruct();...

    Java代码:classDiskInfo{//名字publicStringname;//序列号publicintserial;}//返回一个结构publicnativeDiskInfogetStruc ...

  3. C++之指针探究(九):结构体指针

    前文:C++之指针探究(八):指针函数和函数指针 相关博文:C++之结构体探究 结构体指针的定义   (1) C语言中的结构体是一种非基本数据类型,可以将多种数据组合为新的数据类型:   (2) 定义 ...

  4. 计算机系统在英语中的运用,在应用系统中探究计算机屏幕英语句法规律.doc

    在应用系统中探究计算机屏幕英语句法规律 在应用系统中探究计算机屏幕英语句法规律 [摘要]计算机屏幕英语突出基础性,强调实用性,注重专业性.对计算机屏幕英语的句子结构进行探究,摸索其内在的规律,能够更好 ...

  5. 中央处理器——CPU的功能和基本结构

    文章目录 CPU的功能 运算器和控制器的功能 运算器的基本结构 问题探究 解决方法1. 使用多路选择器 解决方法2. 使用三态门 运算器真正的基本结构 优缺点 控制器的基本结构 CPU整体的基本结构 ...

  6. 首发 | 13篇京东CVPR 2019论文!你值得一读~ 技术头条

    点击上方↑↑↑蓝字关注我们~ 「2019 Python开发者日」全日程揭晓,请扫码咨询 ↑↑↑ 编者按:计算机视觉和模式识别大会 CVPR(Conference on Computer Vision ...

  7. 全方位复盘GNN,12位大神寄望2021年大爆发

    作者:Michael Bronstein 编译:李梦佳,贾伟 近段时间,图神经网络(GNN)作为机器学习最热门的领域之一,唱盛有之,唱衰也不少. 就在前两天,一位数据科学家发表了一篇题为"为 ...

  8. moead算法流程步骤_数据聚类(一)常见聚类算法的基本原理[图解]

    文章整理了五种常见聚类算法的基本原理,通过简易图解的形式对算法原理进行形象化的描述,同时给出了算法的实现流程和数学表达.全文约4192字. 相关名词的英文翻译 监督学习Supervised Learn ...

  9. 直线的端点画垂线的lisp_【以课说法】线段、射线、直线

    课例概况 课例点晴 你的课堂是碎片化的知识教学,还是结构化的问题探究?如何把碎片化的知识教学变成结构化的问题探究?实施路径就是问题串,用问题串统整知识点:围绕问题串,从问题引发.问题探究,直到问题解决 ...

最新文章

  1. electron 剪贴板 截图_用electron开发了一个屏幕截图工具
  2. django批量form表单处理
  3. ubuntu添加dvd光盘源
  4. 安卓布局工具---Hierarchy Viewer
  5. Android Intent Action 大全
  6. ubuntu 16.04 R语言安装 rJava package失败解决方案
  7. 《TensorFlow 2.0深度学习算法实战教材》学习笔记(四、TensorFlow 进阶)
  8. python 多线程应用
  9. CentOS上安装man手册
  10. Web Clip 图片变淡变浅变灰解决方案
  11. android json解析歌词,网易云歌词获取
  12. 课程作业记录10:63位PN码序列扩频通信Matlab仿真
  13. zsh下brew安装
  14. God.org单域环境攻略(一)
  15. Mac jdk版本更新
  16. 数字IC前端面试常见问题整理
  17. TestOpenWriter
  18. CC3200——中断优先级
  19. 二手物品网上交易系统设计与开发 毕业设计毕设参考
  20. eac 反调试_自己动手制作一个过保护调试器

热门文章

  1. CUDA安装失败问题解决
  2. Kafka常用命令行命令
  3. spring boot 构建docker镜像,运行指定spring profile
  4. 树莓派 魔镜 magicmirror2
  5. CSP考试复习:第一单元 C++语言基础1.6 其他常用操作!
  6. S7-200smart数据类型和存储区和寻址方式
  7. linux基础操作_吃鱼的小脸猫_新浪博客
  8. SHELL 脚本编程基础
  9. JVM技术细节: HotSpot的内存模型
  10. 信息时代的智慧——兼谈科普转发