一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 在c盘根目录下有一个ASCII码文件month.dat,文件中有12个字符串分别为英文1~12月的名字,现从键盘上输入一个表示月份的整数,输出该月份的名字。若输入的整数不在1~12之间,则打印“Illegal month”。

  2. 从键盘输入10个整数并依次赋给整型数组中的元素,然后求该数组中值为正数的元素的累加和并输出该累加和。

  3. 阅读下面程序段,说明其功能:

    int x, y=0,k; FILE* fp;

    fp=fopen("data.txt","rb");

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

    fread(&x,sizeof(int),1,fp),y+=x;

    printf("%d,"y);

    fclose(fp);

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

    #include﹤stdio.h﹥

    #include﹤string.h﹥

    void f(char *s)

    {

    char *t, c, *p=s;

    for(t=s+strlen(s)-1;s﹤t;s++,t――)

    {

      c=*s,*s=*t,*t=c;

    printf("%s\n",p);

    }

    }

    void main (void)

    {

     char a [20]="abcdefg";

    f(a);

    }

  5. 请写出下面程序的运行结果。

    long fun (int k )

    {

    long fac;

    if(k= =0)

    return 1;

    else

    {

    fac=k* fun(k-1);

    printf("fac=%ld\n",fac);

    }

    return fac;

    }

    void main(void)

    {

    int n=3;

    printf("result=%ld\n",fun(n+1)/n);

    }

  6. 从键盘输入字符A时,写出下面程序的运行结果。(注:字符A的ASCII码是65)

     #include"stdio.h"

    main( )

    {

    char ch;

    ch=putchar(getchar( ) );

    printf(",%d,%o,%c",ch+1,ch+1,ch+32);

    }

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

    char a [ ]={'9','8','7','6','5','4','3','2,'1','0','\0'};

    void main (void)

    {

    int i =8,j;

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

    printf("%s\n",&a[i -j ]);

    }

  8. 阅读下面程序:

    void main(void)

    {

     int s=0,n=0,x;

     label: scanf("%d",&x);

      if(x﹥0){

     s+=x;

     n++;

      printf("s=%d,n=%d,even=%f\n",s,n,1.0,*s/n);

       }

    if(x!=0)

      goto label;

    else

       printf("good bye!");

    }

    当依次输入12 -3 -6 5 13 0↙时,写出程序的运行结果。

  9. 试定义一个三行的二维字符数组s,并用"I am a boy", "you are a girl", "he is a teacher"对其进行初始化。

  10. 设有说明:int a[2][3];

    请用四种方式来表示数组元素a[1][2]。

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

    • A.x&y&z
    • B.x¦y¦z
    • C.x^x+y^y
    • D.z﹥﹥y
    • E.x&0xff00
  12. C语言中的运算符“=”与运算符“= =”的意义相同吗?为什么?

  13. 变量的存储类别分为哪几种?它们分别存储在什么区域?

  14. 设有说明:char s[20];下面各项中能够正确的将一个字符串"abcd"赋给s数组的有(     )

    • A.s="abcd";
    • B.gets(s);
    • C.scanf("%s",s);
    • D.strcpy(s,"abcd");
    • E.strcpy("abcd",s);
  15. 关于结构体,下面各项中不正确的有(     )

    • A.struct person{long bh; char *name; int age;}psl={9100,"wang",20},* pst;pst=psl; printf("%d",*pst→age);
    • B.struct my_data{int num; struct my_data *next;};
    • C.struct test{char *course; char *class}
    • D.struct worker{char name[9]; float gz;}Li={"Li Ping",532.67};
    • E.struct int_num{int i _num;struct int_num *next; }ione, *pi;pi=&ione;
  16. 设a=1,b=3,c=0;下面表达式的值为1的有(     )

    • A.!a&&b| |a&&(c+1)
    • B.a-b+3
    • C.(a﹥b)==c
    • D.(a=0)&&(b=10)
    • E.b﹥a&&a﹥c
  17. 下列设备中属于外存储设备的有(     )

    • A.RAM
    • B.光盘
    • C.硬盘
    • D.软盘
    • E.磁带
  18. 测试文件是否结束函数的函数名是(   )

    • A.feof
    • B.EOF
    • C.eof
    • D.FEOF
  19. 如果在程序中要使用系统提供的函数sqrt,则需要书写的编译预处理命令是(   )

    • A.#include﹤stdio. h﹥
    • B.#include﹤math. h﹥
    • C.#include﹤string.h﹥
    • D.#include﹤malloc.h﹥
  20. 设有说明:int x=12,y=3;则x¦y的值是(   )

    • A.0
    • B.3
    • C.12
    • D.15
  21. 设有结构体的定义如下:

    struct data{

    int n;

    char c;

    float f;

    };

    则sizeof (struct data)的值是(   )

    • A.1
    • B.3
    • C.7
    • D.11
  22. 若有以下说明:

    char s[10]=“ABCDEFGH”,*p=s;

    不能表示字符C的是(   )

    • A.s[2]
    • B.s[3]
    • C.s['c'-'a']
    • D.*(p+2)
  23. 有下列程序:

    func(int x, int y, int*jia, int*jian)

    {*jia=x+y;

    *jian=x-y;

    }

    main( )

    {int i =10,j=3,x1,x2;

    func( i ,j,&x1,&x2 );

    printf("%d,&d\n",x1,x2);

    }

    则其运行结果是(   )

    • A.0,0
    • B.10,3
    • C.13,7
    • D.7,13
  24. 若有以下定义和语句,且0≤i<10,则对数组元素地址的正确表示是(   )

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

    p=a;

    • A.&(a+1)
    • B.a++
    • C.&p
    • D.&p[i]
  25. 在C语言中,确定函数返回值的类型由(   )

    • A.return语句中的表达式类型决定
    • B.调用该函数的主函数类型决定
    • C.调用函数时临时决定
    • D.定义函数时所指定的函数类型决定
  26. 若有定义:int a[10];则数组元素的下标的下限和上限分别是(   )

    • A.0和1
    • B.1和9
    • C.0和9
    • D.1和10
  27. 下列说法不正确的是(   )

    • A.一个源程序文件由一个或多个函数组成
    • B.一个C程序由一个或多个源程序文件组成
    • C.一个C程序以函数为独立的编译单位
    • D.一个C程序必须有一个main( )函数
  28. 在下述程序中,for循环执行的次数是(   )

    main( ){

    int i =0,j=10,k=2,s=0;

    for(; ;)

    {i+=k;

    if(i﹥j){

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

    break;

    }

    s+=i;}

     }

    • A.4
    • B.5
    • C.6
    • D.7
  29. 执行下面程序段后,输出字符B的个数是(   )

    x=0;

    while(x﹤=5){printf("B");x+=2;}

    • A.0个
    • B.3个
    • C.5个
    • D.6个
  30. 下面程序的输出结果是(   )

    main( ){

    int x=5,y;

    if(x﹥0)y=1; 

    y=0;

    if(x﹤0) y=-1;

    printf("%d",y);}

    • A.-1
    • B.0
    • C.1
    • D.5
  31. 设有说明 int x=0,y=2;则执行 if(x=0) y=1+x;else y=x-1;后,变量y的值是(  )

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

    int a,b;

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

    • A.2﹤CR﹥
    • B.a=2 b=3﹤CR﹥3﹤CR﹥
    • C.a=2,b=3﹤CR﹥
    • D.2,3﹤CR﹥
  33. 设有int p,q;以下不正确的语句是(   )

    • A.p *=3;
    • B.p/=q;
    • C.p+=3;
    • D.p&&=q;
  34. 十进制数-5在八位的微机内的存储形式是(   )

    • A.00000101
    • B.10000101
    • C.11111010
    • D.11111011
  35. C语言源程序的基本单位是(   )

    • A.过程
    • B.函数
    • C.子程序
    • D.语句
  36. 具有只读功能的内存储器是指(   )

    • A.ROM
    • B.RAM
    • C.硬盘
    • D.CD-ROM
  37. I/O设备指的是计算机的(   )

    • A.存储设备
    • B.输入和输出设备
    • C.控制器
    • D.运算器