以下程序有错,错误的原因是main(){int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q

7 查阅

以下程序有错,错误的原因是main(){ int *p,i;char *q,ch; p=&i; q=&ch; *p=40; *p=*q; ......}A.p和q的类型不一致,不能执行*p=*q;语句B.*p中存放的是地址值,因此不能执行*p=40;语句C.q没有指向具体的存储单元,所以*q没有实际意义D.q虽然指向了具体的存储单元,但该单元中没有确定的值,所以执行*p=*q;没有意义,可能会影响后面语句的执行结果

参考答案:

D在本题中,题目要求我们分析给出程序段错误的原因。我们可以结合选项和程序段来分析。在C语言中,是可以将字符型的变量赋值给整型变量的,主要是由于字符型是以ASCII码存储在计算机中的,在赋值的过程中,系统会将其对应的ASCII码值赋给整型变量,选项A描述的错误原因是不成立的。*p表示的是数值,而非地址,*p=40;语句是合法的语句,选项B描述的错误原因也是不成立的。虽然q没有指向具体的存储单元,但*q的实际意义仍然是一样的,选项C描述的错误原因是不成立的。执行*p=*q;操作没有实际的意义,因为指针变量q所

计算机二级