有以下程序 #include<stdio.h>#include<string.h>typedefstruct{charname[9

题目

有以下程序

#include<stdio.h>

#include<string.h>

typedef struct {char name[9]; char sex; float score[2];}STU;

STU f(STU

A.

{

STU b={“Zhao”,’m’,85.0,90.0}; int I;

strcpy(a.name,b.name);

a.sex=b.sex;

for(i=0;i<2;i++) a.score=b.score;

return a;

}

main()

{

STU c={“Qian”,’f’,95.0,92.0},d;

d=f(

C.;

printf(“%s,%c,%2.0f,%2.0f\n”,d.name,d.sex,d.score[0], d.score[1]);

}

程序的运行结果是( )。

A. Qian,f,95,92

B.Qian,m,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

参考答案和解析
正确答案:C
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

有下列程序:

#include<stdi0.h>

#include”strin9.h”

typedefstruct{charname[9];charsex;floatscore

[2];}STU;

voidf(STUa)

{

STUb={"Zha0",'m',85.0,90.0);inti;

strcpy(a.name,b.name);

sex=b.sex;

for(i=0;i<2;i++)a.score[i]=b.score[i];

}

voidmain( )

{

STUc={"Qian",'f',95.0,92.0);

f(c);

printf("%s,%c,%2.Of,%2.Of\n",C.name,C.sex,

score[O],C.score[1]);

}

程序的运行结果是( )。

A.Qian,f,95,92

B.Qian,m,85,90

C.Zha0,f,95,92

D.Zha0,m,85,90


正确答案:A
A。【解析】本题考查在结构体中函数的调用,主函数调用f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以printf输出的还是c中实参的值。

第2题:

有以下程序:include struet STU{charname[10]; int num; float TotalSeore; };void f(

有以下程序:#include <stdio.h>struet STU{ charname[10]; int num; float TotalSeore; };void f(struet STU * p){ struet STU s [2] = { { "SunDan" ,20044,550 } , { "Penghua" ,20045,537 } } , * q = s; ++p; ++q; *p= *q;}main( ){ struct STU s[3] = { { "YangSan" ,20041,703 }, { "LiSiGuo" ,20042,580} }; f(s) ;printf("% s % d % 3.Of\n" ,s [1]. name, s [1]. num ,s [1]. TotalScore);}程序运行后的输出结果是( )。

A.SunDan 20044 550

B.Penghua 20045 537

C.LiSiGuo 20042 580

D.SunDan 20041 703


正确答案:B
解析:main函数将结构体数组,的首地址传递给了f函数的结构体指针变量P,并在函数f中改变了指针变量p所指向的第二个结构体中的成员变量,这也就是改变了main函数中s[1]的成员度量,故程序输出的值为Penghua20045537。

第3题:

设有以下说明语句typedefstruct{intn;charch[8];}PER;则下面叙述中的是()。

A、PER是结构体变量名

B、PER是结构体类型名

C、typedefstruct是结构体类型

D、struct是结构体类型名


参考答案:B

第4题:

有以下程序: 程序的运行结果是( )。 A.1 2 3 4B.5 6 7 8C.9 10 11 12S

有以下程序:程序的运行结果是( )。

A.1 2 3 4

B.5 6 7 8

C.9 10 11 12

D.1 1 1 1


正确答案:D
在for(i=0;i<12;i++)e[s[i]]++中,数组元素s[i]的值作为数组c的下标,当退出循环时,数组C的4个元素的值分别为l、1、1、1。所以选项D)正确。

第5题:

有以下程序 include main() { int y=9; for( ; y>0; y--) if(y%

有以下程序 #include <stdio.h> main() { int y=9; for( ; y>0; y--) if(y%3==0) printf("%d",--y); } 程序的运行结果是

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、2。所以应该选择C。

第6题:

有下列程序:

#include<stdi0.h>

voidmain( )

{stuctSTU{charname[9];charsex;double

score[2];};

stuctSTUa={"Zha0",'m',85.0,90.0),b={"

Qian",'f',95.0,92.0};

b=a:

printf("%S,%C,%2.0,%2.0\n”,b.name,b.sex,

score[O],bscore[1]);

程序的运行结果是( )。

A.Qian,f,95,92

B.Oian,m,85,90

C.Zha0,f,95,92

D.Zha0,m,85,90


正确答案:D
D。【解析】对于两个结构体,b=a;表示将a的每一个元素都赋给b,所以会输出a中的内蓉。

第7题:

有以下程序:include main(){inty=9;for( ; y>0; y--)if(y%3==0) printf("%d", --y);}

有以下程序: #include <stdio.h> main() {int y=9; for( ; y>0; y--) if(y%3==0) printf("%d", --y); } 程序的运行结果是( )。

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题首先令y为9,然后通过一个for循环,当y还大于0则循环,每次循环让y递减1。循环体中是一条if语句,通过%运算符计算每当y能被3整除的时候,输出--y的值,即先将y减1,然后输出y的值。故当y等于9、6、3时会输出,输出值分别为8、5、20所以应该选择C。

第8题:

有以下程序:includemain(){int y=9;for(;y>0;y--)f(y%3==0)printf("%d",--y);}程序的

有以下程序: #include<stdio.h> main() { int y=9; for(;y>0;y--) f(y%3==0)printf("%d",--y); } 程序的运行结果是( )。

A.741

B.963

C.852

D.875421


正确答案:C
解析:本题考查的重点是printf()函数和for循环的执行方式。在循环体内,若y为的倍数,则执行print(“%d”,--y)语句。所以,当y为9时,输出--y为8;当y为6时,输出--y为5;当y为3时,输出--y为2;当y为零时,for循环结束。因此,选项C是正确的。

第9题:

有以下程序includemain(){int y=9;for(;y>0;y--)if(y%3==0)printf("%d",--y);}程序的

有以下程序 #include<stdio.h> main() {int y=9; for(;y>0;y--) if(y%3==0)printf("%d",--y); } 程序的运行结粜是( )。

A.741

B.963

C.852

D.875421


正确答案:C
解析:y的初值为9,所以在for循环中,当y的值为9、6或3时,if语句的条件成立,执行输出语句,输出表达式--y的值。因为自减符号在y的前面,所以首先y自减1,然后再输出y的值,故输出结果为8 5 2。

第10题:

有以下程序:程序运行后的输出结果是( )。

A.7

B.8

C.9

D.10


正确答案:C
s=f(a)表达式第一次调用f(n)函数时.f(n)函数运行结果为n=4,a=2,即s等于4;s=s+f(a)表达式第二次调用f(n)函数时,f(n)函数运行结果为n=5,所以得到s值为9。

更多相关问题