东大22春《高级语言程序设计基础》在线作业:单选题解析
版权申诉
166 浏览量
更新于2024-08-12
收藏 22KB DOC 举报
"东大22春《高级语言程序设计基础》在线平时作业1-00001,涵盖了C语言的基础知识,包括字符型变量的赋值、指针与数组的关系、结构体的内存占用、宏定义的使用、字符串处理、循环控制以及二维数组的初始化等。"
在C语言中,字符型变量`ch`可以存储ASCII码值,选项A、B、C都是正确的赋值方式,但D选项`ch='a+b';`是错误的,因为这试图将两个字符相加,而C语言中字符常量之间用加号连接会产生一个整型值,而不是字符。
指针与数组的关系在第二题中有所体现。如果定义了一个整型数组`int x[10]`,并声明指针`p=x`,那么`(p+5)`将指向数组的第六个元素的地址,因此答案是C,表示数组元素x[6]的地址。
第三题考察了结构体的内存占用。结构体`struct date`包含三个整型成员,每个整型通常占4个字节,因此结构体的大小是3个整型的总和,即12字节。但由于内存对齐的原因,编译器可能会在结构体中插入额外的字节,使得其实际大小为6字节,所以输出为C,6。
第四题涉及宏定义。选项D的宏定义`#define MUL(x,y)((x)(y))`在任何情况下都不会引起二义性,因为它确保了无论`x`和`y`是什么类型,都会先计算括号内的表达式再进行乘法操作。
第五题中,`char pc[] = {"aaa", "bbb", "ccc", "ddd"}`定义的`pc`实际上是一个字符数组,`pc[0]`代表的是字符串的首字符,即'a',因此答案B正确。
第六题的for循环不会执行,因为初始条件`k=2`,但判断条件是`k==0`,这在一开始就不满足,所以循环次数为0次。
第七题中,正确初始化二维数组的语句是B,`inta[][3]={{1,2,3},{4,5,6}};`,这将创建一个2行3列的数组,并分别赋值。
第八题,浮点型变量不能直接进行类型转换赋值给另一个浮点型变量,如`y=int(5);`,这会导致编译错误,答案是B。
第九题的程序段中,`printf("%dn",(x=35,x+5));`会先执行`x=35`,然后执行`x+5`,但由于逗号运算符的存在,最后输出的是`x+5`的结果,即40,但注意题目要求的是执行后`x`的值,所以答案是B,15。
第十题的代码片段没有给出完整,因此无法直接确定执行后`y`的值。
第十一题讨论了C语言中的共用体类型数据,共用体允许在一个内存位置存储多个不同类型的数据,但同一时间只能访问其中一个成员。
这些题目涵盖了C语言的基础概念,对于初学者来说是非常好的练习,有助于巩固对变量、指针、数组、结构体、宏定义、循环控制等基础知识的理解。
2022-03-25 上传
点击了解资源详情
点击了解资源详情
2022-03-24 上传
点击了解资源详情
点击了解资源详情
点击了解资源详情
2024-12-28 上传
2024-12-28 上传
aopenxu0306
- 粉丝: 1
- 资源: 170
最新资源
- forward_algorithm.zip_matlab例程_matlab_
- solrium:Solr的通用R接口
- newunobet:大pp
- project_euler:这是来自https的已解决问题的存储库
- webchem:来自网络的化学信息
- cartified:一个非常基本的购物车实施
- 7Applied-multi-dimensional-fusion-.zip_图形图像处理_PDF_
- risitas-uikit
- homework4-february-20-2021:Web API:代码测验
- astrofox:Astrofox是一种运动图形程序,可让您将音频转换为出色的视频
- SpotipyProject
- tdd-blog:只是学习TDD的一个示例
- ezknitr:使用“ knitr”时避免典型的工作目录痛苦
- webPass-crx插件
- vue+node少儿编程项目.zip
- test-workflow