设有char str〔10〕,下列语句正确的是()A、scanf(”%s”,&str);B、print[(”%c”,str);C、printf(”%s”,str〔0〕);D、printf(”%s”,str);

题目

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

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

相似考题
更多“设有char str〔10〕,下列语句正确的是()A、scanf(”%s”,str);B、print[(”%c”,str);C、printf(”%s”,str〔0〕);D、printf(”%s”,str);”相关问题
  • 第1题:

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

    A.scanf("%s"0,&str);

    B.printf("%c",str);

    C.printf("%s",str[0]);

    D.printf("%s",str);


    正确答案:D

  • 第2题:

    下列程序的运行结果为()。 include voidabc(Char*str) {inta,b,i,j; for(i=j=0;str[i]!

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

    #include<stdio.h>

    voidabc(Char*str)

    { inta,b,i,j;

    for(i=j=0;str[i]!='\0';i++)

    if(str[i]!='a')

    str[j++]=str[i];

    str[j]='\0';

    }

    void main()

    { char str[]="abcdef";

    abc(str);

    printf("str[]=%s",str);

    }

    A.str[]=bcdef

    B.str[]=abcdef

    C.str[]=a

    D.str[]=ab


    正确答案:A
    解析:本题考查函数调用时的参数传递。通过函数 abc的执行,将字符串中的字母a去掉,保留剩下的。由于是通过指针调用,所以改变字符串的结果。

  • 第3题:

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为

    #include

    #include

    #include

    int fun (char *str)

    { int i,j=0;

    for(i=0;str[i]!=′\0′;i++)

    if(str[i]!=′ ′)str[j++]=str[i];

    str[j]= ′\0′;

    }

    main()

    {

    char str[81];

    int n;

    clrscr();

    printf("Input a string : ");

    gets(str);

    puts(str);

    fun(str);

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

    }

    A.asdafaaz67

    B.asd af aa z67

    C.asd

    D.z67


    正确答案:A

  • 第4题:

    以下C程序段的输出结果是(30)。 include void abc(char *str){ int a, b;

    以下C程序段的输出结果是(30)。 #include <stdio. h> void abc(char *str){ int a, b; for(a=b=0;str[a]!='\O';a++)if(str[a]!='c') str[b++]=str[a]; str[b]='\O'; } void main(){ char str[]="abcdef"; abc(str); printf("str[]=%s",str); }

    A.str[]=a

    B.str[]=ab

    C.str[]=abdef

    D.str[]=abcdef


    正确答案:C
    解析:本试题核心在于子函数的for循环。For循环将整个字符串中的字符处理一遍,每次处理时,函数的基本工作是将除字母c之外的字符重新赋值,然后a++,b++,继续处理下一个字符。对于字母c不赋值,且只有a++而b不变。可见for循环的目的只是将字母c剔除。

  • 第5题:

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】include move(char *str,

    以下程序运行后输入:3,abcde<回车>,则输出结果是【 】

    include <string.h>

    move(char *str, int n)

    { char temp; int i;

    temp=str[n-1];

    for(i=n-1;i>0;i--) str[i]=str[i-1];

    str[0]=temp;

    }

    main( )

    { char s[50]; int n, i, z;

    scanf("%d,%s",&n,s);

    z=strlen(s);

    for(i=1; i<=n; i++) move(s, z);

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

    }


    正确答案:cdeab
    cdeab 解析:本题主要考查函数move()的功能。经过分析可知,每次调用该函数时,都是把最后一个字符移到串的最前端,而原先的第一个字符至倒数第二个字符顺次后移。

  • 第6题:

    以下正确的程序段是

    A.cgar str[20]; scanf("%s",&str);

    B.char*p; scanf("%s",p);

    C.char str[20]; scanf("%s",&str[2])

    D.char str[20],*p=str; scanf("%s",p[2]);


    正确答案:C
    解析:scanf输入字符串有一点要注意的是,格式控制串必须用%s。注意:gets函数和puts函数的作用。

  • 第7题:

    设有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所指向的字符串。

  • 第8题:

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

    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

  • 第9题:

    当运行以下程序时,输入abcd,程序的输出结果是:( )。

    insert(char str[])

    {int i;

    i=strlen(str);

    while(i>0)

    {str[2*i]=str[i];str[2*i-1]='*';i--;}

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

    }

    main()

    {char str[40];

    scanf("%s",str);insert(str);

    }


    正确答案:a*b*c*d*
    a*b*c*d* 解析:字符处理函数strlen()测试字符串常量的长度,不包括‘\0’在内。因此,函数insert()实现了将字符数组中每个非‘\0’的字符后插入字符‘*’的功能。故输出结果是a*b*c*d*。

  • 第10题:

    下列程序段的输出结果是()。  char str[ ]= “abc/0def/0ghi”, *q=str;  printf(“%s”,q+5); 


    正确答案:ef

  • 第11题:

    下面语句正确的是()

    • 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

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

    以下正确的程序段是

    A.cgar str[20]; scanf(“%s",&str);

    B.char *p; scanf("%s",p);

    C.cha str[20]; scanf("%s",&str[2])

    D.char str[20],*p=str; scanf("%s",p[2]);


    正确答案:C

  • 第14题:

    下列程序的运行结果为

    #include<stdio.h>

    void abc(char*str)

    { int a,b;

    for(a=b=0;str[a]!='\0';a++)

    if(str[a]!='c')

    str[b++]=str[a];

    str[b]='\0';}

    void main()

    { char str[]="abcdef";

    abc(str);

    printf("str[]=%s",str); }

    A.str[]=abdef

    B.str[]=abcdef

    C.str[]=a

    D.str[]=ab


    正确答案:A
    解析:本题考查了用字符指针引用字符数组中的字符及对字符的操作。函数abc()的for语句执行过程是:从字符指针str所指向的字符数组的第一个元素开始,逐一判断字符是否为'c',若不是就执行一次数组元素的赋值过程,若字符为'c'就不执行。

  • 第15题:

    当输入a1b2c3d4e时,下列程序的运行结果为______。main(){ char str[40]; printf("请输入含有4个数字字符的字符串:\n"); scanf("%s",&str); insert(str);}insert(str)char str[];{ int i; for(i=strlen(str);i>0;i--) { str[2*i)=str[i]; str[2*i-1)=' '; } printf("\n结果是:%s",str);}

    A.a 1 b 2 c 3 d 4 e

    B.1 2 3 4

    C.a 1 b 2

    D.因输入错误,程序出错


    正确答案:A

  • 第16题:

    若有以下说明,则能打印出“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"。

  • 第17题:

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

  • 第18题:

    以下程序:includemain(){char str[10];scanf("%s",&str);printf("%s\n",str);}运

    以下程序: #include<stdio.h> main() {char str[10]; scanf("%s",&str); printf("%s\n",str); } 运行上面的程序,输入字符串how are you,则程序的执行结果是( )。

    A.how

    B.how are you

    C.h

    D.howareyou


    正确答案:A
    解析:当从键盘输入bow are you时,由于scanf输入函数的特点是遇到空格时结束读入字符,因此,该程序只将how这3个字符送到了字符数组str中,并在其后自动加上结束符“\0”。

  • 第19题:

    下列给定程序中,函数proc的功能是:首先把b所指字符串中的字符按逆序存放,然后将str1所指字符串中的字符和Str2所指字符串中的字符,按排列的顺序交叉合并到str所指数组中,过长的剩余字符接在str所指数组的尾部。例如,当str1所指字符串中的内容为ABCDEFG,str2 所指字符串中的内容为1234时,str所指数组中的内容应该为A483C2D1EFG;而当str1所指字符串中的内容为1234,str2所指字符串中的内容为ABCEDFG时,str所指数组中的内容应该为1G2F31:4DCBA。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动main函数,不得增行或删行,也不得更改程序的结构。 试题程序: include<stdlib.h> include<conio.h> include<stdio。h> include<string.h> void proc(char*strl,char*str2,char*str) { int i,j;char ch; i=0;j=strleu(str2)-1; //****found**** while(i>j) { ch=str2[i];str2[i]=str2[j];str2[j]=ch; i++;j--; } while(*str1||*str2) { if(*str1){*str=*str1;str++;str1++;) if(*str2){*str=*str2;str++;str2++;) } //****found**** *str=0: } void main { char s1[100],s2[100],t[200]; system("CLS"); printf("\nEnter s1 string:"); scanf("%s",sl); printf("\nEnter s2 string:"); scanf("%s",s2); proc(s1,s2,t); printf("\nThe result is:%s\n",t); }


    正确答案:

    (1)错误:while(i>j)
    正确:while(i<j)
    (2)错误:*str=0;
    正确:*str='\0 ';
    【解析】由函数proc可知,变量i和j分别存放的是字符串str前面和后面第i个字符的位置,当i<j时,两个位置的字符交换。因此,“while(i>j)”应改为“while(i<j)”;交叉合并完成后,要为新的字符串添加结束符,因此,“*str= 0;”应改为“*str='\0';”,

  • 第20题:

    阅读下列程序,当运行函数时,输入asd af aa z67,则输出为

    #include <stdio.h>

    #include <ctype.h>

    #include <string.h>

    int fun (char *str)

    { int i,j=0;

    for(i=0;str[i]!=′ \0′;i++)

    if(str[i]!=′ ′)str[j++]=str[i];

    str[j]= ′\0′;

    }

    main()

    {

    char str[81];

    int n;

    printf("Input a string : ");

    gets(str);

    puts(str);

    fun(str);

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

    }

    A.asdafaaz67

    B.asd af aa z67

    C.asd

    D.z67


    正确答案:A
    解析:本题题意要求删除所有空格,即除了空格以外的其他所有字符都要留下。由于C语言中没有直接删除字符的操作,所以我们对于删除字符的操作都是采用"留下"字符的算法,以前的题目亦是如此。用str[i]从串头到串尾逐一走动,每走到一个字符都判断其是否为空格,若不是空格(注意在if()的单引号之间有一个空格),则将其保存str[j]中。注意j的下标变化、初值及最后加串结束符'\0'。

  • 第21题:

    用“起泡法”对输入的10个字符排序后按从小到大的次序输出。

    #define N 10

    char str[N];

    main()

    { int i,flag;

    for(flag=1;flag==1;)

    { scanf("%s",str);

    flag=0;

    printf("\n");

    }

    sort(___(4)___);

    for(i=0;i<N;I++)

    printf("%c",str[i]);

    printf("\n");

    }

    sort(char str[N])

    { int i,j;

    char t;

    for(j=1;j<N;J++)

    for(i=0;(i<N-J)&&(STR[I]!='\0');I++)

    if(str[i]>str[i+1])

    { t=str[i];

    ____(5)____;

    ____(6)____;

    }

    }


    正确答案:
    2.(4) str (5) str[i]=str[i+1] (6) str[i+1]=t

  • 第22题:

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

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

    正确答案:D

  • 第23题:

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

    scanf(”%s”,&str);

    B

    print[(”%c”,str);

    C

    printf(”%s”,str〔0〕);

    D

    printf(”%s”,str);


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