2005年下半年全国自考(高级语言程序设计)真题试卷

自考 责任编辑:彭雅倩 2020-03-30

一、1.单项选择题

0.  下列不属于C语言保留字的是(  )

A.char
B.while
C.typedef
D.look

1. 下列关于C语言的叙述错误的是( )

A.英文字母大小写不加以区分
B.不同类型的变量可以出现在同一个表达式中
C.在赋值表达式中赋值号两边的类型可以不同
D.某些运算符在不同的场合可以有不同的含义

2. 下列转义字符中错误的是(  )

A."00"
B."14"
C."x111"
D."2"

3. 执行语句printf("%x",-1);后输出结果是(  )

A.-1
B.#NAME?
C.1
D.ffff

4. 设float a=2,b=4,c=3;,以下C语言表达式与代数式计算结果不一致的是(  )

A.(a+b)*c/2
B.(1/2)*(a+b)*c
C.(a+b)*c*1/2
D.c/2*(a+b)

5. 设int a=10,b=20,c=30;条件表达式a<b? a=5:c的值是(  )

A.5
B.10
C.20
D.30

6. 设inta=9,b=6,c;,执行语句c=a/b+0.8;后c的值是(  )

A.1
B.1.8
C.2
D.2.3

7. 执行语for(i=1;i++<4;);后i的值是(  )

A.3
B.4
C.5
D.不确定

8. 在位运算中,操作数左移一位,其结果相当于操作数(  )

A.乘以2
B.除以2
C.乘以4
D.除以4

9. 使用语句scanf("a=%f,b=%f",&a,&b);输入变量a、b的值(口代表空格),正确的是(  )

A.125,2.4
B.1.25口2.4
C.a=1.25,b= 2.4
D.a=1.25口b=2.4

10. 下列说法中错误的是(  )

A.C语言中循环嵌套的层数没有限定
B.C语言中的内部函数只能在本文件中被调用
C.用typedef语句定义的数据类型名称必须是大写字母
D.C语言中的continue语句,可以通过改变程序的结构而省略

11. 设char s[10],*p=s;,下列语句中错误的是(  )

A.p=s+5;
B.s=p+s;
C.s[2]=p[4];
D.*p=s[0];

12. 设enum week{sun,mon,tue,wed,thu,fri,sat}day;,正确的赋值语句是(  )

A.sun=0;
B.sun=day;
C.mon=sun+1;
D.day=sun;

13. 若用数组名作为函数调用时的实参,则实际上传递给形参的是(  )

A.数组的第一个元素值
B.数组元素的个数
C.数组中全部元素的值
D.数组首地址

14. 下列错误的是(  )

A.char s[]="China";
B.char s[10]={"China"};
C.char s[10];s="China";
D.char s[10]={"c","h","i","n","a"};

15. 在C语言中,有值函数的数据类型是指(  )

A.函数形式参数的数据类型
B.函数返回值的数据类型
C.调用该函数时的实参的数据类型
D.任意指定的数据类型

16. 设  struct  {short a;  char b;  float c;  }cs;  则sizeof(cs)的值是(  )

A.4
B.5
C.6
D.7

17. 设   intx[]={1,2,3,4,5,6,7,8,9,0),*p=x,k;  且0≤k<10,则对数组元素x[k]的错误引用是(  )

A.p+k
B.*(x+k)
C.x[p-x+k]
D.*(&x[k])

18. 设  #define N 3  #define Y(n)((N+1)*n)  则表达式2*(N+Y(54+1))的值是(  )

A.42
B.48
C.54
D.出错

19. 关于主函数的形式参数,下列说法正确的是(  )

A.可以有两个
B.类型可以是实型
C.不可以由用户自己定义名字
D.是在程序编译时获得实际值

二、2.填空题

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

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

2. 若未指定局部变量的存储类型,则其隐含的存储类型是______。

3. 在执行循环结构或switch结构时,能够立即退出该结构的语句是______。

4. 设int a=-3,b=7,c=-1;则执行(a==0)&&(a=a%b<b/c);后变量a的值是______。

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

6. 设int a=100,*p1=&a,**p2=&p1;,则表达式**p2的值是______。

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

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

9. 函数调用时,若形参是一个变量,而对应的实参是一个有确定值的表达式,则函数参数的传递方式是______传递。

三、3.程序分析题

0. mian()
  {int i;
  for(i=1;i<3;i++)f(i);
  }
  f(int j)
  {static int a=100;
  int k=1;
  ++k;
  printf("%d ",j+a+k);
  a-=2;
  }

1. #include<stdio.h>
  long fun(int n)
  {long s;
  if(n<=2)s=2;
  else s=n+fun(n-1);
  printf("%d ",s);
  return s;
  }
  main()
  {
  fun(5);
  printf(" ");
  }

2. struct porb
  {char*name;
  int age;
  }s[]={"LiHua",18,"WangXin",25,"LiuGuo",21};
  #define N(sizeof(s)/sizeof(s[0]))
  void f(struct porb a[],int n);
  main()
  {
  f(s,N);
  }
  void f(struct porb a[],int n)
  {
  int i;
  for(i=0;i<n;i++)
  printf("%s:d ",a[i].name,a[i].age);
  }

3. void LE(int*a,int b)
  {
  int x=*a:
  printf("%d %d ",*a,b);
  *a=b;b=x;
  }
  main()
  {
  int x=10,y=25;
  LE(&x,y);
  printf("%d %d ",x,y);
  }

4. /*设从键盘输入:420<回车>*/
  #include<stdio.h>
  main()
  {char c;
  while((c=getchar())!=" ")
  switch(C-"0")
  {case 0:
  case 1:putchar(c+2);
  case 2:putchar(c+3);break;
  case 3:putchar(c+4);
  default:putchar(c+1);break;
  }
  printf(" ");
  }

四、4.程序填充题

0. 一个三位整数(100~999),若各位数的立方和等于该数自身,则称其为"水仙花数"(如:153=13+53+33),找出所有的这种数。
  main()
  {
  int n,a,b,c;/*n、a、b和C分别为三位数自身及其个位、十位和百位*/
  for(c=1;c<=9;c++)
  for(b=0;b<=9;b++)
  for(______;a++)/*第一空*/
  {
  n=______;/*第二空*/
  if(a*a*a+b*b*b+e*c*c==______)/*第三空*/
  printf("%d ",n);
  }
  }

1. 输入一个数字(范围在0~9之间,若不在此范围内显示输入错),输出对应的英文单词(Zero,One,Two,……,Nine)。
  main()
  {
  int i;
  char *digit[10]={"Zero","One","Two","Three","Four",
  "Five","Six","Seven","Eight","Nine"};
  scanf("%d",______);/*第一空*/
  printf("%d→",i);
  if(______)/*第二空*/
  printf("%s ",digit[______]);/*第三空 */
  else printf("Input error! ");
  }

2. 将一个文本文件(ma.dat)拷贝到另一个文本文件(niu.dat)中。
  #include<stdio.h>
  main()
  {
  FILE*ma,*niu;
  mazfopen("ma.dat",______);/*第一空*/
  niu=fopen("niu.dat","w");
  while(!feof(ma))fputc(fgetc(ma),______);/*第二空*/
  fclose(niu);______;/*第三空*/
  }

五、5.程序设计题

0. 输入某学生的数学(math)、英语(english)和C语言(c)的成绩,输出该学生这三门课的成绩、总成绩(sum)和平均成绩(aver)。

1. 按下列要求分别写出两个函数(不用写主函数)(1)计算n!
  计算公式:n!=1×2×3×……×n
 
  函数首部为long cmk(int m,int k)

2. 在一个二维数组(定义为int a[5][5];)中形成并按下列形式输出矩阵各元素的值。
  1 0 0 0 0
  2 1 0 0 0
  3 2 1 0 0
  4 3 2 1 0
  5 4 3 2 1

更多资料
更多课程
更多真题
温馨提示:因考试政策、内容不断变化与调整,本网站提供的以上信息仅供参考,如有异议,请考生以权威部门公布的内容为准!

自考备考资料免费领取

去领取

距离2024 自考考试

还有
  • 0
  • 0
  • 0
自考报名

每年3月、8月

领准考证

考前7天

考试信息

每年4月、10月

成绩查询

考后45天

专注在线职业教育23年

项目管理

信息系统项目管理师

厂商认证

信息系统项目管理师

信息系统项目管理师