题目1

 字符串的结束标志是'\0',答案选C,接下来进行举一反三:

  1. strlen函数求出的是'\0'之前字符的个数,strlen的使用要引头文件#include <string.h>
  2. strlen的返回值是size_t,是无符号整型(unsigned int)的数字,无符号整型的打印可以使用%u(32位平台下)
  3. 64位平台下返回的size_t类型是long long unsigned int类型,打印时可以使用%llu。

char arr1[] = "abcdef";//字符串的结尾默认有一个['\0',实际上arr1中的元素为a,b,c,d,e,f,\0
printf("%u\n", strlen(arr1));//'\0'前面有6个元素,打印结果为6
char arr2[] = { 'a', 'b', 'c' };//未放入'\0',arr2中只有三个字符abc
printf("%u\n", strlen(arr2));//没有字符串的结束标志'\0',打印abc后面是随机值,直到找到'\0'
char arr3[] = { 'a', 'b', 'c', '\0' };//自行放入'\0'
printf("%u\n", strlen(arr3));//字符串中自行放入'\0',打印结果为3

题目2

A选项,创建一个整形型数组,数组的元素个数是10个,没有问题。
B选项,这种创建数组的方式在C99以上版本是可以的(C99引入了变长数组的概念),但是C99以下的版本是不可以的,所以B选项错误,答案选择B选项。
C选项,不完全初始化,没有给定数组的大小,根据数组存放的元素确定大小,没有问题。
D选项,字符数组完全初始化。

题目3

C语言关键字:C语言定义的,具有特殊含义、专门用于特殊用途的C语言标识符看,也称为保留字。
define不是关键字,是编译器实现的,用来定义宏的预处理指令。
A、C、D均为C语言关键字,答案选择B项。

 题目4

在C语言中static所修饰的参数称为静态参数,而且static在有三个作用:
1.修饰局部变量,static所修饰的局部变量出了局部范围不会自动销毁,存储在静态区。
2.修饰全局变量,static修饰的全局变量只能在本源文件中使用,出了源文件所在返回就不能再使用,看起来static修饰的全局变量作用范围像是变小了。
3.修饰函数,static修饰的函数只能在本源文件中使用,出了源文件所在范围就不能使用,和static修饰全局变量一样作用域就像是变小了。
A、B、D都是正确选项,C项错误,static修饰的变量时可以被改变的。

更多推荐

【C语言】初识C语言 _练习题目[简单题型 _巩固基础知识]