niusouti.com

若变量已正确定义,下列正确的程序段是( )。A.while(ch=getchar()=='\NN')putchar(ch);B.while((ch=getchar())=='\n')putchar(ch);C.while((ch=getchar())!='\N')putchar(ch);D.while((ch=getchar())!='\n')putchar(ch);

题目

若变量已正确定义,下列正确的程序段是( )。

A.while(ch=getchar()=='\NN')putchar(ch);

B.while((ch=getchar())=='\n')putchar(ch);

C.while((ch=getchar())!='\N')putchar(ch);

D.while((ch=getchar())!='\n')putchar(ch);


相似考题
参考答案和解析
正确答案:D
解析:本题考查两个知识点:①C语言用'n\'这个字符常量表示换行;②函数getchar()的作用是从终端输入一个字符,当遇到换行时结束输入。
更多“若变量已正确定义,下列正确的程序段是( )。A.while(ch=getchar()=='\NN')putchar(ch);B.while((ch=getchar())=='\n')putchar(ch);C.while((ch=getchar())!='\N')putchar(ch);D.while((ch=getchar())!='\n')putchar(ch);”相关问题
  • 第1题:

    下列程序运行时 , 若输入 labcedf2df< 回车 > 输出结果为【 1 0 】

    #include <stdio.h>

    main()

    { char a=0,ch;

    while((ch=getch ar ())!='\n')

    { if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch-'a'+'A';

    a++; putchar(ch);

    }

    printf("\n");

    }


    正确答案:

  • 第2题:

    下列程序段中,不能正确赋值的是( )。

    A.char*p,ch; p=&Ch; scanf("%c",&p);

    B.char*p; p=char*)malloc(1); scanf("%c",p);

    C.char*p; *p=getchar();

    D.char*p,ch; p=&ch; *p=getchar();


    正确答案:C
    解析:地址变量p指向的存储空间一定要明确,否则可能影响程序的正确性。

  • 第3题:

    下列程序段是从键盘输入的字符中统计数字字符的个数,用换行符结束循环。 Int n=0, ch; Ch=getchar( ); While( __________________ ) { if ( ________________ ) n++; c=getchar( ); }


    正确答案:
    ch!=’\n’ch>=’0’ch<=’9’

  • 第4题:

    执行下面的程序时,输入abc(其中CR代表回车),输出结果是()。includeinclude

    执行下面的程序时,输入abc<CR>(其中CR代表回车),输出结果是( )。 #include<stdio.h> #include <string.h> main() { char ch; while((cn=getchar())!='n') { switch(ch-'a') { case 0: putchar(ch+1); case 1:putchar(ch+1);break; case 2:putchar(ch+2); caSe 3:putchar(ch+2);break; } } }

    A.abc

    B.bbc

    C.abcd

    D.bbcee


    正确答案:D
    解析:当ch='a'时,ch-'a'=0,进入case0分支输出b,再进入case1分支输出b,然后结束本次循环。当ch='b'时,'b'-'a'=1,进入case1分支输出c,然后结束本次循环。当ch='c'时,'c'-'a'=2,进入case2分支输出e,再进入case3分支输出e,然后结束次循环。遇到'-n'结束循环。显示输出为bbcee。

  • 第5题:

    若变量已正确定义并赋值,对库函数错误调用的是( )

    A.k=scanf("%d%d",&i,&j);

    B.printf("\\%d\\n",k);

    C.getchar(ch);

    D.putchar(ch);


    正确答案:C

  • 第6题:

    要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,以下正确的程序段是( )。

    A.while((ch=getchar())!='N')printf("%c",ch);

    B.while(ch=getchar()!='N')printf("%c",ch);

    C.while(ch=getchar()=='N')printf("%c",ch);

    D.while((ch=getchar())=='N')printf("%c",ch):


    正确答案:A
    解析:因为while是以条件为假时结束循环,因此选项C、D不正确。“!=”的优先级比“=”高,因此“ch=getchar()!='N'”相当于“ch=(getchar!='N')”,ch并不能得到输入的字符,只能得到true或者false值。

  • 第7题:

    以下程序的功能是从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

    majn()

    { FILE *fp; char ch;

    fp=fopen(______);

    ch=fgetc(fp);

    whle(!feof(fp)) { putchar(ch); ch=f8etc(fp); }

    putchar('\n'); fclose(fp);

    }


    正确答案:

  • 第8题:

    下列程序段中,不能正确赋值的是

    A.char*p,ch; p=&ch; scanf("%c,&p")

    B.char*p; p=(char*)malloc(1); scanf("%c",p);

    C.char*p; *p=getchar();

    D.char*p,ch; p=缸h; *p=getchar();


    正确答案:C
    解析: 本题考查了字符的输入函数getchax和利用scanf函数输入一个字符。用scanf输入字符时,格式说明字符应该为%c。本题选项C)因为指针P没有赋初值,所以是一个不定值,不能直接将getchar读入的字符赋给指针p所指向的字符,所以选项C错误。

  • 第9题:

    有以下程序: include main() {char ch1,ch2;int n1,n2;ch1=getchar();ch2=getehar();n1

    有以下程序:

    include <stdio.h>

    main()

    { char ch1,ch2;int n1,n2;

    ch1=getchar();ch2=getehar();

    n1=ch1-'0'; n2=n1*10+(ch2-'0');

    printf("%d\n",n2);

    }

    程序运行时输入:12<回车>,执行后的输出结果是【 】。


    正确答案:12
    12 解析:程序中的ch1与ch2为字符型变量,输入12后,ch1得到字符'1',ch2得到字符'2'。n1 =ch1-'0'将字符1,转换为数值1,同理,n2为1*10+2=12。程序执行后输出十进制整数12。

  • 第10题:

    要求通过while循环不断读入字符,当读入字母'N'时结束循环。若变量已正确定义,以下正确的程序段是( )。

    A.while(( ch = getchar( )) ! ='N') printf(" %c",ch);

    B.while(ch = getehar() ! ='N')printf("%c",ch);

    C.while (ch = getehar() = = 'N')printf( "%c", ch);

    D.while ((ch = getchar( )) == 'N')printf("%c", ch );


    正确答案:A
    解析:此题中选项B)与选项C)首先在书写上就有错误;题目要求当读人的字母为非字母'N'时才执行printf语句,依据选项D)的要求,只有当读人的字母为'N'时才执行printf句,故也错误。

  • 第11题:

    以下程序段要求从键盘输入字符,当输入字母为'Y' 时,执行循环体,则括号内应填写().  ch=getchar( );  while(ch ____ 'Y')/*在括号中填写*/  ch=getchar( );


    正确答案:==

  • 第12题:

    单选题
    有如下程序: #include  void get_put() {  char ch;  ch=getchar();  if(ch!='')get_put();  putchar(ch); } main() {  get_put();  printf(); } 程序运行时,输入1234<回车>,则输出结果是(  )。
    A

    1234

    B

    4321

    C

    4444

    D

    1111


    正确答案: A
    解析:
    get_put为递归函数。本题程序的执行过程为:在输入1234<回车>的情况下,调用get_put函数,getchar读入1,即ch='1',if条件成立,调用get_put函数;读入2,ch='2',调用get_put函数;读入3,ch='3',调用get_put函数;读入4,ch='4',调用get_put函数;读入回车,ch='',if条件不成立,返回执行每次调用函数中if语句后的输出语句,即依次输出4321。答案选择B选项。

  • 第13题:

    (22)设变量已正确定义,以下不能统计出一行中输入字符个数(不包含回车符)的程序段是

    A)n=0;while((ch=getchar())!=’\n’)n++; B) n=0;while(getchar()!=’\n’)n++;

    C)for(n=0; getchar()!=’\n’;n++); D)n=0;for(ch=getchar();ch!=’\n’;n++);


    正确答案:D

  • 第14题:

    要求通过while循环不断读入字符,当读入字母N时结束循环。若变量已正确定义,下列正确的程序段是( )

    A.while((ch=getchar ())!='N')printf("%c",ch);

    B.while(ch=getchar()!='N') printf("%c",ch);

    C.while(ch=getchar()=='N') printf("%c",ch);

    D.while((ch=getchar()) =='N')printf('%c',ch);


    正确答案:A
    解析:本题考查if else语句。第1个if语句,先判断条件,发现ab条件成立,执行下列的语句;第2个汀语句,先判断条件,发现b!=3条件成立,执行下列的语句;第3个汀语句,先判断条件,c=5,则!c条件不成立,执行与其配对的else语句:第4个if语句,先判断条件,d=0,条件不成立,则x=-1,结束循环。

  • 第15题:

    在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。include main(){char

    在执行以下程序时,如果从键盘上输入ABCdef<回车>,则输出为______。#include <stdio.h>main (){ char ch; while ((ch=getchar())!="\n") { if (ch>='A'&& ch<='B')ch=ch+32; else if (ch>='a'&& ch<='z')ch=ch-32; printf("%c",ch); } printf("\n");}

    A.ABCdef

    B.abcDEF

    C.abc

    D.DEF


    正确答案:B

  • 第16题:

    以下程序的作用是:从名为filea.dat的文本文件中逐个读入字符并显示在屏幕上。请填空。

    include <stdio.h>

    main()

    {FILE *fp; char ch;

    fp=fopen(【 】);

    ch=fgetc(fp);

    while(!feof(fp)) { putchar(ch); ch=fgetc(fp); }

    putchar('\n');fclose(fp);

    }


    正确答案:“filea.dat”“r”
    “filea.dat”,“r” 解析:fopen函数的调用方式通常为 fopen(文件名,使用文件方式)。本题中要求程序可以打开filea.dat文件,并且是要读取文件中的内容,所以空白处应当填入 "filea.dat","r"。

  • 第17题:

    若变量已正确定义,下列正确的程序段是( )。

    A.while(ch=getchar()=='\N')putchar(ch);

    B.while((ch=getchar())=='\n')putchar(ch);

    C.while((ch=getchar())!='\N')putchar(ch);

    D.while((ch=getchar())!='\n')putchar(ch);


    正确答案:D
    解析: 本题考查两个知识点:①C语言用'\n'这个字符常量表示换行;②getchar函数的作用是从终端输入一个字符,当遇到换行时结束输入。

  • 第18题:

    下列程序运行时,若输入labcedf2df<回车>输出结果为【】。 include main(){char a=0,ch; wh

    下列程序运行时,若输入labcedf2df<回车>输出结果为【 】。

    include<stdio.h>

    main()

    { char a=0,ch;

    while((ch==getchar())!='\n')

    { if(a%2!=0&&(ch>='a'&&ch<='z')) ch=ch'a'+'A';

    a++;prtchar(ch);

    }

    printf("\n");

    }


    正确答案:1AbCeDf2dF
    1AbCeDf2dF 解析:本题的执行过程是先从键盘上获得—个字符,判断是不是换行符,如果不是则继续执行循环体,再判断字符变量 a是否是偶数以及是否是小写字母,如果a不是偶数且输入的字符为小写字母,则将其转换成大写字母,接着执行a++;语句,变量a自增1,输出字符,因此本题的输出结果为1AbCeDF2dF(a相当于用来记录当前的顺序,即是第偶数个字符还是第奇数个字符)。
    字符位数:0 123456789
    输入字符:1 abcedf2df
    输出字符:1 AbCeDf2dF

  • 第19题:

    要求通过while循环不断读入字符,当读入字母N时结束循环,若变量已正确定义,下列正确的程序段是( )。

    A.while((ch—getchar)!=N)printf("%c",ch);

    B.while(oh=getchar!=N)printf("%c",ch);

    C.while(ch=getchar==N)printf("%c",ch);

    D.while((ch—getchar)==N)printf("%c",ch);


    正确答案:A
    while循环的执行过程如下:①计算while后面圆括号中表达式的值。当值为非0时,执行步骤②;当值为0时,执行步骤④。②执行循环体一次。③转去执行步骤①。④退出循环。在选项A中,表达式(ch=get-char)!=N表示输入的字符不等于N,如果这个条件表达式成立,则执行循环体,打印输出输入的字符。如果这个条件表达式不成立,即输入的字符等于N,则退出循环。所以选项A为正确答案。

  • 第20题:

    若变量已正确定义,以下while循环不断输出读入的字符,当读入回车换行符时结束循环。正确的程序段是

    A.while(ch=getchar()=='\N')putchar(ch);

    B.while(ch=getchar())=='\N')putchar(ch);

    C.whle((ch=getchar())!='\N')putchaf(ch);

    D.while((ch=getchar())!='\N')putchar(ch);


    正确答案:D
    解析:换行符是一个转义字符,应该是‘\n’,而不是‘\N’。选项B)中,因为关系运算符“==”的优先级高于赋值运算符“=”,所以ch得到的值是关系运算getchar()=='\n'的结果而不是从键盘输入的字符,因而不正确,故正确答案为选项D)。

  • 第21题:

    设变量已正确定义,下列不能统计出一行中输入字符个数(不包含回车符)的程序段是( )。

    A.n=0;while((ch=getchar( ))!=\n)n++;

    B.n=0;while(getchar( )!=\n)n++;

    C.for(n=0;getchar( )!=\n;n++);

    D.n=0;for(ch=getchar( );ch!=n;n++);


    正确答案:D
    D。【解析】本题中,第一条语句对变量n赋初值时为0,在for循环中,从getchar函数得到一个输入的字符,然后判断这个字符是否为回车换行符,如果不是,则变量n加1,而在程序运行时,每次输入时是一个字符串,而不是一个字符,因而for循环语句得不到正确的执行,所以不能够统计出一行中字符的个数。所以正确答案为选项D。

  • 第22题:

    在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为______。 main() { char ch; while((ch

    在执行以下程序时,如果从键盘上输入:ABCdef<回车>,则输出为______。 main() { char ch; while((ch=getchar())!='\n') { if(ch>='A' && ch<='Z') ch=ch+32; else if(ch>='a'&&ch<='2')ch=ch-32; printf("%c",ch); } printf("\n"); }

    A.ABCdef

    B.abcDEF

    C.abc

    D.DEF


    正确答案:B

  • 第23题:

    单选题
    有如下程序:#include void get_put(){ char ch; ch=getchar(); if(ch!='')get_put(); putchar(ch);}main(){ get_put();}程序运行时,输入ABCD<回车>,则输出结果是(  )。
    A

    DCDC

    B

    DCBA

    C

    BABA

    D

    ABCD


    正确答案: D
    解析:
    本题考查了函数的递归调用,进入get_put函数后,字符变量ch每次保存读进来的字符,如果不是换行符,则继续读取下一个字符常量,当ch保存完'D'后,下一次读取不满足if条件,函数进行输出,依次输出'D','C','B','A',答案选择B选项。