2018年4月自考高级语言程序设计(一)真题
一、单项选择题:本大题共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
安徽省自考网声明:
1、由于各方面情况的调整与变化,本网提供的考试信息仅供参考,考试信息以省考试院及院校官方发布的信息为准。
2、本网信息来源为其他媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:952056566@qq.com