C语言程序设计试题与解析

版权申诉
0 下载量 177 浏览量 更新于2024-08-06 收藏 17KB DOCX 举报
"C语言程序设计试题3及答案.docx" 这些题目涵盖了C语言的基础知识,包括逻辑运算、表达式求值、数组、指针、循环、条件判断以及字符型常量等方面。下面是针对每个问题的详细解答: 1. 表达式(!x++ || y--)的值是_B__。在这个表达式中,逻辑或(||)操作符的左边是逻辑非(!x++),由于x=1,逻辑非(!1)为0,然后进行后置自增,x变成2。右边的y--先用y的当前值1进行判断,1与0逻辑或的结果是1,然后y减1变为0。所以整个表达式的值是1。 2. main()函数中的程序输出结果是_D__。这个程序中,n=6*4=24,然后n+6的结果未被赋值回n,n保持24不变,最后n*2=48,但输出的是n的值,即24。 3. 对数组元素的正确引用是_D__。选项A是错误的引用,因为数组下标从0开始,a[10]实际上超出了数组范围;B项也是错误的,同理;C项*(p+10)同样超出了数组范围,且p未初始化;D项是指针p指向数组的第一个元素,因此*D*是正确的引用方式。 4. 执行语句“n+=n-=n*n;”后,n的值是_C__。初始n=2,n-=n*n会先计算2-2*2=-2,然后n变为-2;接着n+=n相当于-2+(-2)=-4,所以n的最终值为-4。 5. 不能正确定义二维数组的语句是_C__。A、B和D选项都能正确创建二维数组,但C选项在第二行的数组初始化中,第二个元素2没有对应的值,导致定义不正确。 6. 将变量u、s中的最大值赋给变量t的正确程序段是_B__。A和C选项可能会导致t始终等于u;D选项的if语句顺序会导致t始终等于s。只有B选项能确保t始终存储u和s中的较大值。 7. 下列程序段的输出结果是_A__。该程序段是一个for循环,每次迭代打印一个字符,奇数次打印'#',偶数次打印'*',因此输出为"#*#*"。 8. 设变量定义为inta[3]={1,4,7},*p=&a[2],则*p的值是_C__。p是一个指向数组a中第三个元素的指针,因此*p的值是7。 9. 能正确表示a和b同时为正或同时为负的逻辑表达式是_D__。这个表达式(a*b>0)可以用来判断a和b的乘积是否大于0,如果大于0,则它们都是正数;如果小于0,则它们都是负数。 10. C语言中,合法的字符型常数是_A__。字符型常数由单引号包围,选项A是字符'A',正确;B和D是字符串,需要双引号;C是整数,不是字符。 11. 设有数组定义:char array[]="China";则数组所占的空间是_C__。除了字符外,C字符串还需要一个额外的空字符'\0'来表示字符串结束,所以占用6个字节。 12. 若变量c为char类型,能正确推断出c为小写字母的表达式是_A__。'a' <= c && c <= 'z'会检查c是否在小写字母'a'到'z'的范围内。 以上是针对每个问题的解析,涵盖了C语言的基础知识点。