参考答案和解析
正确答案:A
更多“已有定义intk=2,*ptr1,*ptr2;且ptrl和Ptr2均已指向变量k,下面能正确执行的赋值语句是()A、k=*ptrl+*ptr2;B、ptr2=kC、*ptrl=ptr2;D、ptrl=*ptr2;”相关问题
  • 第1题:

    已有定义“int k=2;int*ptr1, *ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。

    A.k=*ptr1+*ptr2;

    B.ptr2=k;

    C.ptr1=ptr2;

    D.K=*ptr1*(*ptr2);


    正确答案:B

  • 第2题:

    下面程序的输出结果是______。

    main()

    { static char a[]="language",b[]="program";

    char *ptrl=a,*ptr2=b;

    int k

    for(k=0;k<7;k++)

    if(*(ptrl+k)==*(ptr2+k))

    printf("%c",*(ptr1+k));}


    正确答案:

  • 第3题:

    已有定义“int k=2;int*ptr1,*ptr2;”,且ptr1和ptr2均已指向变量k,下面不能正确执行的语句是______。

    A.k=*ptr1+*ptr2;

    B.ptr2=k;

    C.ptrl=ptr2;

    D.K=*ptr1*(*ptr2);


    正确答案:B

  • 第4题:

    下面程序的输出结果是( )。 include main(){static chara[]="zhao",b[]="juan"; char*pt

    下面程序的输出结果是( )。 include<stdio.h> main() {static chara[]="zhao",b[]="juan"; char*ptr1=a,*ptr2=b; int k; for(k=0;k<4;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));}


    正确答案:a
    a 解析:本程序先将指针ptr1和ptr2分别指向字符数组a和b,然后通过指针的移动比较a和b中是否有相同的字符。若有相同的字符则将其输出。

  • 第5题:

    试题五(共 15分)

    阅读以下关于 C语言及 C代码的叙述,回答问题 1至问题 3,将答案填入答题纸的对应栏内。

    【说明】

    在开发某嵌入式系统时,设计人员根据系统要求,分别编写了如下三部分程序,其中:

    【C代码 1】是李工为了在嵌入式平台上开发一段可变参数函数,在X86 平台上实现的一个参数个数可变函数实例。

    【C代码 2】是王工在编写软件时,自己编写的内存拷贝函数。

    【C代码 3】是赵工编写的一段数据处理的程序,其中 fun()的含义为从已创建的一个单向链表中查找倒数第index 个节点。他的设计思路为:首先创建两个指针 ptrl,ptr2,并且都指向链表头,然后 ptrl向前走index 步,这样ptrl和 ptr2 之间就间隔 index 个节点,然后 ptrl和ptr2 同时向前步进,当 ptrl到达最后一个节点时,ptr2 就是倒数第 index 个节点了。ReverseList()为赵工编写的对已有单向链表进行逆序重排的函数。

    【C代码 1】

    long sum(int i,...)

    {

    int *p,j;

    long s = 0;

    p=&i+1;

    for(j=0;j<i;j++)

    s+=p[j]

    return s;

    }

    long Sum = sum(3,l,2,3);

    【C代码 2】

    static int pent;

    ……

    void *MyMemcpy(void * dest, const void* src, int n )

    {

    char *pDest = (char *)dest;

    char *pSrc = (char *)src;

    for (int i=0;i<n; i++) {

    *(pDest +i) = *(pSrc+i);

    } return dest;

    }

    【C代码 3】

    node *fun(node * head, int index)

    {

    node *ptr1,*ptr2;

    int 1 = 0;

    ptr1 = head;

    ptr2 = head;

    if( head == NULL || head->next == NULL)

    return ptrl;

    while(i<index)

    {

    (1)

    if(ptrl == NULL)

    return head;

    i++;

    }

    while(ptrl->next != NULL)

    {

    ptrl = ptrl->next;

    (2) ;

    }

    return (3) ;

    }

    node* ReverseList(node *head)

    {

    node *templ = NULL;

    node *temp2 = NULL;

    node *temp3 = NULL;

    if((head->next == NULL) || (head == NULL))

    {

    return head;

    } templ=head;

    temp3= templ->next;

    templ->next= NULL;

    while(temp3->next!=NULL)

    {

    temp2 = temp3;

    temp3= temp3->next;

    (4) ;

    templ=temp2;

    }

    temp3->next= templ;

    retum (5)

    }

    【问题1】(3分)

    执行【C代码 1】后,Sum的值应为多少?请用十进制表示。

    【问题2】(7分)

    请问【C代码2】中 static的作用是什么?const的作用是什么?王工自己编写的内存拷贝函数安全吗?

    如存在缺陷,请指出缺陷在哪里。

    【问题3】(5 分)

    仔细阅读并分析【C代码 3】,填补其中的空(1)~(5)。


    正确答案:
    试题五(共15分)
    【问题1】(3分) Sum=6
    【问题2】(7分)
    1) static的作用:是将变量修饰成静态变量,静态变量的存储地址在整个程序的运行执行期间均保留,不会被别的变量占据。
    2) const的作用:是用于冻结一个变量,使其值在程序中不能被进一步改变。
    3)不安全,有缺陷。
    4)应对形参的有效性进行检查,应判形参dest、src指针是否为空,形参n是否大于0,还应保证dest所指向的内存空间不越界。
    【问题3】(共5分)
    (1) ptrl=ptrl->next
    (2) ptr2=ptr2->next
    (3) ptr2
    (4) temp2->next= templ
    (5) temp3

  • 第6题:

    在整型指针变量ptr1、ptr12的定义中,错误的是 ______。

    A.int x, *ptr1, ptr2;

    B.int*ptrl, x, *ptr2;

    C.int x,*ptrl=&x,*ptr2;

    D.int*ptr1, x,*ptr2=&x;


    正确答案:B

  • 第7题:

    若有定义语句:char s[3][10],(*k)[3],*p;,则以下赋值语句正确的是;

    A.p=s;

    B.p=k

    C.p=s[0]

    D.k=s;


    正确答案:C

  • 第8题:

    设p1和p2均为指向int型的指针变量,k为int型变量,下列不正确的赋值语句是(C)。

    A.k=*p1+*p2

    B.k=*p1*(*p2)

    C.p2=k

    D.p1=p2


    正确答案:C

  • 第9题:

    已有定义int k=2; int *ptrl, *ptr2,且ptr1和ptr2 均已指向变量k,下面不能正确执行的赋值语句是()

    • A、k =*ptr1+*ptr2;
    • B、ptr2 = k;
    • C、ptr1=ptr2;
    • D、k = *ptr1*(*ptr2);

    正确答案:B

  • 第10题:

    int*p1,*p2,intk,则不能正确执行的语句是()。

    • A、k=*p1+*p2
    • B、p2=k
    • C、p1=p2
    • D、k=(*p1)*(*p2);

    正确答案:B

  • 第11题:

    已有定义int k=2;int*ptr1,*ptr2;且ptr1、ptr2均已指向变量k,下面不能正确执行的赋值语句是()

    • A、k=*ptr1+*ptr2
    • B、prt2=k;
    • C、ptr1=ptr2
    • D、k=*ptr1*(*ptr2)

    正确答案:B

  • 第12题:

    单选题
    已有定义int k=2; int *ptrl, *ptr2,且ptr1和ptr2 均已指向变量k,下面不能正确执行的赋值语句是()
    A

    k =*ptr1+*ptr2;

    B

    ptr2 = k;

    C

    ptr1=ptr2;

    D

    k = *ptr1*(*ptr2);


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

  • 第13题:

    设pl和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是( )。

    A.k=*pl+*p2

    B.p2=k;

    C.pl=p2;

    D.k=*pl*(*p2.;


    正确答案:B
    本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误,应该为p2=&k。

  • 第14题:

    下面函数的功能是______。 exchange(int*ptr1,*ptr2) { int*ptr; ptr=-ptr1; ptr1=ptr2; ptr2=ptr; }

    A.交换*ptr1和*ptr2的值

    B.无法改变*ptr1和*ptr2的值

    C.可能造成系统故障,因为使用了空指针

    D.交换*ptr1和*pb2的地址


    正确答案:B
    解析:函数中将指针变量ptr1和ptr2中的值交换,而不是交换指针ptr1和ptr2所指变量中的值。

  • 第15题:

    设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是

    A.k=*p1+*p2

    B.p2=k;

    C.p1=p2;

    D.k=*p1*(*p2);


    正确答案:B
    解析:本题主要考查了一维数组指针的赋值和用指针引用数组元素进行运算。选项B)中p2为指向int型变量的指针,而k为int型变量,不能将int型变量直接赋值给指向int型变量的指针,所以选项B)错误。

  • 第16题:

    设有如下定义: int arr[]={6,7,8,9,10); int*ptr: ptr=arr; *(ptr2)=2; printf("%d,%d\n",*ptr,*(ptr2)): 则下列程序段的输出结果为( )。

    A.8,10

    B.6,8

    C.7,9

    D.6,2


    正确答案:D
    程序中ptr指针指向数组art的首地址,*ptr=arr[0]=6,*(ptr2)=2,故选D。

  • 第17题:

    以下程序段的输出为( ) static char a[]="language",b[]="progratne"; char *ptr1,*ptr2; int k; ptr1=a;ptr2=b; for(k=0;k<7;k++) if(*(ptr1+k)==*(ptr2+k)) printf("%c",*(ptr1+k));

    A.gae

    B.ga

    C.language

    D.有语法错误


    正确答案:B

  • 第18题:

    若下列选项中的各变量均为整型且已有值,其中不正确的赋值语句是( )。

    A.++i;

    B.n1=(n2/(n3=2));

    C.k=i=j;

    D.a=b+c=2;


    正确答案:D
    解析:本题考查赋值表达式。赋值表达式的一般形式是:变量名=表达式。C语言规定,不能给变量表达式赋值。

  • 第19题:

    设有程序段: intk=12: while(k=1)k=k-1: 则下列描述中正确的是( )。A.while循环执行10次

    设有程序段: intk=12: while(k=1)k=k-1: 则下列描述中正确的是( )。

    A.while循环执行10次

    B.循环是无限循环

    C.循环体语句一次也不执行

    D.循环体语句执行一次


    正确答案:C
    本题考查while,while循环表达式k-1是个赋值表达式而不是逻辑表达式,k的初值为l2不符合循环条件,所以循环体语句一次也不执行。

  • 第20题:

    设有程序段intk=10;while(k)k=k-1;则下面描述中正确的是()。

    • A、while循环执行10次
    • B、循环是无限循环
    • C、循环体语句一次也不执行
    • D、循环体语句执行一次

    正确答案:A

  • 第21题:

    当发电机PTR2高压熔断器熔断时,有何现象出现?


    正确答案: 当A1调节器运行时,只发出“A2调节器故障”报警。

  • 第22题:

    有以下函数定义voidfun(intn){…};若以下选项中的变量都已经正确定义且赋值则对函数fun的正确调用语句是()

    • A、fun(inty);
    • B、k=fun(10);
    • C、fun(x);
    • D、voidfun(n);

    正确答案:C

  • 第23题:

    当出现发电机PTR2高压熔断器熔断事故时,应如何进行处理?


    正确答案: 到发电机出口TV二次端子柜测量PTR2的二次三相电压,判断故障相,将二次小开关断开,更换PTR2并推运行位置,合人二次小开关,测量三相电压应正常。注意在拉开TV小开关时,应只拉PTR2小开关。