点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列不属于保留字的是( )
A.default
B.register
C.sruct
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和1
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]={1,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.设char k=′a′; float j=2.0;,执行k+=5/j; printf('%c',k);后,输出结果是( )
A.a
B.b
C.c
D.d
14.下列程序段正确的是( )
A.char s[ ]={′xyz′};
scanf('%s',s);
B.float *p,i;
p=*p+i;
C.char s[5]=′word′;
puts(s);
D.int a[5]={0},*p=a;
*p=*(p+1);
15.关于编译预处理命令,叙述正确的是( )
A.预处理命令都以“#”开头
B.预处理命令必须位于程序的首部
C.预处理命令只能实现宏定义和条件编译的功能
D.每个程序必须在开头使用预处理命令#include
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
11.设float a,b,c;,若a、b和c分别为三角形的三条边长,它们“能构成等边三角形”的逻辑表达式是_______。
12.设int i; float f=3.14;,执行i=(int)f;后,变量f的值是_______。
13.设char s[]='\t\’Name\\Address\n';,s的长度是_______。
14.执行printf('%d\n',3&&2&5);后的结果是_______。
15.算术运算符的优先级比关系运算符的优先级_______。
16.单目运算符的结合性是_______。
17.设int x=1,y=3,z;,执行z=x>y?++x:y++;后,z的值是_______。
18.设int m=3; float n=12.6; char ch=′a′;,若用输入语句实现上述三个变量的初始化结果且键入数据形式为:3,12.6a<回车换行>,则scanf语句应是_______。
19.若定义函数时类型缺省,则该函数默认的类型是_______。
110.设int a[5]={1,3,5,7,9},*p=&a[2];,则++(*p)的值是_______。
三、程序分析题(本大题共4小题,每小题4分,共16分)阅读下列程序,将输出结果写到各题右侧的空白处。
21.void main(){ int color=2; switch(color) { case 1: printf('red\n'); break; case 2: printf('yellow\n'); case 3: printf('blue\n'); }}
22.void main(){ int m,n; for(m=1;m<=3;m++) { for(n=1;n<=2*m-1;n++) printf( '*'); printf('\n'); }}
23.void main(){ float x=3.6; int i; i=x; printf('x=%5.3f, i=%d\n',x,i);}
24.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分)请将下列程序横线处缺少的部分补上,使其能正确运行。
31.从键盘输入10个学生的姓名、性别和成绩,计算并输出这些学生的平均成绩。
32.从键盘输入一串字符(以“?”作为结束标志),保存到文本文件text.txt中。#include 'stdio.h'void main(){ FILE _______; /*第一空*/ char ch; if( (fp=fopen ('text.txt', _______) )==NULL) exit(0); /*第二空*/ while( (ch=getchar( ))!=′?′) fpute (ch, _________); /*第三空*/ fclose(fp);}
33.用递归方法计算学生年龄,已知第一位学生年龄为10岁,其余学生一个比一个大2岁,求第5位学生的年龄。
五、程序设计题(本大题共2小题,每小题8分,共16分)
41.从键盘输入三个整数a、b和c,按照由小到大的顺序输出。
42.(1)编写一函数,将指针变量p1和p2所指向的整数值交换。其中:函数头是void swap (int *p1, int *p2)(2)编写一个主程序,从键盘输入两个整数,调用上述函数实现两个数据的交换并输出。
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总