提示:内容已经过期谨慎付费,点击上方查看最新答案

像程序员一样思考

  1. 下面程序运行后,输出结果是(   )。

    #include <stdio.h>

    main( )

    { int a[10]={1,2,3,4,5,6},i,j;

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

        { j=a[i];a[i]=a[5-i];a[5-i]=j;}

      for(i=0;i<6;i++) printf("%d ",a[i]);  

    }


  2. A:6 5 4 3 2 1 B:1 2 3 4 5 6 C:1 5 4 3 2 6 D:1 5 3 4 2 6
    答案:程序进入死循环
  3. 下述循环的循环次数是(   )。

    int k=2;

    while(k=0)

    printf("%d",k);k--;

    printf("\n");


  4. A:1次 B:0次 C:2次 D:无限次
    答案:0次
  5. 阅读下列程序,则运行结果为(   )。

    fun( )

    { static int x=5;

      x++;

      return x;

    }

    main( )

    { int i,x;

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

        x=fun( );

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

    }


  6. A:6 B:8 C:5 D:7
    答案:5,12AI参考:运行结果为:C:5。程序中的函数fun()中,使用了一个静态变量x,并在其基础上加1后再返回。在main()函数中,使用for循环调用了fun()函数三次,每次都将x赋值为fun()函数的返回值,即每次x都加1。因此,最终x的值为5。所以,输出结果为5。'
  7. 以下程序的输出结果是(   )。

    main( )

    { char c='z';

      printf("%c",c-25); 

    }


  8. A:a B:y C:Z D:z-25
    答案:5
  9. 以下程序的执行结果是(   )。

    main()

       int k=8;

       switch(k)

    {

     case  9:k+=1;

     case 10:k+=1;

     case 11:k+=1; break;

     default:k+=1;

    }

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

    }


  10. A:10 B:8 C:11 D:9
    答案:0, 7
  11. 以下程序输出a数组中的最小值及其下标,在划线处应填入的是(   )。

    main( )

    { int i,p=0,a[10];

      for(i=0;i<10;i++)  scanf("%d",&a[i]);

      for(i=1;i<10;i++)

        if(a[i]<a[p])_______________;

      printf("%d,%d\n",a[p],p);  

    }


  12. A:i=p B:p=j C:a[p]=a[i] D:p=i

  13. 能正确表示逻辑关系:“a≥10或a≤0”的C语言表达式是(   )。


  14. A:a>=10 or a<=0 B:a>=0&& a<=10 C:a>=10 && a<=0 D:a>=10 || a<=0

  15. 以下选项中,与a=i++完全等价的表达式是(   )。


  16. A:a=++i B:a=i,i=i+1 C:a+=i+1 D:i=i+1,a=i

  17. 有如下程序:

    main()

    {

    int x=1,a=0,b=0;

    switch(x)

    {

    case 0:b++;

    case 1:a++;

    case 2:a++;b++;

    }

    printf("a=%d,b=%d\n",a,b);

    }

    该程序的输出结果是(   )。


  18. A:a=2,b=1 B:a=1,b=0 C:a=2,b=2 D:a=1,b=1

  19. 在C语言的函数中,下列正确的说法是(   )。


  20. A:可以有也可以没有形参 B:形参必须是变量名 C:必须有形参 D:数组名不能作形参
    AI参考:在C语言的函数中,正确的说法是形参可以是变量名,选项B是正确的。形参(Formals)是指在函数定义时使用的参数,它们在函数调用时被传递的值。在C语言中,形参可以是变量名,也可以是常量名,甚至是表达式。它们不需要在函数调用时实际存在,只是在函数定义时作为函数的参数使用。因此,选项A和D都是错误的。而选项C的说法也不准确,因为C语言函数通常需要至少一个形参,但并不是必须的。因此,正确答案是B:形参必须是变量名。'
  21. 以下程序的输出结果是(  )。

    #include <stdio.h>

    #include <string.h>

    fun(char s[])

    {int x,y;

     char c;

     for(x=0,y=strlen(s)-1;x<y;x++,y--)

     {c=s[y];s[y]=s[x];s[x]=c;}

    }

    main()

    {char a[]="123456789";

     int k;

     fun(a);

     puts(a);}


  22. A:123454321 B:987654321 C:987656789 D:123456789

  23. 函数调用时,当实参和形参都是简单变量时,他们之间数据传递的过程是(   )。


  24. A:实参将其地址传递给形参,并释放原先占用的存储单元 B:实参将其地址传递给形参,调用结束时形参再将其地址回传给实参 C:实参将其值传递给形参,调用结束时形参再将其值回传给实参 D:实参将其值传递给形参,调用结束时形参并不将其值回传给实参

  25. 若从键盘输入58,则以下程序输出的结果是(   )。

    main()

    {

      int a;

    scanf("%d",&a);

    if(a>50)printf("%d",a);

    if(a>40)printf("%d",a);

    if(a>30)printf("%d",a);

    }


  26. A:5858 B:无 C:58 D:585858

  27. 以下能正确定义一维数组的选项是( )。




  28. 如果一个函数位于C程序文件的上部,在该函数体内说明语句后的复合语句中定义了一个变量,则该变量(   )。


  29. A:为局部变量,只在该函数内有效 B:定义无效,为非法变量 C:为局部变量,只在该复合语句中有效 D:为全局变量,在本程序文件范围内有效

  30. 以下程序段的输出结果是(   )。

    int n=10;

    while(n>7)

    {n--;

    printf("%d",n);

    }


  31. A:10987 B:1098 C:9876 D:987

  32. 下面程序输出的结果是(   )。

    main( )

    { int i,j,x=0;

      static int a[6]={1,2,3,4,5,6};

      for(i=0,j=1;i<5;++i,j++)  x+=a[i]*a[j];

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

    }


  33. A:数组a中首尾的对应元素的乘积之和 B:数组a中相邻各元素的乘积之和 C:数组a中首尾的对应元素的乘积 D:数组a中相邻各元素的乘积

  34. 以下程序运行后的输出结果是(   )。

                main()

                { int p=30;

                printf("%d\n",(p/3>0 ? p/10:p%3));      }


  35. A:0 B:30 C:1 D:3
    AI参考:正确选项是【D:3】。程序中首先定义了一个整数变量p并赋值为30,然后使用printf函数输出一个表达式的结果。表达式为:(p/3>0 ? p/10:p%3)。这个表达式的意思是:如果p除以3的商大于0,则输出p除以10的结果,否则输出p除以3的余数。由于p的值为30,因此表达式的结果为3。所以程序输出的结果为3。因此,选项D是正确答案。'
  36. 语句while(!E);中的表达式!E等价于(   )。


  37. A:E==1 B:E !=1 C:E==0 D:E !=0

  38. 若x是int型变量,y是float型变量,所用的scanf调用语句格式为:scanf("x=%d,y=%f",&x,&y);

    则为了将数据10和66.6分别赋给x和y,正确的输入应是( )。



  39. A:10<回车>66.6 B:10  66.6 C:x=10<回车>y=66.6 D:x=10,y=66.6

  40. 在C语言中,运算对象必须是整型数的运算符是(    )。


  41. A:%和 B:% C: D:**

  42. 有如下函数:

    ggg(x)

    float x;

    {printf("\n%d",x*x);}

    则函数的类型是(  )。


  43. A:是void B:是int C:无法确定 D:与参数x的类型相同

  44. 以下程序的输出结果是(   )。

    main()

    { char p1[]="abcd",p2[]="efgh",str[50]="ABCDEFG";

      strcat(str,p1);  strcat(str,p2);

      printf("%s",str);  

    }


  45. A:ABCDEFGabcdefgh B:ABCDEFGefghabcd C:ABCDEFGefgh D:abcdefgh

  46. 以下关于数组的描述正确的是(   )。


  47. A:数组的大小是固定的,但可以有不同类型的数组元素。 B:数组的大小是固定的,所有数组元素的类型必须相同。 C:数组的大小是可变的,但所有数组元素的类型必须相同。 D:数组的大小是可变的,可以有不同类型的数组元素。
    AI参考:正确答案是【D:数组的大小是可变的,可以有不同类型的数组元素】。数组的大小是可变的,也就是说它的大小可以改变,而且数组中可以有不同类型的数组元素,选项D是正确的。其他选项A、B、C都存在一定的错误。A选项中的“但可以有不同类型的数组元素”和B选项中的“所有数组元素的类型必须相同”在理论上是不矛盾的,但在实际编程中是不符合数组使用规范的。C选项中的“所有数组元素的类型必须相同”在实际情况中也不常见,因为很多情况下需要不同类型的元素存储在同一个数组中。'
  48. 若已定义x和y为 double 类型,则表达式x=1,y=x+3/2 的值是(  )。


  49. A:2.0 B:2 C:2.5 D:1

  50. 以下选项中,与k=n++完全等价的表达式是(   )。


  51. A:k=++n B:n=n+1,k=n C:k=n,n=n+1 D:k+=n+1

  52. 若用数组名作为函数调用的实参,则传递给形参的是(   )。


  53. A:数组元素的个数 B:数组的第一个元素的值 C:数组的首地址 D:数组中全部元素的值

  54. 请读程序:

      #include <stdio.h>

      #include <string.h>

      main()

      { char s1[20]="AbCdEf", s2[20]="aB";

        printf("%d\n",strcmp(s1,s2));  

      }

    上面程序的输出结果是(   )。


  55. A:负数 B:正数 C:零 D:不确定的值

  56.  x,y,z被定义为int型变量,若从键盘给x,y,z输入数据,正确的输入语句是(   )。


  57. A:input x、y、z; B:scanf("%d%d%d",x,y,z); C:scanf("%d%d%d",&x,&y,&z); D:read("%d%d%d",&x,&y,&z);

  58. 表达式18 && 53 的值是(   )。


  59. A:53 B:0 C:1 D:18
    AI参考:正确选项是【B:0】。表达式“18 && 53”是一个逻辑与运算,当左侧的表达式“18”为假(即小于等于0)时,整个表达式的值才为假,否则为真。在这个表达式中,由于18为真,所以整个表达式的值为真,即0。因此,答案为B。'
  60. 在C语言中,形参的缺省存储类别是(   )。


  61. A:.auto B:static C:register D:extern

  62. 对以下说明语句的正确理解是( )。
    int a[10]={6,7,8,9,10};


  63. A: 将5个初值依次赋给a[1]至a[5] B: 将5个初值依次赋给a[6]至a[10] C: 将5个初值依次赋给a[0]至a[4] D: 因为数组长度与初值的个数不相同,所以此语句不正确

  64. 分析以下程序的运行结果(   )。

    func(int a,int b)

    {

    int temp=a;

    a=b; b=temp;

    }

    int main()

    {

    int x,y;

    x=10; y=20;

    func(x,y);

    printf((“%d,%d\n”,x,y);

    return 0 ;

    }


  65. A:20,10 B:10,10 C:10,20 D:20,20

  66. 如果p是一个整型数,下列表达式始终为真的是(   )。


  67. A:P||P B:P&&!P C:P&&P D:P||!P

  68. 以下程序的输出结果是(  )。

    #include <stdio.h>

    int m=13;

    int fun(int x,int y)

    {int m=3;

     return (x*y-m);

    }

    main()

    {int a=7,b=5;

     printf("%d\n",fun(a,b)/m);}


  69. A:10 B:1 C:2 D:7

  70. 有如下函数:

    float ggg(x)

    float x;

    {return x*x;}

    main()

    {printf("            \n",ggg(1.2));}


  71. A:%d B:无法确定 C:%f D:%ld

  72. 选项中,不属于字符常量的是(   )。




  73. 下列各m的值中,能使m%3==2 && m%5==3 && m%7==2为真的是(   )。


  74. A:6 B:17 C:23 D:8
    AI参考:正确答案是:C:23。$根据题意可得:m%3==2$说明m除以3的余数是2,即m除以3的余数等于m%3的值;$m%5==3$说明m除以5的余数是3,即m除以5的余数等于m%5的值;$m%7==2$说明m除以7的余数是2,即m除以7的余数等于m%7的值。因此,这三个条件必须同时满足,故选C。'
  75. 给出以下定义:

    char x[ ]="abcdefg";

    char y[ ]={'a','b','c','d','e','f','g'};

    则正确的叙述为(   )。


  76. A:数组x的长度小于数组y的长度 B:数组x和数组y的长度相同 C:数组x的长度大于数组y的长度 D:数组x和数组y等价

  77. 以下函数的功能是(  )。

    char s[],t[];

    sss(s,t)

    {int i=0;

     while(t[i])

     {s[i]=t[i];i++}

     s[i]='\0';

    }


  78. A:将字符串s复制到字符串t中 B:比较两个字符串的大小 C:将字符串t复制到字符串s中 D:求字符串的长度
    AI参考:答案:C 解析: 函数的输入参数为s和t两个字符数组,返回值是空。在函数体内,先用i初始化循环变量,然后在循环中通过t[i]依次将t数组中的每个字符赋值给s数组的相应位置,同时i加一,当t数组的所有字符都赋值完成后,再给s数组的最后一个位置赋值为字符串结束符。因此该函数的功能是将字符串t复制到字符串s中。 A选项:该选项的功能是将字符串s复制到字符串t中,这与题目描述的功能相反,因此不正确。 B选项:该选项的功能是字符串比较大小,这在题目中并未给出任何提示,因此不能确定是否正确。 D选项:该选项的功能是求字符串的长度,在题目中并未给出求长度的提示,因此也不能确定是否正确。 故正确答案为C。"

温馨提示支付 ¥1.65 元后可查看付费内容,请先翻页预览!
点赞(1) dxwkbang
返回
顶部