niusouti.com

下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n, 并输出m、n中的较大者,请选择填空: int m=0,n=0; char c; while((__)!='n') { if(c>='A'&& c<='Z') m++ ; if(c>='a'&& c<='z') n++; } printf("%dn",m)A.scanf("%d",c)B.getchar()C.c=getchar()D.scanf("%c",c)

题目

下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n, 并输出m、n中的较大者,请选择填空: int m=0,n=0; char c; while((__)!='n') { if(c>='A'&& c<='Z') m++ ; if(c>='a'&& c<='z') n++; } printf("%dn",m)

A.scanf("%d",c)

B.getchar()

C.c=getchar()

D.scanf("%c",c)


相似考题
参考答案和解析
AC。
更多“下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n, 并输出m、n中的较大者,请选择填空: int m=0,n=0; char c; while((__)!='n') { if(c>='A'&& c<='Z') m++ ; if(c>='a'&& c<='z') n++; } printf("%dn",m)”相关问题
  • 第1题:

    有以下程序: main() {int m=12,n=34; printf("%d%d",m++,++n); printf("%d%d\n",n++,++m); } 程序运行后的输出结果是 ______。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:执行“printf("%d%d",m++,++n);”后,输出的是m和n+l的值1235,接着执行“printf("%d%d\n"n++,++m);”输出n和m+1的值3514。

  • 第2题:

    请补充函数fun(),该函数的功能是:返回字符数组中指定子符的个数,指定字符从键盘输入。

    注意:部分源程序给出如下。

    请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。

    试题程序:

    include <stdio.h>

    define N 80

    int fun (char s[],char ch)

    {

    int i=0, n=0;

    while(【 】)

    {

    if(【 】)

    n++;

    i++;

    }

    【 】;

    }

    main ( )

    {

    int n;

    char str[N], ch;

    clrscr ();

    printf ("\nInput a string: \n");

    gets (str);

    printf ("\nInput a charactor: \n" ;

    scanf ("%c", &ch);

    n=fun (str, ch);

    printf("\nnumber of %c:%d", ch, n);

    }


    正确答案:s[i]或者s[i]!= '\0' s[i]=ch return n
    s[i]或者s[i]!= '\0' s[i]=ch return n 解析:第一空:while循环的条件是当前参加比较的字符不为‘\0’,即还没有到字符串的最后一个字符。第二空:如果当前字符等于指定字符,则统计个数的变量n加1。第三空:函数要求返回字符数组中指定字符的个数,所以函数要返回 n。

  • 第3题:

    以下程序执行后的输出结果是【】。includemain(){int i, m=0,n=0,k=0;for(i=9;i<= 11 ;

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

    include<iostream.h>

    main()

    {

    int i, m=0,n=0,k=0;

    for(i=9;i<= 11 ;i++)

    switch(i/10)

    {

    case 0: m++; n++; break;

    case 10: n++; break;

    default: k++; n++;

    }

    cout<<m<<n<<k;

    }


    正确答案:132
    132

  • 第4题:

    运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。 main() { int m,n; printf("En

    运行以下程序后,如果从键盘上输入6514<回车>,则输出结果为______。 main() { int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); }

    A.m=3

    B.m=2

    C.m=1

    D.m=0


    正确答案:C

  • 第5题:

    设有如下程序: #include"stdio.h" main() { char c; int m=0,n=0; while((c=getchar())!='\n') {if(c>='A'&&c<='Z') m++; else if(c>='a'&&c<='z')n++;} printf("m=%d,n=%d",m,n);} 如果从键盘上输入:AbCdefGHj<回车>,则程序运行后的输出结果是( )

    A.m=5,n=4

    B.m=4,n=5

    C.m=9,n=0

    D.无确定值


    正确答案:B

  • 第6题:

    有以下程序main() { int m=14,n=24; printf("%d,%d",m++,++n); printf("%d,%d\n",n++,++m); }程序运行后的输出结果是A.15252616 B.14252515 C.14252516 D.14252615


    正确答案:C
    本题考查自增运算符的使用。
    自增运算符与变量的结合方向为自右向左。题目中用两个printf函数进行变量的输出,第一个printf函数需要输出的变量为m++和++n,m的初始值为14,n的初始值为24,m++操作表示先将m的值进行输出,再进行++操作,输出m的值为14,进行++操作后,m的值变为15。++n操作是将n的值加1后再输出,输出值为25。同理,对于第二个printf函数,有输出25,16。结果为14252516。

  • 第7题:

    下列程序中函数fun的功能是:统计person所指结构体数组中所有性别(sex)为M的记录的个数,存入变量n中,并作为函数值返回。请填空。

    include <stdio.h>

    define N 3

    typedef struct

    { int num; char nam[10]; char sex;} SS;

    int fun(SS person[])

    { int i,n=0;

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

    if(【 】=='M') n++;

    return n;

    }

    main()

    { SS W[N]={{1,"AA",'F'},{2,"BB",'M'},{3,"CC",'M'}}; int n;

    n=fun(W); printf("n=%d\n", n);

    }


    正确答案:person[i].sex
    person[i].sex 解析:本题考查的是对结构体成员的引用,对结构体数组成员的访问是以数组元素为结构体变量的,其形式为结构体数组元素咸员名,所以题目空白处应填person[i].sex。

  • 第8题:

    有以下程序: include main( ){ int m =12,n=34;printf( "% d% d" ,m++ , ++n);printf(

    有以下程序: #include <stdio.h>main( ){ int m =12,n=34; printf( "% d% d" ,m++ , ++n); printf("% d% d \n" ,n ++ , ++m); }程序运行后的输出结果是( )。

    A.12353514

    B.12353513

    C.12343514

    D.12343513


    正确答案:A
    解析:程序执行printf("%d%d",m++,++n);后,输出的是m和n+1的值1235,然后m+1=13,再执行printf("%d%d\n",n++,++m);输出n和m+1的值3514,之后n+1=36。这里要注意的是m++和++m的区别:m++是先输出m的值,再执行m++;++m是先执行++m,再输出m的值。

  • 第9题:

    下列程序的功能是( )。 main() { static int s[3][3]={1,2,3,4,5,6,7,8,9,),m,n; for(m=0;m<3;m++) { for(n=0;n<=m;n++) printf("%d",s[m][n]);printf("\n'); } }

    A.输出3×3矩阵的下三角的元素

    B.输出3×3矩阵的上三角的元素

    C.输出3×3矩阵的对角线上的元素

    D.输出3×3矩阵的元素


    正确答案:A
    解析:本题使用了一个双重for循环,外循环变量m的变化范围是0~2,而内循环变量n的变化范围从0~m,所以执行循环体时(m,n)的值依次为(0,0),(1,0),(1,1),(2,0),(2,1),(2,2),故输出的是3×3矩阵的下三角元素。所以应该选择A。

  • 第10题:

    下面程序的功能是()。include include using namespace std;int main (){ in

    下面程序的功能是( )。 #include <iostream> #include <string> using namespace std; int main () { int i=1, n=0; char s[80],*p; p=s; strcpy(p,"It is a book.."); for (; *p !=' \0' ;p++) { if(*p=='') i=0; else if (i==0) { n++; i=1; } } cout<<"n=" <<n<<end1; return 0; }

    A.统计字符串中的单词个数

    B.统计字符串中的空格个数

    C.统计字符串中的字母个数

    D.统计字符串中的全部字符个数


    正确答案:B
    解析:本题通过for循环对字符串进行扫描,遇到'\0'结束扫描。程序首先将i的值置为1,n的值置为0。在for循环中,通过if语句判断*p指向的字符是否为空格,如果是空格则将i的值置为0,而在elseif语句,如果i的值为0,则n++,然后将i的值重新置为1。如此反复,最后统计出字符串中的空格个数。

  • 第11题:

    若有如下程序: sub(int *t,int a[3][4]) { int m,n; for(m=0;m<3;m++) for(n=0;n<4;n++) { *t=a[m][n];t++;} } main() { int*t,s[3][4)={{1,2,3),{4,5,6),{7,8,9}}; t=(int*)malloc(50); sub(t,s); printf("%d,%d\n",t[4],t[7]); } 则程序运行后的输出结果是( )。

    A.4,7

    B.4,0

    C.5,8

    D.程序错误


    正确答案:B
    解析:本题定义了一个sub()函数,其作用为将一个二维数组按行复制到t所指的连续内存空间内。主程序中首先使用malloc()函数为t申请了50个字节的内存空间,然后调用sub()函数,将二维数组s的内容复制到t申请的内存空间内,最后输出t的第5个元素(t[4])和第8个元素(t[7]),即为3行4列二维数组中的s[1][0]和s[1][3]。s[1][0]是初始化列表中第二个大括号中的第一个值4,而s[1][3]应该是初始化列表中第二个大括号中的第4个值,但没有这么多初始值,C语言在这种情况下会自动将该元素设置为0,即s[3][4]={{1,2,3},{4,5,6},{7,8,9}}等价于s[3][4]={{1,2,3,0},{4,5,6,0),{7,8,9,0}}。所以最后输出结果是4,0,应该选择B。

  • 第12题:

    问答题
    下列给定程序中,函数fun的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为“abcdabfab”,t所指字符串的内容为“ab”,则函数返回整数3。  请改正程序中的错误,使它能得出正确的结果。  注意:不要改动main函数,不得增行或删行,也不得更改程序的结构!/**********code.c**********/#include #include #include #include int fun(char *s, char *t){ int n; char *p, *r; n=0; while(*s) {  p=s;  r=t;  while(*r)   /**********found**********/   if(*r==*p){r++; p++}   else break;  /**********found**********/  if(r=='\0')   n++;  s++; } return n;}void main(){ char s[100],t[100]; int m; system(CLS); printf(Please enter strings:); scanf(%s,s); printf(Please enter substrings:); scanf(%s,t); m=fun(s,t); printf(The result is:m=%d, m);}/**********-code.c**********/

    正确答案:

    (1)错误:if(*r==*p){r++;p++}
    正确:if(*r==*p){r++;p++;}
    (2)错误:if(r=='\0')
    正确:if(*r=='\0')
    解析:

      错误1:在经过“if”判断后执行后面括号内的语句时,每条语句应以“;”做结尾,“p++”后面没有分号即是错误。
      错误2:该题目中定义*r为指针变量,r为指针名称,对其所指内容进行判断时应加“*”。

  • 第13题:

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


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

  • 第14题:

    有以下程序 main() { int m,n; printf("Enter m,n:");scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); } 如果从键盘上输入65 14<回车>,则输出结果为( )

    A.m=3

    B.m=2

    C.m=1

    D.m=0


    正确答案:C

  • 第15题:

    下列给定程序中,函数fun()的功能是:从s所指字符串中,找出t所指字符串的个数作为函数值返回。例如,当s所指字符串中的内容为abcdabfab,t所指字符串的内容为ab,则函数返回整数3。

    请改正程序中的错误,使它能得出正确的结果。

    注意:不要改动main函数,不得增行或删行,也不得更改程序的结构.

    试题程序:

    include <conio.h>

    include <stdio.h>

    include <string.h>

    int fun (char *s, char *t)

    {int n; char *p, *r;

    n=0;

    while(*s)

    {p=s;

    r=t;

    while (*r)

    /**************found**************/

    if(*r==*p) {r++; p++}

    else break;

    /*************found**************/

    if(r=='\0')

    n++;

    s++;

    }

    return n;

    }

    main()

    {char s[100], t[100]; int m;

    clrscr();

    printf("\nPlease enter string s: ");

    scanf ("%s",s);

    printf("\nPlease enter substring t: ");

    scanf ("%s",t);

    m=fun (s,t);

    printf("\nThe result is: m=%d\n", m);

    }


    正确答案:(1)错误:if(*r==*p) {r++;p++} 正确:if(*r==*p) {r++;p++;} (2) 错误;if(r=='\0') 正确:if(*r=='\0')
    (1)错误:if(*r==*p) {r++;p++} 正确:if(*r==*p) {r++;p++;} (2) 错误;if(r=='\0') 正确:if(*r=='\0') 解析:从字符串s中找出于串t的方法是:从第一个字符开始,对字符串进行遍历;若s串的当前字符等于t串的第1个字符,两字符串的指针自动加1,继续比较下一个字符;若比较至字符串t的结尾,则跳出循环;若s串的字符和t串的字符不对应相同,则继续对下一个字符进行处理。

  • 第16题:

    运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为_____。main(){int m,n;printf("Enter

    运行以下程序后,如果从键盘上输入65 14<回车>,则输出结果为_____。 main() { int m,n; printf("Enter m,n:"); scanf("%d%d",&m,&n); while(m!=n) { while(m>n)m-=n; while(n>m)n-=m; } printf("m=%d\n",m); }

    A.m=3

    B.m=2

    C.m=1

    D.m=0


    正确答案:C
    解析:分析程序可知,该程序实现的功能是对数m,n求其最大公约数。在本题中m与n的值分别为65与14,其最大公约数为1,故其输出结果为m=1。

  • 第17题:

    以下程序的功能是:通过函数func 输入字符,并统计输入字符的个数。输入时用字符@作为输入结束标志。请填空。#include <stdio.h>long ; /* 函数说明语句 */main(){ long n; n=func(); printf("n=%ld\n",n);}long func(){ long m; for( m=0; getchar()!=’@’;); retum m;}


    正确答案:func(),m++
    本题考查函数的声明及对函数功能的理解。题目中的程序可以分为两个部分,一个为主函数main,另一个为func函数。C语言中如果使用用户自定义的函数,并且该函数与调用它的函数在同一个文件中,则需要在主调函数中对该函数进行声明。如果被调用的函数在主调函数之前,则可以不必加以声明。如果在所有的函数定义之前,在函数的外部已做了函数声明,则在各个主调函数中不必对所调用的函数再进行声明。题目中既没有在main函数之前对func函数进行定义,在main函数中也没有对func函数的声明,故要在所有的函数定义之前对func函数进行声明。第一个填空是对函数声明语句的补充,填入func()。第二个填空是在func函数的循环变量增值处,通过该函数能够输入字符,并对输入的字符进行字数统计。func函数用m的值作为字符个数的统计值并返回,而m是for语句中的循环变量,初始为0,循环条件为一个表达式getchar,每次输入一个字符,只要不是’@’,则继续循环调用for语句,循环变量增值处应该填入能反映m的值发生变化的语句,m是对字符个数的统计量,必然随着输入的合法字符数量增多而变大,应填入语句m++。

  • 第18题:

    下面程序的功能是求整数m、n的最大公约数,请填空。 main() {int m,n,r; scanf("%d,%d",&m,&

    下面程序的功能是求整数m、n的最大公约数,请填空。

    main()

    { int m,n,r;

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

    if(【 】){r=m;m=n;n=r;)

    while(【 】)

    { r=m%n;m=n;n=r; }

    printf("%d",m);

    }


    正确答案:mn或n>m r或r!=0
    mn或n>m r或r!=0 解析:本题使用的是“辗转相除”法求两个数的最大公约数,即以两个数中较大的除以较小的,如果余数不为0,则将较小的数和余数做同样处理,直到被除断为止,此时较小的数就是两个数的最大公约数。本题第一空要求填写一个if语句的判断条件,如果满足此条件则交换m和n的值,再看后面while循环的循环体,使用m%n求余,则此if语句的作用应该是保证m是两个数中较大的那个,故第一空填mn或n>m。接下来的while循环实现整个辗转相除的过程,其结束条件应该是余数r为0,所以while的循环条件应该填r或r!=0。

  • 第19题:

    下面程序的运行结果是( )。 include main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4

    下面程序的运行结果是( )。 include<stdio.h> main() {int a,s,n,m; a=2;s=0;n=1;m=1; while(m<=4){n=n*a;s=s+n;++m;} printf("s=%d",s); }


    正确答案:s=30
    s=30 解析:分析循环条件“m=1,m=4”,所以循环4次。第1次:n=n*a=2,s=s+n=2;m=2。第2次:n=n*a=4,s=s+n=6;m=3。第3次:n=n*a=8,s=s+n=14;m=4。第4次:n=n*a=16,s=s+n=30。

  • 第20题:

    以下程序运行后的输出结果是main{ int i,m=0,n=0,k=0; for(i=9;i<=11;i++) switch(i/10) { case 0: m++;n++;break;  case 1: n++;break;  default:k++;n++; } printf("%d %d %d\n",m,n,k);}


    正确答案:1 3 0
    在本题中,程序首先定义了四个整型变量,其中变量i为循环变量,其他三个变量都被初始化为0。然后执行循环,从循环变量i的初值和结束条件我们可以看出,循环运行了三次。
    第一次循环,当i=9时,执行switch(i/10),由于变量i和10都是整型数值,按照C语言的规定,计算结果也应为整型,因此,i/10的结果为0,执行case 0结构,即变量m和n的值分别加1,然后执行break语句结束switch结构。
    第二次循环时,i=10,此时i/10=1,执行case 1结构,变量n的值再增加1,然后执行break语句结束switch结构。
    第三次循环时,i=11,此时i/10的结果仍然为1,执行case 1结构,变量n的值再增加1,然后执行break语句结束switch结构。
    循环结束,此时,变量m、n和k的值分别为1、3、0,然后执行输出语句,分别输出这几个变量的值,因此,程序最后的输出结果是1 3 0。

  • 第21题:

    有以下程序

    #include<stdio.h>

    int f(int m)

    { static int n=0;

    n+=m:

    return n;

    }

    main()

    { int n=0;

    printf("%d,",f(++n));

    printf("%d\n",f(n++));

    }

    程序运行后的输出结果是

    A.1,2

    B.1,1

    C.2,3

    D.3,3


    正确答案:A
    解析:static变量用于局部变量中有记忆功能和全局生存期。函数中的静态变量的特点是每次调用函数,静态变量的值是上次调用完该函数后的静态变量值,所以在此题中,第一调用函数,返回1,此时函数中的静态变量n的值为l,所以第二次调用函数时,返回值为2。

  • 第22题:

    有以下程序: #include<stdio.h> int f(int m) { static int n=0; n+=m; return n; } main( ) { int n=0; printf("%d,"f(++n)); printf("%d\n",f(n++)); } 程序运行后的输出结果是( )。

    A.1,2

    B.1,1

    C.2,3

    D.3,3


    正确答案:A
    由题可知,输出是调用了f函数,其中有f(++n)和f(n++),其中n=0,所以输出的结果为l,2。

  • 第23题:

    试题33

    有以下程序

    #include <stdio.h>

    int f(int m)

    { static int n=0;

    n+=m;

    return n;

    }

    main()

    { int n=0;

    printf(“%d,”, f(++n));

    printf(“%d\n”, f(n++));

    }

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

    A.1,2

    B.1,1

    C.2,3

    D.3,3


    正确答案:A
    试题33分析
    n=0,f(++n)),n先增1,调用f,n=0+1=1,输出n;f(n++))先取n的值1调用,n=1+1=2,然后输出n,最后n增1,变成3;所以第一次输出为1,第二次输出为2;
    试题33答案
    A

  • 第24题:

    单选题
    有以下程序:#include int a=2; int f(){ static int n;  int m;  m=n=0;  n++; a++; m++; return m+n+a; }main(){ int k;  for(k=0;k<3;k++)  printf(%d, ,f()); printf(); }程序的运行结果是(  )。
    A

    5,6,7,

    B

    5,7,9,

    C

    5,8,11,

    D

    5,5,5,


    正确答案: B
    解析:
    static变量编译时,将其分配在内存的静态存储区中,在整个程序运行期间都不释放这些存储单元,即使退出函数,下次再进入该函数时,静态局部变量仍使用原来的存储单元,值是上一次函数调用结束时的值。程序执行过程为:k=0,a=2,n=0,m=0;n=1,a=3,m=1,返回5;k=1,a=3,n=0,m=0;n=1,a=4,m=1,返回6;k=2,a=4,n=0,m=0;n=1,a=5,m=1,返回7;k=3退出循环。答案选择A选项。