判断题1.声明函数int fun(int a[10]);则a表示一维数组变量名。
判断题 2.char *p = “hello”, char str[] = “hello”;表示指针变量 p和str 都指向文字常量“hello”。
问答题:
以下程序是否有误,如果无误,请写出执行次数(1 )。
int x = -1;
do{
x = x * x;
}while(!x);
有点不确定,发上请教一下!!!
我来回答下,判断题1: 是对的,是一个函数声明,而且a是一维数组变量名
判断题2: 是对的,都指向文字常量"hello"
第三题: 这个是执行一次,加个打印调试一下就可以了。
void main()
{
int x = -1;
do{
x = x * x;
printf("x = %d\n", x);
printf("!x = %d\n", !x);
}while(!x);
}
结果如下:
[fge@shavi01 test]$ ./test
x = 1
!x = 0
判断题1:正确。在 C 语言中,数组名本身就是一个指向数组首元素的指针,并且在函数参数中声明数组时,可以省略数组的大小。
判断题2:不正确。指针变量 p 指向的是一个字符串常量的首地址,而字符数组 str 存储了一个字符串常量的拷贝。
问答题,该程序存在错误。由于 x 的初值为 -1,所以 x 的平方一直为正数,因此 while 循环的条件永远为真,导致死循环。因此,该程序无法执行完成,没有执行次数。