itgle.com

有以下程序:include<stdio.h>main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&a有以下程序:include<stdio.h>main( ){ int a,b,k,m,*pl,*p2;k=1,m=8;p1=&k,p2=&m;a=/*pl-m;b=*p1+*p2+6;printf("%d",a);printf("%d\n",b);}编译时编译器提示错误信息,你认为出错的语句是( )。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,

题目
有以下程序:include<stdio.h>main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&a

有以下程序:

include<stdio.h>

main( )

{ int a,b,k,m,*pl,*p2;

k=1,m=8;

p1=&k,p2=&m;

a=/*pl-m;b=*p1+*p2+6;

printf("%d",a);printf("%d\n",b);

}

编译时编译器提示错误信息,你认为出错的语句是( )。

A.a=/*pl-m;

B.b=*p1+*p2+6;

C.k=1,m=8;

D.pl=&k,p2-&m;


相似考题
更多“有以下程序:includestdio.hmain( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=k,p2=stdio.hmain( ){ int a,b,k,m,*pl,*p2;k=1,m=8;p1=k,p2=m;a=/*pl-m;b=*p1+*p2+6;printf(%d,a);printf(%d\n,b);}编译时编译器提示错误信息,你认为出错的语句是( )。A.a=/*pl-m;B.b=*p1+*p2+6;C.k=1,m=8;D.pl=&k,p2-&m;”相关问题
  • 第1题:

    有以下程序 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main() { int j=1,m=1,k; k=fun(j,m); printf("%d,",k); k=fun(j,m); printf("%d\n",k); } 执行后的输出结果是______。

    A.5,5

    B.5,11

    C.11,11

    D.11,5


    正确答案:B
    解析:将j和m的值带入函数fun中,第—次调用完fun()后,m和i的值分别为5和3且要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。所以最后的结果是5和11。

  • 第2题:

    设有以下程序: include using namespace std; int main() {inta,b,k:4,m=6,*p1=&k

    设有以下程序:

    include<iostream>

    using namespace std;

    int main()

    {

    int a,b,k:4,m=6,*p1=&k,*p2=&m;

    a=p1==&m;

    b=(*p1)/(*p2)+7;

    cout<<a<<b<<end1;

    return 0;

    }

    执行该程序后,a的值为【 】,b的值为【 】。


    正确答案:0 7
    0 7 解析:本题考核的知识点是有关指针的运算。程序中定义了两个指针变量p1和p2,并通过赋初值让它们分别指向了变量k和m。语句“a=p1==&m;”中先执行关系运算符“p1==&m”,显然是0(假),然后把0赋值给a。接着执行语句“b=(*p1)/(*p2)+7”,此处*p1的值就是k的值4,*p2的值就是m的值6,即把“4/6+7”的结果赋给b,b的值为7。

  • 第3题:

    以下程序运行后,a的值是 ( ) main( ) { inta,k=4,m=6,*pl=&k,*p2=&m; a=p1=&m; printf("%d\n",a); }

    A.4

    B.1

    C.0

    D.运行时出错,a无定值


    正确答案:C

  • 第4题:

    设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)错误。

  • 第5题:

    以下程序的输出结果是______。includemain(){int k=4,m=1,p; p=func(k,m); printf("%d,

    以下程序的输出结果是______。 #include<stdio.h> main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d\n",p); } func(a,b) int a,b; { static int m=0,i=2; i+=m+1;m=i+a+b;return(m); }

    A.8,17

    B.8,16

    C.8,20

    D.8,8


    正确答案:A

  • 第6题:

    设p1和p2是指向一个血型一维数组的指针变量,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)错误。

  • 第7题:

    以下程序的输出结果是________。 main() { int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p); } func(int a,int B) { static int m=0,i=2; i+=m+1;m=i+a+b; return(m); }

    A.8,17

    B.8,16

    C.8,20

    D.8,8


    正确答案:A
    解析:将k和m的值带入函数func中,第—次调用完func()后,其中m和i的值要保留,并在第二次调用时使用,这是因为两者都是局部静态变量。所以最后的结果是8和17。

  • 第8题:

    下列程序的运行结果是( )。 #include<stdio.h> main { static char a[]="Languagef",b[]="programe": char*p1,*p2;int k; p1=a;p2=b; for(k=0;k<=8;k++) if(*(p1+k)==*(p2+k)) printf("%c",*(p1+k)): }

    A. gae

    B.ang

    C.program

    D.有语法错


    正确答案:A
    本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第9题:

    下面程序的运行结果是

    #include<stdio.h>

    main()

    { static char a[]=" Languagef" ,b[]="programe";

    char *p1,*p2; int k;

    p1=a; p2=b;

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

    if(*(p1+k)==*(p2+k)) printf(" %c",*(p1+k)); }

    A.gae

    B.ga

    C.Language

    D.有语法错


    正确答案:A
    解析:考查用指针来引用字符数组元素的方法。指针p1+k相当于指针p1向后移动了k个字符的位置,指针p2同理。

  • 第10题:

    下列程序运行后,输出结果是______。func (int a,int b){ static int m=0,i=2; i+=m+1; m=i+a+b; return(m);} main(){ int k=4,m=1,p; p=func(k,m);printf("%d,",p); p=func(k,m);printf("%d\n",p);}

    A.8,15

    B.8,16

    C.8,17

    D.8,8


    正确答案:C

  • 第11题:

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

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

    正确答案:B

  • 第12题:

    单选题
    有以下程序:#include main(){ int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&m; a=/*p1-m; b=*p1+*p2+6; printf(%d,a); printf(%d,b);}编译时编译器提示错误信息,你认为出错的语句是(  )。
    A

    a=/*p1-m;

    B

    b=*p1+*p2+6;

    C

    k=1,m=8;

    D

    p1=&k,p2=&m;


    正确答案: D
    解析:
    a=/*p1-m;语句不符合语法规范,可写作a/=(*p1-m);,表示a=a/(*p1-m);。答案选择A选项。

  • 第13题:

    执行以下程序后,a,b的值分别为

    main()

    { int a,b,k=4,m=6,*p1=&k,*p2=&m;

    a=p1==&m;

    b=(*p1)/(*p2)+7;

    printf("a=%d\n",A.;

    printf("b=%d\n",B.;

    }

    A.-1,5

    B.1,6

    C.0,7

    D.4,10


    正确答案:C

  • 第14题:

    以下程序运行后,输出结果是______。 func (int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return m; } main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m);printf("%d\n",p); }

    A.8, 15

    B.8, 16

    C.8, 17

    D.8, 8


    正确答案:C

  • 第15题:

    执行以下程序后,a,b的值分别为 main() { in a,b,k=4,m=6,*p1=&k,*p2=&m; a=p1==&m; b=(*p1)/(*p2)+7; printf("a=%d\n",a); printf("b=%d\n",b);}

    A.-1,5

    B.1,6

    C.0,7

    D.4,10


    正确答案:C
    解析:inta,b,k=4,m=6,*p1=&k,*p2=&m;声明整型变量a,b,k,m和指针p1,p2,并分别将4和6赋给k和m,将k和m的地址赋给P1和p2;a=p1==&m;等价于a=(p1==&m);将p1是否等于地址m的值(0)赋给变量a,b=(*p1)/(*p2)+7;该句的含义是将后面表达式的的值7赋给变量b。

  • 第16题:

    有以下程序include <stcli0.h>main( ){ int a,b,k,m,*p1,*p2; k=1,m=8; p1=&k,p2=&am

    有以下程序

    #include <stcli0.h>

    main( )

    { int a,b,k,m,*p1,*p2;

    k=1,m=8;

    p1=&k,p2=&m;

    a=/*p1 -m; b=*p1+*p2+6;

    printf(”%d ”,a); printf(”%d\n”b);

    }

    编译时编译器提示错误信息,你认为出错的语句是

    A) a=/*p1- m;

    B)b=*p1+*p2+6;

    C)k=1,m=8;

    D)p1=&k, p2=&m;


    正确答案:D
    【答案】D
    【知识点】C语言书写规范
    【解析】D中语句应为p1=&k,p2=&m;中间的逗号应变成分号。

  • 第17题:

    下列程序的运行结果是()。inCludemain(){static char a[]="Languagef",b[]="programe";

    下列程序的运行结果是( )。 #inClude<stdio.h> main() { static char a[]="Languagef",b[]="programe"; Char*p1,*p2;int k; p1=a;p2=b; for(0;k<=8;k++) if(*p1+k)==*(p2+k))printf("%c",*(p1+k)); }

    A.gae

    B.ang

    C.program

    D.有语法错


    正确答案:A
    解析: 本题考查指针的用法,if(*(p1+k)==*(p2+k))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第18题:

    下列程序的运行结果是()。 include main() {static char a[]="Languagef",b[]="program

    下列程序的运行结果是( )。

    #include<stdio.h>

    main()

    { static char a[]="Languagef",b[]="programe";

    Char*p1,*p2;int k;

    p1=a;p2=b;

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

    if(*(p1+k)==*(p2+k))printf("%c",*(p1+k));

    }

    A.gae

    B.ang

    C.program

    D.有语法错


    正确答案:A
    解析:本题考查指针的用法,if(*(p1+k)==*(p2+k))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第19题:

    有以下程序: include<stdio.h> main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&

    有以下程序: #include<stdio.h> main( ) { int a,b,k,m,*pl,*p2; k=1,m=8; p1=&k,p2=&m; a=/*pl-m;b=*p1+*p2+6; printf("%d",a);printf("%d\n",b); } 编译时编译器提示错误信息,你认为出错的语句是( )。

    A.a=/*pl-m;

    B.b=*p1+*p2+6;

    C.k=1,m=8;

    D.pl=&k,p2-&m;


    正确答案:A
    本题考查指针,pl=&k表示P指向k的地址,则*p=k,依次类推,在对指针进行赋值时没有错误。a=/*p+m赋值,在c语言中"/*"表示的注释,所以答案选择A。

  • 第20题:

    以下程序运行后的输出结果是______。 main() { char a[]="ABCDEFGH",b[]="abCDefGh"; char*p1,*p2;int k; p1=a;p2=b; for(k=0;k<=7;k++) if*(p1+k)==*(p2+k))printf("%c",*(p1+k)); printf("\n"); }

    A.ABCDEFG

    B.CDG

    C.abcdefgh

    D.abCDefGh


    正确答案:B

  • 第21题:

    下列程序的运行结果是( )。

    #include<stdio.h>

    main

    { static char a[]="Languagef",b[]="programe":

    char*p1,*p2;int k;

    p1=a;p2=b;

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

    if(*(p1+k)==*(p2+k))

    printf("%c",*(p1+k));

    }

    A. gae

    B.ang

    C.program

    D.有语法错


    正确答案:A
    本题考查指针用法,if语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第22题:

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

    A.k=*p1+*p2

    B.k=*p1*(*p2)

    C.p2=k

    D.p1=p2


    正确答案:C

  • 第23题:

    以下程序的输出结果是()。 main() { int k=4,m=1,p; p=func(k,m); printf("%d,",p); p=func(k,m); printf("%d/n",p); } func(int a,int b) { static int m=0,i=2; i+=m+1; m=i+a+b; return(m); }

    • A、8,17
    • B、8,16
    • C、8,20
    • D、8,8

    正确答案:A