点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。未涂、错涂或多涂均无分。
1.正确的用户自定义标识符是( )
A.x-y
B.2x
C.sizeof
D.Main
2.设int a=5, b, 6;,正确的赋值语句是( )
A.b=a%6.8;
B.a+=b+=8;
C.++(a+b);
D.a+b=9;
3.设int a=3, b=4, c;,执行语句c=(a>b)?--a:b++;后,c的值是( )
A.2
B.3
C.4
D.5
4.表达式4.8-1/2+5%3的值是( )
A.6.8
B.5.3
C.4.8
D.3.5
5.设int a=1, b=6;,执行表达式--a||(b=8)后,a和b的值分别是( )
A.0,6
B.0,8
C.1,6
D.1,8
6.正确的整型常数是( )
A.0
B.0.0
C.0E0
D.1.123
7.设int x=7, *p=&x;,表达式的值为7的是( )
A.P
B.*p
C.&x
D.*x
8.设float x, y, z;,函数调用语句fun(z, ((x, y), x+z));中参数的个数是( )
A.4
B.3
C.2
D.1
9.设int a[]={1, 2, 3, 4, 5}, i=2;,其值为4的数组元素是( )
A.a[0]
B.a[4]
C.a[i-1]
D.a[a[i]]
10.下列叙述正确的是( )
A.for语句中的循环体至少被执行一次
B.while语句中的循环体至少被执行一次
C.continue与break在循环语句中的作用相同
D.switch语句中case后可以不出现break语句
11.设char str[10]= 'Computer';,执行prinff('%d\n',sizeof(str));,后输出结果是( )
A.8
B.9
C.10
D.11
12.定义数组并初始化正确的是( )
A.int a[]={0, 1, 2, 3};
B.int a[2]={{3, 4},{5, 6}};
C.int b[2][]={2, 3, 4, 5, 6, 7, 8, 9};
D.int b[2][4]={{1, 2, 4, 5}, {2}, {3,4}};
13.设char s[20]= 'World', t[20]= 'Asia';,执行strcat(t,s); printf('%s, %d\n', t ,strlen(t));,后的输出结果是( )
A.Asia,4
B.World,5
C.WorldAsia,9
D.AsiaWorld,9
14.设typedef int ARRAY[10];,与ARRAY a, b;等价的是( )
A.int a, b;
B.int a[10], b[10];
C.int a[10], b;
D.int a, b[10];
15.表示“回车换行”的转义字符是( )
A.'\n'
B.'\0'
C.'\\'
D.'\t'
二、填空题(本大题共10小题,每小题2分,共20分)
11.执行语句printf('%d\n', 4&&5||6); 后的输出结果是_________。
12.设int n=10;,执行语句printf('%o,%x\n', n, n); 后的输出结果是_________。
13.
的C语言表达式是_________。
14.运算符+=、++和+中优先级最高的是_________。
15.设int a=2, b=5;,执行语句a%=10-b;后,a的值是_________。
16.系统函数pew()应使用的文件包含命令是_________。
17.关系表达式2<3<=4的值是_________。
18.设char ch=′b′;,执行语句printf('%c,%d\n', ch-32,ch);后的输出结果是_________。
19.设int=2, y=3;,执行语句printf('%d,%d\n', x++,++y);后的输出结果是_________。
110.将常数2.718定义为符号常量E的宏定义命令是__________。
三、程序分析题(本大题共4小题,每小题4分,共16分)阅读下列程序。将输出结果写到答题卡的相应位置。
21.#include void main(){ int year 2015, month=2; switch(month) { case 2: if(year%4==0&&year%100!=0||year%400==0) printf('day=29\n'); else printf( 'day=28\n'); break; case 6: case 9: case 11: printi('day=30\n'); break; default: printf('day=31\n'); }}
22.#include void f (int x, int y, int *z){ *z-=x+y; }void main(){ int p=7, q=8, r=6; f(p, g, &r); printf('p=%d, q=%d, r=%d\n', p, q, r);}
23.#include int x=1; /*全局变量*/int fx(int p){ x+=p++; return p;}void main(){ int y=1; x++; printf('x=%d, fx=%d\n', x, fx(y));}
24.#includeint sum(int n) /*递归函数*/{ if(n==1) return 1; else return n+sum(n-1);}void main(){ printf('sum=%d\n', sum(10)); }
四、程序填充题(本大题共3小题,每小题6分,共18分)请将下列程序横线处缺少的部分补上,使其能正确运行。
31.从键盘输入整数n(1≤n<10),分别计算并输出1!,2!,…,n!。
#include
long int fac(__________)/*第一空*/
{static int c=1;
c*=m; return (c);
}
void main()
{int i, n;
scanf('%d',__________);/*第二空*/
if(n>=1&&n<10)
for(i=1; i< __________); i, printf(?%d!='9%ld\n','>
else printf('Input Error! \n');
}
32.将5tch0名学生的姓名和成绩由键盘输入,计算并输出平均成绩。
#include
#define N 50
struct student
{
char name[20];
float score;
};
void main()
{struct student s(N];
int i;
float average=__________;/*第一空*/
fon(i=0; i<>
{scanf('%s%f', s[i].name, &s(i]. core);
averger+=__________;/*第二空*/
}
average=__________;/*第三空*/
printf('average=%7.2f\n', average);
}
33.将文本文件r.txt中的字符逐一读出并显示在屏幕上。
#include
#include
void main()
{
FILE *fp;
char ch;
if((fp=fopen ('r.txt',__________))==NULL)/*第一空*/
{printf('can't open file!\n'); exit(0);}
printf('读文件并显示:\n');
while(!feof(fp))
{ch=fgetc(fp);
printf('%c',__________);/*第二空制*/
}
printf('\n');
flose(__________);/*第三空*/
}
五、程序设计题(本大题共2小题,每小题8分,共16分)
41.从键盘输入一个非负整数n,若为奇数,输出'Odd';若为偶数,输出'Even'。
42.利用循环结构输出以下图形。
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总