下面语句正确的是()A、int*p;*p=20B、char*s=”abcdef”;printf(“%s/n”,s)C、charstr[]=”abcd”;str++D、charstr[]={‘a’,’b’,’c’};printf(“%s”,str)

题目

下面语句正确的是()

  • A、int*p;*p=20
  • B、char*s=”abcdef”;printf(“%s/n”,s)
  • C、charstr[]=”abcd”;str++
  • D、charstr[]={‘a’,’b’,’c’};printf(“%s”,str)

相似考题
更多“下面语句正确的是()A、int*p;*p=20B、char*s=”abcdef”;printf(“%s/n”,s)C、charstr[]=”abcd”;str++D、charstr[]={‘a’,’b’,’c’};printf(“%s”,str)”相关问题
  • 第1题:

    char *p1=“abcd”, *p2=“ABCD”,str[50]=“xyz”;strcpy(str+2,strcat(p1+2,p2+1));printf(“%s”,str); 请问输出结果?


    1 程序不仅有语法错误,而且有严重的逻辑错误,不能运行。 strcat(p1+2,p2+1); //p1是指针常值,所指对象不能修改的。 2 程序改为下面,才能运行。 #include <stdio.h> #include <string.h> void main() { char p1[50]="abcd", p2[50]="ABCD",str[50]="xyz"; strcpy(str+2,strcat(p1+2,p2+1)); printf("%s",str); } //运行结果是: xycdBCD

  • 第2题:

    以下程序运行后的输出结果是( )。

    include

    char*ss(char*s)

    {char*p,t;

    P=s+1;t=*s;

    while(*p){ *(P-1)=*P;P++;}

    *(P-1)=t;

    return s;

    }

    main()

    {char*p,str[10]="abcdefgh";

    p=ss(str);

    printf("%s\n",p);

    }


    正确答案:bcdefgha
    bcdefgha

  • 第3题:

    若有以下说明,则能打印出“Yu”的语句是______。 struct samp { char name[10]; int number; }kk[3]={{"WarBin",1},{"LiYu",2},{"LuHui",3}}; struct samp*str[3]; str[0]=&kk[0];str[1]=&kk[1];str[2]=&kk[2];

    A.printf("%s\n",str[1].name[2]);

    B.printf("%s\n",str[1]->name+2);

    C.printf("%s\n",str[2].name[2]);

    D.printf("%s\n",str[2]->name+2);


    正确答案:B
    解析:str是指针数组,每个元素存放的是指向结构体类型数据的地址,每个元素可看作是一个指针变量,通过结构体指针变量引用结构体变量各成员的形式有两种:一是(*指针变量名).成员名;二是指针变量名->成员名。本题可以是"(*str[1]).name+2"或"str[1]->name+2"。

  • 第4题:

    有以下程序:includemain(){charstr[][20]={"Hello","Beijing"}*p=str;printf("%\n",s

    有以下程序: #include <string.h> main() { char str[][20]={"Hello","Beijing"}*p=str; printf("%\n",strlen(p+20)); } 程序运行后的输出结果是

    A.0

    B.5

    C.7

    D.20


    正确答案:C
    解析:本题考核的知识点是二维数组的初始化及库函数strlen()的应用。主函数中定义了一个二维字符数组并初始化,初始化后的结果为str[0]="Hello",str[1]="Beijing",然后定义一个字符指针变量p并让它指向数组的首地址,即指向str[0],而在C语言中无论是一维还是多维数组,其元素在内存中都是顺序存放的,故p+20后指针指向str[1],所以strlen(P+20);返回的是str[1]中的字符串的长度,即Beijing的长度为7,所以最后输出的值为7,所以,4个选项中选项C符合题意。

  • 第5题:

    若输入“abcdef”“abdef”,下述程序的输出结果为( )。 #include<stdio.h> #include<string.h> main { int n; char s1[20],s2[20],*p1,*p2; scanf("%s",s1); scanf("%S",s2); p1=s1; p2=s2; n=strcmp(p1,p2); printf("Vood\n",n); }

    A. -1

    B.0

    C."abcdef"

    D."abdef"


    正确答案:D
    本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

  • 第6题:

    char *p="hello";

    printf("%s",p);

    p++;

    printf("%s",p);

    printf("%c",*p);


    正确答案:
     

  • 第7题:

    下面程序的输出是______。 fun(char *s,int p1,int p2) { char c; while(p1<p2) { c=s[p1];s[p1]=s[p2];s[p2]=c;p1++;p2--;} } main() { char a[]="ABCDEFG",k,*p; fun(a,0,2);fun(a,4,6); printf("%s\n ",a); }

    A.ABCDEFG

    B.DEFGABC

    C.GFEDCBA

    D.CBADGFE


    正确答案:D
    解析:本题主要通过while循环对满足条件的元素进行交换。

  • 第8题:

    若输入“abcdef”“abdef”,下述程序的输出结果为( )。

    #include

    #include

    main

    {int n;

    char s1[20],s2[20],*p1,*p2;

    scanf("%s",s1);

    scanf("%S",s2);

    p1=s1;

    p2=s2;

    n=strcmp(p1,p2);

    printf("Vood\n",n); }

    A.-1

    B.0

    C."abcdef"

    D."abdef"


    正确答案:A
    本题考查字符串比较函数strcmp(s1,s2),若s1>s2,则返回1;若s1=s2,则返回0;若s1<s2,则返回-1。字符串依次比较的是它们字符的ASCIl码值。

  • 第9题:

    有定义语句inta[10],*p=a;以下和此功能相同的是()

    • A、inta[10];intp;p=a;
    • B、inta[10],*p;p=a;
    • C、int*p,a[10];p=a;
    • D、char*a[10]=”abcd”;printf(“%s”,a);

    正确答案:B,C

  • 第10题:

    以下能正确进行字符串赋值或赋初值的语句组是()

    • A、charstr[3]="key";
    • B、charstr[3]={’k’,’e’,’y’};
    • C、charstr[4];str="key";
    • D、char*s;s="key";

    正确答案:D

  • 第11题:

    下面()是不正确的字符串赋值或赋初值的方式。

    • A、char*str;str=“string”;
    • B、charstr[7]={‘s’,‘t’,‘r’,‘i’,‘n’,‘g’};
    • C、charstr1[10];str1=“string”;
    • D、charstr1[]=“string”,str2[]=“12345678”;

    正确答案:C

  • 第12题:

    单选题
    下面语句正确的是()
    A

    int*p;*p=20

    B

    char*s=”abcdef”;printf(“%s/n”,s)

    C

    charstr[]=”abcd”;str++

    D

    charstr[]={‘a’,’b’,’c’};printf(“%s”,str)


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

  • 第13题:

    有以下程序:includevoid f(char *s, char *t){ char k;k=*s;*s=*t; *t=k;s++;t- -;

    有以下程序:#include <string .h>void f(char *s, char *t){ char k; k=*s; *s=*t; *t=k; s++; t- -; if(*s) f(s, t);}main(){ char str[10]="abcdefg",*p; p=str+strlen(str)/2+ 1; f(p,p-2); printf("%s\n", str);}程序运行后的输出结果是( )。

    A.abcdcfg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题定义的函数f()是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动—位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了—个字符数组sir[10]=“ahcdeft”然后定义了一个字符指针p=str+strlen(str)/2+1,即让p指向str+4(或&str[4])的位置。然后调用f(p,p-2);,这使得p所指的str[4]及其以后的2个位置str[5]、str[6]中的内容同p-2所指的str[p]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第14题:

    下面程序的输出是______。 char s[]="ABCD"; main() { char *p; for(p=s;p<s+4;p++) printf("%s\n",p); }

    A.ABCD BCD CD D

    B.A B C D

    C.D C B A

    D.ABCD ABC AB A


    正确答案:A
    解析:在第—次执行for循环时,字符数组的首地址赋给了指针变量p,使得指针变量p指向了s的首地址,输出p所指向的字符串;第二次执行for循环时,p值增加1,p指向了s的第二个元素输出BCD:第三次输出CD:第四次输出D;直到p指向字符串的结束字符“\0”,for循环终止执行。

  • 第15题:

    有以下程序: include void f(char *s,char *t) {char k; k=*s; +s=*t;

    有以下程序: #include<string.h> void f(char *s,char *t) {char k; k=*s; +s=*t; *t=k; S++; t--; if(*s) f(s,t); } main() {char.str[10]="abcdefg",*p; p=str+strlen(str) /2+1; f(p,p-2); printf("%s\n",str); } 程序运行后的输出结果是 ______。

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本程序的作是将字符串str倒序。语句“p=str+strlen(str)/2+1;”用于将指针变量p指向e字符所在的存储单元,p-2指向了c字符所在的存储单元,在函数f中将这两个存储单元的内容交换,并使得f函数中指向c字符的指针变量s加1。指向c字符的指针变量t减1,然后继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg”的倒序形式“gfedcba”。

  • 第16题:

    下列程序的输出结果是______。 char*fun(char*str,int n) { int i; char*p=str; for(i=0;i<10;i++,str++) *str='a'+i; return++p; } main() { char a[10]; printf("%s\n",fun(a,10)); }

    A.ABCDEFGHIJ

    B.abcdefghij

    C.bcdefghij

    D.不确定的值


    正确答案:C
    解析:调用函数fun使字符数组中的内容是"abcdefghij",函数的返回值是字符数据的地址,该地址指向数组的第二个字符,因此,主函数的输出结果是字符串 "bcdefghij"。

  • 第17题:

    设有char str[10],下列语句正确的是A.scanf("%s",&str); B.printf("%c",str); C.printf("%s",str[0]); D.printf("%s",str);


    正确答案:D
    本题主要考查字符数组的引用。题目中定义了一个大小为10的字符数组str。下面分别分析每个选项。
    在选项A中,从scanf("%s",&str);语句的输入列表&str可以知道此语句不正确,因为str是数组名,本身就表示一个地址,再加一个取地址符&,使表示方法不正确。
    在选项B中,由于printf("%c",str);语句的输出格式表示输出单个字符,而输出列表中的str表示一个地址,而不是数值,表示方法不对。
    在选项C中,由于printf("%s",str[0]);语句的输出格式表示输出一个字符串,而输出列表中的str[0]表示一个字符,表示方法不对。
    在选项D中,由于printf("%s",str);语句的输出格式表示输出一个字符串,而输出列表中的str表示一个字符串的首地址,通过这个方式可以实现输出str所指向的字符串。

  • 第18题:

    下列程序中,正确的为______。

    A.main() { int *pb=&b; float 1>=15.25; print f("%d\n" ,*pb); }

    B.amin() { int a,*pa; a=10; *pa=a; prinffC%d",*pa); }

    C.main() { char s[20]; char *ps=&s; scanf("%s",*p); printf("%s",*p); }

    D.main() { char str[10]; int *ps=str[0]; str="abcdefg"; printf("%s",*p); }


    正确答案:B

  • 第19题:

    下面程序的输出结果是( )。 char s()="ABCD",*p; main() { for(p=s;p<s+4;p++)printf("%s\n",p); )

    A.ABCD BCD CD D

    B.A B C D

    C.D C B A

    D.ABCD ABC AB A


    正确答案:A
    解析:p为指针型变量。第一次循环,p=s,p的值为字符数组s的首地址,输出字符串"ABCD"。p++,第二次循环,p的值为字符数组s的首地址加1,输出字符串"BCD"。p++,第三次循环,p的值为字符数组s的首地址加2,输出字符串"CD"。p++,第4次循环,p的值为字符数组s的首地址加3,输出字符串'D"。

  • 第20题:

    设有char str〔10〕,下列语句正确的是()

    • A、scanf(”%s”,&str);
    • B、print[(”%c”,str);
    • C、printf(”%s”,str〔0〕);
    • D、printf(”%s”,str);

    正确答案:D

  • 第21题:

    已有定义:charstr1[15]={“university”},str2[15];则以下语句中正确的是()

    • A、str2=str1
    • B、str2=”college”
    • C、scanf(“%s”,&str2)
    • D、printf(“%s”,str1)

    正确答案:D

  • 第22题:

    下面判断正确的是()

    • A、char*a="china";等价于char*a;*a="china"
    • B、charstr[10]={"china"};等价于charstr[10];str[]={"china"};
    • C、char*s="china";等价于char*s;s="china";
    • D、charc[4]="abc",d[4]="abc";等价于charc[4]=d[4]="abc"

    正确答案:C

  • 第23题:

    单选题
    有以下程序:#include main(){  char *s[6]={ABCD,EFGH,IJKL,MNOP,QRST,UVWX},**p; int i; p=s;  for(i=0;i<4;i++)printf(%s,p[i]); printf();}程序运行后的输出结果是(  )。
    A

    ABCDEFGHIJKLMNOP

    B

    ABCDEFGHHKL

    C

    ABCD

    D

    AEIM


    正确答案: D
    解析:
    程序定义数组指针s以及指针的指针p,p指向数组指针s。p[i]为s的第i行字符串,因此程序输出s的前四行字符串。答案选择A选项。