更多“设有以下程序段:struct MP3{ char name[20]; char color; float price;}”相关问题
  • 第1题:

    有下列程序:includeinclude "string.h"typedef struct{char name[9]; char sex;float

    有下列程序: #include <stdio.h> #include "string.h" typedef struct{char name[9]; char sex;float score[2];}STU; void 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[i]=b.score[i]; } main() { STU c={"Qian",'f',95.0,92.0}; f(C) ; printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]); } 程序的运行结果是( )。

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zhao,f,95,92

    D.Zhao,m, 85,90


    正确答案:A
    解析:本题考查在结构体中函数的实参和形参的传递,调用f(C)后,实参传向形参,进行f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与printf输出的还是c中实参的值,故选项A)正确。

  • 第2题:

    有以下程序includestruct STU{char name[10];int num;};void f(char*name, intnum){s

    有以下程序 #include <string.h> struct STU { char name[10]; int num; }; void f(char *name, int num) { struct STU s[2]={{"SunDan",20044},{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() { struct STU s[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p; p=&s[1]; f(p->name,p->num); printf("%s %d\n",p->name,p->num); } 程序运行后的输出结果是

    A.SunDan 20042

    B.SunDan 20044

    C.LiSiGuo 20042

    D.YangSan 20041


    正确答案:A
    解析:题目中定义的函数f()包含两个参数,一个字符指针,—个整型变量。当修改参数指针所指向的内容的时候,实参所指的内容也被修改,即传址调用;但只是修改参数变量的内容,则实奉不受影响,即传值调用。因此,主函数调用f()函数后,第1个参数被修改成函数中s[0]的name成员,第2个参数不受影响,还是主函数中s[1]的num成员。故最终输出SunDan20042。应该选择A。

  • 第3题:

    有以下程序: include struct STU (char name[10]; int num; };

    有以下程序: #include <string.h> struct STU (char name[10]; int num; }; void f(char *name, int num) {struct STU s[2]={{"SunDan",20044}.{"Penghua",20045}}; num=s[0].num; strcpy(name,s[0].name); } main() {struct STU s[2]={{"YangSall",20041},{"LiSiGao",20042}},*p;p=&s[1]; f(p->name,p->num); printf("%s%d\n",p->name,p->num); } 程序运行后的输出结果是 ______。

    A.SunDan 20042

    B.SunDan 20044

    C.LiSiGuo 20042

    D.YangSan 20041


    正确答案:A
    解析:本题主函数中定义了结构体类型的指针变量p,并使其指向了结构体类型的数组s[1],并通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了主函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就是刘主函数中p->name的改变,而函数f中对形参num的改变并不会影响主函数中p->num的值,因为此时传递给num的是一个值,而不是地址。

  • 第4题:

    以下程序的输出结果是【】。 include main() {struct stru {int a; float b; char d[4]; }

    以下程序的输出结果是【 】。

    include<stdio.h>

    main()

    { struct stru

    { int a;

    float b;

    char d[4];

    };

    printf("%d\n",sizeof(struct stru));

    }


    正确答案:10
    10 解析:结构体变量占用内存空间的字节数是结构体各分量占用内存空间的字节数的总和。int型变量占用2字节,float型变量占用4字节,char型占用1字节,char d[4]是含有4个元素的char型数组,占用4字节。sizeof(struct stru)是计算结构体变量占用内存空间的字节数,2+4+4=10。

  • 第5题:

    下面程序的运行结果是typedef union student{ char name[10]; long sno; char sex; float score[4];}STU;main(){ STU a[5]; printf("%d\n",sizeof(a));}


    正确答案:80
    根据共用体变量的特点可知,共用体变量所占的内存长度等于最长的成员的长度,所以变量STU所占的字节数等于其成员score[4]所占的字节数,即为16个字节,最终打印出共用体数组a[5]的长度为16´5=80。

  • 第6题:

    以下程序的输出结果是______。includestruct stu{int num; char name[10]; int age;};v

    以下程序的输出结果是______。#include<stdio.h>struct stu{ int num; char name[10]; int age;};void fun(struct stu*p){ printf("%s\n",(*p).name);}main(){ struct stu students[3]={ {9801,"Zhang",20}, { 9802,"Wang",19}, { 9803,"Zhao",18} }; fun(students+2);}

    A.Zhang

    B.Zhao

    C.Wang

    D.18


    正确答案:B

  • 第7题:

    有以下程序 include struct STU { char num[10]; float score[3];}; void ma

    有以下程序 #include<iostream.h> struct STU { char num[10]; float score[3];}; void main( ) { struct STU s[3]={ { "20021",90,95,85 }, {"20022",95,80,75 }, {"20023",100,95,90 } },* p=s; int i; float sum=0; for(i=0;i<

    A.260

    B.270

    C.280

    D.285


    正确答案:B
    解析::C++语言规定数组名代表数组的首地址,也就是第0号元素的地址,在本题中s就是s[0]的地址,指针变量P指向s,也就是指向s[0],所以在for循环累加的是s[0]的score成员值。注意:注意结构体与类的区别。

  • 第8题:

    有以下程序:includeinclude struct STU {char name[10];int hum;};void f(

    有以下程序:#include <stdio.h>#include <strine.h> struct STU { char name[10]; int hum;};void f(char * name,iht num){ struct STU s[2] = {{ "SunDan" ,20044} , {" Penghua" ,20045}}; num= s[0]. nnm; strepy(name,s[0], name);}main( ){ struct STU s[2] = {{"YangSan" ,20041 }, { "LiSiGao" ,20042}}, * P; p = &s[1]; f(p->name,p->hum); printf("% s %d \n" ,p-> name,p->num);}程序运行后的输出结果是( )。

    A.SunDan 20042

    B.SunDan 20044

    C.LiSiGuo 20042

    D.YangSan 20041


    正确答案:A
    解析:main函数中将定义的结构体类型指针变量p指向结构体类型数组s[1],通过调用函数f改变了指针变量p所指向的结构体中成员变量name的值,但并未改变其num的值。这是因为函数f中的形参name是一个字符型指针变量,它指向了main函数中指针变量p所指向的结构体的成员变量name,所以对函数f中的形参*name的改变也就对main函数中p->name的改变,而函数f中对形参num的改变不会影响main函数中p-?num的值,因为此时传递给num的是一个值,而不是地址。

  • 第9题:

    有以下程序:includeincludetypedef struct{char name[9];char sex;float s

    有以下程序: #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.namC) ; a.sex=b.sex; for(i=0;i<2;i++) a.score[i]=b.score[i]; return a; } main() {STU c={"Qian",'f',95.0,92.0},d; d=f(C) ; pintf("%s,%c,%2.of.%2.of\n",d.name,d.sex,d.score[0],&score[1]); } 程序的运行结果是( )。

    A.Qian,f,95,92

    B.Qian,m,85,90

    C.Zhao,m,85,90

    D.Zhao,C95,92


    正确答案:C
    解析:本题的f()函数中,首先定义了一个STU结构体变量b并初始化为{"Zhao",'m',85.0,90.0},然后分别通过strcpy()库函数、赋值语句和for循环,将b中所有成员分别赋给形参a的相应成员,最后返回a。所以,无论传递给函数fun()的参数是什么,结果返回的都会是函数中定义的STU结构体b的内容{"Zhao",'m',85.0,90.0}。故最终输出结果为:Zhao,m,85,90;应该选择C。

  • 第10题:

    假定有“struct BOOK{char title[40]; float price;} book;”,则正确的语句为()。

    Astruct BOOK x= &book;

    Bstruct BOOK *x=&book;

    Cstruct BOOK x=calloc(BOOK);

    Dstruct BOOK *x=BOOK;


    B

  • 第11题:

    以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;


    正确答案:16

  • 第12题:

    单选题
    假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为()。
    A

    struct BOOK *x=malloc(book);

    B

    struct BOOK x={C++ Programming,27.0};

    C

    struct BOOK *x=malloc(sizeof(struct BOOK));

    D

    struct BOOK *x=&book;


    正确答案: B
    解析: 暂无解析

  • 第13题:

    C数组名称是指针变量吗?

    看这段程序,可是执行。#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; struct info *p=aa; for(int i=0;i<3;i++,p++) printf("%-6s %d\n",p->name,p->age);}将其改成这样:#include <stdio.h>int main(int argc, char *argv[]){ struct info { char name[33]; int age; }; struct info aa[3]={"meng",20,"juan",29,"an",59}; //struct info *p=aa; for(int i=0;i<3;i++,aa++) printf("%-6s %d\n",aa->name,aa->age);}为什么就执行不了呢


    C数组名称是指针变量吗 C数组名是个指针常量指向数组首元素的地址,常量是 不能自加或者自减的,所以 不能 aa++

  • 第14题:

    有以下程序段 int j; float y; char name[50]; scanf("%2d%f%s",&j,&y,name); 当执行上述程序段,从键盘上输入55566 7777abc后,y的值为

    A.55566

    B.566

    C.7777

    D.566777


    正确答案:B
    解析:本题scanf()函数的格式化控制串中,"%2d"表示输入一个2位的整数:"%f"表示输入一个浮点数;"%s"表示输入一个字符串。因此,从键盘上输入"55566  7777abc"后,前两位"55"被当作2位整数输入给j;"566"被当作浮点数输入给y;跳过空格后,剩下的字符串"7777abc"全部输入给name;故本题应该选择B。

  • 第15题:

    有以下程序#include "stdio.h"main(){ struct date { int number; float fenzhi; char name; }stu; printf("%d\n",sizeof(stu));} 程序的运行结果是A.3 B.5C.7 D.8


    正确答案:C
    本题主要考查结构体所占存储单元的计算。在C语言中,函数sizeof的作用是用以计算变量所处存储单元的大小,即占的字节数。
    在本题中,程序首先定义了一个结构体,该结构体包含三个成员变量,分别为整型、浮点型和字符型。在C语言中,这三种类型的变量所占的字节数分别为2、4、1,然后定义一个该结构体的结构体变量,并输出该结构体变量所占的字节数。那么结果应为2+4+1=7,因此本题正确的答案为C。

  • 第16题:

    有以下程序 include main() { struct STU{char name[9];char sex;double

    有以下程序 #include <stdio.h> main() { struct STU{char name[9];char sex;double score[2];}; sturt STU a={"Zhao" ,'m',85.0,90.0},b={"Qian" ,'f,95:0,92.0}; b=a; printf("%s,%c,%2.0f,%2.0f\n",b.name,b.sex,b.score[0],b.score[1]); } 程序的运行结果是______。

    A.Qian,f,95,92

    B.Qian,85,90

    C.Zhao,f,95,92

    D.Zhao,m,85,90


    正确答案:D
    解析:本题定义了两个结构体变量a和b,并将结构体变量a的内容赋给了结构体变量b。对于结构体的赋值,意味这将其中的每一个元素都进行赋值,所以输出的结构体变量b中的内容即为结构体变量a中的各项内容。另外本题需要注意的是输出格式的控制,其中“%2.0f”指的是输出的数据共占2列,其中有0位小数。

  • 第17题:

    设有以下程序段: struct MP3 { char name[20]; char color; float price; }std,*ptr; ptr=&std: 若要引用结构体变量std中的color成员,写法错误的是( )。

    A.std.color

    B.ptr->color

    C.std->color

    D.(*ptr)color


    正确答案:A
    本题中要引用结构体变量std中的color,要使用指针,而std.color不是一个指针类型,所以答案选择A。

  • 第18题:

    下列语句段中,正确的是( )。

    A.street { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.stmct stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd { int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第19题:

    下列关于结构型变量的定义语句中,错误的是( )

    A.typedef struct CCC

    B.define GGG struct { char name[20];GGG CCC { char name[20]; int age; int age; }GGG; }; GGG abc ; GGG CCC abc;

    C.struct

    D.struct { char name[20]; { char name[20]; int age; int age; }ccc; }abc; CCC abc;


    正确答案:C
    分析备选答案A:利用“typedef”定义了用户自定义的数据类型符“GGG”,这个用户自定义的数据类型符是含有两个成员的结构型CCC,所以语句“GGGabc”是定义结构型CCC的变量abc,语法没有错误。分析备选答案B:利用“#define”定义了宏名“GGG”,这个宏名第一次出现是定义结构型CCC,第二次是定义了结构型CCC的变量allc,所以语法上没有错误。分析备选答案C:这是定义一个没有名称的结构型,同时定义了这种结构型的变量CCC,接着的语句“CCCabc;”显然是错误的,因为CCC是变量名,不是数据类型符,该答案符合题意。至于备选答案D:这是标准的通过定义没有名称的结构型来定义该结构型的变量abc,语法上没有错误。

  • 第20题:

    下列语句段中,正确的是( )。

    A.struct { int x; float y; int a[2]; unsigned b[3]; char name[ 10]; };

    B.struct stu { unsigned a[3]; unsigned b[4]; }x; int *p=& x.a;

    C.street stu { int a; float x[4]; }y={1,1.0}; float data=y.x;

    D.struct nd {int a,b; unsigned c[2]=5; };


    正确答案:A
    解析:本题主要考查的知识点是结构类型的概念和定义,结构定义的一般形式是:struct结构类型名称{数据类型成员名1;数据类型成员名2;…数据类型成员名n;};struct为关键字,是结构的标识符:{}中包围的是组成该结构的成员项;每个成员的数据类型既可以是简单的数据类型,也可以是复杂的数据类型。整个定义作为一个完整的语句,用分号结束。结构类型名称是可以省略的,此时定义的结构称为无名结构。

  • 第21题:

    假设以下代码运行环境为32位系统,其中,__attribute__((packed))的作用是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐。代码段1:struct student1{char name[10];long sno;char sex;float score[4];}__attribute__((packed))*p1,a1,b1;代码段2:union student2{char name[10];long sno;char sex;float score[4];}*p2,a2,b2;sizeof(struct student1)、sizeof(union student2)的结果分别是______。

    A.248和128
    B.31和31
    C.31和16
    D.16和16

    答案:C
    解析:
    本题考查程序开发的基础知识。题目中student1是一个结构体,sizeof(struct student1)结果为结构体student1所有元素字节数之和,因此sizeof(struct student1)结果为:10+4+1+16=31字节。题目中student2是个联合,sizeof(union student2)结果是联合student2中最长一个元素的字节数。因此sizeof(union student2)结果为:16字节。

  • 第22题:

    假定有“struct BOOK{char title[40]; float price;}; struct BOOK book;”,则不正确的语句为()。

    Astruct BOOK *x=malloc(book);

    Bstruct BOOK x={"C++ Programming",27.0};

    Cstruct BOOK *x=malloc(sizeof(struct BOOK));

    Dstruct BOOK *x=&book;


    A

  • 第23题:

    单选题
    有以下函数:#include struct stu{ int num; char name[10]; int age;};void fun(struct stu *p){ printf(%s, p->name);}main(){ struct stu x[3] = {{01,Zhang,20}, {02,Wang,19}, {03,Zhao,18}}; fun(x+2);}程序运行后的输出结果是(  )。
    A

    Zhang

    B

    Zhao

    C

    Wang

    D

    19


    正确答案: A
    解析:
    程序定义了结构体stu和结构体数组x,其中x就是数组首地址,即&x[0],x+2代表了指向第三个元素的指针,即&x[2],所以输出p->name为Zhao。答案选择B选项。

  • 第24题:

    填空题
    以下程序段的输出结果是()。      struct node         {int a;  float b;  char c[10];}  printf(“%d”,sizeof(struet node)) ;

    正确答案: 16
    解析: 暂无解析