[单选题]有以下程序#include "stdio.h"void fun(int *a,int *b){ int c=20,d=20; *a=c/3; b=d/5;}main(){ int a=3,b=5; fun(&a,&b); printf("%d,%d\n",a,b);}程序的运行结果是
正确答案 :A
6,5
解析:在本题中,首先定义了一个fun函数,函数中用两个指针变量作为形参,在函数体中,定义了两个整型变量,然后做除法运算,并试图将结果保存到形参中,语句“*a=c/3;”中由于变量c与3都是整型,其运算结果也应该为整型,运算过程中舍去小数部分,得到计算结果为6,并保存到指针变量a指向的存储单元中;语句“b=d/5;”同样是整数运算,其运算结果为4,但很明显,赋值的方法不正确,不能改变指针变量b指向单元的值。
[单选题]有以下程序 void fun(char *a,char *b) { a=b; ( *a)++; } main() {char cl='A',c2='a',*p1,*p2; p1=&c1;p2:&c2; fun(p1,p2); printf("%c%c\n",c1,c2); } 程序运行后的输出结果是
正确答案 :A
Ab
解析:解析:指针作为函数参数的运用,经过分析得知fun()函数的功能:将形参 a指向形参b所指的存储空间,然后使形参a指向变量的值加1。在主函数中定义了字符型指针变量p1和p2,并让它们分别指向“c1和c2。然后将p1、p2作为实参传递给形参a、 b。在fun()函数中,首先让指针变量p1指向P2,然后P1指向的存储空间的值加1,即让变量c2加1为“b”,而c1的值没有被改变,仍然是“A”。
查看原题 查看所有试题