一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. (1)编写一个计算摄氏(C)到华氏(F)转换的函数。函数头是:float temp(float c)

    计算公式:

    (2)编写主函数从键盘输入摄氏温度的值,调用上述函数输出摄氏及华氏温度的值(小数点后保留两位)。

  2. 从键盘输入10名学生的姓名和数学、英语及C语言的成绩,计算并输出其总成绩和平均成绩。

  3. 统计文本文件file.dat的行数(提示:以′\n′作为每行的结束)。

  4. 输入实数x,按下列公式计算并输出x和y的值(小数点后保留两位)。

  5. 从键盘输入10个整数,用“冒泡排序法”由小到大进行排序

  6. int funs(int n)

    { if(n= =1 ||n= =2) return 2;

     else return n+funs(n-1);

    }

    main()

    { int x=4;

     printf(″S=%d\n″,funs(x));

    }

  7. main()

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

        switch(x)

         {case 0: a++; break;

           case 1: b++;

           case 2: a++; b++; break;

           case 3: a++; b++;

         }

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

      )

  8. main()

    {   int a=10,b=20,*p1=&a,*p2=&b;

        *p1=20; *p2=40;

        if(*p2>*p1) *p1=*p2;

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

    }

  9. f(int b)

    { static int y=3;

       return(b+y++);

    }

    main()

    { int a=2,i,k;

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

        printf(″%d\n″,f(a++));

    }

  10. 在函数间传递数据时,函数的形参和调用时的实参都是数组,传递方式为___________。

  11. 若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是___________。

  12. 设float a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。

  13. 设char a[20]={″Switch″},*p=a;,则*(p+2)的值是___________。

  14. 设char s[15]=(″programming″);,则printf(″%d\n″,strlen(s));的结果是___________。

  15. 设有循环语句for(i=-1;i<=5;i++)i++;,则其循环体执行的次数是___________。

  16. 调用系统函数strcmp(),必须在程序的开头写上一条文件包含命令是___________。

  17. 设double x;,则表达式x=5,(x+5)/2的值是___________。

  18. 设有宏定义#define X 10-4,则printf(″%d\n″,6*X);的输出结果是___________。

  19. 能正确表述“2

  20. 在C语言中,标准的输入设备stdin是指(  )

    • A.软盘
    • B.硬盘
    • C.显示器
    • D.键盘
  21. 在循环体中用来强制继续循环的语句是(  )

    • A.break
    • B.continue
    • C.exit
    • D.return
  22. 设typedef struct{int a;char s[10];} TYPE;

    TYPE u1;

    则printf(″%d\n″, sizeof(u1));的输出结果是(  )

    • A.2
    • B.12
    • C.14
    • D.16
  23. 设char s1[ ]=″string1″,s2[8], *s3, *s4=″string2″;,则对系统函数strcpy的错误调用是( )

    • A.strcpy(s1, ″string1″);
    • B.strcpy(s4, ″string2″);
    • C.strcpy(″string2″,s2);
    • D.strcpy(s3, ″string1″);
  24. 正确的数组定义及初始化的是(  )

    • A.char a[10]={″string″};
    • B.int a[5]={0,1,2,3,4,5};
    • C.char a={″string″};
    • D.int a[ ]={x,y,z};
  25. 设int i=1, k=2;, 则错误的循环语句是(  )

    • A.for(i=0,k=-1;i++,k++);
    • B.for(;k-1;i++);
    • C.for(i=1,k=4;k--;i++);
    • D.for(;k--;);
  26. 设int a=3,b=4;,则printf(″%d,%d,″, (a,b),(b,a));的输出结果是(  )

    • A.3,4
    • B.4,3
    • C.3,4,4,3
    • D.4,3,3,4
  27. 若有下列程序段:

    int x=1, y=2; x=x+y; y=x-y; x=x-y;

    则执行后x和y的值分别为(  )

    • A.1和2
    • B.2和2
    • C.2和1
    • D.1和1
  28. 正确的条件语句为(  )

    • A.if((a=b;)>0) t=a;
    • B.if((a=b)>0) then t=a;
    • C.if(a>b) t=a;
    • D.if(a
  29. 设int k,a,b; unsigned long w=5; double x=1.42;

    则不符合类型要求的表达式是(  )

    • A.x%(-3)
    • B.w+=2
    • C.k=(a=2,b=3)
    • D.a+=(b=4)*(a=3)
  30. 一维数组a的正确说明语句为(  )

    • A.int a(10);
    • B.int n=10, a[n];
    • C.int n;    scanf(″%d″,&n);
    • int a[n];
    • D.#define SIZE 10
    • int a[SIZE];
  31. 已知字符′A′的ASCII码值是65,且char c1=′A′, c2=′D′;,则执行语句printf(″%d,%d\n″,c1,c2-2);后的输出结果是(  )

    • A.A, D
    • B.A, B
    • C.65, 68
    • D.65, 66
  32. 设char c1; , 则c1中为小写英文字母字符的正确表达式为(  )

    • A.′a′<=c1=′z′
    • B.(c1>=′a′)&&(c1<=′z′)
    • C.(c1>=a)&&(c1<=z)
    • D.(′a′<=c1||(′z′>=c1)
  33. 设int a,b;,则表达式(b=2, a=5, b++, a+b)的值是(  )

    • A.2
    • B.5
    • C.7
    • D.8
  34. 设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是(  )

    • A.2.75
    • B.3.5
    • C.2.5
    • D.0.0