有以下程序: struct STU { char name[10]; int num; float TotalScore; }; void f(struct STU *p) { struct 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}

题目

有以下程序: struct STU { char name[10]; int num; float TotalScore; }; void f(struct STU *p) { struct 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.0f\n", s[1]. name, s[1]. num, s[1]. TotalScore); } 程序运行后的输出结果是______。

A.SunDan 20044 580

B.Penghua 20045 537

C.LiSiGUO 20042 580

D.SunDan 20041 703


相似考题
更多“有以下程序:struct STU{ char name[10];int num;float TotalScore;};void f(struct STU *p){ str ”相关问题
  • 第1题:

    下面的程序各自独立,请问执行下面的四个TestMemory 函数各有什么样的结果?

    ①void GetMemory(char * p)

    {

    p = (char * )malloc(100);

    }

    void TestMemory (void)

    {

    char *str = NULL;

    GetMemory (str);

    strcpy(str, "hello world");

    prinff(str);

    }

    ② char * GetMemory (void)

    {

    char p[ ] = "hello world";

    return p;

    }

    void TestMemory (void)

    {

    char * str = NULL;

    str = GetMemory( );

    printf(str);

    }

    ③void GetMemory(char * * p, int num)

    {

    * p = (char * )malloc(num);

    }

    void TestMemory (void)

    {

    char * str = NULL;

    GetMemory(&str, 100);

    strcpy( str, "hello" );

    printf(sir);

    }

    ④void TestMemory (void)

    {

    char *str = (char * )malloe(100);

    strepy (str, "hello" );

    free ( str );

    if(str ! = NULL)

    {

    strepy( str, "world" );

    printf(str);

    }

    }


    正确答案:程序1程序崩溃。因为GetMemory并不能传递动态内存TestMemory函数中的str一直都是 NULL。strcpy(str “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针该指针的地址不是 NULL但其原来的内容已经被清除新内容不可知。 程序3能够输出hello但是会发生内存泄漏。 程序4篡改动态内存区的内容后果难以预料非常危险。因为free(str);之后str成为野指针if(str!=NULL)语句不起作用。
    程序1程序崩溃。因为GetMemory并不能传递动态内存,TestMemory函数中的str一直都是 NULL。strcpy(str, “hello world”);将使程序崩溃。 程序2可能是乱码。因为GetMemory返回的是指向“栈内存”的指针,该指针的地址不是 NULL,但其原来的内容已经被清除,新内容不可知。 程序3能够输出hello,但是会发生内存泄漏。 程序4篡改动态内存区的内容,后果难以预料,非常危险。因为free(str);之后,str成为野指针,if(str!=NULL)语句不起作用。

  • 第2题:

    设有以下结构体定义及初始化,表达式p->score的结果是()。 struct node { int num; float score; }stu[2]={101,91.5,102,92.5},*p=stu; A)101 B)91.5 C)102 D)92.5

    A.分析错误#B.该定义使stu[0].num=101,stu[0].score=91.5,stu[1].num=102,stu[0].score=92.5,p指向数组stu的首地址,p->score的值是stu[0].score。#C.分析错误#D.分析错误
    该定义使 stu[0] .num=101, stu[0] .score=91.5, stu[1] .num=102, stu[0] .score=92.5,p指向数组 stu的首地址, p->score 的值是 stu[0] .score。

  • 第3题:

    7、若能使程序运行后的输出结果如下: 201501 201502 201503 则空白处填写的表达式或语句应该是 #include <stdio.h> struct student { int age; char num[8]; }; int main() { struct student stu[3]={{20,"201501"},{21,"201502"},{19,"201503"}}; struct student *p=stu; ____________________ return 0; }

    A.printf("%s\n",(*p).num); printf("%s\n",(p)->num); printf("%s\n",stu[2].num);

    B.printf("%s\n",(p++).num); printf("%s\n",(p++).num); printf("%s\n",(p++).num);

    C.printf("%s\n",(p)->num); printf("%s\n",(p)->num); printf("%s\n",(*p).num);

    D.printf("%s\n",stu[0]->num); printf("%s\n",stu[1]->num); p


    2

  • 第4题:

    若能使程序运行后的输出结果如下: 201501 201502 201503 则空白处填写的表达式或语句应该是 #include <stdio.h> struct student { int age; char num[8]; }; int main() { struct student stu[3]={{20,"201501"},{21,"201502"},{19,"201503"}}; struct student *p=stu; ____________________ return 0; }

    A.printf("%sn",(*p).num); printf("%sn",(p)->num); printf("%sn",stu[2].num);

    B.printf("%sn",(p++).num); printf("%sn",(p++).num); printf("%sn",(p++).num);

    C.printf("%sn",(p)->num); printf("%sn",(p)->num); printf("%sn",(*p).num);

    D.printf("%sn",stu[0]->num); printf("%sn",stu[1]->num); printf("%sn",stu[2]->num);


    5,11

  • 第5题:

    【单选题】以下结构体的定义语句中,正确的是______。

    A.struct student {intnum; char name[10];int age;};stu;

    B.struct {int num;char name[10];int age;}student; struct studentstu;

    C.struct student {int num; char name[10];int age;}stu;

    D.struct student {int num; char name[10]; int age;}; student stu;


    struct student {int nmu; char name[10]; int age;} stu;

  • 第6题:

    以下结构体的定义语句中,正确的是______。

    A.struct student {int num; char name[10];int age;};stu;

    B.struct {int num; char name[10];int age;}student; struct student stu;

    C.struct student {int num; char name[10];int age;}stu;

    D.struct student {int num; char name[10]; int age;}; student stu;


    struct student {int nmu; char name[10]; int age;} stu;