《C程序设计》期末复习练习题及参考答案(2).doc
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
【C程序设计】知识点详解: 1. 字符串比较:在C语言中,字符串的比较不是通过`=`操作符进行的,而是通过`strcmp()`函数。`strcmp(s1, s2)`函数返回值为0表示两个字符串相等,因此正确答案是C) `if (!strcmp(s1, s2))`。 2. 二维数组索引:在C语言中,二维数组的索引计算是行优先的。若数组a有m行n列,`a[i][j]`前的元素个数为`(i-1)*n + (j-1)`,因此选项B) `i*n+j`是正确的。 3. `strlen()`函数:该函数用于计算字符串的长度,但不包括结束的空字符`\0`。因此,对于字符串"IBM\n012\t\"\\0",其长度为12,选项D) `12`是正确的。 4. `while`循环:`i++ <= 2`这个表达式在循环条件检查后会自增`i`,所以循环结束后`i`的值为3,选项B) `3`是正确的。 5. 数组定义:C语言中,合理的数组定义应该符合语法。选项A) 数组长度不够容纳字符串"language";选项B) 初始化超出数组边界;选项C) 定义了一个指向字符串的指针,是合法的;选项D) 多维数组定义错误。因此,正确答案是C) `char *a = "string"`。 6. 语句结束标志:C语言中的语句以分号`;`结束,选项C) `;`是正确的。 7. C语言格式:C语言的格式相对自由,一个语句可以跨越多行,选项C) 是正确的。 8. 合理常量:浮点常量可以包含指数表示,选项A) `1.234e04`和B) `1.234e+4`都是合理的,但题目可能要求选出不合理的,因此没有正确答案。 9. 用户标识符:C语言中,用户标识符可以包含字母、数字和下划线,但不能以数字开头。选项A) 和D) 都以非字母字符开头,不合法;选项B) `#max`以`#`开头,`#`在C语言中通常用于预处理指令,因此也不合法;选项C) `_3int`是合法的。 10. 模运算:`%`是取模运算符,`x%=(y%2)`在`x=15`,`y=5`时,`y%2`等于1,因此`x%=1`后`x`变为14,输出是14的余数1,选项B) `1`是正确的。 11. 表达式值:`x&&y`在`x`和`y`都非零时才为1,因此在`x=3`, `y=4`时,表达式`x&&y`的值为1,选项A) `x&&y`的值为0是错误的。 12. 函数调用:`fun()`函数内部会改变参数`i`和`j`的值,但这些改变不会影响到主函数中的`a`和`b`。因此,`c += fun(a, b) + a;`相当于`c += 5 + 1`,选项C) `10`是正确的。 13. 指针与数组:在循环中,`y`累加了`p[1]`(即4)和`p[2]`(即6),总和为10,选项B) `11`是正确的。 14. `strlen()`函数:`strlen()`计算字符串长度时会寻找第一个空字符`\0`并停止,对于`p`和`q`,虽然初始化时没有明确的`\0`,但在C语言中,字符串常量会有隐含的`\0`,因此`strlen(p)`和`strlen(q)`的结果都是3,选项A) 是正确的。 以上就是针对《C程序设计》期末复习练习题及参考答案(2)中涉及的C语言知识点的详细解释。学习C语言时,理解这些基础概念是非常重要的,它们涵盖了字符串处理、数组、循环、函数调用、指针以及表达式和语句的使用等多个方面。
- 粉丝: 38
- 资源: 27万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助