C语言错题集
一、选择题 (1).若有定义:int *p[4];则标识符p是()。 A: 是一个指向整型变量的指针 B: 是一个指针数组名 C: 是一个指针,它指向一个含有四个整型元素的一维数组 D: 定义不合法 标准答案:B, 解析:p是一个具有4个元素的指针数组,每一个元素是一个int型指针 (2).下面判断正确的是 ()。 A: char *a=“china”;等价于char *a; a=“china”; B: char str[10]={“china”};等价于char str[10];str[]={“china”}; C: char *s=”china”;等价于char *s; s=”china”; D: char c[4]=”abc”,d[4]=”abc”;等价于char c[4]=d[4]=”abc”; 标准答案:A, 解析:A:指针变量可以在定义时初始化(赋初值),也可以在定义之后再初始化。 B:字符串数组必须在定义的时候就初始化,否则就要从键盘上输入给它初始化。 C:指针变量只能存放地址,不是把字符串赋给s,只是把”china”的第一个字符的地址赋给指针变量s。在C语言中只有字符变量,没有字符串变量。所以应该是等价于char *s; s=”china”。 D:字符数组之间不可以直接互相这样赋值。 (3).若有说明:int i, j=2,*p=&i;, 则能完成i