一起答

高级语言程序设计(一)2010年1月真题及答案解析

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. (1)编写一函数,将指针变量p1和p2所指向的整数值交换。

    其中:函数头是void swap (int *p1, int *p2)

    (2)编写一个主程序,从键盘输入两个整数,调用上述函数实现两个数据的交换并输出。

  2. 从键盘输入三个整数a、b和c,按照由小到大的顺序输出。

  3. 从键盘输入一串字符(以“?”作为结束标志),保存到文本文件text.txt中。

    #include "stdio.h"

    void main()

    {

       FILE _______; /*第一空*/

       char ch;

       if( (fp=fopen ("text.txt", _______) )==NULL) exit(0); /*第二空*/

       while( (ch=getchar( ))!=′?′) fpute (ch, _________); /*第三空*/

       fclose(fp);

    }

  4. 用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。

  5. void main()

    {

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

      int b[3][2],i,j;

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

      {  for (j=0;j<=2;j++)

          { printf("%5d",a[i][j]);

              b[j][i]=a[i][j];

          }

       printf("\n");

      }

       printf("array b:\n");

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

           for (j=0;j<=1;j++)

              printf("%5d",b[i][j]);

    }

  6. 从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。

  7. void main()

    { int color=2;

      switch(color)

      {

         case 1: printf("red\n"); break;

         case 2: printf("yellow\n");

         case 3: printf("blue\n");

       }

    }

  8. void main()

    {

      float x=3.6;

      int i;

      i=x;

      printf("x=%5.3f, i=%d\n",x,i);

    }

  9. void main()

    { int m,n;

       for(m=1;m<=3;m++)

       {

          for(n=1;n<=2*m-1;n++) printf( "*");

             printf("\n");

        }

    }

  10. 设int a[5]={1,3,5,7,9},*p=&a[2];,则++(*p)的值是_______。

  11. 若定义函数时类型缺省,则该函数默认的类型是_______。

  12. 设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是_______。

  13. 单目运算符的结合性是_______。

  14. 设int m=3; float n=12.6; char ch=′a′;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是_______。

  15. 执行printf("%d\n",3&&2&5);后的结果是_______。

  16. 算术运算符的优先级比关系运算符的优先级_______。

  17. 设char s[]="\t\’Name\\Address\n";,s的长度是_______。

  18. 设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是_______。

  19. 设int i; float f=3.14;,执行i=(int)f;后,变量f的值是_______。

  20. 关于编译预处理命令,叙述正确的是(  )

    • A.预处理命令都以“#”开头
    • B.预处理命令必须位于程序的首部
    • C.预处理命令只能实现宏定义和条件编译的功能
    • D.每个程序必须在开头使用预处理命令#include
  21. 下列程序段正确的是(  )

    • A.char s[ ]={′xyz′};    scanf("%s",s);
    • B.float *p,i;    p=*p+i;
    • C.char s[5]=′word′;    puts(s);
    • D.int a[5]={0},*p=a;    *p=*(p+1);
  22. 设char k=′a′; float j=2.0;,执行k+=5/j; printf("%c",k);后,输出结果是(  )

    • A.a
    • B.b
    • C.c
    • D.d
  23. 设int a[ ][4]={1,2,3,4,5,6,7};,则a[1][3]的值是(  )

    • A.0
    • B.3
    • C.4
    • D.7
  24. 若定义一个只限本源文件使用的全局变量,则该变量的存储类别是(  )

    • A.extern
    • B.register
    • C.static
    • D.auto
  25. 实现字符串连接的系统函数名是(  )

    • A.strcat
    • B.strcmp
    • C.strcpy
    • D.strlen
  26. 若实参是一个数组名,在调用函数时,实参向形参传递的是(  )

    • A.数组的长度
    • B.数组的首地址
    • C.数组每个元素的值
    • D.数组每个元素的地址
  27. 下列程序段中循环体执行的次数是(  )

    int x=-1;

    do

    {

      x=x*x;

    }while(!x);

    • A.0
    • B.1
    • C.2
    • D.无限
  28. 下列用户自定义标识符正确的是(  )

    • A.4a
    • B.b_1
    • C.-&
    • D.*p
  29. 下列关于函数定义正确的是(  )

    • A.fun(int x,y){int z; return z;}
    • B.void fun(int x, int y){ return x+y;}
    • C.fun(x,y){int x,y; double z; z=x+y; return z;}
    • D.double fun(int x, int y) {double z; z=x+y; return z;)
  30. 设char c=′A′;int i=1, j;,执行j=!c&&i++;后,i和j的值分别是(  )

    • A.1和0
    • B.1和1
    • C.2和0
    • D.2和1
  31. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是(  )

    • A.1和2
    • B.2和3
    • C.3和4
    • D.4和5
  32. 下列不属于保留字的是(  )

    • A.default
    • B.register
    • C.sruct
    • D.unsign
  33. 设typedef long class;,则class是(  )

    • A.整型变量
    • B.长整型变量
    • C.长整型数据类型的新标识符
    • D.新的而非长整型数据类型的标识符
  34. 下列不能作为常量的是(  )

    • A.0582
    • B.0xa5
    • C.′\n′
    • D.2.5e-2