C语言复习关键点解析

版权申诉
0 下载量 160 浏览量 更新于2024-07-02 收藏 94KB DOC 举报
"C语言综合复习资料" 这篇复习资料涵盖了C语言的基础知识,包括数据类型、数值表示、运算符、表达式、赋值语句、字符型变量、编译程序、字符串处理、数组以及结构化程序设计的基本结构。下面对这些知识点进行详细说明: 1. C语言中的基本数据类型包括整型(int)、实型(float或double)和字符型(char),选项C是正确答案。逻辑型在C语言中并不作为基本数据类型存在。 2. 在C语言中,以0开头的数字被视为八进制数,因此029是一个非法数,因为八进制数中不存在数字9,选项D是正确答案。 3. C语言的特性之一是它的松散类型,即不同类型的变量可以在一个表达式中运算,但在赋值表达式中,等号“=”右边的值必须能够转换为左边变量的类型,选项A中提到的大写字母和小写字母在标识符中意义相同是正确的,但选项D是错误的,因为同一个运算符号在不同上下文中的确可能有不同的含义。 4. 表达式a=a>b是一个逻辑表达式,如果a的值大于b,则a的值变为1(真),否则变为0(假)。初始状态下a=4, b=5,所以a=a>b的结果是0,之后a的值也会变为0,选项A正确。 5. 在这个表达式中,a&&b、a<=b的值都是1(真),b+c&&b-c的值取决于b、c的具体值,而!((a<b)&&!c||1)会根据a、b、c的值来决定其真假,若a<b且c为非零值,或者条件1为真,则整个表达式的值为0,因此选项D可能是正确的。 6. 选项A的赋值语句x=(1,y=2)是逗号运算符,是合法的;选项B的++x是自增运算符,也是合法的;选项C的x=y=15是连续赋值,合法;选项D的y=int(x)试图将一个表达式的结果强制转换为整型再赋值给y,这在C语言中是不允许的,因此是非法的。 7. 字符型变量c可以赋值为单个字符,选项A中'97'是一个非法的字符常量,应该是'a',因为'a'的ASCII码为97;选项B和C是字符串,需要双引号包围;选项D的97是整型数值,可以赋值给字符型变量c,因此是正确的。 8. 能将高级语言编写的源程序转换为目标程序的软件是编译程序,选项D正确。编辑程序用于文本编辑,解释程序是直接执行源代码,而汇编程序则处理汇编语言代码。 9. strlen函数计算字符串的长度,直到遇到第一个空字符'\0'为止。因此,给定的字符串"abcde\0fghjik\0"的长度是6,选项C正确。 10. 合法的实型常数可以包含E或e表示指数,选项A的E2.0是非法的,应该是E2;选项B的E-3缺少数字前导;选项C的.2E0是合法的;选项D的1.3E缺少指数后的数字。 11. 选项A的n=(i=2,++i)是逗号运算符,合法;选项B的j++是自增运算符,合法;选项C的++(i+1)试图对加法结果进行自增,这是非法的;选项D的x=j>0;是一个合法的条件赋值。 12. 字符型变量c应该赋值为单个字符,选项A的'66'是非法的,应该是'6';选项B和C是字符串;选项D的66可以赋值给c,因为整型可以自动转换为字符型。 13. 逻辑表达式a||b+c&&b==c的值取决于a、b和c的值。如果a为非零,则整个表达式值为1,否则会计算b+c和b==c。由于题目没有给出具体的值,无法确定最终结果。 14. 选项A的数组定义中,N未定义就使用是非法的;选项B的二维数组只初始化了第一行;选项C的二维数组定义不合法,不能有空的数组维度;选项D的二维数组定义是正确的,它初始化了两行数组元素。 15. 结构化程序设计的三种基本结构是顺序结构、选择结构(如if、switch)和循环结构(如for、while、do-while)。 以上就是《C语言》综合复习资料中涉及的主要知识点,涵盖的内容广泛,适合C语言的学习者进行复习和巩固。