一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 若在c:\tclt路径下有一个名为zz.dat的文本文件,它包括10个按升序排列的整数,且每两个数之间用逗号隔开,现要插入一个整数使该序列仍保持升序,并把新序列写入到c:\ tclt路径下名为zzz.dat的文本文件中。

  2. 阅读下面程序段,写出输出结果。

    struct num

    { float f1;

      int j;

    }u={5.6,8},*p=&u;

    printf(″%.2f,%d\\n″,u.f1, u.j);

    printf(″%.2f,%d\\n″, (*p).f1,p-﹥j);

  3. 若有n行n列数组,试编写一程序,分别求出两条对角线元素之和。(从键盘输入n*n个整型数,n≤20)

  4. 阅读下面程序,并回答问题:

    main( )

    { int m, n;

    m=65;

    n=14;

    while(m!=n)

    { while(m﹥n)m-=n;

      while(n﹥m)n-=m;

    }

    printf(″m=%d\\n″, m);

    }

    (1)程序输出结果是多少?

    (2)外循环执行完一次时,m和n的值分别是多少?

    (3)将while(n﹥m)n-=m;语句删除后,程序运行情况如何?

  5. 阅读下面程序,并回答问题:

    gcd(int x, int y)

    { int temp;

      while (y){temp=x%y; x=y; y=temp;}

      return x;

    }

    main()

    { int a, b, y;

      scanf(″%d, %d″, &a, &b);

      y=gcd(a,b);

      printf(″最大公约数是:%d″, y);

    }

    (1)gcd函数的返回值类型是什么?

    (2)若将return x写成return y会得到什么样的结果?

  6. 阅读下面程序,写出运行结果。

    mian( )

    { char * str[ ]={″Pascal″, ″C Language″, ″Dbase″, ″Cobol″};

      int k;

      for(k=0; k﹤4;k++)

      printf(″%s\\n″, str[k]);

    }

  7. 阅读下面程序,并回答问题:

    main()

    { int x, y, z, c;

      scanf(″%d%d%d″,&x, &y, &z);

      if(x﹤z){c=y; y=z; z=c;}

      if(x﹤z){c=x; x=z; z=c;}

      if(x﹤y){c=x; x=y; y=c;}

      printf(″%d, %d, %d″, x, y, z);

    }

    (1)若程序运行时,输入3、2和5,则输出结果是什么?

    (2)写出程序所实现的功能。

  8. 阅读下面程序,写出运行结果(已知A的ASCII码为65,a的ASCII码为97)。

    #include ″stdio.h″

    main( ){

    int k=100;

    char m;

    m=k;

    putchar(m);

    printf(″,%d,%c,%o, ″k,m-32,m);

    }

  9. 什么是"直接递归调用"?什么是"间接递归调用"?

  10. 设有说明:

    struct language {long spearer; char country[20];} chinese;

    试写出对chinese的成员spearer和country分别赋值1250000000和"China"的C语句。

  11. 判断下面两程序段正确与否,并说明原因。

    (1)char str[12];

    str=″program″;

    (2)char *str;

    str=″program″;

  12. 在C语言中,关于符号FILE下面说法正确的有 (    )

    • A.FILE是C的关键字
    • B.FILE表示一种关于文件参数的结构体类型
    • C.FILE表示一种关于文件参数的结构体变量
    • D.FILE*可以用来说明文件指针
    • E.文件指针指向的变量的数据类型是FILE
  13. C语言中如何表示"真"和"假"?系统如何判断一个量的"真"和"假"?

  14. 设有说明:int x=1, y=3; 下面表达式的值为2的有 (    )

    • A.y&~x
    • B.x^y
    • C.x|y
    • D.y|x﹥﹥1
    • E.x﹤﹤1|y﹥﹥2
  15. 若有如下定义和语句,则能正确表示数组a首元素地址的表达式有(    )

    int a[10], *p;

    p=a;

    • A.a[0]
    • B.a
    • C.p+1
    • D.p
    • E.*p
  16. 若定义 char c[11]; 可将字符串″I am a boy″ 赋给数组c,下面正确的选项有( )

    • A.c=″I am a boy″;
    • B.getchar(c);
    • C.gets(c);
    • D.scanf(″%s″,c);
    • E.for(i=0;i﹤10;i++) scanf(″%c″,&c[i]);c[10])=\'\\0\';
  17. 下面程序段中,不能完成的功能是 (   )

    FILE *fp;

    char ch =′v′;

    fp=fopen(″boy″, ″rb+″);

    fputc(ch,fp);

    • A.建立文件指针fp与文件boy的联系
    • B.从boy文件中读取一个字符
    • C.向boy文件中写一个字符
    • D.打开名为boy的二进制文件
  18. 总线是连接微机CPU、内存和外设之间传送信号的公共通道,微机的总线包括有( )

    • A.电源线
    • B.数据线
    • C.地址线
    • D.控制线
    • E.网络线
  19. 如果将文件指针fp指向文件末尾,正确的语句是 (   )

    • A.feof(fp);
    • B.rewind(fp);
    • C.fseek(fp,0L,0);
    • D.fseek(fp,0L,2);
  20. 下面各个位运算符的优先级从左到右依次升高的是 (   )

    • A.| ^ & ﹥﹥
    • B.^ ﹥﹥ & ~
    • C.﹤﹤ | ^ ~
    • D.~ | & ﹥﹥
  21. 设有说明:int u=1, v=14;表达式u+v﹥﹥2的值是 (   )

    • A.0
    • B.3
    • C.5
    • D.7
  22. 设有语句int a[4][10],*p=*a;则下面表达式中属于地址表达式的是 (   )

    • A.a[1][2]
    • B.a[1]
    • C.*(p+1*10+2)
    • D.*(a[1]+2)
  23. 下面定义不正确的是 (   )

    • A.    
    • B.    
    • C.    
    • D.    
  24. 下面叙述中不正确的是 (   )

    • A.不同函数中可以使用相同名字的变量
    • B.形式参数是局部变量
    • C.在一个函数内部定义的变量只能在本函数范围内有效
    • D.在一个函数内部的复合语句中定义的变量在本函数范围内有效
  25. 在C程序中,若用基本数据类型所定义的变量调用函数,正确的说法是 (   )

    • A.由系统自动指定对应实参和形参是否共用存储单元
    • B.对应实参和形参各占一个独立的存储单元
    • C.对应实参和形参共用一个存储单元
    • D.可以由用户指定对应实参和形参是否共用存储单元
  26. 下面程序段的输出结果是 (   )

    • a=100;    while(a﹥120);
    • a=a+1;    printf(″%d″,a);
    • A.100
    • B.101
    • C.120
    • D.121
  27. 下面程序执行后,i的值是 (   )

    main( )

    {

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

    printf(″%d″,a[i++]);

    }

    • A.1
    • B.2
    • C.3
    • D.4
  28. 下面程序的输出结果是 (   )

    main( )

    {

    int i, x[3][3]={9,8,7,6,5,4,3,2,1};

    for(i=0;i﹤4;i+=2)

    printf(″%d″, x[i][1]);

    }

    • A.5 1
    • B.5 2
    • C.8 2
    • D.9 3
  29. 下面程序段的循环次数是 (   )

    int k=2;

    while(k==0) printf(″%d″,k);

    k--; printf(″\\n″);

    • A.0次
    • B.1次
    • C.2次
    • D.无限次
  30. 下面程序段执行后的输出结果是 (   )

    int i=1;

    if(i﹤=0) printf(″* * * * \\n″);

    else printf(″%%%%\\n″);

    • A.****
    • B.%%%%
    • C.%%%%c
    • D.****c
  31. 若有下列程序段,欲使a=2、b=3,对应正确的数据输入方法是(其中﹤CR﹥表示换行)

    int a, b;

    scanf(″a=%d b=%d″,&a, &b);( )

    • A.2﹤CR﹥
    • B.a=2 b=3﹤CR﹥3﹤CR﹥
    • C.a=2, b=3﹤CR﹥
    • D.2,3﹤CR﹥
  32. 下面程序段的输出结果是 (   )

    main()

    { int s, p;

      s=p=5;

      p=++s;

        p++; ++p;

        printf(″%d\\n″,p);

      }

    • A.5
    • B.6
    • C.7
    • D.8
  33. 下列if语句中,有语法错误的是 (   )

    • A.if(x﹥y);
    • B.if(x=y) x+y;
    • C.if(x!=y) scanf(″%d″, &x) else scanf(″%d″,&y)
    • D.if(x﹤y) {x++; y++;}
  34. 退出Turbo C 2.0返回系统,在主菜单File项中可选择 (   )

    • A.Load
    • B.New
    • C.Save
    • D.Quit
  35. 设有int a=3, b=-4, c=5;表达式(a﹤b)? a+b:(a-b,b+4,a-=b+4)的值是(   )

    • A.-1
    • B.0
    • C.3
    • D.7
  36. CPU处理数据和指令的基本单位是字(Word),一个字的字长是 (   )

    • A.8bits
    • B.16bits
    • C.32bits
    • D.与CPU数据总线有关的bit位数
  37. 与十进制1100等值的十六进制数是 (   )

    • A.44A
    • B.44C
    • C.54A
    • D.54C