《中央美术学院历年计算机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、无限循环#死循环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”,co