-
花括号“{”和“}”只能作为函数体的定界符
- F。花括号不仅可以作为函数体的定界符,还可以用于其他块结构,如控制语句(if、while、for等)和复合语句。
-
C程序中的每行只能写一条语句
- F。C语言中每行可以包含多条语句,只需用分号(;)分隔即可。
-
C程序的执行总是从main函数开始,在main函数结束
- F。C程序的执行总是从main函数开始,但不一定在main函数结束。例如,程序可以通过调用exit函数提前结束。
-
C程序的执行总是从main函数开始,在程序的最后一个函数中结束
- F。C程序的执行总是从main函数开始,但它并不总是在最后一个函数中结束。main函数结束或调用exit函数时程序就会结束。
-
++(i+1);是非法的赋值语句
- T。表达式
++(i+1);
是非法的,因为i+1
是一个右值,不能进行自增操作。
- T。表达式
-
用户标识符中不可以出现中划线,但可以出现下划线
- T。用户标识符可以包含字母、数字和下划线,但不能包含中划线。
-
用户标识符中可以出现下划线,但不可以放在用户标识符的开头
- F。用户标识符中可以出现下划线,并且可以以下划线开头。
-
C语言中,Area与area是不同的标识符
- T。C语言区分大小写,因此
Area
和area
是两个不同的标识符。
- T。C语言区分大小写,因此
-
C语言中有逻辑类型
- F。标准的C语言中没有专门的逻辑类型(如bool),逻辑操作返回的是整数类型。C99引入了stdbool.h来提供bool类型。
-
int a=b=0;是正确的定义语句
- T。这是一种合法的多重赋值语句,b和a都被初始化为0。
-
1.2E0.5是符合C语言语法的实型常量
- F。1.2E0.5不是合法的浮点数表示形式。科学记数法中的指数部分必须是整数。
-
假定x和y为double型,则表达式x=2,y=x+3/2的值是3.500000
- F。表达式的值是x+3/2,等于x+1.5。由于x被赋值为2,y的值是3.5。
-
可以用关系运算符对字符串的大小进行比较
- F。关系运算符不能直接比较字符串,需要使用strcmp等函数进行比较。
-
两个字符串中的字符个数相同时才能进行字符串大小的比较
- F。字符串大小比较是基于字符的ASCII值逐个比较,而不依赖于字符个数相同。
-
设有定义语句:char b= '\123';则变量b包括4个字符
- F。
\123
是八进制表示形式,对应的单个字符(对应ASCII值)。
- F。
-
若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是9
- F。strlen只计算到第一个空字符为止,因此strlen(s)的值是7。
-
a=b+c=1 是正确的赋值表达式
- F。这不是合法的表达式,b+c=1是非法的赋值。
-
若变量a、i已正确定义,且i已正确赋值,则 a=a++=5; 是正确的赋值语句
- F。这是非法语句,不能同时有两个赋值运算符。
-
除逗号运算符外,赋值运算符的优先级最低
- F。赋值运算符的优先级比逗号运算符高。
-
C语言中,运算对象必须是整型数据的运算符是 %。
- T。模运算符(%)的操作数必须是整数类型。
-
对于单目运算符++、--,它们的运算对象可以是任何变量和常量
- F。单目运算符++、--的操作数必须是左值,不能是常量。
-
表达式:10!=9的值是 true
- T。10不等于9,所以表达式的值是true(即1)。
-
表达式1||2||3||4的值是1。
- T。在逻辑或运算中,只要有一个操作数为真,结果为真,非零值都为真,因此结果为1。
-
若变量c为char类型,则表达式(c>= 'a')&&(c<= 'z') 能正确判断出c为小写字母
- T。这个表达式正确判断c是否为小写字母。
-
若变量c为char类型,则表达式 'a'<=c<= 'z' 能正确判断出c为小写字母
- F。表达式 'a'<=c<= 'z' 实际上被解释为 ('a'<=c) <= 'z',这个是错误的。应该用(c>= 'a')&&(c<= 'z')。
-
sizeof(float)的值是4
- T。在大多数系统中,float类型占用4个字节。
-
sizeof(double)是一种函数调用
- F。sizeof是一个操作符,而不是函数。
-
if(x<y) {x++;y++;} 是正确的if语句。
- T。这是一个合法的if语句。
-
if(x>y); 是正确的if语句。
- T。虽然语法上正确,但由于分号表示空语句,if条件没有实际作用。
-
用do-while语句构成的循环,在while后的表达式为零时结束循环
- T。do-while循环在while条件表达式为假时结束。
-
do-while语句构成的循环只能用break语句退出
- F。do-while循环可以通过满足条件表达式为假退出,也可以用break语句退出。
-
对for(表达式1; ; 表达式3)可理解为 for(表达式1;0;表达式3) 。
- F。对for(表达式1; ; 表达式3),条件部分为空时视为恒真,不等于for(表达式1;0;表达式3)。
-
break语句只能用于switch语句体中
- F。break语句可以用于switch语句体中,也可以用于循环语句中。
-
continue语句的作用是:使程序的执行流程跳出包含它的所有循环
- F。continue语句只跳出当前循环的本次迭代,继续执行下一次迭代。
-
在循环体内使用break语句和continue语句的作用相同
- F。break语句跳出整个循环,continue语句跳过当前迭代。
-
当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”的出错信息
- F。C语言不进行数组下标越界检查,越界访问可能导致未定义行为。
-
假定int类型变量占用两个字节,其有定义:int x[10]={0,2,4};,则数组x在内存中所占字节数是6
- F。数组x有10个元素,每个元素占用2个字节,总共占用20个字节。
-
若有定义:int a[2][3];对a数组元素正确引用的是a[2][3]
- F。数组a的有效下标范围是a[0][0]到a[1][2],a[2][3]是非法引用。
-
若有说明int s[3][4]={0};则只有元素s[0][0] 可得到初值0。
- F。初始化时没有显式赋值的元素都被初始化为0。
-
不能在赋值语句中通过赋值运算符"="对字符型数组进行整体赋值
- T。字符型数组不能通过赋值运算符进行整体赋值,只能在声明时初始化或逐个赋值。
-
字符型数组中可以存放字符串
- T。字符数组可以存储字符串。
-
可以对整型数组进行整体输入、输出
- F。整型数组不能整体输入、输出,需要逐个元素进行输入、输出。
-
函数中的形式参数是局部变量
- T。函数的形式参数在函数内部作为局部变量使用。
-
在不同的函数中可以使用相同名字的变量
- T。不同函数中的局部变量在各自函数的作用域内有效,可以使用相同名字。
-
在一个函数内定义的变量只在本函数范围内有效
- T。函数内定义的变量是局部变量,只在该函数内有效。
-
函数的定义和函数的调用均可以嵌套
- F。函数的定义不能嵌套,函数的调用可以嵌套。
-
函数的定义可以嵌套,但函数的调用不可以嵌套
- F。函数定义不能嵌套,函数调用可以嵌套。
-
函数的形参和实参分别占用不同的存储单元
- T。函数调用时,形参和实参分别占用不同的存储单元。
-
C语言中,每个函数都可以被其它函数调用(包括main函数)
- T。C语言中,函数间可以相互调用,main函数也可以被其他函数调用。
-
C语言中,在一个函数内部可以定义另一个函数
- F。C语言不允许在一个函数内部定义另一个函数。
-
实参和与其对应的形参共同占用一个存储单元
- F。实参和形参在函数调用时分别占用不同的存储单元。
-
只有当实参和与其对应的形参同名时才共占用存储单元
- F。实参和形参是否同名都分别占用不同的存储单元。
-
若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,B)));在此函数调用语句中实参的个数是6
- F。此处有3个实参,分别是a+b、(x,y)和fun(n+k,d,(a,B))。但是(x,y)和(a,B)是非法的表达式。
-
用户定义的函数中可以没有return语句
- T。void类型函数可以没有return语句,非void类型函数没有return语句会导致未定义行为。
-
用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
- F。用户定义的函数中可以有多个return语句,但每次调用只返回一个值。
-
当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址
- T。数组名作为实参时,传递的是数组的首地址。
-
若用数组名作为实参,则传递给形参的是数组中全部元素的值。
- F。传递的是数组的首地址,而不是所有元素的值。
-
C语言中形参的默认存储类别是自动(auto)。
- T。函数的形参默认存储类别是auto。
-
C语言中,宏替换没有数据类型限制
- T。宏替换是简单的文本替换,没有数据类型的限制。
-
C语言中,宏名必须用大写字母表示
- F。宏名可以用大写字母,但不是必须的,这是编程习惯。
-
C程序对预处理命令行的处理是在程序执行的过程中进行的
- F。预处理是在编译前进行的,不是在程序执行过程中。
-
两个字符串中的字符个数相同时才能进行字符串大小的比较
- F。字符串大小比较基于字符的ASCII值逐个比较,而不是字符个数。
-
当调用函数时,实参是一个数组名,则向函数传送的是数组的首地址
- T。数组名作为实参传递时,传递的是数组的首地址。
-
break语句只能用于switch语句体中
- F。break语句可以用于switch语句体中,也可以用于循环语句中。
-
C程序中的main()函数必须放在程序的开始位置。
- F。main函数可以放在程序的任意位置,但通常放在文件开头。
-
if(x>y); 是正确的if语句。
- T。这是合法语句,但由于分号表示空语句,if条件没有实际作用。
-
++(i+1);是非法的赋值语句
- T。表达式
++(i+1);
是非法的,因为i+1
是右值,不能进行自增操作。
- T。表达式
-
若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,B)));在此函数调用语句中实参的个数是6
- F。此处有3个实参,分别是a+b、(x,y)和fun(n+k,d,(a,B))。但(x,y)和(a,B)是非法的表达式。
-
函数的形参和实参分别占用不同的存储单元
- T。函数调用时,形参和实参分别占用不同的存储单元。
-
在不同的函数中可以使用相同名字的变量
- T。不同函数中的局部变量在各自函数的作用域内有效,可以使用相同名字。
-
表达式:10!=9的值是 true
- T。10不等于9,所以表达式的值是true(即1)。
-
C语言中,宏替换没有数据类型限制
- T。宏替换是简单的文本替换,没有数据类型的限制。
-
C程序中注释部分可以出现在程序中任意合适的地方
- T。注释可以出现在程序的任何地方,只要不破坏语法结构。
-
设有定义语句:char b= '\123';则变量b包括4个字符
- F。
\123
是八进制表示形式,对应的单个字符。
- F。
-
用do-while语句构成的循环,在while后的表达式为零时结束循环
- T。do-while循环在while条件表达式为假时结束。
-
if(x<y) {x++;y++;} 是正确的if语句。
- T。这是一个合法的if语句。
-
continue语句的作用是:使程序的执行流程跳出包含它的所有循环
- F。continue语句只跳出当前循环的本次迭代,继续执行下一次迭代。
-
1.2E0.5是符合C语言语法的实型常量
- F。1.2E0.5不是合法的浮点数表示形式。科学记数法中的指数部分必须是整数。
-
若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是9
- F。strlen只计算到第一个空字符为止,因此strlen(s)的值是7。
-
若变量c为char类型,则表达式 'a'<=c<= 'z' 能正确判断出c为小写字母
- F。表达式 'a'<=c<= 'z' 实际上被解释为 ('a'<=c) <= 'z',这个是错误的。应该用(c>= 'a')&&(c<= 'z')。
-
可以用关系运算符对字符串的大小进行比较
- F。关系运算符不能直接比较字符串,需要使用strcmp等函数进行比较。
-
每个C程序中都必须要有一个main()函数
- T。每个C程序必须有一个main函数作为程序的入口点。
-
函数的定义和函数的调用均可以嵌套
- F。函数的定义不能嵌套,函数的调用可以嵌套。
-
sizeof(float)的值是4
- T。在大多数系统中,float类型占用4个字节。
-
C语言中有逻辑类型
- F。标准的C语言中没有专门的逻辑类型(如bool),逻辑值通常使用整数表示。
-
字符型数组中可以存放字符串
- T。字符数组可以存储字符串。
-
分号是C语句之间的分隔符,不是语句的一部分
- F。分号是语句结束的标志,是语句的一部分。
-
C程序可以由一个或多个函数组成
- T。C程序可以包含多个函数。
-
若有说明int s[3][4]={0};则只有元素s[0][0] 可得到初值0。
- F。int s[3][4]={0};初始化时,所有元素都初始化为0。
-
用户定义的函数中可以有多个return语句,以便可以调用一次返回多个函数值
- F。用户定义的函数可以有多个return语句,但每次调用只能返回一个值。
-
C语言中,每个函数都可以被其它函数调用(包括main函数)
- T。C语言中函数可以相互调用,main函数也可以被其他函数调用。
-
在不同的函数中可以使用相同名字的变量
- T。不同函数中的局部变量在各自函数的作用域内有效,可以使用相同名字。