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、本站内容部分信息均来源网络收集整理或来源出处标注为其它媒体的稿件转载,免费转载出于非商业性学习目的,版权归原作者所有,如有内容与版权问题等请与本站联系。联系邮箱:812379481@qq.com