点击查看:全国自考00342高级语言程序设计历年真题及部分答案汇总
一、单项选择题:本大题共15小题,每小题2分,共30分。在每小题列出的备选项中只有一项是最符合题目要求的,请将其选出 1.C语言的关键字是( ) A.strcpy B.printf C.stdio D.float 2.错误的表达式是( ) A.20%5 B.20/5 C.20.8%5 D.20.8/5 3.设int x=10,y=5;,表达式x++,x+y++的值是( ) A.10 B.11 C.15 D.16 4.设int a;,循环次数为10的语句是( ) A.for(a=0;a=10;a++); B.for(a=0;a==10;a++); C.for(a=0;a<10;a++); D.for(a=0;a<=10;a++); 5.当循环语句while(表达式);结束时,“表达式”的值是( ) A.0 B.1 C.-1 D.非0 6.设int a=1,b=2,c3;,不能将变量c的值赋给变量a和b的表达式是( ) A.a=c,b=c B.a=(b=c++) C.(a=c)||(b=c) D.(a=c)&&(b=c) 7.下列变量定义正确的是( ) A.int a6; B.double -a6; C.float 6a; D.char Ab*; 8.关于函数不正确的说法是( ) A.可以没有返回值 B.可以没有形式参数 C.返回值可以是指针类型 D.一个函数中可以定义另一函数 9.设int a[3][4]={1,2,3,4,5,6};,值为4的数组元素是( ) A.a[0][1] B.a[0][2] C.a[0][3] D.a[1][1] 10.调用递归函数func(1),返回值为3的是( ) A.int func(int n) { if(n<=0) return 0; else return func(n-1)+n; } B.int func(int n) { if(n<=0) return 0; else return func(n-1)+3; } C.int func(int n) { if(n==0) return 0; else return func(n-1)*n; } D.int func(int n) { if(n==0) return 0; else return func(n-1)*3; } 11.设int x=1,y=2;,下列语句错误的是( ) A.x++=y; B.for(x=0;x C.while(x D.if(x 12.不是变量存储类型关键字的是( ) A.auto B.stdio C.static D.register 13.下列二维数组定义正确的是( ) A.char a(10,10); B.chr n=10,a[n][n]; C.#define N 10 char a[N][N]; D.int n; char a[n][n]; 14.设int m=5,*p;,下列语句正确的是( ) A.p=&m; B.p=m; C.*p=&m; D.*p=*m; 15.当文件未结束时,系统函数feof的返回值是( ) A.-1 B.0 C.1 D.非0 二、填空题:本大题共10小题,每小题2分,共20分 11.设int a=11;,表达式a%3+a/4的值是_______。 12.设int x=4,y=2;,表达式(x>>y)+(x<<9)的值是_______。 13.设int s[5]={2,4,6,8},*p=5;,执行语句 printf("%d,%d\n",s[2],*(p+4));后输出结果_______。 14.设 int a;float b=1.9;,执行语句a=(int)b;后变量a和b的值分别是_______。 15.设int n=5;,执行语句 printi("%d\n",n=3*4,n*5,n+1));后输出结果是_______。 16.设int x=2;,执行语句pim("%d",x++);后输出结果是_______。 17.设int a=1,b=2,c3;,表达式a||b-a&&c+!a的值是_______。 18.系统函数 getchar()的功能是_______。 19.设chr s[ ]="\\1234";,执行语句 printi("%d,%d\n",sizeof(s),strlen(s));后输出结果是_______。 110.使用系统函数strcat()时,用到的文件包含命令是_______。 三、程序分析题:本大题共4小题,每小题4分,共16分。阅读下列程序,写出输出结果。 21.#include int main(void){ int i=0; char *Brics[]={"Brazil","Russia","India","China", "South Africa"}; do { printf("%s\n",Brics[i]); i=i+2; }while(i<6); return 0;} 22.#include int main(void){ int x,y=3; for(x=1;x<=10;x++) { if(y>=10) break; if(y%3==2) { y=y+3; continue; } y=y-1; } printf("%d,%d\n",x,y); return 0;} 23.#include int main(void){ char ch='-'; int a=1,b=2; switch(ch) { case '+': a+=b; case '-': a-=b; case '*': a*=b; case '/': a/=b; } printf("%d\n",a); return 0;} 24.#include int main(void){ int a[10]={10,9,8,7,6,5,4,3,2,1},i,j=9,temp; int *p=a; for(i=0i<5;i++) { temp=a[i]; a[i]=a[j]; a[j--]=temp; } for(i=0;i<10;i++) printf("%d ",*p++); printf("\n"); return 0;} 四、程序填充题:本大题共3小题,每小题6分,共18分。请将下列程序横线处缺少的部分补上,使其能正确运行。 31.十个人参加选举,有三个候选人,每人投一票。输出每位候选人的姓名和得票数。#include #include t ypedef struct person{ char name[20]; int count;}PER;int main( void){ int i,j; char NAME[20]; PER leader[3]={{"Li",0},{"Liu",0};{"Wang",0}}; for(i=0;i<_______;i++) /*第一空*/ { scanf("%s",NAME); for(j=0;j<3;j++) if(strcmp(NAME,leader[j]-name)==0) _______; /*第二空*/ } for(i=0;i<3;i++) printf("%s,%d\n",_______,leader[i].count); /*第三空*/ return 0;} 32.键入一串字符,以回车换行符为结束标志,分别统计并输出其中英文字母和数字的个数。#include int main(void){ _______; /*第一空*/ int letter=0,digital=0; while((ch=getchar())!='_______') /*第二空*/ if(ch>='A'&&ch<='z'|| ch="">='a'&&ch<='z') letter++; else if(_______) digital++; /*第三空*/ printf("Letter=%d,Digital=%d\n",letter,digital); return 0;} 33.从键盘为二维数组元素输入数据,计算并输出全部元素之和。#include#define N 5int main(void){ int i,j; float a[N][N],sum=_______; /*第一空*/ fox(i=0;i< return *第三空* printf(?sum='%.3f\n",_______);' } *第二空* sum="sum+_______;" scanf(?%f?,&a[i][j]); { 五、程序设计题:本大题共2小题,每小题8分,共16分。 41.从文本文件old.txt读取字符,将其中的数字字符'0'、'1'、'2'、……'9'分别用英文字母字符'Z'、'Y'、'X'、'W'、'V','U'、'T'、'S'、'R'、'Q'替换,其余字符不变,结果写入文本文件new.txt,并分别将两个文件的内容输出到屏幕。 42.(1)编写函数 int move(int b[],int n, int m),将整型数组b的n个元素循环右移m个位置。 例如:n=10,m=2时,移动前、后数组b中的数据如下图所示。 ![]() (2)编写主函数,从键盘输入数组元素及n和m(0
热点关注:2020年各省自考报名时间及入口 |2019年4月各省自考考试真题及答案汇总
2020年自考报名有疑问、不知如何选择主考院校及专业,立即报考咨询>> |