单选题以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是(  )。 #include main() {int k;printf(Enter a int number:);scanf(%d,&k);if _____ printf(YES);else printf(NO);printf(%d,k%3); }A ((k%3==0)‖(k%7==0))B (k/3==0)‖(k/7==0)C ((k%3=0)‖(k%7=0))D ((k%3==0)&

题目
单选题
以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是(  )。 #include main() {  int k;  printf(Enter a int number:);  scanf(%d,&k);  if _____ printf(YES);  else printf(NO);  printf(%d,k%3); }
A

((k%3==0)‖(k%7==0))

B

(k/3==0)‖(k/7==0)

C

((k%3=0)‖(k%7=0))

D

((k%3==0)&&(k%7==0))


相似考题
更多“单选题以下程序的功能是判断输入的一个整数是否能被3或7整除,若能整除,输出YES,否则输出NO。在下划线处应填入的选项是(  )。 #include main() {  intk;  printf(Enteraintnumber:);  scanf(%d,k);  if_____printf(YES);  elseprintf(NO);  printf(%d,k%3); }A ((k%3==0)‖(k%7==0))B (k/3==0)‖(k/7==0)C ((k%3=0)‖(k%7=0))D ((k%3=”相关问题
  • 第1题:

    下列程序的输出结果是______。 main() { char *s="12134211"; int v[4]={0,0,0,0},k,i; for(k=0;s[k];k++) { switch(s[k]) { case '1':i=0; case '2':i=1; case '3':i=2; case '4':i=3; } vii]++; } for(k=O;k<4;k++) printf("%d ",v[k]); }

    A.4211

    B.0008

    C.4678

    D.8888


    正确答案:B

  • 第2题:

    有以下程序includemain(){int k=5,n=0;while(k>0){switch(k){defhult:break;case 1:n+

    有以下程序 #include<stdio.h> main() {int k=5,n=0; while(k>0) {switch(k) {defhult:break; case 1:n+=k: case 2: case 3:n+=k; } k--; } printf("%d\n",n); } 程序运行后的输出结果是( )

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:因为没有break语句,当k=2的时候,会顺序执行两条语句,k=1的时候,会顺序执行3条语句。

  • 第3题:

    以下程序的输出结果是( ) main() { int a=2,k; for(k=0;k<3;k++)printf("%4d",f1(a) ); } f1(int a) { int b=0;static int c=3; b++;c++; return(a+b+c) ;}

    A.7 7 7

    B.7 10 13

    C.7 9 11

    D.7 8 9


    正确答案:D

  • 第4题:

    下列程序运行后的输出结果是 ______。 include void main(){ int s=0,k for(k=7;k>=0

    下列程序运行后的输出结果是 ______。

    include<iostream.h>

    void main()

    {

    int s=0,k

    for(k=7;k>=0;k--)

    {

    switch(k)

    {

    case 1:

    case 4:

    case 7:s+ +;break:

    case 2:

    case 3:

    case 6:break;

    case 0:

    case 5:s+=2;break;

    }


    正确答案:s=7
    s=7

  • 第5题:

    以下程序的输出结果是( )。 main { char*s="12134211"; int v[4]=(0,0,0,0),k,i; for(k=0;s[k];k++) { switch(s[k]) { case1:i=0; case2:i=1; case3:i=2; case4:i=3;} } v[i]++: } for(k=0;k<4;k++)printf("%d",v[k]);

    A.4 2 1 1

    B.0 0 0 8

    C.4 6 7 8

    D.8 8 8 8


    正确答案:B
    本题考查switch,case语句,当k=0时,循环体成立,执行switch后表达式的值为1,执行case1,i的值为0,因为没有break语句,继续执行其后的语句,到最后一个语句时i的值为3,此时v[i]++,v[3]=1,接着执行k++后,k的值为1,当k=1时,循环成立。执行switch后的表达式的值为2,执行case2,i的值为1,因为没有break语句,继续执行其后的语句,到最后一小语句时,i的值为3,此时v[i]++,v[3]=2,接着执行k++后,k的值为2,依次下去,case4也会执行,最后i的值一定为3,到v[3]=8时循环结束,而v[0]~v[2]的值一直没有变化,故选择B选项。

  • 第6题:

    以下程序的输出结果是______。 main() { char*s="121"; int k=0,a=0,b=0; do {k++; if(k%2==0){a=a+s[k]-'\0';continue;} b=b+s[k]-'\0';a=a+s[k]-'\0'; }while(s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); }

    A.k=3 a=98 b=49

    B.k=3 a=99 b=50

    C.k=2 a=99 b=50

    D.k=2 a=98 b=49


    正确答案:C
    解析:第1次循环中,k=1,不执行if分支,s[k]=‘2’,因此b=2,a=2因s[k+1]=‘1’进入第2次循环,k=2,执行if分支,s[k]=‘1’,使a=3,进而提前结束本次循环,s[k+1]=‘\0’,则退出循环,所以k=2,a=3,b=2。

  • 第7题:

    下面程序的输出结果是 ( ) maint( ) {char * s="121"; int k=0,a=0,b=0; do {k + +; if (k%2==0) {a=a + s[k]-'0';continue;} b=b + s[k]-'0';a=a + s[k]-'0' } wnile(s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b); }

    A.k=3 a=2 b=3

    B.k=3 a=3 b=2

    C.k=2 a=3 b=3

    D.k=2 a=2 b=3


    正确答案:C

  • 第8题:

    有以下程序: include main ( ) {int k=5,n =0; while ( k>0){switch (k) {default: b

    有以下程序: #include <stdio, h>main ( ) { int k=5,n =0; while ( k>0) { switch (k) { default: break; case 1 : n+ =k; case 2 : case3 : n+ =k; } k--; printf( "% d \n" ,n);}程序运行后的输出结果是( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:在程序中,当L的值为5和4时,case都没有与其匹配的值,所以执行default语句;当k=3时,执行n+=k;得n=3;当L=2时,执行case2:然后顺序执行case3:n+=k;得n=5;当k=1时,执行case1:n+=k;得n=6,然后顺序执行case2:和case3:n+=k;使得n=7。

  • 第9题:

    有下列程序:

    main

    { int k=5,n=0;

    while(k>0)

    {switch(k)

    {default:break;

    case 1:n=n+k;

    case 2:

    case 3:n+=k;

    }

    k--;

    }

    printf("%d\n".n);

    }

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

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第10题:

    有以下程序 main ( ) { int k=5,n=0; while (k>0) { switch (k) { default : break; case 1 : n+=k; case 2 : case 3 : n+=k; } k--; } printf ("%d\n",n); 程序运行后的输出结果是

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    解析:本题考查的是switch语句。switch语句中的case或default只是一种入口标号,它并不形成一种子句的概念。当满足其中某个标号的条件而进入switch语句中时,如果没碰到break语句,将一直执行到switch语句的结尾。题目中使用了一个while循环使k从5递减到1,当k=5或4的时候从default标号进入switch,碰到break;语句立即跳出,没有改变n:当k=3时,执行了一次n+=k;;k=2时,也执行了一次n+=k;k=1时,执行了两次n+=k;所以最终n的值为3+2+1+1=7。故应该选择D。

  • 第11题:

    对于以下程序,   main( )  { int a[5],*p;    int k;    for(k=0,p=a;k<5;k++,p++)     scanf(“%d”,p);    for(;k>0;k--)     printf(“%d”,*(--p));  }  若输入为:1 2 3 4 5(注:表示回车),则输出结果是多少?


    正确答案:输出结果是54321

  • 第12题:

    单选题
    有以下程序:#include main(){ int n=2,k=0; while(k++&&n++>2); printf(%d %d,k,n);}程序运行后的输出结果是(  )。
    A

    0 2

    B

    1 3

    C

    5 7

    D

    1 2


    正确答案: C
    解析:
    (表达式1)&&(表达式2)中,如果表达式1为假或0,那么表达式2就不会被执行。程序首先进入while的判断语句,执行k++和n++。k++为零,不满足循环条件,所以n++不会被执行,while循环结束后,k自增为1,n没有进行运算,仍为2。答案选择D选项。

  • 第13题:

    以下程序的输出结果是( ) main() {int a=-1,b=4,k; k=(++a<=0)&&! (b--<=0); printf("%d%d%d\n" ,k,a, B) ; }

    A.1 0 4

    B.0 0 4

    C.1 0 3

    D.0 0 3


    正确答案:C

  • 第14题:

    请编写函数void countValue(int *a,int *n),它的功能是:求出1到1000之内能被7或11整除但不能同时被7和11整除的所有整数并存放在数组a中,并通过n返回这些数的个数。

    注意:部分源程序已给出。

    请勿改动主函数main()和写函数writeDAT()的内容。

    试题程序:

    include<conio.h>

    include<stdio.h>

    void countValue(int *a, int *n)

    {

    }

    main ( )

    {

    int aa[1000],n, k;

    clrscr();

    countValue (aa, &n);

    for(k=0;k<n; k++)

    if((k+1) %10 ==0)

    {

    printf("%5d",aa[k]);

    printf("\n");

    }

    else printf("%5d",aa[k]);

    writeDAT();

    }

    writeDAT ( )

    {

    int aa[1000],n, k;

    FILE *fp;

    fp=fopen("out79.dat","w");

    countValue(aa,&n);

    for(k=0; k<n; k++)

    if((k+1)%10==0)

    {

    fprintf(fp,"%5d",aa[k]);

    fprintf(fp,"\n");

    }

    else fprintf (fp,"%5d",aa[k]);

    fclose(fp);

    }


    正确答案:void countValue(int *a int *n) { int i; *n=0; for(i=1;i=1000;i++) if(i%7==0 && i%11) /*将能被7整除但不能被11整除的数存入数组a中*/ { *a=i; *n-*n+1; /*统计个数*/ a++; } else if (i%7 && i%11==0) /*将能被11整除但不能被7整除的数存入数组a中*/ { *a=i; *n=*n+1; /*统计个数*/ a++; } }
    void countValue(int *a, int *n) { int i; *n=0; for(i=1;i=1000;i++) if(i%7==0 && i%11) /*将能被7整除但不能被11整除的数存入数组a中*/ { *a=i; *n-*n+1; /*统计个数*/ a++; } else if (i%7 && i%11==0) /*将能被11整除但不能被7整除的数存入数组a中*/ { *a=i; *n=*n+1; /*统计个数*/ a++; } } 解析:本题考查的知识点如下:
    (1)指针的使用。
    (2)“%”运算符。
    (3)判断结构中多个条件的布尔运算。
    本题中,函数countValue()以指针为参数,这里就要涉及到指针的使用。a是指向数组的指针,初始时,指向数组的第一个元素。地址每加1时,依次指向后面的元素。一个数a若能被b整除,则a除以b取余得数为0。能被7或11整除,但不能被7和11同时整除,则有两种情况,能被7整除但不能被11整除,能被11整除但不能被7整除。这里就要用到多个条件的布尔运算。

  • 第15题:

    有以下程序,若从键盘上输入7和3 main(){ int a,b,k; scanf("%d,%d ",&a,&b); k=a; if(a<b)k=a%b; else k=b%a; printf("%d\n ",k);}程序运行后的输出结果是A.7 B.3C.1 D.0


    正确答案:B
    本题考查C语言中的求余数运算。
    题目给出的程序首先通过scanf函数向整型变量a、b输入值7、3。程序最后的结果为输出k的值。if语句中的判别条件为a>b,若该条件成立,则令k等于a整除b后的余数,7整除3后所得到的余数为1。如果判别条件不成立,则令k等于b整除a后的余数,3整除7后所得到的余数为3。显然,判别条件是不成立的,故输出结果为3。

  • 第16题:

    有下列程序: main { int k=5,n=0; while(k>0) {switch(k) {dcfault:break; case 1:n=n+k; case 2: case 3:n+=k; } k--; } printf("%d\n".n); } 程序运行后的输出结果足( )。

    A.0

    B.4

    C.6

    D.7


    正确答案:D
    本题主要考查while循环语句和switchcase语句的使用方法。其执行步骤为:k=5时,跳出switch语句,然后k自减1;当k=4时,跳出switch语句,然后k自减1;当k=3时,n=13+k=0+3=3,跳出switch语句,然后k自减1;当k=2时n=n+k=3+2=5,跳出switch语句,然后k自减l;当k=1时,case1:n=n+k一5+1=6,没有break继续执行CaSe3;n=n+k=6+1=7,跳出switch语句,然后k自减1;当k=0时,退出循环,所以输出结果为7。

  • 第17题:

    下面程序输出的是( )。 main { int t=l;fun(fun(t));} fun(int h) { static int a[3]={1.2.3}; int k; for(k=0;k<3;k++)a[k]+=a[k]-h; for(k=0;k<3;k++)printf("%d",a[k]); printf("\n"); return(a[h]);}

    A.1,2,3, 1,5,9,

    B.1,3,5, 1,3,j,

    C.1,3,5, 0,4,8,

    D.1,3。5, -1,3,7,


    正确答案:D
    本题考查双重函数调用及for循环使用,fun函数中第一个for循环语句的作用是给数组a赋值。当第一次调用fun函数时,把实参1传给形参,输出a数组的元素为1,3,5;第二次调用fun函数时,由于数组a为静态局部变量,故输出a数组的元素为一1,3,7。

  • 第18题:

    以下程序的输出结果是#include <stdio.h>main(){ int k=4,s=0; do{ if((k%3)==0) continue; s+=k;k++; }while(k>10); printf("s=%d\n",s);}


    正确答案:s=4
    在本题中,程序首先定义了两个整型变量k和s,其中k的初值为4,s为0。然后开始做do…while结构的循环。
    第一次循环时,变量k和s的值分别是4和0,条件判断语句的条件结果为假,执行s+=k,此时s的值变为4,而k的值变为5,此时k的值小于10,循环结束;最终输出变量s的结果为s=4。

  • 第19题:

    下列程序的输出结果是______。main(){ char *s="121"; int k=0,a=0,b=0; do { k++; if(k%2==0) {a=a+s[k]-'0';continue;} b=b+s[k]-'0';a=a+s[k]-'0'; }while (s[k+1]); printf("k=%d a=%d b=%d\n",k,a,b);}

    A.k=3 a=2 b=3

    B.k=3 a=3 b=2

    C.k=2 a=3 b=2

    D.k=2 a=2 b=3


    正确答案:C

  • 第20题:

    以下程序的输出结果是______。

    A.54321

    B.12345

    C.1 2 3 4 5

    D.5 4 3 2 1 0 main() { int w=5;fun(w);printf("\n");} fun (int k) { if(k>0) fun(k-1); printf("%d"",k);}


    正确答案:B

  • 第21题:

    下列程序的输出结果是______。 main() { char*s="1221"; int k=0,a=0,b=0; do { if(k%2==0) {a=a+s[k]-'0'; continue; } b=b+s[k]-'0'; } while(s[++k]); printf("k=%d a=%d b=%d\n",k,a,b); }

    A.k=3 a=4 b=3

    B.k=3 a=3 b=3

    C.k=4 a=3 b=3

    D.k=4 a=2 b=3


    正确答案:C
    解析:将数字字符串中下标值能被2整除的元素值(字符)转换为数字累加到变量a中,将数字字符串中下标值不能被2整除的元素值(字符)转换为数字累加到变量b中,循环结束时,a、b的值均为3,k是字符结束符的下标值,为4。

  • 第22题:

    以下程序的输出结果是()。includeint fan(int);main(){int w=5; fun(w);printf("\n");}

    以下程序的输出结果是( )。 #include <stdio.h> int fan(int); main() { int w=5; fun(w); printf("\n"); } fun(int k) { if(k>0) fun(k-1); printf("%d",k); }

    A.5 4 3 2 1

    B.0 1 2 3 4 5

    C.1 2 3 4 5

    D.5 4 3 2 1 0


    正确答案:B
    解析:本题考查函数的递归调用。fun函数共被调用6次,即fun(5)、fun(4)、fun(3)、fun(2)、fun(1)、fun(0),其中fun(5)是main函数调用的,其余是在fun函数中调用的。

  • 第23题:

    单选题
    有以下程序 #include  main() {  int a[4][4]={{1,4,3,2},{8,6,5,7},{3,7,2,5},{4,8,6,1}};  int i,j,k,t;  for(i=0;i   for(j=0;j    for(k=j+1;k     if(a[j][i]>a[k][i])     {      t=a[j][i];      a[j][i]=a[k][i];      a[k][i]=t;     }  for(i=0;i   printf("%d,",a[i][i]); } 程序运行后的输出结果是(  )。
    A

    8,7,3,1,

    B

    1,6,5,7,

    C

    4,7,5,2,

    D

    1,6,2,1,


    正确答案: B
    解析:
    先对二维数组的每列从小到大排序,然后输出对角线元素。答案选择B选项。