中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx

上传人:李司机 文档编号:6951138 上传时间:2024-03-26 格式:DOCX 页数:69 大小:134.94KB
返回 下载 相关 举报
中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx_第1页
第1页 / 共69页
中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx_第2页
第2页 / 共69页
中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx_第3页
第3页 / 共69页
中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx_第4页
第4页 / 共69页
中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx_第5页
第5页 / 共69页
点击查看更多>>
资源描述

《中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx》由会员分享,可在线阅读,更多相关《中央美术学院历年计算机C语言考试试卷(含六卷)含答案.docx(69页珍藏版)》请在三一办公上搜索。

1、中央美术学院历年计算机C语言考试试卷(一)一、单项选择题(共20题,每小题2分,共40分)1、如果将布尔常量值true赋值给一个整型变量,则整型变量的值为OA、0B、-1C、 TrueD、 False2、运行下述程序段后,i值为4的是OA、inti=l,j=0;B、 inti=l,j=l;I=j=(i=3)+);i+=i+=2;C、inti=0,j=0;D、inti=0,j=l;15(i=2,i+(j=2);(j=l)?i+=3:i=2;3、在嵌套使用if语句时,c语言规定else总是一。A、和之前与其具有相同缩进位置的if配对B、和之前与其最近的if配对C、和之前与其最近的且不带else的i

2、f配对D、和之前的第一个if配对4、若i为整型变量,则以下循环语句的循环次数是一.for(i=2;i-0;)printf(%c,i一);A、无限次B、0次C、1次D、2次5、若已定义实参数组inta34=2,4,6,8,10;则在被调用函数f的下述定义中,对形参数组b定义正确的选项是Ayf(intb6)B、f(b)intb4;C、f(intb3);D、f(b)intb45;6、若有定义语句:inta410,*p,*q4;且0V=iV4,则错误的赋值是OA、p=aB、qi=aiC、 p=aiD、 p=&a217、下列选项中,能正确定义数组的语句是oA、 intnumO.2008;B、intnum

3、;C、 intN=2008;intnumN;D、 #defineN2008;intnumN;8、以下叙述中错误的是OA、用户所定义的标识符允许使用关键字B、用户所定义的标识符应尽量做到见名知意C、用户所定义的标识符必须以字母或下划线开头D、用户定义的标识符中,大、小写字母代表不同标识9、下面关于编译预处理命令,正确的是oAn#definecharCHARB、 #DefineE0.0000034C、defineFALSE0D、defineDIM2610、阅读下列程序段:chars18=abook!”;printf(,%.4s11,s);其输出结果为OA、 abook!B、 abookC、aboD

4、、a11、c语言中,若未说明函数的类型,则系统默认该函数的类型是Anfloat型Balong型C、 int型D、 double型12、己知字符a的ascii码为97,执行下列语句的输出是A、98,bB、语法不合法C、98,99D、98,c13、int(*p)6;它的含义为cA、具有6个元素的一维数组B、定义了一个指向具有6个元素的一维数组的行指针变量C、指向整型指针变量D、指向6个整数中的一个的地址14、以下程序的输出结果是Ostructhar(intx,y;structhar*p;h2;main()h0.x=l;h0.y=2;hl.x=3;hl.y=4;h0.p=&hl;hl.p=h;pri

5、ntf(,%d%dn,(h0.p)-x,(hl.p)-y);A、12B、23C、14D、3215、下列程序的执行结果是ttincludemain()(inta,b,c;a=b=2;c=(a+)-1;printf(,z%d,%d”,a,c);c+=-a+(+b);printf(%d,%d”,a,c);)A、3,14,1B、3,14,2C、2,04,1D、2,14,116、下列语句哪些不属于循环语句?A、forB、 whileC、 dowhileD、if17、设有以下语句typedefstructtt(charc;inta4;)cin;则下面叙述中正确的是Oa、可以用定义结构体变量B、TT是Str

6、UCt类型的变量C、可以用CIN定义结构体变量D、CIN是StrUetTT类型的变量18、下述程序的运行结果是o4includevoidfun(intx)(putchar(,0,+(x%10);fun(x10);)main()(printf(,n,);fun(1234);A、4321B、321C、21D、119、以下叙述中正确的是oA、不能用字符串常量对字符数组名进行整体赋值操作B、字符串常量HeIlo会被隐含处理成一个无名字符型数组,它有5个元素C、charStr7=String!;在语法上是合法的,运行也是安全的D、char*5;5=卜1。110;与(Str;Str=HelIo”;效果是一

7、样的20、以下叙述中正确的是。A、即使是同类型的结构体变量,也不能进行整体赋值B、结构体变量的地址不能作为实参传给函数C、结构体数组名不能作为实参传给函数D、结构体中可以含有指向本结构体的指针成员二、填空题(共10题,每小题2分,共20分)1、已知charStrihappy!”,则StrIen(Str)的值为两种。2、C程序中的变量按其定义位置及作用域可分为3、在C语言中,逻辑运算符中的M称为4、设a=3,b=2,c=l,则abc的值为。5、执行下列的程序段后,正确的结果是。inti=5;while(i=1)i一;Printf(%c,i);6、以下程序的运行结果是0inti=0;main()i

8、nti=5;reset(i2);printf(,i=%dnz,i);reset(i=i2);printf(zzi=%d11z,i);reset(i2);printf(,i=%dnz,i);workover(i);printf(,zi=%d11z,i);)workover(inti)i=(i%i)*(i*i)(2*i)+4);printfi=%dnz,i);returni;reset(inti)(i=i=2?5:0;returni;7、若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输此请写出完整的的输出语句o8、在C语言中,以作为字符串结束标志。

9、9、程序运行结果是ovoidswap(inta2)(intt;t=a0;a0=al;al=t;)voidmain()(intx2=5,8;swap(x);printf(,0=%d,xl=%dn”,x0,xl);)10、请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:1234567,结果输出:76543210注意:部分源程序给出如下。请勿改动IIIain()函数和其他函数中的任何内容,仅在函数ProC()的横线上填人所编写的若干表达式或语句。试题程序:includeunsignedlongproc(

10、char*str)(unsignedlongt=0:intk:inti=0;i=strIen(str);for(;i=0;i)k=;t=;)returnt;)voidmain()(charstr8;system(,clszz);printf(,enterastringmadeupof0to,9digitalcharacter:n);gets(str);printf(z,thestring,is:%sn”,str);if(strlen(str)8)printf(,thestringistootong!,);elseprintf(z,theresult:%lun,?,proc(str);)三、编程

11、题(共3题,共40分)1、在1500中,找出能同时满足用3除余2,用5除余3,用7除余2的所有整数。(本题10分)2、编写程序:利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。(本题14分)3、编写程序:用结构体数组,学生信息由学号、姓名,成绩组成,数据如下:201513135157张三90D使用结构体数组,将学生的数据按成绩从高到低排序显示到屏幕上2)将学生中不及格学生的姓名显示出来3)写一个函数,获取成绩低于平均分的学生记录并返回低于平均分的学生人数(本题16分)一、单项选择题1、B2、3、4、5、6、7、8、9、BCBBADAD参考答案【解析】无参宏定义的一般格式:#def

12、ine标识符语言符号字符串,其中:“define”为宏定义命令;”标识符为所定义的宏名,通常用大写字母表示,以便于与变量区别;“语言符号字符串”可以是常数、表达式、格式串(格式串是用双引号括起来的字符串)等,选项ABC错误,选项D正确;本题答案为Do10、C【解析】abook!在字符数组中是按单个字符存储的,包括空格,.4s是输出前四个字符。1112、1314、15、CDBDA【解析】本题主要考查自加运算符(+、一)的使用。前缀变量“+i、-i”,在使用i之前,先使i的值加1或者减L再使用此时的表达式的值参与运算:后缀变量“i+、,先使用此时的表达式的值参与运算,在使用i之后,再使i的值加1或

13、者减Io题中计算表达式c=(a+)-1时先使用a的值进行计算,结果为c=2T=l,然后将a的值加L即执行完此语句后a的值是3;表达式c+=-a+(+b)等价于c=c+(-a+)+(+b),c=l+(-3)+3=l,此时a=4,b=3o1617、1819DDAA【解析】字符数组在定义时可以用字符串赋初值,其后就不可以再用字符串常量进行赋值。答案选择A。20、D【解析】同类型的结构体变量可以进行整体赋值。结构体变量的地址可以作为实参传递给函数。结构体数组ing可以作为实参传递给函数。结构体成员可以包含指向本结构体的指针成员。本题答案为D选项。二、填空题1、62、全局变量和局部变量3、逻辑与4、15

14、、无限循环#死循环6、i=5i=2i=2i=0i=27、printf(,za=%d,b=%dz,a,b);8、0,9、x0=8,xl=510-istri,0,t*10+k三、编程题1、includevoidmain()(inti,count=0;for(i=l;i=500;i+)if(i%3=2)&(i%5=3)&(i%7=2)(printf(%8d”,i);count+;)printfCn共有d个!n”,count);)2、includeintmain()inti=5;voidpalin(intn);printf(请输入5个字符40:40);palin(i);printf(n);)voidp

15、alin(n)intn;(charnext;if(n=l)next=getchar();Printf(相反顺序输出结果40:40);putchar(next);elsenext=getchar();palin(nl);putchar(next);)3、includedefineNUM3structstudent(char*sno=newchar20;char*name=newchar20;intscore;boolfail=false;);voidStuSort(student*stu)(studenttmp;for(inti=0;iNUM;i+)(for(intj=0;jNUM;j+)if(

16、stuj.scorestui.score)tmp.name=stuj.name;tmp.sno=stuj.sno;tmp.score=stuj.score;stuj.name=stui.name;stuj.sno=stui.sno;stuj.score=stui.score;stui.name=tmp.name;stui.sno=tmp.sno;stui.score=tmp.score;for(inti=0;iNUM;i+)(printf(/%s%s%dnz,stui.sno,stui.name,stui.score);voidStuFail(student*stu)(intnumOfStu=

17、0;for(inti=0;iNUM;i+)(if(stui.fail=true)(printf(z/%sz,stui.name);)else(numOfStu+;)if(numOfStu=NUM)Printf(%sn”,nofail);voidStuAvg(student*stu)(intStuScore=O;doubleStuAvg=O;intent=O;for(inti=O;iNUM;i+)(StuScore+=stui.score;)StuAvg=StuScore/NUM;for(inti=O;iNUM;i+)(if(stui.scorestuAvg)(ent+;)Printf(%dn”

18、,ent);)intmain()(student*stu=newstudentNUM;for(inti=O;iNUM;+i)(Printf(输入学号:);SCanf(%s”,stui.sno);Printf(输入姓名:);scanfstui.name);Printf(输入功课成绩:);scanf(zz%dz,&stui.score);)StuSort(stu);StuFail(stu);StuAvg(stu);deletestu;stu-NULL;returnO;中央美术学院历年计算机C语言考试试卷(二)一、单项选择题(共20题,每小题2分,共40分)1、计算机内部运算使用的数是。A、十进制数

19、B、十六进制数C、二进制数D、八进制数2、设inta=12,则执行完语句a+=a-=a*a后,a的值是A、552B、264C、144D、-2643、有以下程序includemain()(inta=5,b=4,c=3,d=2;if(abc)printf(%dn”,d);elseif(c-1=d)=1)printf(,z%dn,z,d+1);elseprintf(%dn”,d+2);)执行后输出的结果是。A、2B、3C、4D、编译时有错,无结果4、有以下程序:#includemain()inta=l,b=2;for(;a12;a+)b+=a*2;a+=3;)printf(,%d,%dn”,b,a)

20、;)程序运行后的输出结果是。A、32,13B、46,10C、72,13D、72,105、c语言规定,函数返回值的类型是由。A、return语句中的表达式类型所决定B、调用该函数时的主调函数类型所决定C、调用该函数时系统临时决定D、在定义该函数时所指定的函数类型决定6、设有如下定义:strucksk(inta;floatb;data;int*p;若要使P指向data中的a域,正确的赋值语句是。A、p=&a;B、p=data.a;C、p=fedata.a;D、*p=data.a;7、定义如下变量和数组:intk,a33=1,2,3,4,5,6,7,8,9);则下面语句的输出结果是。for(k=0;

21、k3;k+)printf%dak2-k);A、357B、369C、159D、1478、以下是正确c语言标识符的是cA、_3B、#3C、&3D、-39、宏定义用于将一个标识符定义为一个A、常量B、字符串C、整数D、长整数10、有以下程序includevoidf(charp10,intn)/*字符串从小到大排序*/(chart10;inti,j;for(i=0;inl;i+)for(j=i+l;j0)(strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t);)main()(charp510:abc,aabdfg,abbd,dcdbe,cd;f(p,5);printf(/%d

22、nz,strlen(p0);)程序运行后的输出结果是OA、2B、4C、6D、311、以下叙述正确的是。A、在对一个C程序进行编译的过程中,可发现注释中的拼写错误B、在C程序中,main函数必须位于程序的最前面C、C语言本身没有输入输出语句D、C程序的每行中只能写一条语句12、下列关于指针变量的描述,不正确的是oA、在没有对指针变量赋值时,指针变量的值是不确定的B、同类指针类型可以进行相减操作C、在使用没有赋值的指针变量时,不会出现任何问题D、可以通过指针变量来取得它指向的变量值13、下面函数调用语句含有实参的个数为ofunc(expl,exp2),(exp3,exp4,exp5);A、1B、2

23、C、3D、514、设有如下说明typedefstructstlonga;intb;charc2;)new;则下面叙述中正确的是oA、以上的说明形式非法B、ST是一个结构体类型C、NEW是一个结构体类型D、NEW是一个结构体变量15、下面程序段的运行结果是.intn=0;while(n+l;k-)switch(k)case 1:case 2:case O:case 4:case 3:case 5:case7:s+:break;case6:break;s+=2:break;printf(,zs=%dzz,s);A、s=3B、s=4C、s=5D、无输出结果17、以下scanf函数调用语句中不正确的是

24、structpupil(charname20;intage;intsex;)pup5,*p=pup;pup0. name); upO. age); p-age);fe(p-sex);A、 SCanfB、 SCanf(%c,C、SCanfD、SCanf(%c,18、有以下程序:intf(intn);main()(inta=3,s;s=f(a);s=s+f(a);printf(,z%dkn,z,s);)intf(intn)staticinta=l;n+=a+;returnn;程序运行后的输出结果是OA、7B、8C、9D、1019有说明语句inta45;则a2+3表示。A、a数组行下标为2、列下标为

25、3的元素的地址B、a数组行下标为2、列下标为3的元素的值C、a数组第2行的首地址D、a数组第3行的首地址20、程序中有下面的说明和定义structabcintX;chary;structabcsi,s2;则会发生的情况是OA、编译出错B、程序将顺利编译、连接、执行C、能顺利通过编译、连接、但不能执行D、能顺利通过编译、但连接出错二、填空题(共10题,每小题2分,共20分)1、在C语言中,关系运算符中的小于等于表示为.2、设a=5,b=2,则表达式”!a+b的值是一。3、执行下面程序段后,k值是Ok=l;n=263;dok*=n%10;n=l;while(n);4、设y为int型变量,请写出描述

26、“y是奇数”的表达式。5、结构化程序设计的3种基本结构是:结构、选择结构、循环结构,这三种基本结构构成了复杂的c语言程序。6、下面程序的功能是用一辗转相除法Il求两个正整数的最大公约数。请分析程序填空。#includemain()(intr,m,n;SCanf(%d%d”,&m,&n);if(mn)1;r=m%n;while(r)(m=n;n=r;r=2;Printf(%dn”,n);)7、字符串函数用于把一个字符串写入指定的磁盘文件中。8、局部变量的作用域是从定义的位置起,到结束止。9、以下程序的执行结果是0ftincludevoidmain()(charc=,a,+10;printf(,c

27、=%cnz,c);10、以下程序的功能是调用函数fun计算:In=I-2+3-4+9T0,并输出结果。请填空。intfun(intn)intm=0,f=l,i;for(i=l;i=d的值为逻辑值1,所以该条件成立。4、A【解析】在这段程序中变量a的初值等于1,变量b的初值等于2。第1次执行for循环语句后,变量a的值等于4,变量b的值等于4。第2次执行for循环后,变量a等于8,变量b的值等于14。第3次执行for循环后,变量a等于12,变量b的值等于32。第4次执行for循环后,变量a等于13,不满足循环的条件,这时退出for循环,此时变量b的值依然等于32。因而程序输出变量a,b的值分别为

28、13,32o5、D6、D7、A8、A9、B【解析】宏定义用于将一个标识符定义为一个字符串10、C11C12、C【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用该指针可能导致系统崩溃。13B【解析】本题考套函数调用时的实参形式。这里有一个逗号运算的考查,(a,b)的运算结果为b,因而只有一个值,结合func的调用形式,可以知道实参的个数只有2个。14C【解析】typedef关键字用于声明一个新的类型名代替已有的类型名。本题中如果没有用typedef进行定义的话,则structST为结构体类型,现在用typedef定义后,相当于用NEW代表了structST这一结构体类型,故N

29、EW为结构体类型。15、B16B17、C18、C19、A20、A二、填空题1、=2、23、364、y%2!=0;5、顺序6、1】r=m,m=n,n=r【2】m%n7、fputsftfputs()8、函数9、 c=k010、-f或f*T或T*f或f*(-l)或(-1)*F,fun(l或三、编程题1、main()(inti=l,sum=0;while(sum=750)(sum=sumi;i=i+2;)Printf(“n%d,sum);)2、#includeftincludettincludeintmain()(inti,j,k,TLen,PLen,count=0;charT50,P10;Print

30、f(请输入两个字符串,以回车隔开,母串在前,子串在后:n);gets(T);gets(P);TLen=Strlen(T);PLen=Strlen(P);for(i=0;i=TLen-PLen;i+)(for(j=0,k=i;jPLen三j=Tk;j+,k+)9if(j=PLen)count+;)printf(,%dnzz,count);system(z,pausezz);return0;)3、structstudentcharname30;floatscore5;);intmain(intargc,constchar*argv)(structstudenta=zhangsan”,20,30,4

31、0,50,60;floatsum=0;定义一个5科分数之和变量floatAverageScore=0;定义一个平均分变量for(inti=0;iy&y!=0);C、if(x0)-elsey+;D、if(y12?15:67?8:9)的值为0A、9B、8C、15D、17、已知3个字符为:a、X和5,按它们的ascii码值升序排序,结果是A、5aXB、a5XC、Xa5D、5Xa8、执行下面程序段,给x、y赋值时,不能作为数据分隔符的是。intX,y;scanf(%d%C,&x,&y);A、空格B、 Tab键C、回车D、逗号9、判断两个字符串是否相等,正确的表达方式是A、 sl=s2B、 sl=s2C

32、、strcmp(si,s2)=0D、strcmp(si,s2)=010、下列对字符数组进行初始化的语句中,是正确的。A、charS1=abed”;8、 chars23=wxyz”;C、chars33=4a,x,iyf!D、chars33=xyz,mnp;11、以下()不是C语言中用于结构化程序设计的三种基本结构之一。A、顺序结构B、选择结构C、递归结构D、循环结构12、在位运算中,操作数每左移一位,其结果相当于A、操作数乘以2B、操作数除以2C、操作数除以4D、操作数乘以413、设有语句:x=inputbox(输入数值,0,示例)程序运行后,如果从键盘上输人数值10并按回车键,则下列叙述中正确

33、的是oA、变量X的值是数值10B、在InPUtBoX对话框标题栏中显示的是“示例”C、0是默认值D、变量X的值是字符串“10”14、以下程序的输出结果是ftincludestructst(intx;int*y;)intdt4=10,20,30,40);structstaa4=50,&dt0,60,&dt0,60,&dt0,60,&dt0,;main()(P=aa;printf(%dn”,+(p-x);)A、10B、11C、51D、6015、有以下程序main()(inta,b,d=25;a=d10%9;b=a&(-l);printf(,%d,%d”,a,b);)程序运行后的输出结果是。A、6,

34、1B、2,1C、6,0D、2,016、下列WhiIe循环,将执行inti=4;while(-i)Printf(%d”,i);A、3次B、4次C、O次D、无限次17、当定义一个结构体变量时,系统为它分配的内存空间是A、结构中一个成员所需的内存容量B、结构中第一个成员所需的内存容量C、结构体中占内存容量最大者所需的容量D、结构中各成员所需内存容量之和18、有以下程序main()(inta=l,b=2,m=0,n=0,k;k=(n=ba)(m=afloatc3)4)20、以下选项中,能定义m为合法的结构体变量的是A、 typedefstructabcdoublea;charb;m;B、 struct

35、doublea;charb;m;C、 structABCdoublea;charb;ABCm;D、 typedefABCdoublea;charb;ABCm;二、填空题(共10题,每小题2分,共20分)1、C语句分为大类。2、若有语句CIoUbIex=17;inty;,当执行y=(int)(x5)%2;之后y的值是O3、C语言的源程序拓展名为()编译后生成()链接后生成()4、C程序的运行需要经过和链接两步进行。5、下列程序段的运行结果是omain()(intm=l,t=l;for(;)(m=m+t;t+;if(m9)break;printf(%dn”,m);)6、以下程序的输出结果是O#in

36、cludedefineM5#defineNM+Mmain()(intk;K=N*N*5;printf(%dn”,k);)7、在C语言中,从参数的形式看,函数可以分为两类:无参函数和函数。8、使文件指针重新定位到文件读写的首地址的函数是o9、以下程序功能是:借助指针变量找出数组元素中的最大值及其元素的下标值。请填空。#includemain()(inta10,*p,*s;for(p=a;p-a10;p+)scanf(,%d,p);for(p=a,s=a;p-a*s)s=;printf(index=%dn,sa);)10、下面程序段的运行结果是oi=l;a=0;s=l;do(a=a+s*i;s=-

37、s;i+;)while(i=10);printf(a=%d,a);三、编程题(共3题,共40分)1、编写程序:对10个数进行排序。(本题10分)2、编写函数voiddel(char*s,charc),其功能是在s所指字符串中删除与变量C相同的字符,并设计主函数实现:(1)从键盘输入字符串和指定被删除的字符;(2)调用del()函数实现删除操作;(3)输出删除后的字符串。说明:不允许使用除gets和PUtS之外的任何字符串处理库函数。(本题14分)3、编写程序:从键盘输入n(nV10)个学生的学号(学号为4位的整数,从100O开始)、成绩并存入结构数组中,查找并输出成绩最高的学生信息。输入输出示例:括号内为说明,无需输入输出输入样例:3(n=3)100O85100190100275输出样例:100190(本题16分)参考答案一、单项选择题1、B2、

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号