问题 问答题

分析下面的C程序,指出错误代码(或运行异常代码)所在的行号。
[C程序]

行号

代码

1

2

3

4

5

6

7

8

9

lO

11

12

#include <stdio.h>

#include <string.h>

int main ()

char *p, arrChar[100]="testing";

arrChar="test";

p="testing";

*p=’0’;

p=arrChar+1;

printf("%d\\t%d\\n",sizeof(arrChar),Strlen(arrChar));

printf("%d\\t%d\\n",sizeof(char *),strlen(p));

return 0;



答案

参考答案:5,或alTChar="test"
7,或*p=’0’;

解析:本题考查C程序编写和调试中常见错误的识别和改正。
在C语言中,指针表示内存单元的地址,指针变量可用于存储指针类型的值,即内存单元的地址值。变量的值在程序运行过程中允许修改,而常量则不允许修改。可以令指针指向一个变量或常量,但若指针指向一个常量,则不允许通过指针修改该常量。
第5行代码有错,即对数组名arrChar的赋值处理是错误的。在C语言中,数组名是表示数组空间首地址的指针常量,程序中不允许对常量赋值。
第7行代码有错,在第6行中,通过p="testing"使指针变量指向了一个字符串常量,此后可以再令指针p指向其他字符或字符串,但不能通过指针修改字符串常量的内容。

单项选择题 共用题干题
单项选择题