首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序 void f(int *x,int *y) { int t; t=*X; *X=*y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;
有以下程序 void f(int *x,int *y) { int t; t=*X; *X=*y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a;
admin
2013-02-23
57
问题
有以下程序 void f(int *x,int *y) { int t; t=*X; *X=*y; *y=t; } main() { int a[8]={1,2,3,4,5,6,7,8},i,*p,*q; p=a; q=&a[7); while(p>q) { f(p,q); p++; q--; } for(i=0; i<8; i++) printf("%d,",a
); } 程序运行后的输出结果是
选项
A、8,2,3,4,5,6,7,1,
B、5,6,7,8,1,2,3,4,
C、1,2,3,4,5,6,7,8,
D、8,7,6,5,4,3,2,1,
答案
8
解析
在C语言中,函数参数的默认传递方式是传值,即函数内部的形参只是调用时的实参的一个拷贝,改变形参,实参不会被改变.如果想要实现传址调用只能使用传递指针的方式来实现.利用指针作函数的参数时,无论形参指针还是实参指针所指的都是同一个内存地址,所以形参如果改变了这个地址中的内容,也就是改变了实参所指的地址内容.本题程序开头定义了一个函数f(),在函数中用一个临时变量t交换了两个指针参数所指的地址内容,所以该函数的作用就是交换两个参数所指的内容。在主函数中,首先定义了一个int型数组a,并定义了两个int型指针p、q分别指向数组a的第一个元素和最后一个元素。然后使用一个while循环调用函数f()不断交换两个指针所指的内容,每次交换后p往后移动一个元素,q往前移动一个元素,直到q不再大于p,即直到两个指针在数组a的中间相遇为止。所以,程序最终运行的结果是数组a中的所有元素全被反序排列一次。故应该选择选项D。
转载请注明原文地址:https://www.kaotiyun.com/show/PhJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下变量x,y,z均为double类型且已正确赋值,不能正确表示数学式子x÷y÷z的C语言表达式是
下列语句使指针p指向一个double类型的动态存储单元。p=【】malloc(sizeof(double));
有如下说明:inta[10]={1,2,3,4,5,6,7,8,9,10},*p=a;则数值为9的表达式是______。
若已定义x为int类型变量,说明指针变量p的正确语句是______。
下列程序的功能是计算数的阶乘。main(){ihti,n;nlongnp;scanf("%d",&n);np=【】;for(i=2;i<=n;i++)【】;printf("n=%dn!=%ld\n",
软件文档不仅是软件开发各阶段的重要依据,而且也影响软件的______。
设intb=2;,则表达式(b<<2)/(b>>1)的值是______。
若变量已正确定义并赋值,下面符合C语言的表达式是_____。
一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体“项目主管”与实体“项目”的联系属于【】的联系。
根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分成()
随机试题
核医学射线测量仪器的探头中通常包括
关于增感屏的叙述,错误的是
下列哪项不属于五迟五软的病因
从权力的性质上,一般把行政领导权力分为()。
下列固定成本中,属于可控成本的有()。
莎士比亚曾说过:“同一的太阳照着他的宫殿,也不曾避过了我们的草屋:目光是一视同仁的。”这句名言体现了________的理念。填入画横线部分最恰当的一项是()。
如果外国货物在保税期内未能销售完毕,则可再运往其他国家,保税仓库所在国不收取关税。()
中国岩画
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性。
从所给的四个选项中,选择最合适的一个填入问号处,使之呈现一定的规律性。
最新回复
(
0
)