欢迎您访问重庆自考网! 今天是 登录注册 | 免费课程 | 学习中心

重庆自考网

自考热线
当前位置: 网站首页 > 历年真题 >

全国2010年1月自考(课程代码:00342)高级语言程序设计(一)试题参考答案

2018-06-12 13:16来源:重庆自考网 考试必看
全国2010年1月高等教育自学考试
高级语言程序设计(一)试题
课程代码:00342
一、单项选择题(本大题共15小题,每小题2分,共30)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1. 下列不属于保留字的是(      )
A. default                          B. register
C. struct                           D. unsign
2. 下列不能作为常量的是(      )
A. 0582                            B. 0xa5
C. ’\n’                             D. 2.5e-2
3. 设typedef  long  class;,则class是(      )
A. 整型变量                        B. 长整型变量
C. 长整型数据类型的新标识符        D. 新的而非长整型数据类型的标识符
4. 设char c=’A’;int i=1, j;,执行j=!c&&i++;后,i和j的值分别是(      )
A. 1和0                            B. 1和1
C. 2和0                            D. 2和l
5. 设int a;,执行表达式(a=1,2,3),a+1后,a和表达式的值分别是(      )
A. 1和2                            B. 2和3
C. 3和4                            D. 4和5
6. 下列关于函数定义正确的是 (       )
A. fun(int x,y){int z;return z;}
B. void fun(int x,int y){return x+y;}
C. fun(x,y){int x,y;double z;z=x+y;return z;}
D. double fun(int x,int y) {double z;z=x+y;return z;)
7. 下列用户自定义标识符正确的是(        )
A. 4a                     B. b_1
C. -&                     D. *p
8. 下列程序段中循环体执行的次数是(       )
int x=-1;
do
{
x=x*x;
}while(! x);
A. 0                 B. 1             C. 2               D. 无限
9. 实现字符串连接的系统函数名是(         )
A. strcat              B. strcmp        C. strcpy            D. strlen
10. 若实参是一个数组名,在调用函数时,实参向形参传递的是(       )
A. 数组的长度                       B. 数组的首地址
C. 数组每个元素的值                 D. 数组每个元素的地址
11. 设int a[ ][4]={l,2,3,4,5,6,7};,则a[1][3]的值是(         )
A. 0                B. 3          C. 4          D. 7
12. 若定义一个只限本源文件使用的全局变量,则该变量的存储类别是(      )
A. extern            B. register     C. static       D. auto
13. 设chark=’a’;float j=2.0;,执行k+=5/j;printf(“%c”, k);后,输出结果是(      )
A. a               B. b           C. c         D. d
14. 下列程序段正确的是(      )
A. char s[ ]={‘xyz’};               B. float *p,i;
scanf(‘‘%s”,s);                   p=*p+i;
C. char s[5]=‘word’;                D. int a[5]={0},*p=a;
puts(s);                          *p=*(p+1);
15. 关于编译预处理命令,叙述正确的是(       )
A. 预处理命令都以”#”开头
B. 预处理命令必须位于程序的首部
C. 预处理命令只能实现宏定义和条件编译的功能
D. 每个程序必须在开头使用预处理命令#include<stdio. h>
二、填空题(本大题共10小题,每小题2分,共20)
请在每小题的空格中填上正确答案。错填、不填均无分。
16. 设float a,b,c;,若a、b和c分别为三角形的三条边长,它们”能构成等边三角形”的逻辑表达式是                                。
17. 设int i;float f=3.14;,执行i=(int)f;后,变量f的值是                 。
l 8. 设char s[]="\t\’Name\\Address\n";,s的长度是         。
19. 执行printf(“%d\n”,3&&2&5);后的结果是       。
20. 算术运算符的优先级比关系运算符的优先级          。
21. 单目运算符的结合性是                  。
22. 设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是          。
23. 设int m=3;float n=12.6;char ch=’a’;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是                       。
24. 若定义函数时类型缺省,则该函数默认的类型是               。
25. 设int a[5]={l,3,5,7,9},*p=&a[2];,则++(*p)的值是           。
三、程序分析题(本大题共4小题,每小题4分,共16)
阅读下列程序,将输出结果写到各题右侧的空白处。
26.
void main()
{
  int color=2;
  switch(color)
  {
   case 1:printf(“red\n”);break;
   case 2:printf(“yellow\n”);
   case 3:printf(“blue\n”);
  }
}
27.
void main()
{
  int m,n;
  for(m=1;m<=3;m++)
  {
   for(n=1;n<=2*m-1;n++)printf( “*”);
   printf(“\n”);
  }
}
28.
void main()
{
  float x=3.6;
  int i;
  i=x;
  printf("x=%5.3f, i=%d\n",x,i);
}
29.
void main()
{
  int a[2][3]={{1,2,3},{4,5,6}};
  int b[3][2],i,j;
  for(i=0;i<=1;i++)
   {
     for (j=0;j<=2;j++)
     { printf("%5d",a[i][j]);
      b[j][i]=a[i][j];
     }
    printf("\n");
   }
  printf(“array b:\n”);
  for (i=0;i<=2;i++)
   for (j=0;j<=1;j++)
    printf(“%5d”,b[i][j]);
}
四、程序填充题(本大题共3小题,每小题6分,共18)
请将下列程序横线处缺少的部分补上,使其能正确运行。
30. 从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
#define N 10
struct student
{
  char name [20];
  char sex;
  int score;
} stu[N];
void main( )
{
  int i;
  float aver,sum=0;
  for(i=0;i<N;i++)
  { scanf(“%d,%c,%s”,                                 );/*第一空*/
   sum=sum+                 ; /*第二空*/
  }
  aver=                   ; /*第三空*/
  printf(“aver=%6. 2f\n”,aver);
}
31. 从键盘输入一串字符(以”?”作为结束标志),保存到文本文件text. txt中。
#include “stdio.h”
void main()
{
  FILE           ; /*第一空*/
  char ch;
  if( (fp=fopen (“text. Txt”,          ) )==NULL) exit(0); /*第二空*/
  while( (ch=getchar( ))!=’?’) fputc (ch,        ); /*第三空*/
  fclose(fp);
}
32. 用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
递归公式如下:
age(n)= 
int age(int n)
{
  if (n==1) return (         ); /*第一空*/
  else return(            ); /*第二空*/
}
void main()
{
  printf(‘‘%d\n”,         ); /*第三空*/
}
五、程序设计题(本大题共2小题,每小题8分,共16)
33. 从键盘输入三个整数a、b和c,按照由小到大的顺序输出。
 
34. (1)编写一函数,将指针变量pl和p2所指向的整数值交换。
其中:函数头是void swap (int *pl,int *p2)
(2)编写一个主程序,从键盘输入两个整数,调用上述函数实现两个数据的交换并输出。
 
 
参考答案
一、单项选择题
1-5 DACAA  6-10 DBBAB  11-15 ACCDA
二、填空题
16、a+b>c && a+c>b && b+c>a       17、3.14
18、16                            19、0
20、高                            21、自右向左
22、3                             23、scanf("%d,%f%c",&m,&n,&ch);
24、int                           25、6
三、程序分析题
26、yellow
blue
27、*
***
*****
28、x=3.600, i=3
29、    1    2    3
        4    5    6
array b:
        1    4    2    5    3    6
四、程序填充题
30、第1空:&stu[i].score,&stu[i].sex,stu[i].name   第2空:stu[i].score  第3空:sum/N
31、第1空:*fp   第2空:"w"  第3空:fp
32、第1空:10   第2空:age(n-1)+2  第3空:age(5)
五、程序设计题
33、思路:这是3个数的排序。先让a和b比较,如果a>b则交换a和b,经过这次比较之后a为a、b中小的;接着让a和c比较,如果a>c则交换a和c,经过这次比较之后a为三个数中最小的;最后让b和c比较,如果b>c则交换b和c。经过这3次比较和交换就让a、b、c按照由小到大的顺序排列好了。
#include <stdio.h>
void main()
{
    int a,b,c,t;
    scanf("%d%d%d",&a,&b,&c);
    if(a>b)  /*如果a大于b,则交换a和b */
    {
           t=a;
           a=b;
           b=t;
    }
    if(a>c)  /*如果a大于c,则交换a和c */
    {
           t=a;
           a=c;
           c=t;
    }
    if(b>c)  /*如果b大于c,则交换b和c */
    {
           t=b;
           b=c;
           c=t;
    }
    printf("%d,%d,%d",a,b,c);
}
34、思路:本题的函数头已经给出,在函数体中要将p1和p2所指向的整数值交换,其实就是交换(*p1)和(*p2)即可,因为(*p1)表示p1所指的值,(*p2)表示p2所指的值。
在主函数中,要调用swap函数,则传递的参数应该为2个地址,即用来交换它们值的两个变量地址。
#include <stdio.h>
void swap (int *p1,int *p2)
{
       int t;
       t=*p1;
       *p1=*p2;
       *p2=t;
}
void main()
{
    int a,b;
    scanf("%d%d",&a,&b);
    printf("交换前a=%d,b=%d\n",a,b);
    swap(&a,&b);
    printf("交换后a=%d,b=%d\n",a,b);
}
 
自考试题参考答案WORD文档:
全国2010年1月自考(课程代码:00342)高级语言程序设计(一)试题参考答案

重庆自考网声明:
(一) 由于各方面情况的调整与变化,本网所提供的考试信息仅供参考,敬请以权威部门公布的正式信息为准。
(二) 本网注明来源为其他媒体的稿件均为转载稿,免费转载出于非商业性学习目的,版权归原作者所有。如有内容、版权等问题请与本网联系。联系方式:邮件 2293429207@qq.com
自考网校为您量体裁衣,制定个性化网上辅导课程,课程免费试听!
以年份查找历年真题
2018年   4月  10月 
2017年   4月  10月 
2016年   1月  4月  7月  10月 
2015年   1月  4月  7月  10月 
2014年   1月  4月  7月  10月 
2013年   1月  4月  7月  10月 
2012年   1月  4月  7月  10月 
2011年   1月  4月  7月  10月 
2010年   1月  4月  7月  10月 
2009年   1月  4月  7月  10月 
2008年   1月  4月  7月  10月 
2007年   1月  4月  7月  10月 
2006年   1月  4月  7月  10月 
2005年   1月  4月  7月  10月 
2004年   1月  4月  7月  10月 
2003年   1月  4月  7月  10月 
2002年   1月  4月  7月  10月 
2001年   4月  10月 
2000年   4月  10月 
重庆自考网微信群



重庆自考微信交流群

(扫一扫加入)