一起答

2012年全国高等教育自学考试高级语言程序设计标准预测试卷(9)

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 采用递归调用的算法编写一个计算x的n次方的函数(不用写主函数调用)。

  2. 求出10到500之内能同时被3、7整除的数,并输出;然后求出其和值。

  3. 下列给定程序中,函数fun()的功能是:读人一个字符串(长度<20),将该字符串中的所有字符按ASCⅡ码降序排序后输出。

    #include<stdio.h>

    void fun(char t[])

    {

    char c;

    int i,j;

    for(i=0;______;i++)/*第一空*/

    for(j=i+1;j<=strlen(t);j++)

    if(______)/*第二空*/

    {

    c=t[j];

    t[j]=t[i];

    t[i]=c;

    }

    }

    main()

    {

    char s[81];

    print f("Please enter a char acter string:\n");

    gets(s);

    print f("\n\nBefore sorting:\n%s",s);

    ______;/*第三空*/

    print f("\nAfter sorting decreasingly:\n%s\n",s);

    }

  4. 下面程序段的功能是将形参x的值转换成二进制数,所得二进制数的每一位数放在一维数组中返回,二进制数的最低位放在下标为0的元素中,其他以此类推。

    #include

    main(int x,int b[])

    {int k=0,r,i;

    scanf("%d",x);

    do .

    {r=x%2;

    b[______]=r;/*第一空*/

    x/=2;

    }while(______);/*第二空*/

    for(______);i>=0;i--)/*第三空*/

    print f("%d",b[i]);

    }

  5. 下面程序是将字符串P中的所有字符复制到字符串b中,要求每复制三个字符后插入一个空格。

    #include<stdio.h>

    void cp(char *P,char *b)

    {int i,k=0;

    while(*p)

    {i=0;

    while(______)/*第一空*/

    {b[k]=*p;

    k++;p++;i++;

    }

    if(*p)

    {______;/*第二空*/

    }

    }

    ______;/*第三空*/

    }

    main()

    {char a[20],b[20];

    gets(a);

    cp(a,b);

    puts(b);

    print f("\n");

    }

  6. #include<stdio.h>

    main()

    {int a,b;

    for(a=1,b=1;a<=100;a++)

    {if(b>=20)break;

    if(b%3==1)(b+=3;

    continue;

    }

    b-=5;

    }

    print f("%d\n",a);

    }

  7. #include<stdio.h>

    main()

    {

    int a[3][2]={{1,2},{3,4},{5,6}),i,j,s=0;

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

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

    s+=a[i][j];

    print f("%d\n",s);

    }

  8. #include<stdio.h>

    main()

    {

    int i;

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

    switch(i)

    {

    case 0:print f("%d",i);

    case 2:print f("%d",i);

    default:print f("%d",i);

    }

    print f("\n");

    }

  9. 表达式"sizeof(double)"的值的类型是______。

  10. #include

    long fun(int n)

    {long s;

    if(n<=2)s=2;

    else s=n+fun(n-1);

    print f("%0d\t",s);

    return s;

    }

    main()

    {

    fun(5);

    print f("\n");

    }

  11. 以下由for语句构成的循环执行了______次。

    #itielude<stdio.h>

    #define N 2

    #deftne M N+1

    #define NUM(M+1)*N/2

    main()

    {int i,n=0;

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

    {n++;print f("%d",n);}

    print f("\n");}

  12. 以下程序的输出结果是______。

    #include<stdio.h>

    main()

    {int i;

    for(i=1;i<=5;i++)(if(i%2)print f("*");

    else continue;

    print f("#");

    }

    print f("$\n");

    }

  13. 以下程序的输出结果是______。

    #include<stdio.h>

    main()

    {int a,b,d=241;

    a=d/100%9;/*"/"和"%"的优先级相同,先进行"/运算"*/

    b=(-1)&&(-1;/*b所获得的是逻辑值。*/

    print f("%d,%d\n",a,b);

    }

  14. 设int a,b,c;,则执行a=(b=3,c=4,a=5,b=8);之后变量a的值是______。

  15. 外部静态变量的作用域是______。

  16. 函数调用时,若实参为一个确定的值,则函数参数的传递方式是______。

  17. 设int a[2][3]={2,4,6,8,10,12);,则数组元素a[1][0]的值是______。

  18. 可以将被调函数中获得的值返回主调函数的语句是______。

  19. 设int x=2,y=1;则表达式x---y的值是______。

  20. 若已定义:int a[9],*p=a;并在以后的语句中未改变P的值,不能表示a[1]地址的表达式是( )

    • A.p+1
    • B.a+1
    • C.&a[1]
    • D.*p[1]
  21. 若有以下定义和语句:

    doubler=99,*p=&r;

    *p=r;

    则以下正确的叙述是( )

    • A.以上两处的*p含义相同,都说明给指针变量p赋值
    • B.在"double r=99,*p=&r;"中,把r的地址赋值给了p所指的存储单元
    • C.语句"*p=r;"把变量r的值赋给指针变量p
    • D.语句"*p=r;"取变量r的值放回r中
  22. C语言早期规定建立文件缓冲区采用的形式是( )

    • A.缓冲文件系统
    • B.非缓冲文件系统
    • C.分页文件系统
    • D.A&B
  23. 以下说法中正确的是( )

    • A.#define和print f都是C语句
    • B.#define是C语句,而print f不是
    • C.print f是C语句,但#define不是
    • D.#define和print f都不是C语句
  24. 当C的值不为0时,在下列选项中能正确将C的值赋给变量a和b的是( )

    • A.c=a=b
    • B.(a=c)||(b=c)
    • C.(a=c)&&(b=c)
    • D.a=c=b
  25. 以下程序的输出结果是( )

    main()

    {char a[10]={"123456789"),*P;

    int 1;

    i=8;

    p=a+i;

    print f("%s\n",p-3);

    }

    • A.5678
    • B.6789
    • C.7890
    • D.不确定
  26. 以下程序的输出结果是(已知字母a的ASCⅡ值比字母A的ASCⅡ值大32)( )

    main()

    {int i;

    for(i='A';i<'I';i++,i++)

    print f("%c",i+36);

    }

    • A.DEGIK
    • B.egik
    • C.EGIK
    • D.degik
  27. 常用的数学处理类系统函数所在的头文件是( )

    • A.math.h
    • B.ctype.h
    • C.dos.h
    • D.stdlib.h
  28. 设int a=6;,则执行b=a<<1;语句后b的值是( )

    • A.3
    • B.6
    • C.9
    • D.12
  29. 表达式8&2|6||3的值是( )

    • A.7
    • B.5
    • C.3
    • D.1
  30. 在下列函数的参数传递方式中,可以改变实参值的参数传递方式是( )

    • A.值传递
    • B.地址传递
    • C.返回值传递
    • D.A、B和C
  31. 下列关于函数的递归调用描述不正确的是( )

    • A.函数的递归调用就是函数对自身的调用
    • B.向下的递归调用过程被称为是"递归过程"
    • C.向上携带返回表达式的过程被称为是"回溯过程"
    • D.递归过程必须解决的问题有三个
  32. 设有数组定义:char array[]="Asia";则数组array[]所占用的空间为( )

    • A.4个字节
    • B.5个字节
    • C.6个字节
    • D.7个字节
  33. 以下是对二维数组的正确说明的是( )

    • A.int [3][]
    • B.float a(3,4)
    • C.double a[1][4]
    • D.float a(3)(4)
  34. 下列关于C语言字符数组描述正确的是( )

    • A.字符数组可以存放字符串
    • B.字符数组的下标是从0开始的
    • C.字符数组不能输出字符串
    • D.字符数组可以没有'\0'