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

  1. 若有说明语句:char c = ‘\72’ ; 则变量 c 中存放的是
    A)2 个字符
    B)1 个字符
    C)3 个字符
    D)说明语句不合法
    答案 B
  2. 以下叙述正确的是
    A)do-while 语句构成的循环,当 while 语句中的表达式值为 0 时
    结束循环
    B)do-while 语句和 while 构成的循环功能相同
    C)while 语句构成的循环,当 while 语句中的表达式值为非 0 时结
    束循环
    D)do-while 语句构成的循环,必须用 break 语句退出循环
    答案:A
  3. 有以下程序
    #include <stdio.h>
    main()
    {
    int a, b, c=241;
    a = c/100 % 9;
    b = ( -1 )&&( -1 );
    printf("%d, %d\n", a, b );
    }
    程序运行后的输出结果是
    A) 6,0
    B)6,1
    C) 2,1
    D)2,0
    答案:C
  4. 有以下程序
    #include <stdio.h>
    main( ) {
    int i ;
    for( i=1; i<= 5; i++ ) { if( i % 2 ) printf( "" );
    else continue;
    printf( “#” );
    }
    printf( “$\n” );
    }
    程序运行后的输出结果是
    A)
    # * # * # $
    B)* # * # * $
    C)* # * # $
    D)* # * # * # * $
    答案:A
  5. 已知 a=5,b=6,c=7,d=8,m=2,n=2,执行
    (m=a>b)&&(n=c<d)后 n 的值为
    A)0
    B) 2
    C)1
    D)-1
    答案:B
  6. 有以下程序
    #include <stdio.h>
    main()
    {
    int x=23;
    do
    {
    printf("%2d\n", x–);
    } while( !x );
    }
    程序的执行结果是
    A)输出 23
    B)输出 321
    C)不输出任何内容
    D)陷入无限循环
    答案:A
  7. 有以下程序
    #include <stdio.h>
    main()
    {
    char c;
    while( ( c=getchar() )!= ‘\n’ ) {
    switch( c-‘2’ ) {
    case 0 :
    case 1 : putchar( c+4 );
    case 2 : putchar( c+4 ); break;
    case 3 : putchar( c+3 );
    default : putchar( c+2 ); break;
    } }
    printf( “\n” );
    }
    程序运行后从第一列开始输入以下数据
    2473<回车>
    程序的输出结果是
    A) 4444
    B) 668977
    C)6677877
    D)68766
    答案:B
  8. 有以下程序
    #include <stdio.h>
    main()
    { int i=0, sum=1;
    do
    {
    sum += i++ ; } while( i<6 );
    printf("%d \n",sum);
    }
    程序的输出结果是
    A)18
    B)16
    C)20
    D)22
    答案:B
  9. 有以下程序段,若变量已正确定义并赋值
    if(a>b)printf(“x=%d,”, x);
    else printf(“y=%d,”, y);
    if(a<=b)i++;
    else j++;
    则与此程序段功能相同的选项是
    A)if(a>b){printf(“x=%d,”, x);j++;}
    else {printf(“y=%d,”, y);i++;}
    B)if(a>b){printf(“x=%d,”, x);i++;}
    else {printf(“y=%d,”, y);j++;}
    C)if(a<=b){printf(“x=%d,”, x);i++;}
    else {printf(“y=%d,”, y);j++;}
    D)if(a>=b){printf(“x=%d,”, x);i++;}
    else {printf(“y=%d,”, y);j++;}
    答案:A
  10. 以下程序的功能是判断输入的一个整数是否能被 3 或 7 整除,
    若能整除,输出 YES,否则输出 NO。在下划线处应填入的选项是
    #include <stdio.h>
    main()
    { int k;
    printf(“Enter a int number : “); scanf(”%d”, &k );
    if ________ printf(“YES\n”);
    else printf(“NO\n”);
    }
    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) )
    答案:A
  11. 对于 if(表达式) 语句,以下叙述正确的是
    A)“表达式”的值可以是任意合法的数值
    B)在“表达式”中不能出现变量
    C)在“表达式”中不能出现常量
    D)“表达式”的值必须是逻辑值
    答案:A
  12. 有如下程序
    #include <stdio.h>
    main()
    {
    int a = 0, b = 1;
    if (a++ && b++)
    printf(“T”);
    else
    printf(“F”);
    printf(“a=%d,b=%d\n”, a, b);
    }
    程序运行后的输出结果是
    A) Ta=1,b=2
    B)Fa=0,b=2
    C) Fa=1,b=1
    D)Ta=0,b=1
    答案:C
  13. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<5; i++)
    {
    if (i < data) continue;
    printf("%d,", i);
    }
    printf("\n");
    }
    程序运行时,从键盘输入:3<回车>后,程序输出结果为
    A) 0,1,2,3,4,5,
    B)1,2,3,4,
    C) 3,4,
    D)0,1,2,
    答案:C
  14. 有如下程序
    #include <stdio.h>
    main()
    {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<5; i++)
    {
    if (i > data) break;
    printf("%d,", i);
    }
    printf("\n");
    }
    程序运行时,从键盘输入:3<回车>后,程序输出结果为
    A) 0,1,
    B) 0,1,2,3,
    C)3,4,5,
    D)3,4,
    答案:B
  15. 有如下程序
    #include <stdio.h>
    main()
    {
    char a = ‘3’, b = ‘A’;
    int i;
    for (i=0; i<6; i++)
    {
    if (i % 3) putchar(a + i);
    else putchar(b + i);
    }
    printf("\n");
    }
    程序运行后的输出结果是
    A)A45D78
    B)ABC678
    C)34CD78
    D)34AB78
    答案:A
  16. 有如下程序
    #include <stdio.h>
    main()
    {
    int i;
    for (i=0; i<5; i++)
    putchar(‘9’ - i);
    printf("\n");
    }
    程序运行后的输出结果是
    A) 54321
    B) 98765
    C)‘9’‘8’‘7’‘6’‘5’
    D)‘43210’
    答案:B
  17. 有如下程序
    #include <stdio.h>
    main()
    {
    int x = 0x13;
    if (x = 0x18) printf(“T”);
    printf(“F”);
    printf("\n");
    }
    程序运行后的输出结果是
    A) T
    B) TF
    C)F
    D)TFT
    答案:B
  18. 有如下程序
    #include <stdio.h>
    main()
    {
    int a = 0, b = 1;
    if (++a = = b++)
    printf(“T”);
    else
    printf(“F”);
    printf(“a=%d,b=%d\n”, a, b);
    }
    程序运行后的输出结果是
    A)Ta=1,b=2
    B)Fa=1,b=2
    C)Ta=0,b=1
    D)Fa=0,b=2
    答案:A
  19. 有如下程序
    #include <stdio.h>
    main()
    {
    int i = 1;
    for (printf("%d", i); i<4; i++)
    printf("%d", i);
    printf("\n");
    }
    程序运行后的输出结果是
    A) 0123
    B)123
    C) 1123
    D)001
    答案:C
  20. 有如下程序
    #include <stdio.h>
    main()
    {
    char ch = ‘A’;
    while (ch < ‘D’)
    {
    printf("%d", ch - ‘A’);
    ch++;
    }
    printf("\n");
    }
    程序运行后的输出结果是
    A) 123
    B)ABC
    C)abc
    D) 012
    答案:D
  21. 有如下程序
    #include <stdio.h>
    main()
    {
    if (’\0’ == 0) putchar(‘X’);
    if (‘0’ == 0) putchar(‘Y’);
    if (‘a’ > ‘b’) putchar(‘Z’);
    printf("\n");
    }
    程序运行后的输出结果是
    A)X
    B)XYZ
    C)YZ
    D)Y
    答案:A
  22. 有如下程序
    #include <stdio.h>
    main()
    {
    char ch = ‘M’;
    while (ch != ‘K’)
    {
    ch --;
    putchar(ch);
    }
    printf("\n");
    }
    程序运行后的输出结果是
    A) MN
    B) LK
    C)OP
    D)MM
    答案:B
  23. 有以下程序段
    int a,b,c;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b) a=b;
    if(a>c) a=c;
    printf("%d\n",a);
    该程序段的功能是
    A)输出 a、b、c 中的最小值
    B)输出 a、b、c 中的最大值
    C)输出 a 的原始值
    D)输出 a、b、c 中值相等的数值
    答案:A
  24. 有以下程序
    #include <stdio.h>
    main()
    {
    int x;
    scanf("%d",&x);
    if(x>10) printf(“1”);
    else if(x>20) printf(“2”);
    else if(x>30) printf(“3”);
    }
    若运行时输入:35<回车>,则输出结果是
    A)1
    B)2
    C)3
    D)123
    答案:A
  25. 若要实现 total=1+2+3+4+5,以下程序段错误的是
    A)int i=1,total=1;
    while(i<5)
    { total+=i;
    i+=1;
    }
    B)int i=1,total=0;
    while(i<=5)
    { total+=i;
    i+=1;
    }
    C)int i=0,total=0;
    while(i<5)
    { i+=1;
    total+=i;
    }
    D)int i=0,total=0;
    while(i<=5)
    { total+=i;
    i+=1;
    }
    答案:A
  26. 有以下程序
    #include <stdio.h>
    main()
    {
    int i=1,k=0;
    for( ; i<6 ; ) { switch(i%3)
    { case 0: k++;
    case 1: k++; break;
    case 2: k++; continue;
    }
    i+=1;
    }
    printf("%d\n",k)
    程序的运行情况是
    A) 输出 6
    B) 形成无限循环
    C)输出 5
    D)输出 4
    答案:B
  27. 以下不能输出小写字母 a 的选项是
    A)printf("%c\n",“a”);
    B)printf("%c\n",‘A’+32);
    C)putchar(97);
    D)putchar(‘a’);
    答案:A
  28. 有以下程序段
    char c1,c2,c3;
    scanf("%c%c%c",&c1,&c2,&c3);
    若要给 c1、c2、c3 分别输入字母 A、B、C,则以下对输入形式的
    描述正确的是
    A)字母 A、B、C 之间不能有分隔符
    B)字母 A、B、C 之间可以用空格分隔
    C)字母 A、B、C 之间可以用回车符分隔
    D)字母 A、B、C 之间可以用 Tab 键分隔
    答案:A
  29. 有以下程序段
    scanf("%d%d%d",&a,&b,&c);
    if(a<b) a= =b;
    if(a<c) a= =c;
    printf("%d\n",a);
    该程序段的功能是
    A) 输出 a、b、c 中值相等的数值
    B)输出 a、b、c 中的最大值
    C)输出 a、b、c 中的最小值
    D) 输出 a 的原始值
    答案:D
  30. 以下程序段中,不能实现“如果 a<b 则 x=10,否则 x=-10”
    的是
    A)if(a<b) x=10;
    if(b<a) x=-10;
    B)if(a<b) x=10;
    else x=-10;
    C)x=-10;
    if(a<b) x=10;
    D)x=(a>=b)? -10:10;
    答案:A
  31. 以下能够实现计算 5!的程序段是
    A)int fac=1,k=0;
    do{ k++; fac*=k;} while(k<5);
    B)int fac=0,k=1;
    do{ fac*=k; k++;} while(k<5);
    C)int fac=1,k=1;
    do{ k++; fac*=k;} while(k<=5);
    D)int fac=1,k=0;
    do{ fac*=k; k++;} while(k<5);
    答案:A
  32. 有以下程序
    #include <stdio.h>
    main()
    {
    int x=0,y=6;
    do
    { while(–y) x++;}
    while(y–);
    printf("%d,%d\n",x,y);
    }
    程序的运行结果是
    A) 5,0
    B)6,0
    C) 5,-1
    D)6,-1
    答案:C
  33. 有以下程序
    #include <stdio.h>
    main()
    { char *s=“120119110”;
    int n0,n1,n2,nn,i;
    n0=n1=n2=nn=i=0;
    do{
    switch(s[i++])
    { default : nn++;
    case ‘0’ : n0++;
    case ‘1’ : n1++;
    case ‘2’ : n2++;
    } } while(s[i]);
    printf(“n0=%d,n1=%d,n2=%d,nn=%d\n”,n0,n1,n2,nn);
    }
    程序的运行结果是
    A) n0=4,n1=8,n2=9,nn=1
    B)n0=2,n1=5,n2=1,nn=1
    C)n0=2,n1=7,n2=10,nn=1
    D) n0=3,n1=8,n2=9,nn=1
    答案:D
  34. 有以下程序
    #include <stdio.h>
    int m1(int x,int y)
    { return x<=y ? x :y; }
    int m2(int x,int y)
    { return x<=y ? y :x; }
    int fun(int a,int b)
    { return a+b; }
    main()
    { int x=2,y=3,z=1;
    printf("%d\n", fun(m1(x,y),m2(y,z)));
    }
    程序的运行结果是
    A) 6
    B) 5
    C)4
    D)3
    答案:B
  35. 若有定义:int a=0,b=0,c=0,d=0; ,对于表达
    式 (a++ && b++) ? c++ : d++,以下关于其执行顺序的叙述正确

    A)先计算表达式 a++,其值为 0,由此即可确定(a++ && b++)
    值为 0,因此计算 d++
    B)先计算表达式 a++,其值为 0;再计算表达式 b++,其值为 0,
    由此可确定(a++ && b++)值为 0,因此计算 d++
    C)先计算表达式 a++,其值为 1;再计算表达式 b++,其值为 1,
    由此可确定(a++ && b++)值为 1,因此计算 c++
    D)先计算表达式 b++,其值为 1;再计算表达式 a++,其值为 1,
    由此可确定(a++ && b++)值为 1,因此计算 c++
    答案:A
  36. 有以下程序
    #include <stdio.h>
    main( ) { int a,b;
    for (a=0; a<3; a++)
    { scanf("%d", &b);
    switch(b)
    { default: printf("%d,", ++b);
    case 1: printf("%d,", ++b);
    case 2: printf("%d,", ++b);
    } } }
    执行时输入:1 2 3<回车>,则输出结果是
    A) 2,3,4,
    B) 2,3,3,4,5,6,
    C)2,2,3,4,4,4,
    D)2,3,4,3,4,4,
    答案:B
  37. 有以下程序
    #include <stdio.h>
    main( )
    int a=-1, b=-1;
    for(; ++a;) ++b;
    printf("%d,%d\n", a, b);
    }
    程序运行后的输出结果是
    A) 0,0
    B) 0,-1
    C)-1,-1
    D)结果不确定
    答案:B
  38. 有以下程序
    #include <stdio.h>
    main( ) { int a=0, b=0;
    for(; a<5; a++)
    { if (a%2==0) continue;
    b += a;
    break;
    }
    printf("%d \n", b);
    }
    程序运行后的输出结果是
    A)1
    B)4
    C)0
    D)10
    答案:A
  39. 以下不属于合法 C 语言转义字符的是
    A)’\c’
    B)’\a’
    C)’\b’
    D)’\r’
    答案:A
  40. 有以下程序
    #include <stdio.h>
    main( ) { char c;
    for(; (c=getchar()) != ‘#’; ) putchar(++c);
    }
    执行时如输入为:abcdefg##<回车> , 则输出结果是
    A) bcdefgh$$
    B)bcdefgh$
    C) bcdefgh
    D)abcdefg
    答案:C
  41. 若有定义:int a=0,b=0,c=0,d=0;,以下关于 C 语言表达式:
    (++a || ++b) ? ++c : ++d 执行顺序的叙述正确的是
    A)先计算表达式++a,其值为 1,由此可确定(++a || ++b)值为 1,
    因此计算++c
    B)先计算表达式++a,其值为 1;再计算表达式++b,其值为 1,
    由此可确定(++a || ++b)值为 1,因此计算++c
    C)先计算表达式++b,其值为 1;再计算表达式++a,其值为 1,
    由此可确定(++a || ++b)值为 1,因此计算++c
    D)先计算++a,++b,++d,使得 a,b,d 的值都为 1,由此可确定
    (++a || ++b)值为 1,因此计算++c
    答案:A
  42. 有以下程序
    #include <stdio.h>
    main( ) { int a,b;
    for (a=0; a<3; a++)
    { scanf("%d", &b);
    switch(b)
    { default: printf("%d,", b++);
    case 1: printf("%d,", b++);
    case 2: printf("%d,", b++);
    } } }
    程序运行时输入:1 2 3<回车>,则输出结果是
    A) 1,2,3,
    B) 1,2,2,3,4,5,
    C)1,2,3,2,3,3,
    D)1,1,1,2,2,3
    答案:B
  43. 有以下程序
    #include <stdio.h>
    main( ) { int a = 1, b = 1;
    for( ; a–; ) b–;
    printf("%d,%d\n", a, b);
    }
    程序运行后的输出结果是
    A)-1,0
    B)0,0
    C)-1,-1
    D)1,1
    答案:A
  44. 有以下程序
    #include <stdio.h>
    main( ) { int a=1, b=0;
    for(; a<5; a++)
    { if (a%2 = = 0) break;
    continue;
    b += a;
    }
    printf("%d \n", b);
    }
    程序运行后的输出结果是
    A) 1
    B) 0
    C)10
    D)4
    答案:B
  45. 若有定义:
    char s[30] = {0};
    运行时输入:
    This is a string.<回车>
    则以下不能正确读入上述字符串到字符数组 s 中的选项是
    A)scanf("%s", s);
    B)gets(s);
    C)for (i=0; (c=getchar()) != ‘\n’; i++) s[i] = c;
    D)i = 0;
    while ((c=getchar())!=’\n’) s[i++] = c;
    答案:A
  46. 有以下程序
    #include <stdio.h>
    main( ) { char c;
    c=getchar();
    do {
    putchar(c++);
    } while((c=getchar()) != ‘#’);
    }
    程序运行时从第一列开始输入:abcdefg##<回车>,则输出结果

    A) abcdefg#
    B)bcdefgh
    C) abcdefg
    D)bcdefgh$
    答案:C
  47. 对于 if(表达式) 语句,以下叙述正确的是
    A)“表达式”的值可以是任意合法的数值
    B)变量不能出现在“表达式”中
    C)常量不能出现在“表达式”中
    D)如果“表达式”的值不是逻辑值,程序会出编译错误
    答案:A
  48. 有如下程序
    #include <stdio.h>
    main( ) {
    int a = 0, b = 1;
    if (a++ && b++)
    printf(“TRUE”);
    else
    printf(“FALSE”);
    printf("_OUT:a=%d,b=%d\n", a, b);
    }
    程序运行后的输出结果是
    A) FALSE_OUT:a=0,b=2
    B) FALSE_OUT:a=1,b=1
    C)TRUE_OUT:a=1,b=2
    D)TRUE_OUT:a=0,b=1
    答案:B
  49. 有如下程序
    #include <stdio.h>
    main( ) {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<5; i++)
    {
    if (i < data) continue;
    printf("%d-", i);
    } }
    程序运行时,从键盘输入:3<回车>后,程序输出结果为
    A)3-4-
    B)1-2-3-
    C)0-1-2-
    D)0-1-2-3-
    答案:A
  50. 有如下程序
    #include <stdio.h>
    main( ) {
    int i, data;
    scanf("%d", &data);
    for (i=0; i<10; i++)
    {
    if (i > data) break;
    printf("%d,", i);
    } }
    程序运行时,从键盘输入:3<回车>后,程序输出结果是
    A) 1,2,3,
    B) 0,1,2,3,
    C)2,3,4,
    D)3,4,5,
    答案:B
  51. 有如下程序
    #include <stdio.h>
    main( ) {
    char a = ‘0’, b = ‘a’;
    int i;
    for (i=0; i<4; i++)
    {
    if (i % 3) putchar(a + i);
    else putchar(b + i);
    } }
    程序运行后的输出结果是
    A) 10ab
    B)ab3d
    C) a12d
    D)11ac
    答案:C
  52. 有如下程序
    #include <stdio.h>
    main( ) {
    int i;
    for (i=0; i<5; i++)
    putchar(‘Z’ - i);
    }
    程序运行后的输出结果是
    A)ZYXWV
    B)VWXYZ
    C)‘X’‘Y’‘Z’‘W’‘V’
    D)‘ABCDE’
    答案:A
  53. 有以下程序
    #include <stdio.h>
    main( ) {
    int x = 0x13;
    if (x = 0x12) printf(“True”);
    printf(“False\n”);
    }
    程序运行后的输出结果是
    A) False
    B)True
    C) TrueFalse
    D)TrueFalseTrue
    答案:C
  54. 有以下程序
    #include <stdio.h>
    main( ) {
    int a = 0, b = 1;
    if (++a = = b++)
    printf(“1”);
    else
    printf(“0”);
    printf(“a=%d,b=%d\n”, a, b);
    }
    程序运行后的输出结果是
    A) 0a=1,b=2
    B) 1a=1,b=2
    C)1a=0,b=1
    D)0a=0,b=2
    答案:B
  55. 有以下程序
    #include <stdio.h>
    main( ) {
    int i = 4;
    for ( printf("%d", i); i<2; i++) printf("%d", i);
    printf("\n");
    }
    程序运行后的输出结果是
    A)4
    B)12
    C)1
    D)0
    答案:A
  56. 有以下程序
    #include <stdio.h>
    main( ) {
    char ch = ‘B’;
    while (ch < ‘E’)
    {
    printf("%d", ch - ‘A’);
    ch++;
    }
    printf("\n");
    }
    程序运行后的输出结果是
    A) ABC
    B) 123
    C)abc
    D)012
    答案:B
  57. 有以下程序
    #include <stdio.h>
    main( ) {
    if (’\0’ = = 0) putchar(‘1’);
    if (‘0’ = = 0) putchar(‘2’);
    if (‘a’ > ‘b’) putchar(‘3’);
    }
    程序运行后的输出结果是
    A)1
    B)123
    C)23
    D)3
    答案:A
  58. 有以下程序
    #include <stdio.h>
    main( ) {
    char ch = ‘M’;
    while (ch != ‘K’)
    {
    putchar(ch);
    ch --; } }
    程序运行后的输出结果是
    A) OP
    B)MK
    C) ML
    D)mm
    答案:C
  59. 字符数组 a 和 b 中分别存储了字符串,判断字符串 a 和 b 相
    等,应当使用的是
    A)if(strcmp(a,b)= =0)
    B)if(strcpy(a,b))
    C)if(a= =b)
    D)if(a=b)
    答案:A
  60. 以下正确的转义字符是
    A) ‘\0x41’
    B) ‘\x41’
    C)’\X41’
    D)’\0X41’
    答案:B
  61. 为了避免在嵌套的 if-else 语句中产生二义性,C 语言规定与
    else 子句配对是
    A)在其之前最近的不带 else 的同层 if 子句
    B)在其之后最近的不带 else 的 if 子句
    C)与其缩排位置相同的 if 子句
    D)与其在同一行上的 if 子句
    答案:A
  62. 有如下程序段
    int k;
    for(k=2;k==0;) printf("%d",k–);
    则 for 循环体执行的次数是
    A) 2 次
    B)1 次
    C) 0 次
    D)无限次
    答案:C
  63. 有如下程序段
    for (i=0; i<10; i++)
    if (i <= 5) break;
    则循环结束后 i 的值为
    A)0
    B)1
    C)5
    D)10
    答案:A
  64. 以下程序段中,与其他三个功能不同的程序段是
    A)s=0;i=1;
    for( ; ; ) {s+=i; i++; if(i<=10) break;}
    B)s=0,i=1;
    for( ; i<=10; ) {s+=i,i++;}
    C)s=0;
    for(i=1; i<=10; i++) {s+=i;}
    D)for(s=0,i=1; i<=10; s+=i,i++) ;
    答案:A
  65. 设有定义:int a=0,b=1;,以下表达式中,会产生“短路”
    现象,致使变量 b 的值不变的是
    A)a++ && b++
    B)a++ || ++b
    C)++a && b++
    D)+a || ++b
    答案:A
  66. 有以下程序
    #include <stdio.h>
    main( ) { int x=1, y=2, z=3;
    if(x>1)
    if(y>x) putchar(‘A’);
    else putchar(‘B’);
    else
    if(z<x) putchar(‘C’);
    else putchar(‘D’);
    }
    程序的运行结果是
    A) B
    B)C
    C) D
    D)A
    答案:C
  67. 有语句:k=x<y ?(y<z?1:0):0; ,以下选项中,与此语句功能
    相同的是
    A)if(x<y && y<z) k=1; else k=0;
    B)if(x<y) k=0; else if(y<z) k=1;
    C)if(x<y) if(y<z) k=1;else k=0;
    D)if(x<y || y<z) k=1; else k=0;
    答案:A
  68. 有如下程序段
    for(i=0;i<10;i++)
    if(i>5) break;
    则循环结束后 i 的值为
    A) 9
    B)5
    C) 6
    D)10
    答案:C
  69. 有以下程序
    #include <stdio.h>
    main( ) { int i,a;
    for (i=0; i<=10; i++) a=i;
    printf("%d,%d\n", i, a);
    }
    程序的运行结果是
    A)11,10
    B)10,10
    C)10,11
    D)11,11
    答案:A
  70. 有以下程序段
    int x ,i ;
    for(i=1;i<=100;i++)
    { scanf("%d",&x);
    if(x<0) continue;
    printf("%4d\n",x);
    }
    下面针对上述程序段的描述正确的是
    A)最多可以输出 100 个非负整数
    B)当 x<0 时结束整个循环
    C)当 x>=0 时没有任何输出
    D)printf 函数调用语句总是被跳过
    答案:A
  71. 以下与数学表达式 “0<x<5 且 x≠2” 不等价的 C 语言逻辑
    表达式是
    A)(0<x<5) && (x!=2)
    B)0<x && x<5 && x!=2
    C)x>0 && x<5 && x!=2
    D)(x>0 && x<2) || (x>2 && x<5)
    答案:A
  72. 有以下程序
    #include <stdio.h>
    main( ) { int a, b;
    for (a=0; a<3; a++)
    { scanf("%d", &b);
    switch(b)
    { default: printf("%d,",b+1); continue;
    case 1: printf("%d,", b+1);
    case 2: printf("%d,", b+1); continue;
    } } }
    执行时输入:1 2 3<回车>,则输出结果是
    A) 2,2,3,4,4,4,
    B)2,3,4,
    C) 2,2,3,4,
    D)2,3,3,4,5,6,
    答案:C
  73. 有以下程序
    #include <stdio.h>
    main( ) { int a=-2, b=2;
    for(; ++a && --b;)
    ;
    printf("%d,%d\n", a,b);
    }
    程序运行后的输出结果是
    A) 1,-1
    B)0,0
    C) 0,1
    D)0,2
    答案:C
  74. 有以下程序
    #include <stdio.h>
    main( ) { int a=0, b=0;
    for( ;a<7; a++ ) { if (a%2==0) continue;
    b += a;
    continue;
    }
    printf( “%d \n”, b );
    }
    程序运行后的输出结果是
    A) 0
    B)4
    C)1
    D) 9
    答案:D
  75. 以下选项中是非转义字符的是
    A)’\d’
    B)’\t’
    C)’\b’
    D)’\r’
    答案:A
  76. 有以下程序
    #include <stdio.h>
    main( ) { char c;
    for (; ( c=getchar()) != ‘#’; ) { if ( c>=‘a’ && c<=‘z’ ) c = c - ‘a’ + ‘A’;
    putchar(++c);
    } }
    执行时输入:aBcDefG##<回车>, 则输出结果是
    A) bcdefgh
    B)ABCDEFG
    C)AbCdEFg
    D) BCDEFGH
    答案:D
  77. 以下选项中错误的是
    A)printf("%s\n", ‘s’);
    B)printf("%d %c\n", ‘s’,‘s’);
    C)printf("%c\n", ‘s’- 32);
    D)printf("%c\n", 65);
    答案:A
  78. 若有定义:char ch;当执行以下循环时从键盘输入 abcde<
    回车>,将输出的个数是
    while((ch=getchar())==‘e’) printf("
    ");
    A)1
    B)4
    C)5
    D)0
    答案:D
  79. 有以下程序
    #include <stdio.h>
    main( ) { int t;
    scanf("%d", &t );
    if( t++ < 6 ) printf("%d\n", t);
    else printf("%d\n", t–);
    printf("\n");
    }
    执行时输入:6<回车>,则输出结果是
    A)5
    B)8
    C)6
    D)7
    答案:D
  80. 有以下程序
    #include <stdio.h>
    main()
    { int x=10,y=11,z=12;
    if( y< z )
    x=y; y=z; z=x;
    printf(“x=%d y=%d z=%d\n”, x, y, z );
    }
    程序运行后的输出结果是
    A)x=11 y=12 z=11
    B)x=10 y=10 z=10
    C)x=11 y=11 z=10
    D)x=10 y=10 z=12
    答案:A
  81. 有以下程序
    #include <stdio.h>
    #include <math.h>
    main()
    { double x, y, z;
    scanf("%lf%lf",&x,&y );
    z= x/ y;
    while(1)
    if( fabs(z) > 1.0 ) { x=y; y=x; z=x/y; }
    else break;
    printf(“y=%f \n”, y );
    }
    执行时输入:3.6 2.4<回车>,则输出结果是
    A)2.400000
    B)1.500000
    C)1.600000
    D)2.000000
    答案:A
  82. 以下选项中与 ( !a== 0 )的逻辑值不等价的表达式是
    A)( a== !0 )
    B)a
    C)(a>0 || a<0)
    D)(a!= 0 )
    答案:A
  83. 对于 if(表达式) 语句,以下叙述正确的是
    A)“表达式”可以是常量
    B)“表达式”的值只能是整数值
    C)“表达式”不能是变量
    D)“表达式”中不可以出现字符型变量的比较
    答案:A
  84. 有以下程序
    #include <stdio.h>
    main( ) { int a = 10, b = 11;
    if (++a = = b++)
    printf(“T”);
    else
    printf(“F”);
    printf(“a=%d,b=%d\n”, a, b);
    }
    程序运行后的输出结果是
    A) Ta=10,b=11
    B)Fa=10,b=12
    C) Ta=11,b=12
    D)Fa=11,b=11
    答案:C
  85. 有以下程序
    #include <stdio.h>
    main( ) { int i;
    char c;
    scanf("%c", &c);
    for (i=0; i<5; i++)
    {
    if (i > c) continue;
    printf("%d,", i);
    } }
    执行时输入:0<回车>后,则输出结果是
    A)0,1,2,3,4,
    B)0,0,0,0,0,
    C)5,
    D)0,1,
    答案:A
  86. 有以下程序
    #include <stdio.h>
    main( ) { char ch = ‘1’;
    while (ch < ‘9’)
    {
    printf("%d", ch - ‘0’);
    ch++;
    } }
    程序运行后的输出结果是
    A)1
    B)01234567
    C)0
    D) 12345678
    答案:D
  87. 有以下程序
    #include <stdio.h>
    main( ) {
    if (’\0’ = = 0) putchar(‘1’);
    if (“0” = = 0) putchar(‘2’);
    if (‘A’ = = “A”) putchar(‘3’);
    }
    程序运行后的输出结果是
    A)3
    B)123
    C)23
    D1
    答案:D
  88. 有以下程序
    #include <stdio.h>
    main( ) { char ch = ‘D’;
    while (ch > ‘A’)
    { ch --;
    putchar(ch);
    if (ch == ‘A’) break;
    putchar(ch+1);
    } }
    程序运行后的输出结果是
    A)CDBCA
    B)BCA
    C)CCBB
    D)CB
    答案:A
  89. 以下与表达式(!x= =0) 的逻辑值不等价的选项是
    A)x==1
    B)x
    C)x!=0
    D)x>0 || x<0
    答案:A
  90. 以下叙述正确的是
    A)表达式 9+‘0’的值是字符 9 的 ASCII 码
    B)表达式’A’+32 的值是字母 A 的 ASCII 码
    C)表达式’a’-32 的值是字母 a 的 ASCII 码
    D)表达式 9-'0’的值是数值 9
    答案:A
  91. 变量 math 和 engl 中存放了两门课的成绩。若两门课成绩均
    在 60 分以上(含 60),则显示“pass”;有一门低于 60 分则显
    示“fail”,以下不能实现上述功能的程序段是
    A)if(math<60)
    if(engl<60)
    printf(“fail\n”);
    else
    printf(“pass\n”);
    B)if(math<60)
    printf(“fail\n”);
    else
    if(engl>=60)
    printf(“pass\n”);
    else
    printf(“fail\n”);
    C)if ((math<60) ||(engl<60))
    printf(“fail\n”);
    else
    printf(“pass\n”);
    D)if ((math>=60) && (engl>=60))
    printf(“pass\n”);
    else
    printf(“fail\n”);
    答案:A
  92. 以下程序拟实现计算 s=1 + 22 + 33 + … + nn +…,直
    到 s>1000 为止。
    #include <stdio.h>
    main( ) { int s,n;
    s=1;
    n=1;
    do
    { n=n+1; s=s+n
    n; }
    while(s>1000);
    printf(“s=%d\n”,s);
    }
    程序运行后,不能得到正确结果,以下修改方案正确的是
    A) 把 s=1; 改为 s=0;
    B) 把 while(s>1000); 改为 while(s<=1000);
    C)把 n=1; 改为 n=0;
    D)把 n=n+1; 改为 n=n*n;
    答案:B
  93. 有以下程序
    #include <stdio.h>
    main( ) { int m,n;
    scanf("%d%d", &m,&n);
    while(m!=n)
    { while(m>n) { m=m-n; }
    while(n>m) { n=n-m; } }
    printf("%d\n",m);
    }
    该程序的功能是
    A)计算 m 和 n 的最大公约数
    B)计算 m 和 n 的最小公倍数
    C)计算 m 和 n 的差值
    D)找出 m 和 n 中的较大值
    答案:A
  94. 以下程序拟实现计算 sum=1+1/2+1/3+ … +1/50 。
    #include <stdio.h>
    main( ) { int i; double sum;
    sum=1.0;
    i=1;
    do
    { i++; sum += 1/i; }
    while( i<50 );
    printf(“sum=%lf\n”,sum);
    }
    程序运行后,不能得到正确结果,出现问题的语句是
    A) i++;
    B)while(i<50);
    C)sum = 1.0;
    D) sum += 1/i;
    答案:D
  95. 若有以下程序
    #include <stdio.h>
    main()
    { char a=‘5’, b;
    a++;
    printf("%d,%d\n", a-‘5’+255, b=a- ‘5’);
    }
    执行后的输出结果是
    A)256,1
    B)1,256
    C)255,1
    D)256,0
    答案:A
  96. 有以下程序
    #include <stdio.h>
    main( ) { int a=1,b=2,c=3,d=4, r=0;
    if (a!=1) r=1;
    if (b= =2) r=2;
    else if (c!=3) r=3;
    else if (d= =4) r=4;
    printf("%d\n", r);
    }
    执行后的输出结果是
    A)0
    B)4
    C)1
    D)2
    答案:D
  97. 有以下程序段
    int s, n;
    s=1;
    for( n=10; n>0; n-- ) s+=n;
    该程序段拟实现整数 1~10 的累加求和,但程序中有错误。以下 4
    种修改方案中仍然错误的一个是
    A)将 for 循环改为 for(n=2;n<10;n++)
    B)将 for 循环改为 for(n=10;n>1;n–)
    C)将 for 循环改为 for(n=10;n>=2;n–)
    D)将 s=1; 改为 s=0;
    答案:A
  98. 以下关于循环语句的叙述中正确的是
    A)do-while 语句的循环体至少执行一次
    B)while 语句的循环体至少执行一次
    C)for 语句的循环体至少执行一次
    D)上述 A、B、C 说法均正确
    答案:A
  99. 有以下程序
    #include <stdio.h>
    main( ) { int a=7, b=0;
    do { b += a; a -=1; } while ( a-- ) ;
    printf( “%d,%d\n”, b, a );
    }
    执行后的输出结果是
    A) 16,0
    B)28,1
    C) 16,-1
    D)28,0
    答案:C
  100. 以下选项中不属于 C 语言字符常量的是
    A) ‘a’
    B)’\n’
    C) ‘\xah’
    D)’\007’
    答案:C
  • 3
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
C语言是一种广泛应用在程序设计中的编程语言,也是许多计算机科学专业学生必须学习的一个重要语言。在面试中,C语言基础通常是一个重要的考察点。下面是一些常见的C语言基础面试题及其答案: 1. C语言中的指针是什么? 指针是一种变量,用于存储内存地址。可以使用指针来访问存储在内存中的数据。 2. C语言中的宏是什么? 宏是一种预处理器指令,它可以在编译前对代码进行文本替换。它可以用于定义常量、函数和代码片段。 3. C语言中的数组和指针有什么区别? 数组和指针都可以用来访问内存中的数据。数组是一组连续的内存单元,每个单元都有自己的地址,可以使用下标来访问数组中的元素。而指针则是一种变量,存储一个地址,可以使用指针间接访问内存中的数据。数组的大小在编译时确定,而指针可以动态分配内存。 4. C语言中的结构体是什么? 结构体是一种用户定义的数据类型,可以将不同类型的数据组合在一起,形成一个新的数据类型。结构体由多个成员变量组成,每个成员变量都可以是不同的数据类型。 5. C语言中的函数指针是什么? 函数指针是指向函数的指针变量,可以用来存储函数的地址。函数指针可以作为参数传递给其他函数,也可以用于实现函数回调。 以上这些是C语言基础面试题及答案的一些示例。在实际面试中,还需要根据具体岗位对C语言的要求进行适当调整。不管是面试还是实际开发中,掌握C语言基础是非常重要的,这样才能更好地理解和实现软件工程。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

挽㫨

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

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

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

打赏作者

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

抵扣说明:

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

余额充值