首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序 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
37
问题
有以下程序 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://kaotiyun.com/show/PhJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有以下程序#include<stdio.h>inta[]={2,4,6,8};main(){inti;int*p=a;for(i=0;i<4;i++)a[i]=*p;
下列程序执行后的输出结果是______。#defineMA(x)x*(x-1)main(){inta=1,b=2;printf{"%d\n",MA(1+a+b));}
下列语句中,不正确的是______。
人们提出了用______的原理来设计软件,这就是软件工程学诞生的基础。
软件文档不仅是软件开发各阶段的重要依据,而且也影响软件的______。
下列叙述中,不属于软件需求规格说明书的作用的是______。
单个用户使用的数据视图的描述称为()
若有下列说明语句int(*p)();则标识符p代表的是()
在软件工程中,白箱测试法可用于测试程序的内部结构。此方法将程序看作______。
软件工程研究的内容主要包括:______技术和软件工程管理。
随机试题
BCG矩阵中,()是在低增长率的市场上占有高份额的战略性事业单位。
适合大多数细菌生长的pH范围是()。
对称三角形情况出现之后,表示原有的趋势暂时处于休整阶段,之后最大的可能是( )。
老年人参与社会发展的权利表现为()。
试述教师专业成长与发展的过程与途径。(淄博周村)
再造工程指为了改善成本、质量、服务、速度等现代企业的重大运营基准,对工作流程进行根本性重新思考并彻底改革,重新设计企业的管理和运营方式。下列属于再造工程的是()。
认识的主体和客体之间是什么样的关系?
Peoplehavebeenholdingheateddiscussionsrecentlyaboutwomen’sexperienceintheworkplace.LastmonthSherylSandberg,chie
下列关于函数参数的叙述中,正确的是()。
______isaquestionnairedesignedtoprovidetheinformationneededforathoroughevaluationofyourparticularspinalproblem
最新回复
(
0
)