点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题(本大题共15小题,每小题2分。共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题卡”的相应代码涂黑。错涂、多涂或未涂均无分。 1.C语言的保留字(又称关键字)是( ) A.add B.main C.real D.typedef 2.正确的C语言整型常数是( ) A.3 B.3.0 C.1E0 D.false 3.设int a, b;,表达式a=2, b=5, --a+b的值是( ) A.5 B.6 C.7 D.8 4.设int a=0;,循环次数为无限的语句是( ) A.while(a); B.for(a; a; a); C.for(a; a==0;); D.do{a++;} while(-a); 5.do{…)while(表达式)中“表达式”的类型是( ) A.任意的 B.关系的 C.算术的 D.逻辑的 6.设int a=1, b=2;,能将a的值赋给b的表达式是( ) A.a=b B.b+=a C.a||(b=a) D.a&&(b=a) 7.函数中定义的变量类型可以是( ) A.auto型 B.static型 C.register型 D.以上三种类型 8.关于函数正确的说法是( ) A.函数必须有返回值 B.函数可以嵌套定义 C.返回值可以是指针类型 D.函数必须有形式参数 9.设int s[3] [4]={1,2,3,4,5,6};,值为2的数组元素是( ) A.s[0] [0] B.s[0] [1] C.s[1] [0] D.s[1] [1] 10.下列不是递归函数的是( ) A.int t(int n) { if(n==0) return 0; else return (n-1); } B.int t(int n) { if(n==0) return 0; else return t(n-1); } C.int t(int n) { if(n==0) return 0; else return n+t(n-1); } D.int t(int n) { if(n==0) return 1; else return n*t(n-1); } 11.设float w=0; int x=1, y=2; char z='3';,下列语句错误的是( ) A.switch(x) { case 0: case 1: case 2: default: ; } B.switch(y) { case 0: case 1: case 2: default: ; } C.switch(z) { case 0: case 1: case 2: default: ; } D.switch(w) { case 0: case 1: case 2: default: ; } 12.设char ch=65;,下列语句错误的是( ) A.printf("%f\n", ch); B.printf("%c\n", ch); C.printf("%d\n", ch); D.printf("%x\n", ch); 13.正确定义一维数组的是( ) A.char s(20); B.int n=20; char s[n]; C.#define N 20 char s[N]; D.int n; scanf("%d", &n); int s[n]; 14.设int u=1, *p;,下列语句正确的是( ) A.p=&u; B.p=u; C.&p=u; D.u=&p; 15.当打开文件出现错误时,系统函数fopen( )的返回值是( ) A.1 B.-1 C.非0 D.NULL 二、填空题(本大题共10小题,每小题2分,共20分) 11.设int n=11;,表达式n%5+n%7的值是_______。 12.执行语句printf("%d\n", 8>>2);后的输出结果是_______。 13.设char s[10]= "Olympic";,执行语句printf("%d\n",sizeof(s));后输出结果是_______。 14.三种逻辑运算符的优先级又高到低依次是_______。 15.设float m=8.8; int n=6;,执行语句printf("%d\n", (int)m+n);后输出结果是_______。 16.设struct { int a; float b; } c, *p=&c;,用指针引用成员b的方式是p->b或_______。 17.设int p=1,q=2,r=3;,表达式p>q< p> 18.系统函数int rewind(FILE *fp)的功能是_______。 19.函数调用时参数传递方式除地址传递外,还有_______。 110.使用系统函数getchar( )和putchar( )时,用到的文件包含命令县_______。 三、程序分析题(本大题共4小题。每小题4分,共16分)阅读下列程序,写出输出结果。 21.#include void main(){ int j; char *color[]={"red", "yellow", "blue", "black", "white"}; for( j=0; j<5; j+=2) printf("%s\n", color[j]);} 22.#include void main(){ int i=10, j=0; switch (i%3) { case 0: i--; j++; case 1: --i; ++j; break; default: ++i; j--; } printf("i=%d, j=%d\n", i, j);} 23.#include int i=1;int fun(int j){ return (++i+j);}void main(){ int j; for(j=1; j<=3; j++) printf("%d\n", fun(j));} 24.#include void main(){ int i; char *strp="****"; for(i=0; i<4; i++) printf("%s\n", strp+i);} 四、程序填充题(本大题共3小题,每小题6分,共18分) 31.计算某学生三门课的平均成绩并输出。#include typedef struct student{ char name[20]; float math, physics, chemistry, average;}_______; /*第一空*/void main(){ STU s={"ZhangSan", 88.5, 90.0, 73.0}; s.average=_______; /*第二空*/ printf("平均成绩=%.1f\n",_______); /*第三空*/} 32.键入一串字符,以回车换行符为结束标志,统计并输出其中小写英文字母的个数。#include void main(){ char letter; int sum=_______; /*第一空*/ while((letter=getchar())!='\n') if(_______) sum++; /*第二空*/ printf("小写英文字母个数sum=%d\n",_______); /*第三空*/} 33.从键盘为二维整型数组a输入数据,输出该二维数组的转置b。#include #define M 2#define N 3void main(){ int a[M][N], b[N][M], i, j; printf("二维数组a:\n"); for(i-0; i< printf(?\n?); j++)printf(?%5d?,b[i][j]); i 五、程序设计题(本大题共2小题,每小题8分。共16分) 41.从键盘输入一串字符(以#作为结束标志)显示到屏幕上并写入文本文件ch.txt。 42.(1)编写函数f计算 ![]() 的值。(2)编写主函数,从键盘输入x和n的值,调用函数f计算并输出结果(保留两位小数)。
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总
2020年自考报名有疑问、不知如何选择主考院校及专业,立即报考咨询>> |