距2008年11月全国计算机软件资格考试不远了。大家一起来交流一下吧!青年人网站整理了2008年11月全国计算机软件资格考试考前练习!青年人网站和各位一起学习!希望各位能够顺利通过2008年11月全国计算机软件资格考试!
以下程序的输出结果是( )
# include
subl(char a,char b) {char c;c=a;a=b;b=c;}
sub2(char *a,char b){ char c;c=*a;*a=b;b=c;}
sub3(char *a,char *b) { char c;c=*a;*a=*b;*b=c;}
main()
{ char a, b;
a=’A’; b=’B’; sub3(&a,&b); putchar(a); putchar(b);
a=’A’;b=’B’ ;Sub2(&a,b);putchar(a); rutchar(b);
a=’A’; b=’B’; sub1(a,b); putchar(a);putchar(b);
}
①BABBAB
②ABBBBA
③ BABABA
④ BAABBA
【解】在上述程序中,函数subl完成两形参值的交换,这个交换不影响实参变量,这是一个没有意义的函数。函数sub2将第二个形参的值置入由第一个指针形参所指的变量中,指针形参所指的变量由调用时的实参提供。函数sub3完成将两个形参所指的变量的值交换。程序调用sub3,使变量a和b的值交换输出BA;调用subZ,使变量b的值传送到a,输出BB;调用subl,变量a和b的值不改变,输出AB。所以程序输出BABBAB。正确解答是①。
责任编辑:小草