下列程序段的输出结果为()。includemain(){static char a[]="language";char*p;p=a;for下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }A.1B.4C.9D.0

题目
下列程序段的输出结果为()。includemain(){static char a[]="language";char*p;p=a;for

下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

A.1

B.4

C.9

D.0


相似考题
参考答案和解析
正确答案:D
解析: 本题主要是考查带参数的宏定义及其相关运算。本题中宏运算过程如下: a=a/(S(k+m)/S(k+m))=a/(k+m*k+m/k+m*k+m)=9/(3+2*3+2/3+2*3+2)=0。
更多“下列程序段的输出结果为()。includemain(){static char a[]="language";char*p;p=a;for 下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }A.1B”相关问题
  • 第1题:

    下列程序的输出结果是______。 includef(char 8s){char *p=s;while(*p!='\0')p++;retur

    下列程序的输出结果是______。# include<stdio.h>f(char 8s){ char *p=s; while(*p!='\0')p++; return(p-s);}main(){ printf("%d\n",f("ABCDEF"));}

    A.3

    B.6

    C.8

    D.0


    正确答案:B

  • 第2题:

    下列程序的输出结果是( )。 include using namespace std; int main() {

    下列程序的输出结果是( )。 #include<iostream> using namespace std; int main() { char a[]="Hello,Test"; char *p=a; while(*p) { if(*p>='a'&&*p<='z') cout<<char(*p+'A'-'a'); else cout<<*p; p++; } return 0; }

    A.hello,test

    B.Hello,Test

    C.HELLO,TEST

    D.hELLO,tEST


    正确答案:C
    解析:用一个指针变量p指向字符数组a,在while循环中,当不指向数组尾时,将小写字母转换为大写字母,然后将其输出。

  • 第3题:

    下列程序段的输出结果为()。 include main() {static char a[]="language"; char*p; p=

    下列程序段的输出结果为( )。

    #include<stdio.h>

    main()

    { static char a[]="language";

    char*p;

    p=a;

    for(p=a;p<a+8;p+=2)

    putchar(*p);

    }

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环, p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第4题:

    下列程序的输出结果是______。includemain(){char*p1,*p2,str[50]="xyz"; p1="abcd"; p

    下列程序的输出结果是______。 #include<stdio.h> main() { char *p1,*p2,str[50]="xyz"; p1="abcd"; p2="ABCD"; strcpy(str+2,strcat(p1+2,p2+1)); ptintf("%s",str); }

    A.xyabcAB

    B.abcABz

    C.ABabcz

    D.xycdBCD


    正确答案:D
    解析:本题考查对字符串进行处理的函数strcat()和strcpy(),其中strcat(P1,p2)是把字符串p2连至p1后面,strcpy(p1,p2)是把p2指向的串复制到p1指向的空间。

  • 第5题:

    以下程序的输出结果为()。includemain(){ char *alpha[6]={"ABCDEFGH","IJKL","MNOP","

    以下程序的输出结果为( )。 #include<stdio.h> main() { char *alpha[6]={"ABCDEFGH","IJKL","MNOP","QRST","UVWX"}; char**p;int i; p=alpha; for(i=0;i<4;i++)printf(" %s" ,p[i]);printf("\n" );}

    A.ABCDEFGHIJKL

    B.ABCD

    C.ABCDEFGHIJKLMNOPQRST

    D.AEIM


    正确答案:C
    解析:字符串数组中的每个元素是一个指向字符串的字符指针,可用一个指向指针的指针来指向一个字符串数组,题中p即为一个这样的指针,p[i]则指向了数组alpha的第i+1各元素。注意:用带下标的指针变量引用一维数组中的元素。

  • 第6题:

    下面程序段的输出结果是( )。 char a[]="lanuage",*p; p=a; while(*P! ='u') {printf("%c",*p-32); P++;}

    A.LANGUAGE

    B.language

    C.LAN

    D.langUAGE


    正确答案:C
    解析:本段程序的作用是输出字符串"lanuage"中字母u之前的字符,并将其转化为大写字母。

  • 第7题:

    以下程序运行后,输出结果是______。includess(char*s){char *p=s; while(*.p)p++; retu

    以下程序运行后,输出结果是______。#include<stdio.h>ss (char *s){ char *p=s; while(*.p)p++; return(p-s);}main(){ char *a="abded"; int i; i=ss((A); print ("%d\n",i);}

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第8题:

    下面程序的输出结果为 ______。includemain(){char pl [7]="abc",p[]2="ABC"str[50]="

    下面程序的输出结果为 ______。 #include<string.h> main() { char pl [7]="abc",p[]2="ABC"str[50]="xyz"; strcpy(str,strcat(p1,p2)); printf("%s"str); }

    A.xyzabcABC

    B.abcABC

    C.xyzabc

    D.xyzABC


    正确答案:B
    解析:strcpy(strl,s1).-作用是将字符串s1拷贝到字符数组strl中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,str,strcat(p1,p2)函数的作用是将字符串数组p2接到符串p1的后面,结,果放在字符数组P1,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。

  • 第9题:

    阅读下面程序,则执行后的结果是 #include"stdio.h" main() { char str[]="tomeetme",*p; for(p=str;p<str+7;p+=2)putchar(*p); printf("\n");}

    A.tomeetme

    B.tmem

    C.oete

    D.tome


    正确答案:B
    解析: 存放字符串的字符数组的名字就是这个字符串的首地址。本题的功能是对字符串“tomeetme”进行选择式输出,从第一个字母开始,每输出一个字符即跳过一个。

  • 第10题:

    下面程序的输出结果是()。includemain(){char a[]={'a','b','c','d','f','g'},*p;p=a;p

    下面程序的输出结果是( )。 #include<stdio.h> main() {char a[]={'a','b','c','d','f','g'},*p; p=a; printf("%c\n",*p+4); }

    A.a

    B.b

    C.e

    D.f


    正确答案:C
    解析:“*”号的优先级比“+”的优先级高,所以先执行“*p”;指针p指向的是数组的首地址,因此*p=a,再加4得'e'。

  • 第11题:

    以下程序运行后,输出结果是()includess(char*s){char*p=s; while(*p)p++ return(p-s);

    以下程序运行后,输出结果是( ) #include<stdio.h> ss(char *s) { char*p=s; while(*p) p++ return(p-s); } main() { char *a="abded" int i; i=ss(a) ; printf("%d\n",i); }

    A.8

    B.7

    C.6

    D.5


    正确答案:D

  • 第12题:

    单选题
    有以下程序:#include #include char *a=you;char *b=Welcome you to Beijing!;main(){ char *p; p=b; while(*p != *a)p++; p+=strlen(a)+1; printf(%s,p);}程序运行后的输出结果是(  )。
    A

    Beijing!

    B

    you to Beijing!

    C

    Welcome you to Beijing!

    D

    to Beijing!


    正确答案: B
    解析:
    while函数判断p指针指向地址的内容是否和a指针指向地址的内容相等,如果不相等,则往后移动指针p,当p指向*b字符串中的'y'时,和*a首地址元素相等,退出while语句后,p再向右移动a字符串长度+1个单位地址,此时p指向't',输出't'及剩余的字符串,答案选择D选项。

  • 第13题:

    以下程序运行后的输出结果是【】include main ( ) {char a[] ="123456789", *p;int i =0;

    以下程序运行后的输出结果是【 】

    include <stdio.h>

    main ( )

    { char a[] ="123456789", *p;

    int i =0;

    p=a;

    while( * p)

    { if(i%2 ==0) *p='*';

    p++;i++;

    }

    puts(a);

    }


    正确答案:*2*4*6*8*
    *2*4*6*8* 解析:程序中指针p指向数组a,while(*P)语句的循环条件是* p!='\0',在循环体中,当 i=0,2,4,6,8时,i%2=0,执行*p='*',即a[i]='*',继续执行p++;i++;使i为奇数;当i=1, 3,5,7时,i%2=1,继续执行p++;i++;使i为偶数。可见,程序在字符串"123456789",的下标为偶数的位置上赋值'*',代替原字符串中的1,3,5,7,9。所以,程序输出结果为*2*4*6*8*。

  • 第14题:

    下列程序段的输出结果为()。includemain(){static char a[]="language"; char*p; p=a;

    下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析: 本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。
    第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p= p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第15题:

    以下程序段的输出结果为( )。 static char a[]="programme"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p);

    A.programme

    B.porm

    C.有语法错误

    D.prog


    正确答案:B
    解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址,第一次for循环,p=a,p指向数组的第一个元素,*p是取指针p所指地址的内容,输出p;第二次for循环,p=p+2,则p指向数组的第三个元素,*p是取指针p所指地址的内容,输出o;第三次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出r;第四次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出m;结束循环。

  • 第16题:

    下列程序段的输出结果为( )。 include main() { static char a[]="language"; char *p;

    下列程序段的输出结果为( )。 #include<stdio.h> main() { static char a[]="language"; char *p; p=a; for(p=a;p<a+8;p+=2) putchar(*p); }

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析:本程序首先定义了静态字符数组a,然后将指针P指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针P所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容,输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第17题:

    下列程序段的输出结果为()。includemain(){ static char a[]="language";char*p; p=a;

    下列程序段的输出结果为( )。#include<stdio. h>main(){ static char a[]="language"; char*p; p=a; for(p=a;p<a+8;p+=2) putchar(*p);}

    A.language

    B.lnug

    C.有语法错误

    D.lang


    正确答案:B
    解析:本程序首先定义了静态字符数组a,然后将指针p指向数组a的首地址。第1次for循环,p=a,p指向数组的第1个元素,*p是取指针p所指地址的内容,输出1;第2次for循环,p=p+2,则p指向数组的第3个元素,*p是取指针p所指地址的内容.输出n;第3次for循环,p=p+2,则p指向数组的第5个元素,*p是取指针p所指地址的内容,输出u;第4次for循环,p=p+2,则p指向数组的第7个元素,*p是取指针p所指地址的内容,输出g,结束循环。

  • 第18题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*0{ char *p--t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *0

    { char *p--t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:efgh
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。

  • 第19题:

    下列程序的输出结果是()。includeusing namespace std;int main(){char a[]="Hello,Te

    下列程序的输出结果是( )。 #include<iostream> using namespace std; int main() { char a[]="Hello,Test"; char *p=a; while(*p) { if(*p>='a'&&*p<='’z') cout<<char(*p+'A'-'a'); else cout<<*p; p++; } return 0; }

    A.hello,test

    B.Hello,Test

    C.HELLO,TEST

    D.hELLO,tEST


    正确答案:C
    解析:用一个指针变量p指向字符数组a,在while循环中,当不指向数组尾时,将小写字母转换为大写字母,然后将其输出。

  • 第20题:

    下列程序的运行结果是()。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))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第21题:

    下列程序的运行结果是()。 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))语句的功能是判断两个数组中的字符是否相同,如果相同则输出。

  • 第22题:

    下面程序的输出结果为______。includemain(){char p1[7]="abc",p2[]="ABC",str[50]="x

    下面程序的输出结果为______。 #include<string.h> main() { char p1[7]="abc",p2[]="ABC",str[50]="xyz"; strcpy(str,strcat(p1,p2)); printf("%s",str); }

    A.xyzabcABC

    B.abcABC

    C.xyzabc

    D.xyzABC


    正确答案:B
    解析:strcpy(str1,s1):作用是将字符串s1拷贝到字符数组str1中去。strcat(字符数组1,字符数组2):把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后返回字符数组1的地址。本题定义了三个字符数组p1,p2,str,strcat(p1,p2)函数的作用是将字符串数组p2接到字符串p1的后面,结果放在字符数组p1,再通过strcpy()函数将该字符串拷贝到str数组中,原str数组中的字符串xyz被覆盖,因此打印输出字符串str即可得到abcABC。

  • 第23题:

    以下程序的输出结果是【 】。includeincludechar*fun(char*t){ char *p=t;retur

    以下程序的输出结果是【 】。

    include <stdio.h>

    include <string.h>

    char *fun(char *t)

    { char *p=t;

    return (p+strlen(t)/2);

    }

    main()

    { char *str="abcdefgh";

    str=ftm(str);

    puts(str);

    }


    正确答案:
    efgh 解析:本题考查的知识点是:字符指针。题目中的fun()函数,通过strlen()库函数得到形参t所指字符串的长度。然后返回t所指字符串首地址值加上该长度值的一半。所以fun()函数的作用就是返回所给字符串的中间位置。故最后通过puts()输出的字符串为"efgh"。