首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
有以下程序 #include <stdio.h> #include <string.h> typedef struct stu { char name[10];
有以下程序 #include <stdio.h> #include <string.h> typedef struct stu { char name[10];
admin
2020-11-27
21
问题
有以下程序
#include <stdio.h>
#include <string.h>
typedef struct stu {
char name[10];
char gender;
int score;
} STU;
void f( char name[10],char gender,int score )
{ strcpy( name, "Sun" );
gender = ’m’;
score = 370;
}
main( )
{ STU b={"Zhao", ’m’, 290}, a={"Qian", ’f’, 350};
b=a;
printf( "%s,%c,%d,", b.name, b.gender, b.score );
f( b.name, b.gender, b.score );
printf( "%s,%c,%d\n", b.name, b.gender, b.score );
}
程序运行后的输出结果是
选项
A、Qian,f,350,Sun,f,350
B、Qian,f,350,Qian,f,350
C、Qian,f,350,Sun,m,370
D、Zhao,m,290,Sun,m,370
答案
A
解析
C语言函数参数传递大致分为:1、值传递过程中,被调函数的形参作为被调函数的局部变量处理,即在内存的堆栈中开辟空间以存放由主调函数放进来的实参的值,从而成为了实参的一个拷贝。值传递的特点是被调函数对形参的任何操作都是作为局部变量进行,不会影响主调函数的实参变量的值。
2、地址传递过程中,被调函数的形参虽然也作为局部变量在堆栈中开辟了内存空间,但是这时存放的是由主调函数放进来的实参变量的地址。被调函数对形参的任何操作都被处理成间接寻址,即通过堆栈中存放的地址访问主调函数中的实参变量。正因为如此,被调函数对形参做的任何操作都影响了主调函数中的实参变量。
结构体中name是数组,做实参传递,会退化为指针,因此调用f(),b.name发生修改,其他的成员,传递的是拷贝,不会被修改。因此输出Sun,f,350。故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/SY3p777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序#includemain(){inti=1,j=3;printf("%d,",i++);{inti=0;i+=j*2;printf("%d,%d,",i,j);}printf("%d,%d\n",i,j)
数据库设计过程不包括
若有定义语句:intx=10;则表达式x-=x+x的值为
在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为
有以下程序#includevoidf(int*q){inti=0;for(;i<5;i++)(*q)++;}main(){inta[5]={1,2,3,4,5},i;f(a);for(i=0;i<5;i++)printf("%d,",a[
T面属于整数类I实例的是
下面选项中关于编译预处理的叙述正确的是()。
若各选项中所用变量已正确定义,fun()函数中通过return语句返回一个函数值,下列选项中错误的程序是()。
程序流程图中带有箭头的线段表示的是()。
随机试题
除外下列哪项,红细胞沉降率均可增快:()
成人高血压的诊断标准是()
临川派
上皮层中胞质内含嗜碱性透明角质颗粒的细胞是
施工机械设备质量控制通常是从()方面进行。
花朵:浇灌:鲜艳
5,16,50,153,()
社会主义核心价值体系的主题是()
AlmosteveryyearsincetheendofthefinancialcrisishasstartedwithrosyexpectationsamongAmericanforecasters,andthis
小张完成了毕业论文,现需要在正文前添加论文目录以便检索和阅读,最优的操作方法是:
最新回复
(
0
)