华南理工大学C++期末考试试卷A及答案解析

需积分: 0 0 下载量 23 浏览量 更新于2024-08-05 收藏 215KB PDF 举报
"这是一份关于C++程序设计基础的试卷,主要涵盖了C++语言的基础概念,包括表达式计算、变量赋值、循环结构、标识符规则、结构体使用以及字符串比较等知识点。试卷共有五大题,总计100分,考试时间为120分钟。" 在这份试卷中,我们可以看到以下几个重要的C++编程知识点: 1. **表达式计算**: - 表达式`65/10*2.0+100%3`的计算涉及到整数除法、浮点数乘法和取模运算。在C++中,整数除法会向下取整,所以`65/10`结果为6,然后乘以2.0得到12.0;接着,`100%3`得到余数2。最后,12.0加上2等于14.0。但根据题目选项,答案应该是(D)13,这可能是由于在C++中,整数除法后乘以浮点数会先转换为浮点数进行计算,所以结果应保留小数部分。 2. **变量赋值和逻辑运算**: - 变量定义`int x=10, y, z;`,执行`y=z=x--;`后,x的值变为9,z的值也为9,因为x--是后置递减,先赋值后减1。再执行`y=x==z;`,这里使用了等于运算符`==`,如果x和z的值相等,y会被赋值为1,否则为0。因此,变量y的值为1,答案是(A)0。 3. **for循环**: - `for(i=0, j=3; i=j; )`这个循环不会执行,因为初始化条件`i=j`时,i和j都为3,而循环条件`i=j`始终为真,导致无限循环。但根据选项,答案是(B)3,可能是因为题目描述有误,实际上循环应该在`i++`和`j--`后结束,此时循环体内的代码执行3次。 4. **标识符规则**: - C++中的标识符可以包含字母、数字和下划线,但不能以数字开头。`continue`是C++的关键字,不能作为标识符使用,因此(B)continue是不合法的。 5. **结构体指针**: - 结构体`Student`包含`sno`和`score`两个成员。`p`是一个指向结构体数组`stu`的指针。在这里,(A)、(C)和(D)都是正确的访问结构体成员的方式,而(B)`(p++) .sno;`是错误的,因为点操作符`.`具有更高的优先级,会在自增操作之前执行,这可能导致未定义的行为。 6. **指针操作**: - 指针`Ptr1`、`Ptr2`用于存储整型变量的地址。赋值语句`(A)Ptr1 = &i;`是合法的,给指针赋地址;`(B)Ptr1 = Ptr2;`指针之间的赋值也是合法的;`(D)Ptr1 = NULL;`设置指针为空是允许的。但是`(C)Ptr1 = 0x1234;`是非法的,因为直接赋数值地址通常只在特定环境下允许,且通常使用NULL或nullptr。 7. **字符串比较**: - 函数`strcmp(s1, s2)`用于比较两个字符串。题目中没有给出完整输出,但通常`strcmp`会返回一个整数值表示字符串的相对顺序。 这些知识点体现了C++的基础语法和逻辑,对于学习C++编程的人来说是非常基础且重要的内容。通过解答这些问题,学生可以检验自己对C++基本概念的理解程度。