东大22春《高级语言程序设计基础》在线作业:单选题解析

版权申诉
0 下载量 7 浏览量 更新于2024-08-12 收藏 22KB DOC 举报
"东大22春《高级语言程序设计基础X》在线平时作业1-00001,涵盖C语言基础知识,包括字符型变量赋值、指针与数组的关系、结构体的大小、宏定义、字符串处理、循环控制、二维数组初始化、浮点型变量赋值以及表达式求值等知识点。" 这篇资源是一份关于C语言的在线作业,涉及到多个关键概念和编程技巧。以下是详细解释: 1. 字符型变量赋值:题目指出,字符型变量`ch`不能被赋值为`'a+b'`,因为C语言中的字符常量不能包含算术运算。 2. 指针与数组:指针`p`初始化为数组`x`的首地址,`(p+5)`表示数组的第六个元素的地址,但不是其值,所以选项D正确。 3. 结构体的大小:`sizeof(struct date)`计算结构体`date`的大小,通常一个`int`占4个字节,因此结构体大小为3个`int`的总和,即12字节,但C语言在结构体对齐时可能会添加填充字节,所以实际大小可能是6字节,答案为C。 4. 宏定义:在宏定义中,选项D `(x)(y)`确保了无论`x`和`y`是何种类型,都会先进行括号内的运算,避免了二义性。 5. 字符串处理:字符数组`pc`初始化为字符串,`pc[0]`是首字符地址,代表字符'b',因为数组从0开始计数,所以B正确。 6. 循环控制:`for(k=2; k==0; )`的循环条件是`k`等于0,由于`k`初始值为2,所以循环不会执行。 7. 二维数组初始化:B选项正确初始化了一个3列的二维数组,其他选项或缺少初始化元素,或超出边界。 8. 浮点型变量赋值:不正确的赋值语句是`B.y=int(5);`,因为直接将整型值赋给浮点型变量不需要类型转换。 9. 表达式求值:`printf("%dn",(x=35,x+5));`中的逗号运算符先执行`x=35`,然后执行`x+5`,但整个表达式的值是`x+5`的结果,所以`x`的值是15。 10. 同样的,`y`的值取决于最后一个表达式,`y`的赋值操作在`printf`中完成,因此`y`的值为1。 这些题目覆盖了C语言的基本知识点,对于初学者来说是很好的练习材料,可以帮助巩固基础并提高编程技能。