资源描述:
《计算机答案,c语言》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、计算机答案,c语言第六章习题解析一、选择题1.答案选择:A分析:intn1=0,n2,*p=&n2,*q=&n1;首先定义了两个整型变量n1和n2,并为n1赋值为0,定义了两个指针变脸p和q,p指向了n2的地址,q指向了n1的地址。可以用“间接访问运算符”来引用相应的存储单元,因此*p就是n2的值,*q就是n1的值。与n2=n1等价的就是*p=*q,故选择A答案。2.答案选择:B分析:intx=0,*p=&x;printf(“%d”,*p);输出*p的值,首先p指向了x的地址,*p将输出x的值为0。3.答案选择:C分析:A答案chara=’A’b=’B’,定义了两个char类型的
2、变量,并为它们赋初始值。定义两个及多个变量时,变量中间用逗号隔开作为分隔,A选项中变量a和b中间没有逗号,因此出错。B答案floata=b=10.0;定义个变量a,但是不能定义变量b,那么将10.0赋值给变量b就违背了变量“先定义,后使用”的原则。floata,b;a=b=10.0;这样才对。C答案inta=10,*b=&a;定义了一个整型变量a和指针变量b,指针b指向了a的地址,因此C答案是正确的。D答案float*a,b=&a;定义了一个指针变量a和变量b,b被赋值为a的地址。普通变量不能接受地址,因此b=&a的形式是错误的。4.答案选择:C分析:main(){inta=7,b=
3、8,*p,*q,*r;p=&a,q=&b;r=p;p=q;q=r;printf(“%d,%d,%d,%d”,*p,*q,a,b);}首先定义了两个变量a和b,,分别赋值为7和8,定义了三个指针变量p,q,r,其中p指向了a的地址,q指向了b的地址。其次,r=p;p=q;q=r;这是典型的交换,在题目中表示指针p和q的互换,p指向了变量b的地址,q指向了变量a的地址。但是注意一点:虽然指针p和q互换但是变量a和b的值并没有互换,a的值是7,b的值是8。如果要互换a和b的值,将函数中的r=p;p=q;q=r;改为*r=*p;*p=*q;*q=*r;即可。第三输出:*p的值为8,*q的
4、值为7,a的值为7,b的值为8,选择C答案。5.答案选择:C分析:void*fun(){}首先函数返回的是一个地址,地址的类型是void是空,我们称这种返回的类型为无值型的指针类型。6.答案选择:A分析:inta,*pa=&a;指针pa执行了a的地址,简单的说就是pa等价于&a。题目中要求使用scanf语句能正确为变量a读入数据。利用我们以前学过的知识,如果要给变量a输入数据,其形式为:scanf(“%d”,&a);结合指针的知识点可以有另外的一种形式,因为pa等价于&a,那么scanf(“%d”,&a);可以换为scanf(“%d”,pa);故答案选择A。7.答案选择:D分析:in
5、tn=0,*p=&n,**q=&p;定义了一个普通变量n赋初始值为0,一个一维指针p指向了n的地址,一个二维指针q指向了p的地址。A答案p=1,将常量1赋值给一维指针是错误的,类型不一致。B答案*q=2,因为q是二维指针,因此*q可以理解为一维的指针,将2赋值给*q类型不一致。C答案q=p,q和q的类型不一致,因此不能直接赋值。D答案*p=5,p是一维指针,*p就相当于一个普通变量,因此可以将5赋值给*p。8.答案选择:C分析:考查函数的调用和局部变量的使用,看下面的函数,用红色方框框住的”inta=2”对于整个程序来说是全局的,因此在这里我们把它叫做“全局变量”,用红圆圈圈住的部分
6、“inta=5”在main函数中,那么它的有效范围仅仅在main函数中,由于“inta=5;s=f(&a)”用大括号括起来了,因此“inta=5”仅仅在main函数中的大括号中有效,把它叫做“局部变量”。(1)函数从main函数开始执行,定义了一个整型变量s赋值为0,执行“inta=5;s=f(&a)”,调用f函数,此时的实参a是指“局部变量”a,值为5。(2)执行调用函数f,那么形参a的值为实参a的地址,*a的值为5,返回(*a)++表达式的值为5。(3)执行完调用函数后s的值为函数返回值为5,继续执行s+=f(&a),此时的实参a是指“全局变量”a,值为2。(4)执行调用函数f,
7、那么形参a的值为实参a的地址,*a的值为2,返回(*a)++表达式的值为2。(5)继续执行s+=2,那么s的值为79.答案选择:A分析:voidfun(char*a,char*b){a=b;(*a)++;}main(){charc1='A',c2='a',*p1,*p2;p1=&c1,p2=&c2;fun(p1,p2);printf("%c%c",c1,c2);}(1)从main函数开始执行,其中p1指针指向了变量c1的地址,指针p2指向了变量c2的地