全国2009年1月自学考试高级语言程序设计(一)试题

发布日期:2019-11-26 编辑整理:西藏自考网 【字体:

课程代码:00342

一、单项选择题(本大题共15小题,每小题2分,共30分)

在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。

1. 设int a,b;,则表达式(b=2, a=5, b++, a+b)的值是(      )

A. 2                                                            B. 5

C. 7                                                           D. 8

2. 设int a=7; float x=2.5, y=4.7;, 则表达式x+3%(int)(x+y)/4的值是(      )

A. 2.75                                                       B. 3.5

C. 2.5                                                        D. 0.0

3. 设char cl; , 则cl中为小写英文字母字符的正确表达式为(      )

A. ’a’<=c1=’z’                                            B. (cl>=’a’)&&(cl<=’z’)

C. (cl>=a)&&(c1<=z)                        D. (’a’<=c1)| |(’z’>=c1)

4. 一维数组a的正确说明语句为(      )

A. int a(10);                                           B. int n=10, a[n];

C. int n;                                                    D. #define SIZE 10

scanf(″%d″,&n);                               int a[SIZE];

int a[n];

5. 已知字符’A’的ASCII码值是65,且char cl=’A’, c2=’D’;

则执行语句printf(″%d,%d\n″,cl,c2-2);后的输出结果是(      )

A. A, D                                                       B. A, B

C. 65, 68                                                    D. 65, 66

6. 正确的条件语句为(      )

A. if((a=b;)>0)t=a;                             B. if((a=b)>0)then t=a;

C. if(a>b)t=a;                                       D. if(a<b={a++;b++});

7. 若有下列程序段:

int x=l, y=2;x=x+y;y=x-y;x=x-y;

则执行后x和y的值分别为(      )

A. 1和2                                                     B. 2和2

C. 2和1                                                    D. 1和1

8. 设int k,a,b;unsigned long w=5;double x=1.42;

则不符合类型要求的表达式是(      )

A. x%(-3)                                              B. w+=2

C. k=(a=2,b=3)                                       D. a+=(b=4)*(a=3)

9. 设int a=3,b=4;,则printf(‘‘%d,%d,”(a,b),(b,a));的输出结果是(      )

A. 3,4                                                         B. 4,3

C. 3,4,4,3                                                   D. 4,3,3,4

10. 设int i=l, k=2;, 则错误的循环语句是(      )

A. for(i=0,k=-1;i++,k++);                     B. for(;k-1;i++);

C. for(i=1,k=4;k--;i++);                      D. for(;k--;);

11. 设typedef struct{int a;char s[10];} TYPE;

TYPE u1;

则printf(‘‘%d\n”,sizeof(u1));的输出结果是(      )

A. 2                                                            B. 12

C. 14                                                          D. 16

12. 设char sl[ ]=“string1”,s2[8], *s3, *s4=“string2”;,则对系统函数strcpy的错误调用是(     )

A. strcpy(s1, “string1”);                          B. strcpy(s4, “string2”);

C. strcpy(“string2”,s2);                           D. strcpy(s3, “string1”);

13. 正确的数组定义及初始化的是(      )

A. char a[10]={“string”};                           B. int a[5]={0,1,2,3,4,5};

C. char a={“string”};                                 D. int a[ ]={x,y,z};

14. 在循环体中用来强制继续循环的语句是(      )

A. break                                                      B. continue

C. exit                                                        D. return

15. 在C语言中,标准的输入设备stdin是指(      )

A. 软盘                                                      B. 硬盘

C. 显示器                                                  D. 键盘

二、填空题(本大题共10小题,每小题2,20分)

请在每小题的空格中填上正确答案。错填、不填均无分。

16.设有宏定义#define X 10-4,则printf(“%d\n”,6*X);的输出结果是___________。

17.设double x:,则表达式x=5,(x+5)/2的值是___________。

18.能正确表述“2<x<3或x<-10”的C语言表达式是___________。

19.设有循环语句for(i=-1;i<=5;i++)i++;,则其循环体执行的次数是___________。

20.调用系统函数strcmp(),必须在程序的开头写上一条文件包含命令是___________。

21.设char s[15]=(“programming”);,则printf(“%d\n”,strlen(s));的结果是___________。

22.设float a[3][4]={{7.5,8.2},{2.3,3.7,1.2},{1.0,3.4}};,则a[2][1]的值是___________。

23.设char a[20]={‘‘Switch”},*p=a:,则*(p+2)的值是___________。

24.在函数间传递数据时,函数的形参和调用时的实参都是数组,传递方式为___________。

25.若文件型指针fp已指向某文件的末尾,则函数feof(fp)的返回值是___________。

三、程序分析题(本大题共4小题,每小题4分,共16分)

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

26.main()

{ int x=1,a=0,b=0;

switch(x)

{

case 0: a++; break;

case l: b++;

case 2: a++; b++; break;

case 3: a++; b++;

}

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

27.main()

{ int a=10,b=20,*p1=&a,*p2=&b;

      *p1=20;*p2=40;

  if(*p2>*p1)*p1=*p2;

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

}

28.f(int b)

    { static int y=3;

      return(b+y++);

    }

    main()

    { int a=2,i,k;

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

        printf(″%d\n″,f(a++));

    }

29. int funs(int n)

   { if(n= =1 ||n= =2) return 2;

    else return n+funs(n-1);

   }

   main()

   { int x=4;

     printf(″S=%d\n″,funs(x));

 }

四、程序填充题(本大题共3小题,每小题6分,共18分)

请将下列程序横线处缺少的部分补上,使其能正确运行。

30. 从键盘输入10个整数,用“冒泡排序法”由小到大进行排序。

   #define N 10

   main()

   { int i,j,t,a[N];

for(i=0;i<N;i++) scanf(“%d’’,&a[i]);

for(i=0;i<N-1;i++)

for(j=N-1;j>=i+1;______ )    /*第一空*/

if(a[j]<a[j-1])

{ t=a[j];________;a[j-1]=t;}      /*第二空*/

for(i=0;i<N;i++)printf(″%5d″, _______);     /*第三空*/

printf(″\n″);

}

31. 统计文本文件file.dat的行数(提示:以’\n’作为每行的结束)。

    #include<stdio.h>

    #include<stdlib.h>

    main()

    { int lines=_________;              /*第一空*/

      char ch;

      FILE *fp;

      fp=fopen(″file.dat″,″r″);

      while(_______)                  /*第二空*/

      { ch=fgetc(fp);

        if (ch _____ ’\n’) lines++:      /*第三空*/

      }

      printf(″Lines=%d\n″,lines);

      fclose(fp);

    }

32. 从键盘输入10名学生的姓名和数学、英语及C语言的成绩,计算并输出其总成绩和平均成绩。

    typedef struct

    { char name[20];

      int math,english,C;

      float sum,aver;     /* 总成绩和平均成绩 */

    }STU;

     main()

     { STU st[10],*p;

       int i:

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

       { printf(″Input name:″);

         scanf(″%s″,______);      /*第一空*/

         printf(″Input 3 score: ″);

         scanf(″%d,%d,%d″,&st[i].math,&st[i].english,&st[i].C);

       }

       for(p=st;p<st+10:p++)

       { p->______=p->math+p->english+p->C;      /*第二空*/

         p->______=p->sum/3;         /*第三空*/

         printf(″name=%s,sum=%5.1f,aver=%5.1f\n″, p->name, p->sum, p->aver);

       }

     }

五、程序设计题(本大题共2小题,每小题8分,共16分)

33.输入实数x,按下列公式计算并输出x和y的值(小数点后保留两位)。

34.(1)编写一个计算摄氏(C)到华氏(F)转换的函数。函数头是:float temp(float c)

计算公式:F=

(2)编写主函数从键盘输入摄氏温度的值,调用上述函数输出摄氏及华氏温度的值(小数点后保留两位)。

以上是“全国2009年1月自学考试高级语言程序设计(一)试题”的全部内容,关于更多西藏自考历年真题,请关注《西藏自考网微信公众号》或者点击在线咨询 >>

关注西藏自考网微信公众号

西藏自考网学习课程中心


西藏自考网声明:


1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。


2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。


西藏自考便捷服务

微信交流群

考生交流群
自考生交流,答疑解惑