点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题:本大题共15小题,每小题2分,共30分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出。
1.正确的用户自定义标识符是( )
A.3ab
B.float
C.root-x
D.s_1
2.错误的C语言常数是( )
A.012
B.'abc '
C.0x2f
D.1.2e3
3.下列属于C语言运算符的是( )
A.?:
B.#
C.?=
D.<>
4.表达式1+5==0的值是( )
A.0
B.1
C.5
D.6
5.设 float x;,能正确表达x属于区间(-5,10]的表达式是( )
A.-5
B.-5
C.x>-5&&x<=10
D.!(x>-5)&&(x<=10)
6.设int s=3;,表达式值为0的是( )
A.s/2
B.3-++s
C.(s++)%3
D.s>3?2:5
7.设int a=4,b=5,c;,执行语句c=(a==b)||++a;后,a和c的值分别是( )
A.1,4
B.0,5
C.4,1
D.5,1
8.设int m=0;,语句do{m++;}while(!m);执行的循环次数是( )
A.0
B.1
C.2
D.无限
9.定义数组并初始化正确的是( )
A.int a[]=(2,4,6,8);
B.int *a[3]={2,4,6,8};
C.int b[][3]={2,4,6,8};
D.int b[4][]={2,4,6,8};
10.设int p[5][6];,该数组两个下标的取值范围分别是( )
A.0~4和0~5
B.0~5和0~6
C.1~5和1~6
D.1~4和1~5
11.设 typedef double Q[10];,与语句Q q;等价的是( )
A.double q;
B.double *q;
C.double *q[10];
D.double q[10];
12.设 char strl[10]='World',*p=str;,能正确输出字符串的语句是( )
A.str=puts();
B.putchar(str);
C.printf('%s\n',p);
D.printf('%c\n',*p);
13.下列叙述正确的是( )
A.全局变量和局部变量不能同名
B.程序的执行必须从主函数开始
C.break只能出现在 switch语句中
D.一个函数中只能出现一个 return语句
14.设int b[10],*p=b;,与数组元素b[0]等价的是( )
A.*p
B.p
C.&b
D.b
15.关于结构型说法正确的是( )
A.成员不能为数组
B.结构型不允许嵌套
C.所有成员的类型必须是整型
D.结构型变量占用的内存量是所有成员占用内存量总和
二、填空题:本大题共10小题,每小题2分,共20分。
11.设 float a,b,c,x;,将
的值赋予c的赋值语句是_______。
12.连接两个字符串的系统函数名是_______。
13.静态型和寄存器型的存储类型符分别是_______。
14.条件运算符(?:)的结合性是_______。
15.设int a=12;,表达式a>>2的值是_______。
16.设 float m=1.9,n=0.8;,执行语句 printf('%1.f\n' ,(int)m+n);后输出结果是_______。
17.设int a=2;,表达式a,a+1,a+2的值是_______。
18.设char *q='facebook';,执行语句printf ('%s\n',q+4)后的输出结果是_______。
19.设 char s[ ]='Nobel_Prize\n';,执行语句 printf('%d\n',sizeof(s));,后的输出结果是_______。
110.设FILE *fp;,若fp指向文件尾部,则feof(fp)的返回值是_______。
三、程序分析题:本大题共4小题,每小题4分,共16分。阅读下列程序,写出输出结果。
21.#include int f(int a){ static int s=1; /*静态变量*/ s+=a*2; retum s;}void main(){ printf('f1=%d\n',f(3)); printf('f2=%d\n', f(5));}
22.#include< stdio.h>void main(){ int i; for(i=18;i>0;i--) { if(i%7==0) break; printf(' %5d',i); } printf('\n');}
23.#include void main(){ int i,j,s,a[][3]={{1,2,3},{4,5,6},{7,8,9}}; for(s=0,i=0;i<3;i++) switch (i) { case 1: break; default: for(j=0;j<3;j++) s+=a[i][j]; break; } printf('s=%dn's);}
24.#include struct city{ int num; char name[20]; float temp;}a[]={{1,'Beijing',15.5},{2,'Tianjin',16.2},{3,'Jinan',17.3}},*p=a;void main(){ int i; for(i=0;i<3;i++,p+) printf('%d,%s,%.1fn',(*p).num, p->name, a[i].temp);}
四、程序填充题:本大题共3小题,每小题6分,共18分。请将下列程序横线处缺少的部分补上,使其能正确运行。
31.从键盘输入一串字符(以回车换行符作为结束标志)并写入文本文件note.txt#include< stdio.h>void main(){ FILE *fp; char ch; fp= fopen('note.txt',_______); /*第一空*/ do { ch=getchar(); _______; /*第二空*/ } while(ch!= _______); /*第三空*/ fclose(fp);}
32.利用冒泡排序法实现数组元素的降序排序。#include #define N 10void main(){ int i,j,t,aN]; for( i=0; i for(i=0; i < printf(?%d?,_______); i++)
33.利用递归法,按下列公式计算并输出函数fx的值。
五、程序设计题:本大题共2小题,每小题8分,共16分。
41.从键盘任意输入三个正实数,若能构成三角形,计算并输出三角形的周长;否则输出“No Triangle!”。
42.利用循环结构输出下列乘法表。12 43 6 9……9 18 27 36 …… 81
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总