单选题有以下程序段:char name[20];int num;scanf(name=%s num=%d,name,&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为(  )。A LiliB name=LiliC Lili num=D name=Lili num=1001

题目
单选题
有以下程序段:char name[20];int num;scanf(name=%s num=%d,name,&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为(  )。
A

Lili

B

name=Lili

C

Lili num=

D

name=Lili num=1001


相似考题
更多“有以下程序段:char name[20];int num;scanf(name=%s num=%d,name,&num)”相关问题
  • 第1题:

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

  • 第2题:

    定义结构体数组: struct stu { int num; char name[20]; }x[5];{1,"L1",2,"ZHAO",3,"WANG",4,"ZHANG",5,"LIU"}; for(i=1;i<5;i++) printf("%d%c",x[i].num,x[i].name[2]); 以上程序段的输出结果为( )。

    A.2A3N4A5U

    B.1I2A3H4I

    C.1A2N3A4U

    D.2H3A4H5I


    正确答案:A
    解析:本题主要考查结构体数组的使用。x[i].num为结构体x[i]中的num成员,x[i].name[2]是结构体x[i]中name成员的第3个元素。程序执行循环过程时:第1次循环,i=1,输出x[1].num,x[1].name[2]的值,即2A;第2次循环,i=2,输出x[2].num,x[2].name[2]的值,即3N:第3次循环,i=3,输出x[3].num,x[3].name[2]的值,即4A;第4次循环,i=4,输出x[4].num,x[4].name[2]的值,即5U。

  • 第3题:

    有以下定义和语句: struct students {int num;char name[20];char c; struct {int grade1;int grade2;}s; }; struct students w,*pw; *pw=w; 下列赋值语句不正确的是( )。

    A.w.num=1002;

    B.w.grade1=85;

    C.pw->num=1002;

    D.w.s.grade2=85;


    正确答案:B

  • 第4题:

    有以下程序

    #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 x[3]={ {01,”Zhang”,20},{02, ” Wang”,19},{03, ”zhao”,18} };

    fun(x+2);

    }

    程序运行后的输出结果是

    A)Zhang

    B)Zhao

    C)Wang

    D)19


    正确答案:B
    【答案】B
    【知识点】结构体数组与函数调用
    【解析】函数调用中 “x+2”即为结构体变量x[2]的地址,所以形参变量p指向x[2]的地址,所以打印输出成员name的值“zhao”。

  • 第5题:

    下列数据类型定义中,正确的是

    A.Type Student Num As Long Name As String End Type

    B.Type Student Num As Integer Name As String * 10 End Type

    C.Private Type Num As Long Score As Single End Type

    D.Private Type Student Name As String Score(10)As String * 10 End Type


    正确答案:B
    解析:自定义类型的一般格式为:
      Type数据类型名>
      成员名> As 类型名
      ……
      End Type
      根据自定义类型的格式可以排除C、D两项。成员名如果是字符串类型时,一般要指明字符串长度。排除选项A,只有B项是正确的。

  • 第6题:

    有以下程序: #include<stdio.h> struct stu { int num;char name[l0];int age;}; void fun(struct stu*p) { printf("%s\n",p->name);} main( ) { struct stu x[3]={{01,"Zhang",20),{02,"Wang",l9},{03,"Zha0",l8}}; fun(x+2); } 程序运行后的输出结果是( )。

    A.Zhang

    B.Zhao

    C.Wang

    D.19


    正确答案:B
    fun(x+2)表示的是结构体数组中的第3个元素即{03,"Zhao",l8),而输出的是name元素,所以答案为B。

  • 第7题:

    以下程序的输出结果是______。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

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

    (16)有以下程序段

    char name[20]; int num;

    scanf("name=%s num=%d",name;&num);

    当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为

    A)Lili

    B)name=Lili

    C)Lili num=

    D)name=Lili num=1001


    正确答案:A

  • 第10题:

    单选题
    有以下程序段:char name[20];int num;scanf(name=%s num=%d,name,&num);当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为(  )。
    A

    Lili

    B

    name=Lili

    C

    Lili num=

    D

    name=Lili num=1001


    正确答案: A
    解析:
    在C语言中输入多个字符串时,系统会把空格字符作为输入的字符串之间的分隔符。本题中,当从键盘输入name=Lili num=1001时,Lili赋值给name,1001赋值给num。答案选择A选项。

  • 第11题:

    单选题
    typedef struct{ int num; char *name; } *vec_ptr; 则在IA32机器上,sizeof(vec_ptr) =()
    A

    4

    B

    8

    C

    12

    D

    16


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

  • 第12题:

    单选题
    有如下定义:struct{  int num;  char name[10];  struct {  int y;  int m;  int d; }birth; }s,*ps=&s;以下对内嵌结构体成员的引用形式错误的是(  )。
    A

    ps.birth.y

    B

    s.birth.y

    C

    ps->birth.y

    D

    (*ps).birth.y


    正确答案: C
    解析:
    使用结构体指针对结构体成员进行访问时,形式为:结构指针名->结构成员名,或者(*结构指针名).结构成员名,题目中ps为结构体指针,答案选择A选项。

  • 第13题:

    有以下程序 struct STU { char name[10]; int num; float TotalScore; }; vold f(struct STU *p) { struct STU s[2]={{"SunDan",20044,550),{"Penghua".20045,537}},*q=s ++p; ++q; *p=*q; } main() { struct SrU 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.USiGuo 20042 580

    D.SunDan 20041 703


    正确答案:B
    解析:在主函数中,首先声明了一个结构体数组s[3],然后用数组名调用函数f,而数组名是数组首地址的指针,因此,传递给函数的是指向上函数中s[0]的指针。在函数中,将参数指针往后移动了一位++p;,所以该指针现在指向主函数中的s[1],函数中也声明?一个结构体数组s[2]和一个结构体指针q,q虽然初始化指向函数中的结构数组s[2]的首地址,但也被往后移动了一位,所以函数调用的结果是将函数中的s[1]赋给了主函数中的s[1],故最终输出为:Penghua20045537,应该选择B。

  • 第14题:

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

  • 第15题:

    有以下程序段

    char.name[20];int num;

    scanf(“name=%s num=%d”,name,&num);

    当执行上述程序段,并从键盘输入:name=Lili num=1001<回车>后,name的值为

    A.Lill

    B.name=Lili

    C.Lili.num=

    D.name=Lili num—1001


    正确答案:A
    解析:scanf函数巾的格式控制字符串是为了输入数据用的.尤论其中有什么字符.也不会输出到屏幕上。输入数据时要按照一一对应的位置原样输入这些字符,包括字符的大小写、字符间的间隔等必须与scanf巾的完全一致。故执行程序后name的值为Lli。

  • 第16题:

    请填写以下Cisco 6500交换机端口配置命令的描述。

    set port name mod_num/port_num[name_string] (1)

    set port level mod—num/port_num noramal I high (2)

    set port speed mod_num/port_num<1011001auto> (3)

    set port duplex mod_num/port_num fullIhalf (4)

    show port mod_num/port_num (5)


    正确答案:(1)设置端口名称 (2)设置端口优先级 (3)设置端口速率 (4)设置端口传输类型 (5)检查端口配置状态
    (1)设置端口名称 (2)设置端口优先级 (3)设置端口速率 (4)设置端口传输类型 (5)检查端口配置状态 解析:此题考查了Cisco 6500交换机端口配置命令的使用。

  • 第17题:

    有以下程序段:

    当执行上述程序段,并从键盘输入:nalne=Lili nLim=1001<;回车>;后,name的值为( )。

    A.name:=Lili num=1001

    B.nfll"ne=Lili

    C.Uli.h.um=

    D.Lili


    正确答案:D
    在输入格式控制“name=%snum=%d”中,普通字符“ns.111e=num=”在输入时要原样输入,而格式控制符%s和%d对应各自的输入项,将输入的数据赋给相应的输入项。本题中输入“name=Lifthum=1001<回车>”后,将字符串Ijli赋给字符数组llalne,整数1001赋给变量num。因此D选项正确。

  • 第18题:

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

    有以下程序: #include <stdio.h> struct STU { char name[10]; int num; int Score; }; main() { struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"WangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}}, *p[5],*t; int i,j; for(i=0;i<5;i++) p[i]=&s[i]; for(i=0;i<4;i++) for(j=i+1;j<5;j++) if(p[i]->Score>p[j]->Score) { t=p[i];p[i]=p[j];p[j]=t;} printf("%d%d\n",s[1].Score,p[1]->Score); } 执行后的输出结果是( )。

    A.550 550

    B.680 680

    C.580 550

    D.580 680


    正确答案:C
    解析:本题是按成员变量Score的值进行由小到大的排序,程序执行后p[5]中各元素分别为:{{"Penghua",20045,537},{"SunDan",20044,550},{"LiSiGuo",20042,580},{"WangYin",20043,680},{"YangSan",20041,703}},所以P[1]->Score=550,s[1].Score=580。

  • 第19题:

    有以下程序: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值并未改变。

  • 第20题:

    阅读以下说明和C++程序,将应填入(n)处的字句写在答题纸的对应栏内。

    【说明】

    本程序用于评选优秀教师和学生。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。其类结构如下图所示:

    【程序】

    include <iostream.h>

    include <stdio. h>

    class base

    {

    protected:

    char name[8];

    public:

    void getname(){cout<<"name:"; cin>>name;}

    void printname(){cout<<"name:"<<name<<endl;}

    (1)

    };

    class student: (2)

    {

    int num;

    public:

    void getnum()

    {cout<<"score:"; cin>>num;}

    bool isgood()

    {return (3) }

    };

    class teacher: (2)

    {

    int num;

    public:

    void getnum()

    {cout<<"paper:"; cin>>num;}

    bool isgood()

    {return (num>3)?true:false;}

    void main()

    {

    base *p[50];

    student *pstud;

    teacher *ptech;

    char ch;

    int count=0;

    do{

    cout<<"input teacher(t) or student(s):";

    cin>>ch;

    if(ch=='s')

    {

    pstud=new student;

    pstud->getname();

    pstud->getnum();

    p[count++]=pstud;

    }

    else if(ch=='t')

    {

    (4)

    ptech->getname();

    ptech->getnum();

    p[count++]=ptech;

    }

    else

    cout<<"input is wrong"<<endl;

    cout<<"continue to iput(y/n)?";

    cin>>ch;

    }while(ch=='y');

    for(int i=0;i<count;i++)

    if((5))

    p[i]->printname();

    }


    正确答案:(1)virtual bool isgood()=0; (2)public base (3)(num>90)?true:false; (4)ptech=new teacher; (5)p[i]->isgood()==true
    (1)virtual bool isgood()=0; (2)public base (3)(num>90)?true:false; (4)ptech=new teacher; (5)p[i]->isgood()==true 解析:本题考查C++中类的继承、虚函数和其他一些语法结构。
    题目要求本题的程序用于评选优秀教师和学生,在输入一系列教师或学生的记录后,能将优秀学生及教师的姓名列出来。根据题目中的图,对于学生来说,只要拿其考试成绩与90比较大小就可;对于老师来说,只要一年内发表的论文超过3篇就可以。
    下面我们来分析代码。代码给出了三个类的定义和一个主函数,类base是类student和类teacher的基类。
    第(1)空处在基类base的定义里面,结合题目中的要求,我们知道类base中需要定义一个isgood()虚函数,但在类base的代码中并没有看到对虚函数isgood()的定义,因此,第(1)空应该是定义虚函数isgood()。在C++中定义虚函数的方法是在函数的定义前加一个关键字virtual,所以,此空应填virtual bool isgood()=0。
    第(2)空处的作用很明显,是用在继承类的定义时,表明其对父类的继承方式,由继承类中继承父类的成员方法getname()仍然是公有的可以知道,子类对父类的继承方式是公有继承。所以,此空答案为public base。
    第(3)空处的作用是在类student中重新定义虚函数isgood(),其要完成的任务在上面分析中已经知道,拿学生的考试成绩与90比大小,如果大于90返回true,否则返回 false。因此,此空答案为(num>90)?true:false。
    在做第(4)空时,我们如果结合前面那个订语句下面的代码就很容易明白了,此空要完成的任务是动态创建一个teacher对象,因此,答案为ptech=new teacher。
    第(5)空所在的位置是一个条件选择语句的条件,再结合全程序来看,不难发现此时程序还没有实现对优秀学生及教师的姓名的列出,而第(5)空下面的语句刚好用来列出姓名,那么第(5)空的功能是判断是否为优秀学生或老师,调用函数isgood()可以实现。因此,此空答案为p[i]->isgood()==true。

  • 第21题:

    typedef struct{ int num; char *name; } *vec_ptr; 则在IA32机器上,sizeof(vec_ptr) =()

    • A、4
    • B、8
    • C、12
    • D、16

    正确答案: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=13;}main(){ struct S input; int num = 4; strcpy(input.name, THIS); change(&input,num); printf(%s,%d,input.name,num);}程序运行后的输出结果是(  )。
    A

    ****,4

    B

    ****,13

    C

    THIS,4

    D

    THIS,13


    正确答案: A
    解析:
    程序执行过程为:定义结构体变量input,调用strcpy(input.name, "THIS"),使input.name = "THIS",调用函数change(&input,4),将结构体地址传入函数,执行函数体,调用strcpy(data->name, "****")使input.name = "****",而4是值传递,并没有改变num的值。答案选择A选项。

  • 第24题:

    单选题
    有以下程序#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选项。