C语言基础选择题100道(附答案)04

  1. 以下选项中,仅当 x 的绝对值在 1 至 6 范围内时,表达式值
    为“真”的是
    A)(x>=-6)&&(x<=-1)||(x>=1)&&(x<=6)
    B)(x>=1)&&(x<=6)&&(x>=-6)&&(x<=-1)
    C)(x>=-6)||(x<=-1)||(x>=1)||(x<=6)
    D)(x>=1)&&(x<=6)||(x>=-1)&&(x<=-6)
    答案:A
  2. 以下程序段中,输出信息不能正确反映变量大小关系的是
    A)if (x>y) printf(" x>y “);
    if (x<y) printf(” x<y “);
    else printf(” x=y “);
    B)if(x>=y)
    if(x>y) printf(“x>y”);
    else printf(“x=y”);
    else printf(“x<y”);
    C)if (x>y) printf(” x>y “);
    if (y>x) printf(” x<y “);
    if (x==y) printf(” x=y “);
    D)if (x>y) printf(” x>y “);
    else if (y<x) printf(” x<y “);
    else printf(” x=y ");
    答案:A
  3. 有以下程序
    #include <stdio.h>
    main()
    { int x,y=0,z=0,t;
    do
    { scanf("%d",&x);
    t=x>0;
    switch (t)
    { case 0: break;
    case 1: y+=x; continue;
    }
    z+=x;
    }
    while(x);
    printf("%d,%d\n",y,z);
    }
    程序运行时输入:-1 1 -2 2 0<回车>,则输出结果是
    A) 1,0
    B) 3,-3
    C)1,1
    D)3,0
    答案:B
  4. 有以下程序
    #include <stdio.h>
    main()
    { int x,a=1,b=1;
    while(1)
    { scanf("%d",&x);
    if(x>0) { a*=x; break; }
    if(x<0) { b*=x; continue; }
    printf("%d,%d\n",a,b);
    } }
    程序运行时输入:-1 -2 0 1 2 <回车>,则输出结果是
    A) 2,2
    B) 1,2
    C)-1,1
    D)-2,1
    答案:B
  5. 设有以下定义和输入语句
    char c1,c2;
    scanf("%3c%3c", &c1, &c2);
    若要求给 c1 输入字母 M,给 c2 输入字母 N,则以下输入形式中
    正确的是(注: 代表空格,输入从第一列开始)
    答案:A
  6. 有以下程序
    #include <stdio.h>
    main()
    { int i,j;
    for( i=3; i>0; i-- ) { for( j=1; j<=i; j++ )
    putchar( '’);
    for( j=1; j<=3-i; j++ )
    putchar(’#’);
    putchar(’\n’);
    } }
    执行后的输出结果是
    A)
    ***
    **#
    *##
    答案:A
  7. 若有定义:int a=0,b=1,c=1;
    关于逻辑表达式 a++ || b++ && c++ 中各个部分的执行顺
    序,以下说法正确的是
    A)先执行 a++, 再执行 b++,最后执行 c++
    B)先执行 b++, 再执行 c++,最后执行 a++
    C)先执行 c++, 再执行 b++,最后执行 a++
    D)先执行 b++, 再执行 a++,最后执行 c++
    答案:A
  8. 有以下程序
    #include <stdio.h>
    main( )
    { char s=“01234”;
    while(
    (++s) !=’\0’)
    { switch(*s-‘0’)
    { case 0:
    case 1: putchar(*s+1); break;
    case 2: putchar(*s+1); break;
    case 3: putchar(*s+1);
    default: putchar(*s+1); break;
    } } }
    程序执行后的输出结果是
    A) 2345
    B) 23445
    C)12345
    D)22345
    答案:B
  9. 有以下程序
    #include <stdio.h>
    main( )
    { int a=-2, b=2;
    for(; ++a && --b;)
    printf("%d,%d,", a,b);
    }
    程序执行后的输出结果是
    A) -1,1,0,0,
    B)-1,1,0,1,
    C) -1,1,
    D)0,1,
    答案:C
  10. 有以下程序
    #include <stdio.h>
    main()
    { int a=6, i;
    for (i=1; i<=3; i++)
    { if (a>=5) break;
    if (a%2) { a+=2; continue; }
    a= (a-3, a+4);
    }
    printf("%d,%d", i,a);
    }
    程序执行后的输出结果是
    A)1,6
    B)0,6
    C)8,6
    D)4,2
    答案:A
  11. 以下字符常量中,输出后仍是原英文字母的是
    A) ‘\t’
    B) ‘\s’
    C)’\n’
    D)’\r’
    答案:B
  12. 有以下程序
    #include <stdio.h>
    main( )
    { char *a=“12345678”;
    char b[ ]=“happynewyear”;
    int i=4;
    printf("%c%c%s%s",*a, b[0], b+5, a+6);
    }
    程序执行后的输出结果是
    A) 1happynewyear78
    B)1hn78
    C) 1hnewyear78
    D)1hn7
    答案:C
  13. 对于 if(表达式) 语句,以下说法正确的是
    A)“表达式”可以使用任意合法的数值
    B)在“表达式”中不能出现双精度类型的变量
    C)在“表达式”中不能出现字符串常量
    D)“表达式”的值必须是逻辑值或逻辑变量的运算
    答案:A
  14. 有如下程序
    #include <stdio.h>
    main()
    {
    int a, b;
    a = 0, b = 1;
    if (a++ && b++)
    printf(">");
    else
    printf("<");
    }
    程序运行后的输出结果是
    A)<a=1,b=1
    B)<a=0,b=2
    C)>a=1,b=2
    D)>a=0,b=1
    答案:A
  15. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<8; i++)
    {
    if (i <= data) continue;
    printf("%d,", i);
    } }
    程序运行时,从键盘输入:5<回车>,则程序输出结果为
    A) 0,1,2,3,4,
    B) 6,7,
    C)5,6,7,
    D)6,7,8,
    答案:B
  16. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<8; i++)
    {
    if (i >= data) break;
    printf("%d,", i);
    } }
    程序运行时,从键盘输入:5<回车>,则程序输出结果为
    A)0,1,2,3,4,
    B)5,6,7,
    C)5,6,7,8,
    D)6,7,
    答案:A
  17. 有如下程序
    #include <stdio.h>
    main()
    {
    char a, b;
    int i;
    a = ‘3’;
    b = ‘A’;
    for (i=0; i<6; i++)
    {
    if (i % 2) putchar(a + i);
    else putchar(b + i);
    } }
    程序运行后的输出结果是
    A) B4D6F8
    B)AB56EF
    C) A4C6E8
    D)A5C7E9
    答案:C
  18. 有如下程序
    #include <stdio.h>
    main()
    {
    int i;
    for (i=0; i<5; i++)
    putchar(‘9’ - i % 2);
    }
    程序运行后的输出结果是
    A)98989
    B)98765
    C)‘9’‘8’‘7’‘6’‘5’
    D)‘98989’
    答案:A
  19. 如图所示一平面圆,圆心是(2,1),半径为 1:
    以下选项中,判断平面点(x,y)位于圆内时为真的表达式是
    A)(x-2)(x-2)+(y-1)(y-1)<1
    B)abs(x-2)<1&&abs(y-1)<1
    C)x>1&&x<3&&y>0&&y<2
    D)(x-2)2+(y-1)2<1
    答案:A
  20. 若要利用 if-else 语句判断 year 是否闰年,是闰年则返回 1,
    不是闰年则返回 0。
    以下选项中不能完成正确判断的程序段是
    A)if(year%400= =0) return 1;
    else if(year%100!=0)
    if(year%4= =0) return 1;
    else return 0;
    B)if(year%400!=0)
    if(year%100= =0) return 0;
    else if(year%4= =0) return 1;
    else return 0;
    else return 1;
    C)if(year%100= =0)
    if(year%400= =0) return 1;
    else return 0;
    else if(year%4= =0) return 1;
    else return 0;
    D)if(year%4!=0) return 0;
    else if(year%400= =0) return 1;
    else if(year%100= =0) return 0;
    else return 1;
    答案:A
  21. 以下关于 switch 语句的叙述中正确的是
    A) char 型常量不能做 case 的标号使用
    B)所有 case 的标号都应当是连续的
    C) 每个 case 语句标号后面可以没有 break 语句
    D)default 必须放在全部 case 的最后
    答案:C
  22. 有以下程序
    #include<stdio.h>
    #include<math.h>
    main()
    {
    int s; float n,t,pai;
    t=1,pai=0,n=1.0,s=1;
    while(fabs(t)>1.0e-6)
    {
    pai+=t;
    n+=2; s=-s;t=s/n;
    }
    printf(“total=%f\n”,pai);
    }
    程序所计算的是
    A)1-1/3+1/5-1/7+1/9-…
    B)1+1/3+1/5+1/7+1/9-…
    C)1+1/2+1/3+1/4+1/5-…
    D)1-1/2!+1/3!-1/5!+1/7!-…
    答案:A
  23. 设有定义:int sum=100,i;
    以下选项中,能够实现 sum -=1+2+3…+10 的程序段是
    A) for(i=0;i<=10;)
    sum=sum-i++;
    B) i=0;
    do
    {
    sum=sum-++i;
    }while(i<=10);
    C) i=0;
    while(i<>10)
    sum=sum - ++i;
    D) i=1;
    for( ;i<10;i++)
    sum=sum-i++;
    答案:A
  24. 有以下程序
    #include<stdio.h>
    main()
    {
    int i;
    for(i=1;i<=10;i++)
    {
    if(i%3= =0)
    { printf("%d “,i);
    continue;
    }
    if(i%5= =0)
    {
    printf(”%d “,i);i++;
    }
    if(i%7= =0)
    {
    printf(”%d ",i);i++;
    break;
    } } }
    程序的运行结果是
    A) 4 6 8
    B) 3 5 7
    C)3 6 9
    D)3 3 3
    答案:B
  25. 以下叙述中错误的是
    A)C 语言逻辑运算的结果是 0 和任意非 0 值
    B)C 语言中任意合法的表达式都可以作为逻辑运算的对象
    C)C 语言关系运算的值只有 0 和 1 两种可能
    D)C 语言中用 0 表示逻辑“假”,非零表示逻辑“真”
    答案:A
  26. C 语言的逻辑表达式在特定情况下会产生“短路”现象。若
    有如下逻辑表达式:
    x++ && y++
    则以下叙述中正确的是
    A)若 x 的值为 0,则 y++操作被“短路”,y 值不变
    B)若 x 的值为 1,则 y++操作被“短路”,y 值不变
    C)若 y 的值为 0,则&&运算被“短路”,y 值不变
    D)若 y 或 x 的值为 0,则表达式值为 0,x++和 y++均不执行
    答案:A
  27. 有以下程序
    #include <stdio.h>
    main()
    {
    int i,x,k=0,m;
    for(i=0;i<5; i++)
    {
    scanf("%d",&x);
    x/=10;
    switch(x)
    {
    case 0: case 1: case 2: k++;m=1;
    default : k++; m=2;
    case 3: k++; m=3;
    case 4: k++; m=4;
    } }
    printf("%d,%d",k,m);
    }程序运行时输入:35 20 52 40 106<回车>,则输出结果是
    A) 5,2
    B) 13,4
    C)15,2
    D)5,4
    答案:B
  28. 有如下程序
    #include <stdio.h>
    main()
    { int f=-2,k=4,a=0;
    while(f)
    { do
    { if(k%2) a++;
    else break;
    } while(–k);
    f++;
    }
    printf("%d,%d,%d",f,k,a);
    }
    程序的运行结果是
    A) 0,0,2
    B) 0,4,0
    C)2,4,0
    D)0,4,2
    答案:B
  29. 有如下程序
    #include <stdio.h>
    main()
    {
    int i,f=1,s=0;
    for(i=1; i<100; i++)
    {
    s=s+fi;
    f=-f;
    i++;
    }
    printf(“s=%d\n”,s);
    }
    程序的功能是
    A)计算 1-3+5-7+…-99 的值
    B)计算 1-2+3-4+…-99 的值
    C)计算 1
    234*…99 的值
    D)计算 1
    357*…*99 的值
    答案:A
  30. 以下表达式中,其值不等于数值 3 的是
    A)0 +‘3’
    B)‘D’-‘A’
    C)‘3’-‘0’
    D)‘d’- ‘a’
    答案:A
  31. 有下列程序
    #include <stdio.h>
    main()
    {
    int a=0,b=0,c=0;
    if (++a || ++b && ++c)
    printf("%d,%d,%d\n", a, b, c);
    }
    程序执行后的输出结果是
    A) 0,1,1
    B)1,1,1
    C) 1,0,0
    D)1,1,0
    答案:C
  32. 有下列程序
    #include <stdio.h>
    main( )
    { int a=123456, b;
    while(a)
    { b = a%10;
    a /= 10;
    switch(b)
    { default: printf("%d", b++);
    case 1:
    case 2: printf("%d", b++); break;
    case 3: printf("%d", b++); break;
    case 4: printf("%d", b++);
    }
    }
    }
    程序执行后的输出结果是
    A) 12345667
    B) 67564321
    C)76654321
    D)654321
    答案:B
  33. 有下列程序
    #include <stdio.h>
    main( )
    { int a=-2, b=2;
    for(; a++ , b—; )
    printf("%d,%d,", a, b);
    }
    程序执行后的输出结果是
    A)-1,1,0,0,
    B)-1,1,0,1,
    C)-1,1,
    D)-1,1,-1,0,
    答案:A
  34. 有下列程序
    #include <stdio.h>
    main()
    { int a = 6, i;
    for (i=1; i<=3; i++)
    { if (a<5) break;
    if (a%2) { a += 2; continue; }
    a = a + 4;
    }
    printf("%d,%d", i, a);
    }
    程序执行后的输出结果是
    A) 4,6
    B)3,18
    C) 4,18
    D)4,2
    答案:C
  35. 关于字符常量’\141’,以下说法正确的是
    A)字符\后的数 141 是八进制
    B)字符\后的数 141 是十进制
    C)字符\后的数 141 是十六进制
    D)字符\后的数 141 前因为没有写 0 或 0x,因此无法断定是什么进

    答案:A
  36. 有下列程序
    #include <stdio.h>
    main( ) {
    char b[] = “happynewyear”;
    printf("%s%s", “12345678”+4, b+8);
    }
    程序执行后的输出结果是
    A) 12345682year
    B)52345678year
    C) 5678year
    D)5678wyear
    答案:C
  37. 对于 if(表达式) ,以下说法正确的是
    A)“表达式”的值可以是 1
    B)在“表达式”中必须出现变量
    C)在“表达式”中不能出现非逻辑值
    D)“表达式”的值必须是逻辑值
    答案:A
  38. 有如下程序
    #include <stdio.h>
    main()
    {
    int a = 0, b = 1;
    if (a++ && b++)
    printf(“T”);
    else
    printf(“F”);
    a = b++;
    printf(“a=%d,b=%d\n”, a, b);
    }
    程序运行后的输出结果是
    A) Fa=1,b=1
    B) Fa=1,b=2
    C)Ta=0,b=2
    D)Ta=0,b=1
    答案:B
  39. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<5; i++)
    {
    if ((i < data && i % 2) || (i > data && i % 3 == 0)) conti
    nue;
    printf("%d,", i);
    } }
    程序运行时,从键盘输入:13<回车>后,程序输出结果为
    A)0,2,4,
    B)1,3,5,
    C)0,1,2,3,4,5,
    D)0,1,2,3,
    答案:A
  40. 有如下程序
    #include <stdio.h>
    main()
    {
    int i;
    char data;
    scanf("%c", &data);
    printf("%d\n", data);
    for (i=2; i<10; i++)
    {
    if (data % i) continue;
    printf("%d,", i);
    } }
    程序运行时,从键盘输入: B<回车>后,程序输出结果的第一行为
    66,则第二行内容为
    A) 6,
    B)2,3,4,5,6,7,8,9,
    C)10,
    D) 2,3,6,
    答案:D
  41. 有如下程序
    #include <stdio.h>
    main()
    {
    char a = ‘0’, b = ‘A’;
    int i;
    for (i=1; i<6; i++)
    {
    if (i % 2 == 0) putchar(a + i);
    else putchar(b + i);
    } }
    程序运行后的输出结果是
    A) 2B4DF
    B) B2D4F
    C)B4CD7
    D)A2A3B
    答案:B
  42. 有如下程序
    #include <stdio.h>
    main()
    {
    int i;
    for (i=0; i<3; i++)
    putchar(‘K’ - i);
    }
    程序运行后的输出结果是
    A) KLM
    B) KJI
    C)LMN
    D)012
    答案:B
  43. 以下各选项中的代码段执行后,变量 y 的值不为 1 的是
    A)int x=10,y=0; if(x=y) y=1;
    B)int x=5,y=0; if(x) y=1;
    C)int x=5,y=0; if(5) y=1;
    D)int x=5,y=10; if(x=y) y=1;
    答案:A
  44. 以下选项中,与表达式 flag ? a*=2 : a/=3 等价的是
    A)flag!=0 ? a+=a : a/=3
    B)flag= =0 ? a*=2 : a/=3
    C)flag!=1 ? a*=2 : a/=3
    D)flag= =1 ? a*=2 : a/=3
    答案:A
  45. 有以下程序
    #include <stdio.h>
    main()
    {
    int a=1,b=2,c=3;
    char flag;
    flag = b>=2 && c<=3;
    switch(a)
    {
    case 1: switch(flag)
    {
    case 0: printf(""); break;
    case 1: printf("%%"); break;
    }
    case 0: switch©
    {
    case 1: printf("$ $ “); break;
    case 2: printf(”& & “); break;
    default : printf(”##");
    } }
    printf("\n");
    }
    程序运行后的输出结果是
    A) %&&
    B)
    $$
    C) %##
    D)**##
    答案:C
  46. 对于循环语句:for(i=0;i<=10;i++) { ; } 下面各选项的叙述
    中错误的是
    A)省略 i=0,可引起无限循环
    B)省略 i<=10,可引起无限循环
    C)省略 i++,可引起无限循环
    D)圆括号( )内三个表达式都省略,可引起无限循环
    答案:A
  47. 有以下程序段
    char c1,c2;
    for(c1=‘0’,c2=‘9’; c1<c2; c1++,c2–)
    printf("%c%c",c1,c2);
    程序段的执行结果是
    A)0918273645
    B)0123456789
    C)0123498765
    D)9876543210
    答案:A
  48. 有以下程序
    #include <stdio.h>
    main()
    {
    char i,j,n;
    for(i=‘1’;i<=‘9’;i++)
    {
    if(i<‘3’) continue;
    for(j=‘0’;j<=‘9’;j++)
    {
    if(j<‘2’||j>=‘4’) continue;
    n=(i-‘0’)*10+j-‘0’;
    printf("%d “,n);
    }
    if(i==‘4’) break;
    }
    printf(”\n");
    }
    程序运行后的输出结果是
    A) 30 31 40 41
    B) 32 33 42 43
    C)34 35 44 45
    D)35 36 45 46
    答案:B
  49. 以下能够正确描述“k 是大于 0 的偶数”的表达式是
    A)(k>0) && (k%2!=1)
    B)(k>0) && (k%2=0)
    C)(k>0) || !(k%2)
    D)(k>0) || (k%2= =0)
    答案:A
  50. 设有定义:int m=1,n=2;
    则以下 if 语句中,编译时会产生错误信息的是
    A)if(m>n) m–
    else n–;
    B)if(m=n){ m++; n++; }
    C)if(m<0 && n<0) { }
    D)if(m>0) ;
    else m++;
    答案:A
  51. 有如下程序
    #include <stdio.h>
    main()
    { int i,f=1,s=0;
    for(i=1; i<100;i++)
    { s=s+fi;
    f=-f;
    }printf(“s=%d\n”,s);
    }
    程序的功能是
    A) 计算 1-3+5-7+…-99 的值
    B) 计算 1-2+3-4+…+99 的值
    C)计算 1
    234*…99 的值
    D)计算 1
    357*…*99 的值
    答案:B
  52. 设变量 n 已正确定义并赋值,以下不能实现自然数 1 到 n 累
    加求和的程序段是
    A)int sum=1,i=0;
    while(i<=n)
    { i++; sum+=i; }
    B)int sum=0,i=1;
    while(i<=n)
    { sum+=i; i++; }
    C)int sum=0,i=0;
    while(i<n)
    { i++; sum+=i; }
    D)int sum=1,i=1;
    while(i<n)
    { i++; sum+=i; }
    答案:A
  53. 有以下程序
    #include <stdio.h>
    main( ) { int i=0,j=0,x=0;
    while(i<2)
    { x++;
    for( ; j<=3; j++)
    { if(j%2) continue;
    x++;
    }
    x++; i++;
    }
    printf(“x=%d\n”,x);
    }
    程序运行后的输出结果是
    A) x=5
    B)x=4
    C) x=6
    D)x=8
    答案:C
  54. 有以下程序
    #include <stdio.h>
    main( ) { char x,a=‘A’,b=‘B’,c=‘C’,d=‘D’;
    x=(a<b) ? a : b;
    x=(x>c) ? c : x;
    x=(d>x) ? x : d;
    printf("%c\n",x);
    }
    程序运行后的输出结果是
    A)A
    B)B
    C)C
    D)D
    答案:A
  55. 有以下程序
    #include <stdio.h>
    void 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++;
    }
    printf("%d %d %d\n", m, n, k);
    }
    程序运行后的输出结果是
    A) 3 5 4
    B) 1 3 2
    C)1 5 4
    D)4 5 1
    答案:B
  56. 设 a、b 和 c 都是 int 型变量,且 a=3,b=4,c=5,则以下
    表达式中值为 0 的是
    A)!((a<b)&&!c||1)
    B)a&&b
    C)a<=b
    D)a||b+c&&b-c
    答案:A
  57. 有以下程序
    #include <stdio.h>
    void main()
    { int y=10;
    for(; y>0; y–)
    if(y%3 == 0)
    { printf("%d", --y); }
    printf("\n");
    }
    程序运行后的输出结果是
    A) 741
    B) 852
    C)963
    D)875421
    答案:B
  58. 以下叙述中错误的是
    A)while 语句的循环体至少会被执行一次
    B)break 语句只能在循环体内和 switch 语句体内使用
    C)执行 continue 语句时将跳过本次循环体中余下尚未执行的语句
    D)在 C 语言中有三种可以构成循环结构的循环语句:while、do–
    while 和 for
    答案:A
  59. 有以下程序
    #include <stdio.h>
    void main()
    { char s = “\ta\018bc”;
    for (; s != ‘\0’; s++)
    printf("
    ");
    printf("\n");
    }
    程序运行后的输出结果是
    A)
    ****
    B)*********
    C) ******
    D)*******
    答案:C
  60. 以下选项中,当 char 型变量 c 中是大写字母时,表达式为真
    的是
    A)(c>=‘A’) && (c<=‘Z’)
    B)‘A’ >= c >= ‘Z’
    C)(c>=‘A’) OR (c<=‘Z’)
    D)(‘A’<=c) AND (‘Z’>=c)
    答案:A
  61. 有下列程序
    #include <stdio.h>
    main()
    { int a=0,b=0,c=0;
    if (a++ || b++ && ++c)
    printf("%d,%d,%d\n", a, b, c);
    else
    printf("%d,%d,%d\n", a, c, b);
    }
    程序执行后的输出结果是
    A) 1,1,1
    B) 1,0,1
    C)1,0,0
    D)1,1,0
    答案:B
  62. 有下列程序
    #include <stdio.h>
    main( )
    { int a=123456, b;
    while(a)
    { b = a%10;
    a /= 10;
    switch(b)
    { default: printf("%d", b++);
    case 1: continue;
    case 2: printf("%d", b++); continue;
    case 3: printf("%d", b++);
    case 4: printf("%d", b++); continue;
    }
    }
    }
    程序执行后的输出结果是
    A) 234456
    B) 654342
    C)1234456
    D)6543421
    答案:B
  63. 有下列程序
    #include <stdio.h>
    main( )
    { int a=-1, b=2;
    for(; a++ && b–😉
    printf("%d,%d,", a,b);
    printf("%d,%d", a,b);
    }
    程序执行后的输出结果是
    A) 0,1,1,0
    B) 0,1,1,1
    C)0,1,1,0,1,0
    D)0,1,1,1,1,1
    答案:B
  64. 有下列程序
    #include <stdio.h>
    main()
    { int a=7, i;
    for (i=1; i<=3; i++)
    { if (a>13) break;
    if (a%2) { a+=3; continue; }
    a= a+4;
    }
    printf("%d,%d", i,a);
    }
    程序执行后的输出结果是
    A) 3,18
    B) 3,14
    C)4,18
    D)2,10
    答案:B
  65. 以下正确的字符常量是
    A)’\xAB’
    B)’\0AB’
    C)‘AB’
    D)“AB”
    答案:A
  66. 有下列程序
    #include <stdio.h>
    main( )
    { char b[ ]=“happynewyear”, k;
    for (k=0; b[k]; k++)
    printf("%c", b[k]- ‘a’+‘A’);
    }
    程序执行后的输出结果是
    A)HAPPYNEWYEAR
    B)Happynewyear
    C)hAppynewyeAr
    D)HaPPYNEWYEaR
    答案:A
  67. 若有定义:int a=3,b=2;,则下面表达式中,值为真的选项

    A)!(b/a)
    B)!(a/b)
    C)!b||!a
    D)!a && !b
    答案:A
  68. 若要求:当数学式 3<x<7 成立时,使得 y=1,且设 x、y 为
    int 型变量,则以下能够实现这一要求的选项是
    A)if(x>3)
    if(x<7) y=1;
    B)if(x>3||x<7) y=1;
    C)if(x<3) ;
    else if(x<7) y=1;
    D)if(!(x<=3)) y=y;
    else if(7>x) y=1;
    答案:A
  69. 有下列程序
    #include <stdio.h>
    main( ) {
    char c,d;
    c=getchar();
    d=getchar();
    switch(c-‘0’)
    {
    case 1: switch(d%‘0’)
    {
    case 1: printf("");
    case 2: printf("@");
    }
    case 2: switch(d%‘0’)
    {
    case 1: printf("#");
    case 2: printf("&");
    } } }
    若运行时输入:21<回车>,程序的输出结果是
    A)#&
    B)&
    C)@#&
    D)
    @#&
    答案:A
  70. 有下列程序
    #include <stdio.h>
    main( ) {
    int i,a,b,c;
    a=b=c=0;
    for(i=0;i<3;i++)
    {
    switch(i%3)
    {
    case 0:a++;
    break;
    case 1:b++;
    break;
    case 2:c++;
    break;
    }
    if(i%3==0)
    break;
    }
    printf("%d %d %d\n",a,b,c);
    }
    程序执行后的输出结果是
    A) 2 0 1
    B)1 1 1
    C) 1 0 0
    D)2 1 0
    答案:C
  71. 有下列程序
    #include <stdio.h>
    main( ) {
    int i,j,a,b;
    a=b=j=0;
    while(j<3)
    {
    j++;
    if(j==1)continue;
    for(i=0;i<3;i++)
    {
    if(i>1) break;
    a=a*10+i;
    if(i<1) b=a;
    } }
    printf("%d %d\n",a,b);
    }
    程序执行后的输出结果是
    A) 10 0
    B)101 101
    C) 101 10
    D)10 101
    答案:C
  72. 有下列程序
    #include <stdio.h>
    main( ) {
    char c,i;
    for(i=0;i<3;i++)
    {
    c=getchar();
    printf("%c,",(c-‘A’+5)%26+‘a’);
    }
    printf("\n");
    }
    若程序运行时输入:APE<回车>,则输出结果是
    A) F,U,J,
    B) f,u,j,
    C)E,T,I,
    D)E,t,I,
    答案:B
  73. 对于 if(表达式) 语句,以下说法正确的是
    A)“表达式”可以是算术表达式
    B)在“表达式”中不能调用返回整数的函数
    C)在“表达式”中不能含有函数调用
    D)“表达式”的值只能是整数值
    答案:A
  74. 有如下程序
    #include <stdio.h>
    main()
    {
    int a = 0, b = 4;
    if (a++)
    {
    if (b++) printf(“T”);
    }
    else
    printf(“F”);
    printf(":a=%d,b=%d\n", a, b);
    }
    程序运行后的输出结果是
    A) T:a=1,b=5
    B)F:a=0,b=4
    C) F:a=1,b=4
    D)T:a=0,b=5
    答案:C
  75. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=2; i<6; i++)
    {
    if (data % i)
    printf("%d-", i);
    else
    continue;
    } }
    程序运行时,从键盘输入:10<回车>后,程序输出结果为
    A)3-4-
    B)2-3-4-5-
    C)0-1-
    D)2-5-
    答案:A
  76. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<10; i++)
    {
    if (i > data)
    break;
    else
    printf("%d,", i);
    } }
    程序运行时,从键盘输入:10<回车>后,程序输出结果为
    A) 0,
    B) 0,1,2,3,4,5,6,7,8,9,
    C)1,3,5,7,9,
    D)0,2,4,6,8,
    答案:B
  77. 有如下程序
    #include <stdio.h>
    main()
    {
    if (’\0’ == 0) printf("<1>OK");
    if (‘0’ == 0) printf("<2>OK");
    if (‘z’ > ‘A’) printf("<3>OK");
    }
    程序运行后的输出结果是
    A)<1>OK<3>OK
    B)<1>OK
    C)<2>OK
    D)<2>OK<3>OK
    答案:A
  78. 有如下程序
    #include <stdio.h>
    main()
    {
    int i;
    for (i=0; i<3; i++)
    putchar(‘A’ + i*2);
    }
    程序运行后的输出结果是
    A) A012
    B)ABC
    C) ACE
    D)AA
    答案:C
  79. 有下列程序
    #include <stdio.h>
    main()
    {
    int a=1,b=1,c=1;
    if (a-- || b-- && --c)
    printf("%d,%d,%d\n", a, b, c);
    else
    printf("%d,%d,%d\n", a, c, b);
    }
    程序执行后的输出结果是
    A) 0,1,0
    B) 0,1,1
    C)0,0,1
    D)0,0,0
    答案:B
  80. 有下列程序
    #include <stdio.h>
    main( ) {
    int a=123456, b;
    while(a)
    { b = a%10;
    a /= 10;
    switch(b)
    {
    default: printf("%d", b++);
    case 1: break;
    case 2: printf("%d", b++); break;
    case 3: printf("%d", b++);
    case 4: printf("%d", b++);
    case 5: printf("%d", b++);
    } } }
    程序执行后的输出结果是
    A) 65432
    B) 65453452
    C)654321
    D)654534521
    答案:B
  81. 有下列程序
    #include <stdio.h>
    main( ) {
    int a=1, b=-2;
    for (; a-- && b++;)
    printf("%d,%d,", a,b);
    printf("%d,%d", a,b);
    }
    程序执行后的输出结果是
    A)0,-1,-1,-1
    B)0,-1,-1,0
    C)0,-1,-1,0,-1,0
    D)0,-1,-1,-1,-1,-1
    答案:A
  82. 有下列程序
    #include <stdio.h>
    main()
    {
    int a=7, i;
    for (i=1; i<=3; i++)
    {
    if (a>14) break;
    if (a%2) { a+=3; continue; }
    a = a+4;
    printf("%d,%d,", i,a);
    }
    printf("%d,%d", i,a);
    }
    程序执行后的输出结果是
    A) 1,14,2,18,3,18
    B) 2,14,3,18,4,18
    C)2,14,3,18,4,22
    D)1,14,2,18,3,18,4,18
    答案:B
  83. 以下正确的字符常量是
    A)’\012’
    B)’\089’
    C)’\0XAB’
    D)’\0xab’
    答案:A
  84. 有下列程序
    #include <stdio.h>
    main( ) {
    char b[ ]=“happychristmas”, k;
    for (k=0; b[k]; k++)
    {
    if (b[k] < ‘m’)
    b[k] = b[k]- ‘a’+‘A’;
    printf("%c", b[k]);
    } }
    程序执行后的输出结果是
    A) hAppychristmAs
    B)happychristmas
    C) HAppyCHrIstmAs
    D)HAPPYCHRISTMAS
    答案:C
  85. 有以下程序
    #include <stdio.h>
    main()
    {
    int s = 0, i;
    for (i = 1; i < 5; i++)
    {
    switch (i)
    {
    case 0:
    case 3: s += 2;
    case 1:
    case 2: s += 3;
    default: s += 5;
    } }
    printf("%d\n", s);
    }
    程序运行后的输出结果是
    A) 10
    B)13
    C) 31
    D)20
    答案:C
  86. 有以下程序
    #include <stdio.h>
    main()
    {
    int w=4,x=3,y=2,z=1;
    printf("%d\n", (w < x ? w : z < y ? z : x));
    }
    程序运行后的输出结果是
    A)1
    B)2
    C)3
    D)4
    答案:A
  87. 有以下程序
    #include <stdio.h>
    main()
    {
    int x,i;
    for (i = 1; i <= 100; i++)
    { x = i;
    if (++x % 2 == 0)
    if (++x % 3 == 0)
    if (++x % 7 ==0)
    printf("%d “, x);
    }
    printf(”\n");
    }
    程序运行后的输出结果是
    A) 42 84
    B) 28 70
    C)26 68
    D)39 81
    答案:B
  88. 以下叙述中正确的是
    A)在 switch 语句中,不一定使用 break 语句
    B)break 语句只能用于 switch 语句
    C)break 语句必须与 switch 语句中的 case 配对使用
    D)在 switch 语句中必须使用 default
    答案:A
  89. 有以下程序
    #include <stdio.h>
    char fun(char ch)
    {
    if (ch>=‘A’ && ch<=‘Z’) ch = ch - ‘A’ +‘a’;
    return ch;
    }
    main()
    {
    char s[] = “ABC+abc=defDEF”, *p=s;
    while (*p)
    {
    *p = fun(*p);
    p++;
    }
    }
    程序运行后的输出结果是
    A) abc+ABC=DEFdef
    B) abc+abc=defdef
    C)abcABCDEFdef
    D)abcabcdefdef
    答案:B
  90. 若要判断 char 型变量 c 中存放的是否为小写字母,以下正确
    的表达式是
    A)(c>=‘a’) && (c<=‘z’)
    B)‘a’<=c<=‘z’
    C)(c>=‘a’) || (c<=‘z’)
    D)(‘a’<=c) AND (‘z’>=c)
    答案:A
  91. 设有定义:int a=0,b=1;,则执行以下表达式后,不能使变
    量 a 和 b 的值都增 1 的是
    A) a++ || ++b
    B)a++ || b++
    C)++a && ++b
    D) a++ && b++
    答案:D
  92. 有以下程序
    #include <stdio.h>
    main ( ) {
    int s,m=10;
    scanf("%d", &s);
    if (s<30) m–;
    if (s<40) m–;
    else
    if(s<50) m–;
    else m++;
    printf ( “m=%d\n”,m);
    }
    程序运行时输入:25<回车>,则输出结果是
    A)m=7
    B)m=8
    C)m=9
    D)m=10
    答案:B
  93. 有以下程序
    #include <stdio.h>
    main ( ) {
    int m=10247,a=0,b=0,c=0;
    do {
    switch(m%10)
    {
    case 0: m/=10; a++;
    case 1: case 3: case 5: case 7: case 9: m/=10; b++;
    case 2: case 4: case 6: case 8: m/=10; c++;
    }
    }while(m!=0);
    printf ("%d,%d,%d\n",a,b,c);
    }
    程序运行后的输出结果是
    A) 1,2,2
    B) 1,2,3
    C)1,3,5
    D)1,3,4
    答案:B
  94. 有以下程序
    #include <stdio.h>
    main ( ) {
    int m=128,n=256,k=100;
    while(n/k>m/k)
    {
    n %= k;
    m %= k;
    k /= 10;
    }
    printf (“n=%d\n”,n);
    }
    程序运行后的输出结果是
    A)n=0
    B)n=6
    C)n=56
    D)n=256
    答案:B
  95. 以下合法的字符常量是
    A)’\x6D’
    B)’\0x41’
    C)’\X51’
    D)’\068’
    答案:A
  96. 有以下程序
    #include <stdio.h>
    #include <ctype.h>
    main ( ) {
    char ch;
    do
    {
    ch = getchar();
    if (islower(ch)) ch-=32;
    else continue;
    printf ("%c",ch);
    } while(ch!=’!’);
    }
    程序运行时输入:1aB2cD!<回车>,则输出结果是
    A) ac
    B)bd
    C) AC
    D)1B2D
    答案:C
  97. 若有说明语句: int *ptr[10]; 以下叙述正确的是
    A)ptr 是一个具有 10 个指针元素的一维数组
    B)ptr 是指向整型变量的指针
    C)ptr 是一个指向具有 10 个整型元素的一维数组的指针
    D)ptr 是一个指向 10 个整型变量的函数指针
    答案:A
  98. 有以下程序
    #include <stdio.h>
    main()
    {
    printf("%d\n", NULL );
    }
    程序运行后的输出结果是
    A)1
    B)变量无定义,输出不确定
    C)-1
    D)0
    答案:D
  99. 函数调用语句:
    fun( ( exp1, exp2 ), ( exp1, exp2, exp3) ); 含有的实参个数是
    A)1
    B)4
    C)5
    D)2
    答案:D
  100. 若有定义语句:int a[10]={0,1,2,3,4,5,6,7,8,9},p=a;,以下选
    项中错误引用 a 数组元素的是(其中 0≤i<10)
    A)
    ((a+i))
    B)a[ p-a ]
    C)p[i]
    D)
    ( &a[i] )
    答案:A
  • 7
    点赞
  • 81
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

挽㫨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值