当前位置:IT认证>计算机二级

问题:

[单选] 若有以下程序:
#include<stdio.h>
void sub(double x,double*y,double*z){  *Y=*
y-1.0;*z=*z+x;)
main()
{double a=2.5,b 9.0,*pa,*pb;
pa=&a;pb=&b;
sub(b-a,pa,pa);printf(”%f\n”,a);
)
程序的输出结果是(  )。

A . 9.000000
B . 1.500000
C . 8.000000
D . 10.500000

在一个C语言源程序文件中所定义的全局变量,其作用域为(  )。 所在文件的全部范围。 所在程序的全部范围。 所在函数的全部范围。 由具体定义位置和extern说明来决定范围。 以下程序段给数组所有元素输入数据:#include<stdio.h>main(){int a[10],i=0;while(i<10)scanf(”%d”,);}应在下划线处填入的是(  )。 a+(i++)。 &a[i+1]。 a+i。 &a[++i]。 有以下程序#include<stdio.h>void fun(int*a,int n)/*fun函数的功能是将a所指数组元素从大到小排序*/{  int t,i,j;for(i=0;i<n一1;j++)for(j=i+1;j<n;j++)if(a[i]<a[i]){t=aEi];aEi]=aEi];aEj]=t;}}main(){int c[10]={1,2,3,4,5.6,7,8,9,0),i;fun(c+4.6):for(i=0;i<10;i++)printf(”%d,”,c[i]);printf(”n”):}}程序运行的结果是(  )。 1,2,3,4,5,6,7,8,9,0,。 0,9,8,7,6,5,1,2,3,4,。 0,9.8,7.6,5,4,3,2,1.。 1,2,3,4,9,8,7,6,5,0,。 执行语句“for(i—l;i++<4;);”后,变量i的值是(  )。 3。 4。 5。 不定。 若有定义:int c[4][5],(*cp)[5];和语句cp=c;,则能正确引用C数组元素的是(  )。 cp+1。 *(cp+3)。 *(cp+1)+3。 *(*cp+2)。 若有以下程序:
#include<stdio.h>
void sub(double x,double*y,double*z){  *Y=*
y-1.0;*z=*z+x;)
main()
{double a=2.5,b 9.0,*pa,*pb;
pa=&a;pb=&b;
sub(b-a,pa,pa);printf(”%f\n”,a);
)
程序的输出结果是(  )。
参考答案:

  参考解析

C。【解析】从函数参数来看,x—b—a=6.5;y—z是指向a的指针pa,也就是说*y=*z=2.5;由于指针作为参数,可以将函数中计算得到的对指针引用的*Y,*x作为最后计算得到的a的值,从函数语句看,类似做这样的运算,a=a一1.0;a=a+x;这里x=6.5于是计算得到,a=8;由于输出格式为浮点型,输出结果为8,0000000。因此正确答案为C。

在线 客服