点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。
1.下列运算符的操作数必须是整型的是( )
A./
B.!
C.%
D.=
2.可用于C语言用户标识符的是( )
A.void,define
B.2c,DO
C.For,-abc
D.as_b3,_123
3.函数调用语句fun(fun(a,a+b,a+c),(a,b,c),5);中函数fun的参数个数是( )
A.3
B.4
C.5
D.6
4.设int a=0,b=1;,下列语句错误的是( )
A.a=b=10;
B.a++;
C.b+=a;
D.(a+b)++;
5.能正确表达数学关系式0≤x<20的C语言表达式是( )
A.0<=x<20
B.x>=0||x<20
C.x>=0&&x<20
D.!(x<=0)&&x<20
6.正确的C语言字符常量是( )
A.'\\'
B.'65'
C.'A'
D.'/n'
7.设char s[ ]='1234567';,执行printf('%d,%d\n', strlen(s),sizeof(s));后的输出结果是( )
A.7,7
B.7,8
C.8,7
D.8,8
8.设int a[ ]={12,34,56,78}, *p=a;,下列表达式的值为56的是( )
A.p[1+2]
B.*(a+2)
C.a[3]
D.*(p+3)
9.对二维数组正确定义并初始化的是( )
A.int a[ ][3]={1,2,3,4,5,6};
B.int a[3][3]=(1,2,3,4,5,6);
C.int a[3][ ]={{1,2,3},{4,5,6}};
D.int a[3][3]={a,b,c,d,e,f,g};
10.设double x=5.168;,执行printf('%5.3f\n', (int)(x*10+0.5)/10.0); 后的输出结果是( )
A.5.218
B.5.210
C.5.200
D.5.168
11.关于函数,下列叙述正确的是( )
A.一个函数中可以定义其它的函数
B.C程序总是从main()函数开始执行
C.main()函数也可以被其它函数调用
D.一个C程序可以有多个main()函数
12.设char ch='a';,执行printf('%d,%c\n', ch,ch+2);后的输出结果是( )
A.97,c
B.97,99
C.a,c
D.a,a+2
13.下列叙述正确的是( )
A.continue语句的作用是跳出循环体
B.while循环语句的循环体至少执行一次
C.do-while循环语句的循环体至少执行一次
D.switch语句中的每个case语句组必须含有break语句
14.设struct{ int x;int y; }m[2]={7,3,2,1};,执行printf('%d\n',m[0].x/m[1].x*m[0].y);后的输出结果是( )
A.10.5
B.9
C.8.0
D.7
15.设int a=1,b=2,c=3;,执行表达式(a>b)&&(c=1)后c的值是( )
A.0
B.1
C.2
D.3
二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。错填、不填均无分。
11.表达式3!=6的值是_______。
12.设int a=15;,执行printf('%d\n', a>>2);后的输出结果是_______。
13.设char *str='People';,执行printf('%s\n', str+4);后的输出结果是_______。
14.执行下面程序段,输出“FIFA”的行数是_______。int i,j;for(i=0; i<5; i++)for(j=1; j<>
15.
的C语言表达式是_______。
16.设int year=2010,days;,执行days=year%4==0&&year%100!=0|| year%400==0?29:28;后days的值是________。
17.设int x=10,y=3;,执行printf('%d,%d\n', x--,++y);后的输出结果是_______。
18.在C语言中,形参和实参的传递方式分为地址传递和_______。
19.使用系统函数pow( )时,在程序开始应包含的预处理命令是_______。
110.在C语言中,文件分为二进制文件和_______。
三、程序分析题(本大题共4小题,每小题4分,共16分)阅读下列程序,将输出结果写到各题右侧的空白处。
21.
22.#include void fun(int *a, int *b, int x, int y){ *a=x+y; *b=x-y;}void main (){ int c=8,d=4; fun (&c, &d, 5, 10); printf('%d,%d\n', c,d);}
23.#include int fun(int x){ int p; if(x==1) return 2; else p=x-fun (x-2); return p;}void main (){ printf('%d\n',fun (9)); }
24.#include int a=10;void f(){ int a=30; printf ('%d,', a);}void main(){ f (); printf ('%d\n', a);}
四、程序填充题(本大题共3小题,每小题6分,共18分)请将下列程序横线处缺少的部分补上,使其能正确运行。
31.将数组a中元素按下图循环左移一位并输出。
32.计算并输出1!+2!+3!+4!+5!的值。#include int f (int a){ static int c=1; c=c*a; return__________; /*第一空*/}void main (){ int i, k; k=__________; /*第二空*/ for (i=2; i<=5; i++) k+=f(__________); /*第三空*/ printf ('%d\n', k);}
33.将文本文件fin.dat中的数字字符找出并写入文本文件fnum.dat中。#include void main (){ char ch; FILE *fin, *fnum; fin=fopen ('fin.dat', __________); /*第一空*/ fnum=fopen ('fnum.dat', 'w'); while(!feof(__________)) /*第二空*/ { ch=fgetc(fin); if(__________)fputc (ch, fnum); /*第三空*/ } fclose (fin); fclose(fnum);}
五、程序设计题(本大题共2小题,每小题8分,共16分)
41.从键盘输入代表平面上某点的横坐标x和纵坐标y,输出x和y的值并按下列要求输出相应的标志。当x>0且y>0,属于第一象限,输出标志“A”当x<0且y>0,属于第二象限,输出标志“B”当x<0且y<0,属于第三象限,输出标志“C”当x>0且y<0,属于第四象限,输出标志“D”当x=0或y=0,不属于任何象限,输出标志“E”
42.从键盘输入一个4行5列的二维整型数组,输出其每一行的最小值。
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总