一起答

计算机基础与程序设计2008年4月真题试题与答案解析(02275)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 设在c盘根目录下有一个ASCII码文件zm.dat,且文件中有10个字符。请编程将文件中的字符读出,再按照从大到小的次序排序并将排序结果在屏幕上显示出来。

  2. 设有下列创建单向链表的部分程序:

    #include"malloc.h"

       #include"string.h"

       struct automobile

       {

    char type[20];

    int load;

    struct automobile *next;

    } * head=NULL;

      void main(void)

      {

    struct automobile *p;

    char * automobile_type[3]={"Red_Rock",Yellow_River","East_Wind"};

    int automobile_load[3]={24,18,42},j;

    for(j=0;j﹤3;j+ +)

    {

          p=(①______________)malloc(sizeof(struct automobile));

          strcpy(②_____________,automobile_type[j]);

          p->load=automobile_load[j];

          p->next=head;

          head=p;

    }

      }

    请阅读分析程序,然后写出①和②下划线处应该填写的内容。

  3. 若数组a中有十个整数8,2,5-3,7,-9,0,-4,10,15,请编程求出该数组中的最大值和最小值。

  4. 请阅读分析下列程序,然后写出程序的循环次数和运行结果。

    main(void)

       {

    int i;

    for(i=1; i﹤6; i+ +)

    {

         if(i%2)

         {

              printf("@");continue;

         }

    printf("*");

    }

    printf("\n");

    }

  5. 请阅读分析下列程序,然后写出程序的运行结果。

    void main(void)

       {

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

    p=a;

    p+ +;

    *(p+3)+=2;

    printf("%d\n",*p);

    printf("%d\n",*(p+3));

       }

  6. 请阅读分析下列程序,然后写出程序的运行结果。

    void fun( );

    void main(void)

    {

    fun( );

    fun( );

    }  

    void fun( )  

    {

    static int a[3]={0,1,2},b=10;

    int i;

    if(b= =10)

    {    

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

       a[i]+=a[i];  

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

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

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

    b+ +;

    }

    else

    {    

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

      a[i]*=a[i];

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

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

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

    }

    }   

  7. 请阅读分析下列程序,然后写出运行结果。

    main( )

    {

        int a=0,b=1;

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

        a+=b;b+=a;

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

    }

  8. 若分别输入0和5时,请阅读分析下列程序,然后分别写出两种输入情况下程序的运行结果。

    main ( )

    {

        int x,y;

        scanf("%d",&x);

        if(x﹥2&&x﹤=10)

              y=x *(x+2);

        else if(x﹥-1&&x﹤=2)

              y=2*x;

        else if(x﹤-1)y=x-1;

        if(y!=-1)

              printf("%d,y);

        else

              printf("error");

    }

  9. 简述C语言标准库函数strcpy 的格式(或函数原型)与功能。

  10. 请按照下列要求写出相应的C语句。假设float类型的变量x1和x2已经定义过,且x1已经初始化为7.3。

    (1)定义指向float类型变量的指针变量fpt;

    (2)使fptr指向x1;

    (3)利用fptr,将fptr指向变量的值赋给x2;

    (4)利用fptr,输出fptr指向变量的值。

  11. fread(stu,size,n,fp);中stu、size、n和fp的含义各是什么?

  12. C语言中的运算符“=”与数学中的“=”的意义相同吗?为什么?

  13. 设有关于结构体类型的定义:(     )

     struct data

        {

            int num;

            struct data *next;

        } *p,* head=NULL;

    下列语句中正确的有

    • A.p=(struct data *)malloc(sizeof(struct data));
    • B.p=(struct data )malloc(sizeof(struct data));
    • C.p=(struct data *)malloc(sizeof(data));
    • D.p->next=head;
    • E.p.next=head;
  14. 下列循环将会产生死循环的有(     )

    • A.while(1);
    • B.do{ }while(0);
    • C.do{ }while(1);
    • D.for(k=1;k﹥―10;k+ +);
    • E.for(k=1;k=10;k+ +,k――);
  15. 设有二维数组int a[4][3];下列表示数组元素a[0][2]地址的有(     )

    • A.a[2]
    • B.*a
    • C.*a+2
    • D.a[0]+2
    • E.&a[0][2]
  16. 下列语句中正确的有(     )

    • A.if(x﹥y);
    • B.if(x=y)&&(x!=0)x+=y;
    • C.if(x! =y)scanf(“%d,&x);else scanf(“%d”,&y);
    • D.if(x﹤y){x+ +;y+ +;}
    • E.if(x﹤y)x+ +;y+ +;else x――;y――;
  17. 如果文件存储的是数据在内存中存放的字节形式,则该文件是(   )

    • A.ASCII文件
    • B.文本文件
    • C.二进制文件
    • D.设备文件
  18. 存储在下列哪些设备中的信息可以长期保存?(     )

    • A.RAM
    • B.ROM
    • C.硬盘
    • D.软盘
    • E.光盘
  19. 设有说明:int u=1,v=3;则表达式u﹤﹤= v的值是(   )

    • A.0
    • B.1
    • C.3
    • D.8
  20. 下列位运算符中,表示按位异或操作的是(   )

    • A.~
    • B.│
    • C.^
    • D.&
  21. 下列各个位运算符的优先级从左到右依次升高的是(   )

    • A.﹥﹥│& ~
    • B.│﹥﹥ & ~
    • C.│& ﹥﹥ ~
    • D.~│& ﹥﹥
  22. 若有int a[ ]={1,2,3,4,5,6,7,8,9,10},且0≤i<10,则对数组元素地址正确表示的是(   )

    • A.&a+1
    • B.&a+ +
    • C.&a
    • D.&a[i]
  23. 下列关于结构体类型定义正确的是(   )

    • A.    
    • B.    
    • C.    
    • D.    
  24. 若有定义int s[4]={1,2,3,4};则a[a[2]-3*a[0]+1]的值是(   )

    • A.1
    • B.2
    • C.3
    • D.4
  25. 下列关于C语言程序说法正确的是(   )

    • A.C语言程序总是从有定义的函数起顺序执行
    • B.在C语言程序中,被调用函数必须在main函数中定义
    • C.C语言程序中的main函数必须放在程序的开始部分
    • D.C语言程序总是从main函数起开始执行
  26. 执行如下程序段后,x的值是(   )

    int x=1,y=-1;

    if(y﹤0)x-=y;

    else x+=y;

    • A.-1
    • B.0
    • C.1
    • D.2
  27. 下列程序段输出的结果是(   )

    for(i=1;i﹤3;i+ +)for(j=1;j﹤3;j+ +)printf("%d",i+j);

    • A.2 3 3 4
    • B.2 3 4
    • C.2 3
    • D.23 4 3 4
  28. 执行while(表达式)循环的条件是(   )

    • A.当表达式的值为0时
    • B.仅当表达式的值为1时
    • C.当表达式的值非0时
    • D.当表达式的值不为1时
  29. 以十进制无符号形式输出整数的格式说明符是(   )

    • A.%u
    • B.%x
    • C.%o
    • D.%d
  30. 下列程序段的输出结果是(   )

    void main(void)

    {

         iny y=1,x=5;

         if(x﹤0)y=-1;

         if(x﹥=0)y=0;

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

    }

    • A.-1
    • B.0
    • C.1
    • D.5
  31. 整数-2在机器内存中的表示是(   )

    • A.1000000000000010
    • B.1111111111111110
    • C.11111111111111101
    • D.1111111111111111
  32. 设有int a=3,b=-4,c=5;表达式++a-c+b++的值是(   )

    • A.-6
    • B.-5
    • C.-4
    • D.-3
  33. 下列运算符中优先级最低的是(   )

    • A.﹥
    • B.!
    • C.%
    • D.= =
  34. 下列设备中属于输出设备的是(   )

    • A.扫描仪
    • B.键盘
    • C.鼠标
    • D.显示器
  35. 与十进制数39等值的二进制数是(   )

    • A.00100111
    • B.01001001
    • C.10100111
    • D.01011000
  36. 存储容量1KB等于(   )

    • A.23字节
    • B.210字节
    • C.220字节
    • D.230字节
  37. 在计算机中指令通常是由(   )

    • A.操作码、操作数组成
    • B.源操作数、目标操作数组成
    • C.反码、补码组成
    • D.直接寻址、目的寻址组成