一起答

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

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
  1. 输出100以内所有个位数字为7且能被3整除的数。

  2. 一个二维数组int a[4][4],请将其填满并输出其四个边的元素。

  3. 以下程序用来统计从终端输入的字符中大写字母的个数。以"$"作为输入结束标记。

    #include<stdio.h>

    #include<ctypc.h>

    main()

    {int num[126],i;char c;

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

    num[i]=0;

    while((______)!='$')/*第一空*/

    if(isupper(c))num[c-65]+=1;

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

    if(______)/*第二空*/

    printf("%c:%d\n",______,num[i]);/*第三空*/

    }

  4. 输入5个字符,从中找出最大的并输出。要求用字符数组存放此字符,并用指针数组元素分别指向这5个字符。

    #include<stdio.h>

    main()

    {char a[5],*p[5],*max;

    int I;

    for(I=0;I<5;I++)

    ______;/*第一空*/

    for(I=0;I<5;I++)

    scanf("%C",p[I]);

    max=p[0];

    for(I=0;______;I++)/*第二空*/

    if(*max<*p[I])

    ______;/*第三空*/

    printf("%c",*max);

    }

  5. #include<stdio.h>

    int trans(int m,int n)

    {int i;

    if(m>n){

    i=m%n;trans(m,n);}

    else i=m:

    if(i<10)printf("%d\n",i):

    else printf("%C".’A’+i-10):

    }

    main()

    {int i;

    printf("The output is:\n");

    printf("n%d\n",-23);

    trans(21,3);

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

    trans(123,16);

    }

  6. 将一个十进制整数转变成一个二进制整数。

    #include<stdio.h>

    main()

    {int i=0.j,n,num[20];

    scanf("%d",______);/*第一空*/

    while(n!=0)

    {num[i++]=______;/*第二空*/

    n=______;)/*第三空*/

    for(j=i-1;j>=0;j--)

    printf("Ha",num[j]);

    printf("\n");

    }

  7. #include<stdio.h>

    void main()

    {int i;

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

    printf("%d\t%c\n",i,('A'+i));

    }

  8. #include<stdio.h>

    void main()

    {int i,j,a[4][4];

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

    for(j=0;0<4;j++) a[i][j]=1+i;--j;

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

    {for(j=0;j<4;j++)

    if(a[i][j]>0)printf("%3 d",a[i][j]);

    printf("\n");}

    }

  9. #include<stdio.h>

    int f(int n)

    {static int s=1;

    while(n)s*=n--;

    return s;

    }

    main()

    {int i,j;

    i=f(3);j=f(5);

    printf("The output is:\n");

    printf("i=%d j=%d\n",i,j);

    }

  10. int x=5;

    x+==x-=x*x;

    则x的值是______。

    三、程序分析题

    阅读下列程序,将输出结果写到各题右侧的空白处。

  11. 设int a;float b;char c;long d;double e;unsigned u;,则表达式a+c/b-d*e+u值的类型是______。

  12. 已知char str[]="ABCD";,则语句printf("%d",strlen(str));的输出是______。

  13. 数组int arry[5][9];的第二维下标的最大值是______。

  14. 在进行程序清单的编译时,______是先于编译进行的。

  15. 文件包含命令是以______为开头的编译预处理命令。

  16. ______是C语言中唯一的一个三目运算符,它是由两个符号组成。

  17. 与标准输出设备所对应的文件型指针名为______。

  18. 将字符串写入文件时,不写入文件的字符串结束标志是______。

  19. 将字符转换成ASCⅡ代码值的函数是______。

  20. 下列选项中合法的数组定义是( )

    • A.int a[]="string";
    • B.int a[5]={0,1,2,3,4,5};
    • C.char a="sting";
    • D.char a[]={0,1,2,3,4}
  21. 不能把字符串"Hello!"符给数组b的语句是( )

    • A.char b[10]={'H','e','l','l','o','!'};
    • B.char b[10];b="Hello!";
    • C.char b[10];strcpy(b,"Hello!");
    • D.char b[10]="Hello!";
  22. 设有以下定义

    int a[4][3]={{1,2,3},{4,5,6},{7,8,9),{10,11,12};

    int *ptr[3]={a[0]},*p=a[0];

    则以下能正确表达数组元素a[1][2]的表达式是( )

    • A.*((*ptr+1)[2])
    • B.*(*(p+5))
    • C.*((*ptr+1)+4)
    • D.*(*(p+1)+2)
  23. 执行以下程序段后s的值为( )

    int a[]={5,6.4,4,8,9,5,8};

    int s=0;

    int k;

    for(k=0;k<8;k+=2)

    s+=*(a+k):

    • A.17
    • B.22
    • C.27
    • D.32
  24. 若有以下说明,则在seanf函数调用语句中对结构体变量成员引用方式不正确的是( )

    struct pub

    {char name[20];

    int age;

    int sex;

    }pub[5],*P;

    • A.scanf("%s",pup[0].name);
    • B.scanf("%d",&pup[0].age);
    • C.scanf("%d",&p->sex);
    • D.scanf("%d",*P.age);
  25. 若x、y是int型变量,则执行以下语句后的x值是( )

    #include<stdio.h>

    main()

    {

    int x,y;

    for(y=1,x=1;y<50;y++)

    {if(x>=10)break;

    if(x%2==1)

    x+=5;}

    x-=3;

    }

    • A.3
    • B.6
    • C.7
    • D.10
  26. 执行下列语句后b的值为( )

    int a,b,C,l=4,m=6,n=8;

    int *p1=&1,*p2=&m,*p3;

    • a=p1==&1;b=3*(-*p1)/(*p2)+7;
    • c=*(p3=&n)=*p1*(*p2);
    • A.4
    • B.5
    • C.7
    • D.8
  27. 下列程序正确的运行结果为( )

    #include<stdio.h>

    main()

    {int a[]={2,6,8,10,14,18);

    int *ptr[-]={&a[0],&a[1],&a[2],&a[3],&a[4]);

    int i;

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

    • a[i]=a[i]/2+a[i]    printf("%d\n",*(*(ptr+2)));    printf("%d\n",*(*ptr));    }
    • A.12    21
    • B.21    12
    • C.12    3
    • D.3    12
  28. 以下函数的功能是( )

    ABC(ps)

    char *ps;

    {char *P;

    p=ps;

    while(*p++);

    return(p-ps);

    }

    • A.比较两个字符串的大小
    • B.求字符串的长度
    • C.将字符串ps复制到P中
    • D.以上三种说法都不对
  29. 若有下列类型说明语句:

    char w;int x;float y;double z;

    则表达式w*x+z-y的结果的数据类型是( )

    • A.char
    • B.int
    • C.float
    • D.double
  30. 若有说明语句:int I,;则以下关于x、*x、x[0]、&x[0][0]的描述正确的是( )

    • A.x、*x、x[0]、&x[0][0]均表示元素x[0][0]的地址
    • B.只有x、*x表示元素x[0][0]的地址
    • C.只有x[0]、&x[O]L0]表示元素x[0][0]的地址
    • D.只有&x[0][0]表示元素的地址
  31. 若有以下定义:

    char s[20]=="programming",*ps=s;

    则不能代表字符o的表达式是( )

    • A.*(ps+2)
    • B.s[2]
    • C.ps[2]
    • D.*ps+=2
  32. C语言的基本数据类型包括( )

    • A.字符型和数值型
    • B.字符型和逻辑型
    • c.整型和实型
    • D.指针型和数据型
  33. 已知有以下定义(假定现有计算机字长为16)

    Int a=0x48,b=0xf0;

    • a^b的值为( )
    • A.184
    • B.183
    • C.290
    • D.287
  34. 下列关于C语言的描述正确的是( )

    • A.C语言是面向硬件的高级语言
    • B.C语言是面一种面向对象的程序设计语言
    • C.C语言是一种结构化程序设计语言
    • D.C语言的前身是汇编语言