《2018年04月自学考试00342《高级语言程序设计(一)》试题.docx》由会员分享,可在线阅读,更多相关《2018年04月自学考试00342《高级语言程序设计(一)》试题.docx(5页珍藏版)》请在优知文库上搜索。
1、2018年4月高等教育自学考试高级语言程序设计(一)试题课程代码:00342一、单项选择题1 .C语言的关键字是A.strcpyB.printfC.stdioD.float2 .错误的表达式是A.20%5B.20/5C.20.85D.20.8/53 .设ihtx=10,y=5;,表达式x+,x+y+的值是A.10B.IlC.15D.164 .设ima;,循环次数为10的语句是A.for(a=0;a=10;a+);B.for(a=0;a=10;a+);C.for(a=0;a10;a+);D.for(a=0;a=10;a+);5 .当循环语句While(表达式);结束时,“表达式”的值是A.0B.
2、1C.-1D.非06 .设inta=l,b=2,c=3;,不能将变量c的值赋给变量a和b的表达式是A.a=c,b=cB.a=(b=c+)C.(a=c)Il(b=c)D.(a=c)&(b=c)7 .下列变量定义正确的是A.inta6;B.doublea6;C.float6a:D.charAb*;8 .关于函数不正确的说法是A.可以没有返回值B.可以没有形式参数C.返回值可以是指针类型D.一个函数中可以定义另一函数9 .设inta34=1,2,345,6;,值为4的数组元素是A.a0lB.a02C.a03D.all10 .调用递归函数func(l),返回值为3的是A. int func(int n
3、) ( if(n=O) return 0; else return func(n- l)+n;)C. int func(int n) (if(n=O) return 0; else retum func(n-l)*n;1H.设intx=l,y=2;,下列语句错误的是 A. x+=y;C. while(xy);B. int func(int n)(if(n=O) retum 0;else return time(n- 1)+3;)D. int func(int n)(if(n=O) return 0;else remm func(n-l)*3;)B. for(x=0;xy;x+);D. iifx
4、y)+(xy)的值是。18 .设ints5=2,4,6,8,*p=s;,执行语句Printfr%d,odn,s,*(P+4);后输出结果19 .设inta;floatb=1.9;,执行语句a=(int)b;后变量a和b的值分别是。20 .设intn=5;,执行语句Printf(%dn”,(n=3*4,n*5,n+l);后输出结果是。21 .设inlx=2;,执行语句Prinlf(%d,X+);后输出结果是。22 .设inia=l,b=2,c=3;,表达式aIlb-a&c+!a的值是。23 .系统函数getchar()的功能是。24 .设CharSU=1234;,执行语句Printf(%d,%d
5、n*sizeof(s),strlen(s);后输出结果.25 .使用系统函数SIrCal()时,用到的文件包含命令是。三、程序分析题阅读下列程序,写出输出结果。26 .#includeintmain(void)(inti=0;char*Brics=Brazil,Russia1,India,China,SouthAfrica);do(printf(%snBricsi);i=i+2;)while(i6);return0;27 .#includeintmain(void)intx,y=3;for(x=1;XV=10;x+)(iffy=1O)break;if(y%3=2)(y=y+3;continue
6、;)y=y-l,Iprintf(,%d,%dn,x,y);return0;)28 .#includeintmain(void)(charch=-inta=l,b=2;switch(ch)(case%,:a+=b;case-,:a-=b;case*:a*=b;break;caseV:a=b;)printf(%dn,a);return0;)29 .#includeintmain(void)(inta10=10,9,8,7,6,5,4,3,2/,i,j=9,temp;int*p=a;for(i=0;i5;i+)(temp=ai;ai=a;aj-=temp;for(i=0;i10;i+)printf(
7、%d”,*p+);printf(n,);returnO;)四、程序填充题请将下列程序横线处缺少的部分利、上,使其能正确运行。30 .十个人参加选举,有三个候选人,每人投一票。输出每位候选人的姓名和得票数。#include#includetypedefstructperson(charname20;intcount;PER;intmain(void)(inti,j;charNAME20;PERleader3=Li,0,Liu,0,Wang,0);for(i=0;i;i+)*第一空*/Iscanf(,%s,NAME);for(j=0u3+)if(strcmp(NAME,leaderj.name)=
8、O);*第二空*/1,for(i=0;i3;i+)Printf(%s,%dW,leaderii.count);*第三空*/return0;)31 .键入一串字符,以回车换行符为结束标志,分别统计并输出其中英文字母和数字的个数。#includeintmain(void)/*第一空*/intIetter=O,digital=;while(ch=getchar()!=r)*第二空*/if(ch=Afech=,a,fech=,z,)letter+;elseif()digital+;*第三空*/printf(Letter=%d,Digital=%dn,letter,digital);return0;)3
9、2 .从键盘为二维数组元素输入数据,计算并输出全部元素之和。#include#defineN5intmain(void)(intij;floataNNl,sum=:*第一空*/for(i=0;iN;i+)for(j=0yNy+)(scanf(%f,feailj);sum=sum+;/*第二空*/)printf(sum=%.3n,);*第三空*/return0;)五、程序设计题33 .从文本文件old.lxl读取字符,将其中的数字字符O、T、2、9分别用英文字母字符Z、Y、WV、IT,T,SR、替换,其余字符不变,结果写入文本文件new.txt,并分别将两个文件的内容输出到屏幕。34 .(1)编写函数intmove(intb,intn,intm),将整型数组b的n个元素循环右移m个位置。例如:n=10,m=2时,移动前、后数组b中的数据如下图所示。移动前:1234567890移动后:9012345678(2)编写主函数,从键盘输入数组元素及n和m(0mvn20)的值,调用move函数,输出移动前后的全部数组元素。