(31)有以下程序#include <stdio.h>main(){ char a[30],b[30];scanf("%s",a);gets(b);printf("%s\n %s\n",a,b);}程序运行时若输入:how are you? I am fine<回车>则输出结果是A)how are you? B)howI am fine are you? I am fineC)how are you? I am fine D)row are you?

题目

(31)有以下程序

#include <stdio.h>

main()

{ char a[30],b[30];

scanf("%s",a);

gets(b);

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

}

程序运行时若输入:

how are you? I am fine<回车>

则输出结果是

A)how are you? B)how

I am fine are you? I am fine

C)how are you? I am fine D)row are you?


相似考题
更多“(31)有以下程序#include &lt;stdio.h&gt;main(){ char a[30],b[30];scanf("%s",a);gets(b);print ”相关问题
  • 第1题:

    有以下程序: includemain(){char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; sca

    有以下程序: # include<stdio.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)* 20);q=p; scanf("%s %s",p,q);printf("%s %s\n",p,q); } 若从键盘输入;abc def<回车>,则输出结果是 ______。

    A.def def

    B.abc def

    C.abe d

    D.d d


    正确答案:A
    解析:本题考查%s控制符在scanf函数中的应用。scanf函数中%s控制符的作用是将键盘输入的字符串送到内存,输入的字符串从第一个非空格字符算起,遇到空格或回车就认为是输入结束。本题中执行语句scanf("%s%s",p,q)时,从键盘输入abc def回车>后,指针变量p指向字符串"abc\0",q指向字符串"def\0",但是由于p和q指向同一个存储单元,所以存储单元中存放的是"def\0",printf函数的输出结果为def def。

  • 第2题:

    有以下等程序include void f(char *s, char *t){ chark; 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 stt[10] ="abcdefg", *p; p=str+strlen (str)/2+1; f (p,p-2); print f ( "%s\n", str);}

    A.abcdefg

    B.gfedcba

    C.gbcdefa

    D.abedcfg


    正确答案:B
    解析:本题考查的是递归函数。在一个函数中直接或间接地调用了自身,则称此函数为递归函数。本题定义的函数f()就是一个递归函数。它先交换两个字符指针所指的内容,然后将第1个指针往后移动一位,第2个指针往前移动一位,如果第1个指针所指内容不是字符串结束标志,则递归调用自身。主函数中首先定义了一个字符数组sTR[10]="abcdefg",然后定义了一个字符指针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所指的3tr[2]及其以前的2个位置str[1]、str[0]中的内容互相交换。即让整个字符串逆序。所以本题应该选择B。

  • 第3题:

    有以下程序: include < stdio. h >main ( ){char s[] = "ABCD", * p;for(p=s+1;p

    有以下程序: #include < stdio. h > main ( ) { char s[] = "ABCD", * p; for(p=s+1;p<s+4;p++) pfintf(" % s \n" ,p); }

    A.ABCD BCD CD D

    B.A B C

    C.B C D

    D.BCD CD D


    正确答案:D
    解析:p=s+1是指将s(1)的地址赋给p,循环的终止条件是ps+4,s+4表示的是s[4]的地址,总共3次循环,因为程序中是按“%s”格式符输出,所以应该输出3个字符串,而且每次输出字符串的字符个数减少1。由此可得选项D)正确。

  • 第4题:

    有以下程序段 includemain(){ char s[4][10];int i;scanf("%s%s",s[0],s[1]);gets(s[2

    有以下程序段 # include<stdio.h> main() { char s[4][10]; int i; scanf("%s%s",s[0],s[1]);gets(s[2])gets(s[3]); for(i=0;i<4;i++) puts(s[i]); } 输入数据如下,aaaa bbbb<CR>(此处<CR>代表回车符) cccc dddd<CR> 输出结果是( )

    A.aaaa bbbb cccc dddd

    B.aaaa bbbb cccc dddd

    C.aaaa bbbb cccc dddd eeee

    D.aaaa bbbb cccc dddd


    正确答案:A

  • 第5题:

    设有下列程序: include include main() { int i; char si 10],ti 10]; gets(

    设有下列程序:

    include<stdio.h>

    include<string.h>

    main()

    { int i;

    char si 10],ti 10];

    gets(t);

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

    { gets(s);

    if(strcmp(t,s)<0)strcpy(t,s);

    }

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

    }

    程序运行后,从键盘上输入(<CR>代表回车符):CDEF<CR>BADEF<CR>QTHRG<CR>,则程序的输出结果是______。


    正确答案:QTHRG
    QTHRG 解析:strcmp(t,s)函数用来比较t和s所指字符串的大小,若t>s,则函数值大于0;若t=s,则函数值等于0;若ts,则函数值小于0。strcpy(t,s)函数的功能是把字符数组,所指字符串的内容复制到字符数组t所指的存储空间中。
    本题中,t[10]="CDEF".第一次循环,s[10]="BADEF",if语句的控制条件strcmp(t,s)0不成立,接着执行第二次循环,s="QTHRG”, if语句的控制条件strcmp(t,s)0成立,执行下列的语句,将字符数组s所指字符串的内容复制到字符数组t所指的存储空间中,然后输出字符数组t。

  • 第6题:

    以下程序运行后,输出结果是______。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

  • 第7题:

    有以下程序 #include<stdio.h> main( ) {char a[3O],b[30]; scanf("%S",a); gets(b); printf("%s\n%s\\n",a,b); } 程序运行时若输入: how are you? I am fine<回车> 则输出结果是( )。

    A.how are you? I am fine

    B.how are you?I am fine

    C.how are you?I am fine

    D.how are you?


    正确答案:B
    此题主要考查scanf函数和gets函数的区别。答案为B。

  • 第8题:

    请读程序: includde include void fun(char * s) {char a[10]; str

    请读程序: # includde<stdio.h> # include<string.> void fun(char * s) {char a[10]; strcpy(a,"STRING"); s=a; } main() { char*p; fun(p); print{("%s\n",p); } 上面程序的输出结果(表示空格) ( )

    A.STRING

    B.STRING

    C.STRING

    D.不确定的值


    正确答案:D

  • 第9题:

    有以下程序

    include<stdio.h>

    main()

    {char a[30],b[30];

    scanf(“%s”,a);

    gets(b);

    printf(“%s\n%s\n”,a,b);

    }

    程序运行时若输入:

    how are you? I am fine<回车>

    则输出结果是

    A.how are you? I am fine

    B.how are you? 1 am fine

    C.how are you? I am fine

    D.how are you?


    正确答案:B

  • 第10题:

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

    有以下程序: #include <stdio.h>#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] :"abedefg", * 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函数中指向字符'e'的指针变量s加1,指向字符'c'的指针变量t减1,继续将s和t指向的存储单元的内容进行交换,直到s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串"abcdefe”的倒序形式"gfedcba"。

  • 第11题:

    以下能将字符串,you are luck!正确读入的语句组是( )

    A.char s[80]; scanf("%s",s);

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

    C.char s[80]; gets(s);

    D.char *s; gets(3);


    正确答案:C

  • 第12题:

    (29)有以下程序include <stdio.h>void fun(char *c){ while(*c){ if(*c>='a'&&

    (29)有以下程序

    #include <stdio.h>

    void fun(char *c)

    { while(*c)

    { if(*c>='a'&&*c<='z') *c=*c-('a'-'A');

    c++;

    }

    }

    main()

    { char s[81];

    gets(s); fun(s); puts(s):

    }

    当执行程序时从键盘上输入Hello Beijing<回车>,则程序的输出结果是

    A)hello beijing

    B)Hello Beijing

    C)HELLO BEIJING

    D)hELLO Beijing


    正确答案:C

  • 第13题:

    有以下程序: include using namespace std; constxntN=5; int fun(char*s,char a,int

    有以下程序:

    include <iostream>

    using namespace std;

    const xnt N=5;

    int fun(char *s,char a,int n)

    {

    int j;

    *s=a;j=n;

    while(a<s[j])

    j--;

    return j;

    }

    int main()

    {

    char s[N+1];

    int k;


    正确答案:3
    3 解析:函数fun()的功能是在字符数组s中找到大于或等于字符a第1个元素,并返回其下标值。在主函数中,通过for循环给字符数组s分别赋值B、C…J。然后通过调用函数fun(),找到字符'E'的位置。

  • 第14题:

    以下程序的输出结果是【】。 include include void main 0 { char s[50]; st

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

    include<iostream.h>

    include <string.h>

    void main 0 {

    char s[50];

    strcpy(&s[O], "No" );

    strcpy(&s[1], "123" );

    strcpy (&s[2], "23456" );

    cout<<s;

    }


    正确答案:N123456
    N123456

  • 第15题:

    有以下程序 include void fun(char **p) { ++p; printf("%s\n",*p);

    有以下程序 #include <stdio.h> void fun(char **p) { ++p; printf("%s\n",*p); } main() { char *a[]={"Moming","Afternoon","Evening","Night"}; fun(a); } 程序的运行结果是

    A.Afternoon

    B.fternoon

    C.Morning

    D.orning


    正确答案:A
    解析:本题主函数中定义了一个指针数组a,可以将它看成一个以字符指针为元素的一维数组。和—般的一维数组名能赋给同类型指针变量一样,该字符指针数组也可以赋给指向字符指针的指针(即字符型二级指针),所以数组名a可以用作函数fun()的实参。

  • 第16题:

    有以下程序: include main( ) {char s[ ] ="159" , * p;p=s;printf( "% c", * p + +

    有以下程序: #include <stdio.h> main( ) { char s[ ] ="159" , * p; p=s; printf( "% c", * p + + ); printf("%~", * p++);}程序运行后的输出结果是( )。

    A.15

    B.16

    C.12

    D.59


    正确答案:A
    解析:语句p=s将指针变量p指向字符数组s,第一次输出时,由于++和*为同一优先级,而结合方向为自右向左,所以,*p++相于*(p++)。但又因为“++”在p的右侧,所以,先输出*p,得到s[0]的值,然后P++,P指向s[1],故第二次输出时,输出s[1]的值,所以输出结果为15。

  • 第17题:

    有以下程序includemain(){ char*p,*q;p=(char *)malloc(sizeof(char)*20);q=p;scanf(

    有以下程序 #include<stdlib.h> main() { char*p,*q; p=(char *)malloc(sizeof(char)*20);q=p; scanf(“%s%s”,p,q);printf(“%s%s\n”,p,q); } 若从键盘输入:abc def<回车>,则输出结果是

    A.def def

    B.abc def

    C.abc d

    D.d d


    正确答案:A
    解析:本题首先定义两个字符型指针变量p和q,通过malloc()函数申请 20个字符的存储空间,并把它的首地址赋给p,再把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到P指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出为def,def。

  • 第18题:

    有以下程序include main(){ char *p,*q;p=(char*)malloc(sizeof(char)*20);q=p;scanf

    有以下程序 #include <stdlib.h> main() { char *p,*q; p=(char*)malloc(sizeof(char)*20); q=p; scanf("%s %s",p,q); printf("%s %s\n",p,q); } 若从键盘输入:abc def<回车>, 则输出结果是

    A.def def

    B.abc del

    C.abc d

    D.d d


    正确答案:A
    解析:本题考查的知识点是字符型指针变量、malloc()函数的使用。本题首先定义两个字符型指针变量p和q,通过malloc()函数申请20个字符的存储空间,并把它的首地址赋给p,在把p的值赋给q,p和q指向同一个存储区。在scanf()语句中读取字符串到p和q指向的字符串,先把“abc”读取到p指向的存储区中,第一个空格是结束标记,第二个空格是分隔符,再把“def”存放到q指向的存储区,把原先的内容覆盖。所以p和q指向的存储区中内容是“def”,所以最后输出的def,clef.所以4个选项中A正确。

  • 第19题:

    有以下程序

    #include <stdio.h>

    main( )

    { char a[20], b[20], c[20];

    scanf("%s%s", a,b);

    gets(c);

    printf("%s%s%s\n", a,b,c);

    }

    程序运行时从第一列开始输入:

    This is a cat!<回车>

    则输出结果是

    A) Thisisacat!

    B) Thisis a

    C)'Thisis a cat!

    D) Thisisa cat!


    正确答案:C
    【答案】C
    【知识点】scanf()函数的使用
    【解析】scanf语句规定,接收到空格就认为一个字符串的输入结束,所以a数组中为this ,b数组中为is,但是getchar函数见到回车才认为结束所以c数组为 a cat!。

  • 第20题:

    以下程序: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”。

  • 第21题:

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

    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

  • 第22题:

    有以下程序: include main( ) { char *p ,* q; p=(char * )malloc(sizeof(char

    有以下程序: #include<stdlib.h> main( ) { char *p ,* q; p=(char * )malloc(sizeof(char) * 20);q=p; scanf("%s%s",p,q); printf("%s%s\n",p,q); } 若从键盘输入:abc def<回车>,则输出结果是

    A.def def

    B.abc def

    C.abc d

    D.d d


    正确答案:A

  • 第23题:

    有以下程序:include include using namespace std;int main (){ char s[]="

    有以下程序: #include <iostream> #include <string> using namespace std; int main () { char s[]="\n123\\"; cout<<strlen (s) <<", "<<sizeof (s) <<end1; return 0; }

    A.赋初值的字符串有错

    B.6,7

    C.5,6

    D.6,6


    正确答案:C
    解析:本题考核字符串的长度和字符型数组所占的字节数。本题在定义字符数组时没有定义数组长度,但赋给数组初值,初值的个数即为数组的长度。故数组长度为6(包括'\0')。字符串的长度为有效字符的个数,为5。所以程序最后输出5,6。