点击查看:全国自考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月各省自考考试真题及答案汇总
2020年自考报名有疑问、不知如何选择主考院校及专业,立即报考咨询>> |