C语言基础知识1.

发布时间 2023-12-24 15:59:38作者: mystayx

1.任何表达式语句都是表达式加分号组成。True

2.do—while循环的while后的分号可以省略。False

3.case语句后如没有break,顺序向下执行。True

4.增1减1运算符的前缀运算的表达式是相同的。False

5.函数的实数可以是常量,变量或表达式。True

6.如果函数定义出现在函数调用之前,可以不比加函数原型声明。True

7.C语言程序中可以有多个函数,但只能有一个主函数。True

8.函数返回值的类型是由在定义函数时所指定的函数类型。True

9.局部变量如果没有指定初值,则其初值不确定。True

10.若有定义int a[]={2,4,6,8,10},p=a;a的值是数组首地址,则*(p+1)的值是4。True

11.对于int n=3;执行n+=n-=n*n;后n的值是9。False

12.在C语言中,定义int a=b=c=5;是错的,而int a,b,c,a=b=c=5;是正确的。True

13.在循环过程中,使用break语句和continue语句作用是一样的。False

14.在函数的定义和调用过程中,形式参数和实在参数数目可以不一致。False

15.指针变量可以接收任何类型的值False

16.在C语言程序设计中,字符数组和字符串不是完全一样的概念。True

17.选择结构(if语句)和循环结构都可以使用嵌套形式。True

18.在定义二维数组时,可以将该数组的两个维数全部省略。False

19.逻辑运算符&&||!的运算顺序是!优先&&优先|| 。 True

20.任何数组都可以实现整体使用操作。False

21.逗号表达式的值是第一表达式的值False

22.执行语句++i;i=3;后变量i=4。False

23.使用(int)a;将float型变量a强制转换成int型,以后a的数据类型为float型。False

24.从语法角度看,for(表达式1;表达式2;表达式3)语句中三个表达式均可省略。True

25.由i=-1;while(i<10)i+=2;i++;可知while循环体执行次数为6次。True

26.循环for(; ; )的循环条件始终为真。True

27.一个数组中的所有元素可以具有不同的数据类型。True

28.数组名代表该数组的首地址。True

29.在数组定义后,可以使用语句iSum[]={1,2,3};给数组初始化。False

30.定义数组时可以同时给数组赋初值,初值的个数可以超过数组的长度。False

31.二维数组多维数组在定义的同时给数组赋值时给数组赋初值时,可以省略数组的各维长度。False

32.已知字符组str1的初值为“China",则语句str2=str1;执行后字符数组str2也存放字符串“China".Flase

33.使用字符串处理函数strcmp需要包含头文件string.h . True

34.通过return语句,函数可以带回一个或一个以上的返回值。False

35.字符处理函数strcpy(str1,str2)的功能是把字符串1接到字符串2的后面。False

36.假设int a[10],*p;则p=&a[0]与p=a等价。True

37.a=(b=4)+(c=6)是一个合法的赋值表达式。True

38.有如下说明:int a[10]={1,2,3,4,5,6,7,8,9,10},*p=a; 则数值为9的表达式是 *(P+8)。False

39.C语言的switch语句中case后可为常量或表达式或有确定值的变量及表达式。False

40.#include和scanf都不是C语句 。True

41.在C语言的语法中,“语句”通常指的是能够完成某种操作的指令,比如赋值、条件判断(if)、循环(for、while)等。这些语句在程序运行时被执行,而预处理指令和函数定义/调用则有不同的生命周期和用途。

42.函数中的形式参数是局部变量。 True

43.两个字符串中的字符个数相同才能进行字符串大小的比较。False

44.若有int i=10,j=0;则执行完语句

if(j=0)i++;else i--;i的值为11。False

45.在程序中,函数既可以嵌套定义,也可以嵌套调用。False

46.实参和与其对应的形参共同占用一个存储单位。False

47.C 语言中形参的默认存储类别是自动(auto)。True

48.if (x>y);是正确的if语句。True

49.++(i+1);是非法的赋值语句。True

50.在 C/C++ 语言中,++ 是一个自增运算符,用于将变量的值加 1。但是,++(i+1); 这个表达式是非法的,因为 i+1 是一个右值(rvalue),而不是一个左值(lvalue)。右值是指可以被赋值的东西,而左值是指可以定位到存储位置的变量或对象,可以被赋值。

因此,++(i+1); 这个表达式是非法的,因为 i+1 是一个右值,不能被赋值。正确的自增语句应该是 ++i; 或者 i++;,这样可以将变量 i 的值加 1。

若有定义语句:char s[10]="1234567\0\0";,则strlen(s)的值是9。 False

strlen 函数是 C 语言标准库中的函数,用于计算字符串的长度。它从给定的字符串开始,直到遇到第一个 \0 字符,然后返回所经过的字符数。

对于给定的字符串 s[10]="1234567\0\0",我们可以看到有两个 \0 字符。但因为 strlen 函数遇到第一个 \0 就会停止计数,所以它只计算到第一个 \0,也就是 7。

所以,strlen(s) 的值应该是 7,而不是 9。

51.int a=5,*p;p=&a;则p的值为5。False

52.表达式*p++的运算顺序为先自增后取值。False

53.C语言中,只能用下标来应用数组元素。False

54.指针、数组名、函数名都是地址。True

55.语句“int *p ;"中的 *p的含义为取值。False

56.使用(int) a ;将float形变量a强制转换成int型,以后a的数据类型为int 型。 False

char*s="Clanguage";表示s是一个指向字符串的指针变量

57.变量的类型通常指存储类型和数据类型两种。True

58.C语言中,每个函数都可以被其它函数调用(包括main函数)。 答案:TRUE

59.若有以下函数调用语句: fun(a+b,(x,y),fun(n+k,d,(a,B)));在此函数调用语句中实参的个数是7。 答案:FALSE

3个

60.如果指针变量p已指向数组中的一个元素,则p+1指向同一数组中的下一个元素。 答案:TRUE

61.数组名是数组首元素的内存地址,可以重新赋值。 答案:FALSE