历年中央美术学院计算机语言C测试卷(八套试卷)及答案

举报
资源描述
中央美术学院计 算 机 语 言C测 试 卷(一)考试时间:【120分钟】总分:【150分】题号一二三四五总分得分-璋-燃-“中耳r-瑟-“疑皆最渺-一、单项选择题(共20题,每题2分,共计40分)()1、按照数的进位制概念,下 列 各 个 数 中 正 确 的 八 进 制 数 是。A、1101B、7081C、1109D、B03A【答案】A【解析】八进制的数字为0 7。()2、以下关于c/c语言指针变量的叙述中,正确的是。A、指针变量可以是全局变量也可以是局部变量B、必须为指针变量与指针所指向的变量分配相同大小的存储空间C、对指针变量进行算术运算是没有意义的D、指针变量必须由动态产生的数据对象来赋值【答案】A【解析】存放地址的变量称为指针变量。指针变量是一种特殊的变量,它不同于一般的变量,一般变量存放的是数据本身,而指针变量存放的是数据的地址。选项A显然是正确的。对于选项B,指针变量和指针所指向的变量存放的内容是不一样的,只要分配够用就行了,不需要分配一样大小的存储空间。对于选项C,指针变量加1便指向下一个存储单元,是有意义的。另外指针变量可以静态地定义。()3、表达式if(!x)中的!x等效于()A、x=0B、x=lC、x!=0D、x!=l【答案】A【解析】表达式if(!x)表示判定x是否为0,即“如果x=0。()4、下 列 程 序 的 输 出 结 果 是。main()(int a=4,b=5,c;if(a b)Ca*b;第1/77页p r i n t f (z,%d,%d,%d nz,,b,a,c);)e l s ec =b /a;p r i n t f (z,%d,%d,%d nz z,b,a,c);)A、4,5,1 2B、2 0C、5,4,2 0D、1 2【答案】c【解析】本题考查i f e l s e语句。第一个i f语句,先判断条件,发现a V b成立,执行下列的复合语句,得c=a*b=2 0,b、a的值不变。()5、以下程序的功能是计算s=l+1 2+1 2 3+1 2 3 4+1 2 3 4 5。4 i n c l u d e m a i n()(i n t t=0,s=0,i;f o r(i=l;i =5;i+)t=i+_ _:s=s+t;)p r i n t f (s=%d n”,s);)则 部分是 oA,tB、t*1 0C、t*1 0 0D、t+1 0【答案】B【解析】1、1 2、1 2 3、1 2 3 4、1 2 3 4 5可以写成 1=0*1 0+1、1 2=1*1 0+2、1 2 3=1 2*1 0+3、1 2 3=1 2 3*1 0+4、1 2 3 4 5=1 2 3 4*1 0+5.按照这种规律后一项可以等于前一项乘以1 0再加上循环变量。这属于循环里面比较难的题目,需要考生找出其数据的内在规律,并转化为计算机语言,基本上都是累加和累积两种。()6、宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个A、单精度数B、双精度数C、常量D、字符串【答案】D【解析】宏定义是最常用的预处理功能之一,它用于将一个标识符定义为一个字符串。这样,在源程序被编译器处理之前,预处理微会将标识符替换成所定义的字符串。hl、第2/77页 ),、以 rrarrn 或 。main()(int x=0,y=0,z=0;if(x=y+z)printf(*);else printf(#);A、输出:#B、输出:*C、可以编译,但不能通过连接,所以不能运行D、有语法错误,不能通过编译【答案】A()8、如 有 说 明:char sl5,s2 7;要给数组s i和s 2整体赋值,下列语句中正确的是A、sl=getchar();s2=getchar();B,scanf(s%s”,si,s2);C、scanf(%c%c”,si,s2);D、gets(si,s2);【答案】C()9、下列c运算符中,优 先 级 最 高 的 是。A、+(双目)B、*(单目)C、=D、*=【答案】B【解析】在题中各选项中,只有选项B是单目运算符,所以它是优先级最高的。()1 0、以下选项中关于c语言常量的叙述错误的是 oA、经常被使用的变量可以定义成常量B、常量分为整型常量、实型常量、字符常量和字符串常量C、所谓常量,是指在程序运行过程中,其值不能被改变的量D、常量可分为数值型常量和非数值型常量【答案】A()1 1、设有定义语句int a=66,77,99 ,则下列对此语句的叙述中错误的是.A、定义了一个名为a的一维数组B、a数组有3个元素C、a数组的元素的下标为1 3D、数组中的每一个元素都是整型【答案】C【解析】a数组元素的下标应为0-2,注意数组的下标从0开始。()1 2、下列关于strstrO函数的描述,错误的是。A 田 午 女 生 弟 M 曳 舛 由 由 杏 阳 出 第 的 曳 舛第3/77页/U J l-l-J H -r -I=?.J J I JB、用于在指定的字符串中查找指定的子字符串C、该函数接收两个字符指针类型的参数D、该函数若查找到子字符串则返回子字符串的指针,否则返回空指针【答案】A【解析】用于在指定的字符串中查找指定的子字符串()1 3、在c语言中,以 下 说 法 不 正 确 的 是。A、在C程序中,整数和实数都能被准确无误地表示出来B、在C程序中,任何一个变量名都代表存储器中的一个位置C、静态变量的生存期与整个程序的运行期相同D、C语言中,任何变量都必须先声明才能进行引用【答案】A【解析】此题考查C语言的基本概念。变量的实质就是在内存中占据一定的存储单元,存储单元里存放的是该变量的值,变量的值可以根据需要进行修改;整数在允许的范围内可以准确的表示出来,但不可能表示无限度的实数。()1 4、以 下 正 确 的 叙 述 是。A、C语言允许m a in函数带形数,且形参个数和形参名均可由用户指定B、C语言允许m a in函数带形参,形参名只能是a r g c和argvC、当m a in函数带有形参时,传给形参的值只能从命令行中得到D、有 说 明:main(int argc,char*argv),则形参a r g c的值必须大于1【答案】C()1 5、有以下程序:void fun(int a,int b,int c)(a=456:b=567;c=678;)main()(int x=10,y=20,z=30;fun(x,y,z);prinlf(%d,%d,%dn”,x,y,z);)输 出 的 结 果 是=A、30,20,10B、10,20,30C、456,567,678D、678,567,456【答案】B()16、在c语言中,while和dowhile循环的主要区别是。A、dowhile的循环体不能是复合语句B、dowhile允许从循环体外转到循环体内C、whi 18的循环体至少被执行一次第4/77页D、do w hi le的循环体至少被执行一次【答案】D【解析】本题考查w hile和do w hile循环的区别。w hile循环的控制出现在循环体之前,只有当w hile后面的表达式的值为非零时,才可能执行循环体:在do w hile构成的循环体中,总是先执行一次循环体,然后再求表达式的值,因此无论表达式的值是否为零,循环体至少要被执行一次。()17、设有如下枚举类型定义:en um lan g uag ebasic=3 ,assembly,ada=1 0 0 ,co bo l,f o r tr an);枚 举 量 f o r tr an 的 值 为。A、4B、7C、1 0 2D、1 0 3【答案】C()1 8、下面程序的输出结果是 omain()(ex ter n in t a;a+=3;f ();p r in tf (dn ,a);in t a=2;vo id f()pri nt fa*a);a+=a;)A、2 5 1 0B、2 5&2 5C、1 0&2 5D、2 5&1 0【答案】D()1 9、下列程序的运行结果是 omain()in t a6,i;f o r(i=2;i 3)%5;p r in tf ai);)A、2 3 2 3B、1 2 1 2C、3 2 3 2第5/77页D、2 2 2 2【答案】c【解析】本题程序的功能是对数组元素赋值,难点是对表达式4*(i-2*(i 3)%5 的分析。()20、有以程序in clude 4 in clude typ edef str uct(char n ame9;char sex;f lo at sco r e2;stu;vo id f(stu a)stu b二 zhao ,8 5.0,9 0.0;in t i;str cp y(a.n ame,b.n ame);a.sex=b.sex;f o r (i=0;ib?a:cd?c:d 的值是。【答案】43、c语言三个循环语句分别while语句、语句和 语句。【答案】do-while语句,for语句 4、设有如下宏定义ttdefine MYSWAP(z,x,y)x=y;y=z;)以下程序段通过宏调用实现变量a、b内容交换,请填空。float a=5,b=16,c;MYSW AP(_,a,b);【答案】c5、在c语言中,按函数在程序中出现的位置可分为以下三种调用方式:函数语句、函数表达式和函数【答案】参数得分评卷人四、程序分析题(共4题,每题5分,共计20分)1、以下程序可求出所有的水仙花数。(水仙花数是三位正数,其各位数字的立方和等于该正数,第7/77页如:4 0 7=4*4*4+0*0*0+7*7*7)mai n()(i nt x,y,z,a8,m,i=0;pri ntf(z,th e speci al numbers are:n);for(1 _;m+)x=m/10 0;y=2 _;z=m%10;i f(m=x*x*x+y*y*y+z*z*z)(3;i+;)for(x=0;x i;x+)pri ntf(%6 d/z,ax);)【答案】mmai n()i nt a(10 ,*p,*s;for(p=a;p-a 10;p+)scanf(%d,p);for(p=a,s=a;p-a*s)s=p;pri ntf(m a x=/d n ,);)【答案】*s 3、请补充函数proc(),该函数的功能是:把从主函数中输入的由数字字符组成的字符串转换成一个无符号长整数,并且逆序输出。结果由函数返回。例如,输入:12 3 4 56 7,结果输出:7 6 54 3 2 1。注意:部分源程序给出如下。请勿改动mai n。函数和其他函数中的任何内容,仅在函数proc()的横线上填人所编写的若干表达式或语句。试题程序:#i nclude unsi gned long proc(ch ar*str)(unsi gned long t=0:i nt k:i nt i=0;i=str|en(str);for(;i =0;i)k=;t 二 ;)return t;)v oi d mai n()(ch ar str8;sy stem(cls);pri ntf(enter a stri ng made up of O to 9 di gi tal ch aracter:nz,);gets(str);pri ntf(th e stri ng,i s:%s n,str);i f(strlen(str)8)pri ntf(th e stri ng i s too tong!);第8/77页else pri ntf(th e result:%lu proc(str);)【答案】_ i _ _slri 0 t*10+k4、c程序是由函数构成的,其中必须有且只有一个 函数。【答案】主#mai n#mai n()得分评卷人五、编 程 题(共3题,每题分值不等,共计50分)1、编写程序:企业发放的奖金根据利润提成。利润(D 低于或等于10 万元时,奖金可提10%;利润高于10 万元,低于2 0 万元时,低于10 万元的部分按10%提成,高于10 万元的部分,可提成7.5%;2 0
展开阅读全文
温馨提示:
金锄头文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
相关资源
正为您匹配相似的精品文档
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新


电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号