数据结构里,struct student { char name[20]; char sex[10]; int age; int score; }; 定义结构体后,定义变量、数组赋值正确的是()。A、struct student s={"张三","男",18,100};B、struct student stu[3]={{"张三","男",18,100},{"李四","男",19,90},{"王五","男",23,97}};C、struct student s={"李四";"女";18;100};D、str

题目

数据结构里,struct student { char name[20]; char sex[10]; int age; int score; }; 定义结构体后,定义变量、数组赋值正确的是()。

  • A、struct student s={"张三","男",18,100};
  • B、struct student stu[3]={{"张三","男",18,100},{"李四","男",19,90},{"王五","男",23,97}};
  • C、struct student s={"李四";"女";18;100};
  • D、struct student stu[3]={{"张三",18,"男",100},{"李四",19,"男",90},{"王五",23,"男",97}};

相似考题
更多“数据结构里,struct student { char name”相关问题
  • 第1题:

    已知学生记录描述为:

    struct student

    { int no;

    char name[20],sex;

    struct

    { int year,month,day;

    } birth;

    };

    struct student s;

    设变量s中的"生日"是"1984年11月12日",对"birth"正确赋值的程序段是

    A.year=1984;month=11;day=12;

    B.s.year=1984;s.month=11;s.day=12;

    C.birth.year=1984;birth.month=11;birth.day=12;

    D.s.birth.year=1984;s.birth.month=11;s.birth.day=12;


    正确答案:D

  • 第2题:

    若给出关系Student(S_no,Shame,Sage,S_sex,SD_name,S_add,S_tel),并用SQL语言定义Student关系如下:CREATE Student(S_no CHAR(6), Sname CHAR(30)NOT NULL, Sage CHAR(30), S_sex CHAR(1), SD_name CHAR(20), S_add CHAR(30), S_tel CHAR(20), PRIMARY KEY(S_no));采用(41)向Student中插入记录能被正确地执行。

    A.INSERT INTO Smdent(S_no,Sname,Sage,S_sex,SD_name,S_add,S_tel)VALUES('010456','黎敏','18',",",",")

    B.INSERT INTO Student(S_no,Sname,Sage,S_sex,S_r)name,S_add,S_tel)VALUES('010456','黎敏','18','男','计算机学院','北京','88661200')

    C.INSERT INTO Student(S_no,Sname,Sage,S_sex,SD_name,S_add,S_tel)VALUES(,'黎敏','18','F','计算机学院','北京','88661200')

    D.INSERT INTO Student(S_no,Sname,Sage,S_sex,SD_name,S_add,S_tel)VALUES('010456',,'18','F','计算机学院','北京','88661200')


    正确答案:A
    解析:本题考查SQL语言方面的基本知识。试题(41)的答案为A。选项B是错误的,因为定义Student关系时S_sex为一个字符,而选项B中插入S_sex处的数据为”男”占两个字符:选项C是错误的,因为定义 Student关系时S_no是主键,主键是不能取空值的,而选项C中插入S_no处的数据为空;选项D是错误的,因为定义Student关系时要求Sname不为空,而选项D中插入 Sname处的数据为空。

  • 第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题:

    设定义下列结构体,结构体变量p的出生年份赋值正确的语句是( )。

    Struct st

    { int x;

    inty;

    int z;

    }

    Struct worker

    { char name[20];

    char sex;

    struct st birth;

    }p;

    A.x=1987

    B.birth.x=1987;

    C.p.birth.x=1987;

    D.p.x=1987;


    正确答案:C
    解析:本题主要考查怎样为嵌套定义的结构中的成员赋值:由于worker中的birth是一个st型的结构,在给birth赋值时,不能将birth作为一个整体,要用“.”运算再深入一层访问到最基本的成员x、y、z。

  • 第5题:

    有以下说明和定义语句struct student{ int age; char num[8];};struct student stu[3]={{20,"200401"},{21,"200402"},{10\9,"200403"}};struct student *p=stu;以下选项中引用结构体变量成员的表达式错误的是A.(p++)->num B.p->num C.(*p).num D.stu[3].age


    正确答案:D
    引用形式有以下三种:①结构体变量.成员名;②(*p).成员名;③p→成员名。所以A、B、C答案都是正确的。故本题答案为D。

  • 第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题:

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

    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,语法上没有错误。

  • 第8题:

    若有定义和语句:struct student { int num; char name[10]; float score;} s[5]={{1,"lili",98.5},{9,"xiaohua",66}},*p=s;printf("%d",*p++);输出结果是1。( )

    此题为判断题(对,错)。


    正确答案:×

  • 第9题:

    若用如下的SQL语句创建一个student表:CREA TETABLE student(NO CHAR(4)NOT NULL,NAME CHAR(8)NOT NULL,SEX CHAR(2),AGE INT)可以插入到student表中的是()

    • A、(’1031’,’曾华’,男,23)
    • B、(’1031’,’曾华’,NULL,NULL)
    • C、(NULL,’曾华’,’男’,’23’)
    • D、(’1031’,NULL,’男’,23)

    正确答案:B

  • 第10题:

    数据结构中,struct pro { int id; char name[20]; }; void fun(struct pro p[]) { ......;//函数体省略 }关于本程序段描述不正确的是()。

    • A、fun函数是按照值传递进行的
    • B、fun函数是结构体数组作为参数
    • C、结构体数组做参数,属于地址传递
    • D、数组p做参数传递是数组的首地址

    正确答案:A

  • 第11题:

    单选题
    以下scanf函数调用语句中对结构体变量成员的不正确引用的是()。  struct node{      char name[20];      int age;      int sex; }student[5],*p;  p=student;
    A

    scanf(“%s”,student[0].name);

    B

    scanf(“%d”,&student[0].age);

    C

    scanf(“%d”,&(p->sex));

    D

    scanf(“%d”,p->age);


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

  • 第12题:

    单选题
    有以下程序:#include #include struct S{ char name[10];};main(){ struct S s1,s2; strcpy(s1.name,XXX); strcpy(s2.name,=); s1=s2; printf(%s,s1.name);}程序运行后的输出结果是(  )。
    A

    =

    B

    XXX

    C

    =XX

    D

    X=


    正确答案: B
    解析:
    主函数首先定义两个结构体变量s1,s2,分别使用字符串拷贝函数strcpy为s1和s2的成员name赋值,再将s2中的成员信息赋值给s1,因此输出为“=”,答案选择A选项。

  • 第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题:

    有以下程序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。

  • 第15题:

    设有以下语句: struct SS { int no; char name[10];}PERSON; 则下面叙述中错误的是 ( )

    A.struct是结构体类型的关键字

    B.struct SS是结构体类型

    C.PERSON是结构体类型名

    D.name是结构体成员名


    正确答案:C

  • 第16题:

    若给出关系Student(S_no, Sname, Sage, S_sex, SD_name, S_add, S_tel),并用SQL语言定义Student关系如下: CREATE Student(S_no CHAR(6), Sname CHAR(30)NOT NULL, Sage CHAR(30), S_sex CHAR(1), SD_name CHAR(20), S_add CHAR(30), S_tel CHAR(20), PRIMARY KEY(S_no)); 采用(45)向Student中插入记录能被正确地执行。

    A.INSERT INTO Student(S_no, Sname, Sage, S_sex, SD_name, S_add, S_tel) VALUES('010456', '黎敏', '18', ", ", ", ")

    B.INSERT INTO Student(S_no, Sname, Sage, S_sex, SD_name, S_add, S_tel) VALUES('010456', '黎敏', '18', '男', '计算机学院', '北京', '88661200')

    C.INSERT INTO Student(S_no, Sname, Sage, S_sex, SD_name, S_add, S_tel) VALUES(, '黎敏', '18', 'F', '计算机学院', '北京', '88661200')

    D.INSERT INTO Student(S_no, Sname, Sage, S_sex, SD_name, S_add, S_tel) VALUES('010456', , '18', 'F', '计算机学院', '北京', '88661200')


    正确答案:A
    解析:要想使插入的记录能被正确地执行,必须保证插入的字段值符合字段定义时的类型和字段长度。在选项B中,'男'占了两个字符,而定义S_sex为CHAR(1),所以不符合。在选项C中,S_noCHAR(6)没有被赋予任何值也没有给出''是不对的。在选项D中,定义中SnameCHAR(30)NOTNULL字段Sname不能为空,而在D中这一项的值为空。所以正确的选项是A。

  • 第17题:

    有以下说明和定义语句:struct student{int age; char num[8] ;};struct student stu [3] = { { 20, "200401" } , {21, "200402" } , {19, "200403" } };stract student * p = stu;以下选项中引用结构体变量成员的表达错误的是( )。

    A.(p++) ->num

    B.p- >num

    C.( *p).num

    D.stu[3].age


    正确答案:D
    解析:结构体变量的引用有三种形式:结构体变量.成员名;(*p).成员名;P->,成员名。所以选项A),B),C)都是正确的。

  • 第18题:

    有以下程序:include struct STU{char name[10]; int num;};void f1(struct STU c){ st

    有以下程序: #include <stdio.h> struct STU { char name[10]; int num; }; void f1(struct STU c) { struct STU b={"LiSiGuo",2042}; c=b; } void f2(struct STU *c) { struct STU b={"SanDan",2044}; *c=b; } main() { struct STU a={"YangSan",2041}, b={"WangYin",2043}; f1(a); f2(&b); printf("%d%d\n",a.num,b.hum); } 执行后的输出结果是( )。

    A.2041 2044

    B.2041 2043

    C.2042 2044

    D.2042 2043


    正确答案:A
    解析:f2函数传递的是变量的地址,可以实现数据的交换,而f1函数传递的是值,调用完f1函数后,c的值改变了,但main函数中的a值并未改变。

  • 第19题:

    有以下程序: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的是一个值,而不是地址。

  • 第20题:

    假设以下代码运行环境为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字节。

  • 第21题:

    数据结构里,struct student { char name[20]; char sex[10]; int age; int score; }; 定义结构体后,定义变量、数组赋值正确的是()。

    • A、struct student s={"张三","男",18,100};
    • B、struct student stu[3]={{"张三","男",18,100},{"李四","男",19,90},{"王五","男",23,97}};
    • C、struct student s={"李四";"女";18;100};
    • D、struct student stu[3]={{"张三",18,"男",100},{"李四",19,"男",90},{"王五",23,"男",97}};

    正确答案:A,B

  • 第22题:

    单选题
    有以下函数:#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选项。

  • 第23题:

    单选题
    有以下程序#include #include struct S{ char name[10];};void change(struct S *data, int value){ strcpy(data->name, #); value = 6;}main(){ struct S input;  int num = 3; strcpy(input.name, OK); change(&input, num); printf(%s,%d, input.name, num);}程序运行后的输出结果是(  )。
    A

    OK,6

    B

    #,6

    C

    OK,3

    D

    #,3


    正确答案: B
    解析:
    考察结构体成员的引用规则。声明结构类型S中有一个字符数组name,在main函数中,定义了一个结构变量input,为input中成员name初始化“OK”后,调用change函数。chang函数执行功能是把“#”赋值给name,由于change函数的形参为结构体指针,因此change函数改变形参指针data指向的name值的同时,也改变了实参input的成员name值;而形参value为整型变量,是num的一个副本,修改了nnm的副本,对num本身不产生影响,所以输出为#,3。答案选择D选项。

  • 第24题:

    多选题
    数据结构里,struct student { char name[20]; char sex[10]; int age; int score; }; 定义结构体后,定义变量、数组赋值正确的是()。
    A

    struct student s={张三,男,18,100};

    B

    struct student stu[3]={{张三,男,18,100},{李四,男,19,90},{王五,男,23,97}};

    C

    struct student s={李四;女;18;100};

    D

    struct student stu[3]={{张三,18,男,100},{李四,19,男,90},{王五,23,男,97}};


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