中国戏曲学院历年C语言程序设计期末含答案解析.docx
《中国戏曲学院历年C语言程序设计期末含答案解析.docx》由会员分享,可在线阅读,更多相关《中国戏曲学院历年C语言程序设计期末含答案解析.docx(50页珍藏版)》请在课桌文档上搜索。
1、中国戏曲学院历年C语言程序设计期末(一)考试方式:【闭卷】考试时间:【90分钟】总分:【100分】一、单项选择题(共20题,每小题2分,共40分)1、下列关于标识符的说法中错误的是OA、合法的标识符是由字母、数字和下划线组成B、C语言的标识符中,大写字母和小写字母被认为是两个不同的字符C、C语言的标识符可以分为三类,即关键字、预定义标识符和用户标识符D、用户标识符与关键字不同时,程序在执行时将给出出错信息【答案】D【解析】考查对于标识符的掌握情况。解题要点用户标识符与关键字相同时,程序在编译过程中将给出出错信息。错解分析选项D)应该改为用户标识符与关键字相同,程序在编译时将给出出错信息。考点链
2、接合法的标识符第一个字符必须为字母或下划线。2、下列语句序列执行后,x的值是_ointa=3,b=4,x=5;if(+a-b)x=+a*x;A、35B、25C、20D、5【答案】B3、执行下列程序后,变量a,b,e的值分别是._oint-5,y=4;inta,b,e;a=(一x=y+)?x;+y;b=+x;c=y;A、 a=5,b-5,C二5B、 a=4,b=5,c=5C、 a=5,b=6,c=5D、a=l,b=5,06【答案】B4、能正确表示a和b同时为正或同时为负的逻辑表达式是oA、(a=0Ilb=0)&(a0Ilb=0&b=0)&(a0&b0)&(a+bO【答案】D5、有以下程序:#in
3、cludemain()inti=5;do(if(i%3=l)if(i%5=2)printf(n*%dw,i);break;)i+;)while(i!=0);printf(,11n);程序的运行结果是OA、*7B、*3*5C、*5D、 *2*6【答案】A【解析】本题考查的是break语句。doWhiIe循环是“先执行,后判断“,所以无论条件如何,它都至少会执行一遍。程序首先初始化变量i为5,然后进入doWhiIe循环体,首先判断(i%3=l),因为5%3=2,所以if条件不满足,跳过下面的if语句,执行i+,i变为6。第1遍循环结束,判断(i!=0)为真,继续循环。现在i%3=6%3=0,所以i
4、f语句还是不被执行,继续i+,i变为7,仍然满足(i!=0),继续循环。第3遍循环i%3=7%3=l,满足条件(i%3=l),继续判断条件i%5=2成立,即输出*7,然后执行break语句跳出循环。6、以下正确的说法是0A、实参和与其对应的形参各占用独立的存储单元B、实参和与其对应的形参共用一个存储单元C、只有当实参和与其对应的形参同名时才共用存储单元D、型参是虚拟的,函数在没有被调用时,不占用存储单元【答案】D【解析】形参在个数和类型上要与实参匹配,形参在未被调用之前,不占用存储单元。7、以下不合法的用户标识符是oA、j2_KEYB、DoubleC、4D.D、_8_【答案】C8、要定义整型数
5、组x,使之包括初值为0的三个元素,下列语句中错误的是A、 intx3=0,O,0;B、intx=0;C、staticintx3=0;D、intx=【答案】D【解析】选项D中整型数组X的第一个元素是NULL不是0,故选D。9、以下叙述中错误的是oA、C语句必须以分号结束B、复合语句在语法上被看作一条语句C、空语句出现在任何位置都不会影响程序运行D、赋值表达式末尾加分号就构成赋值语句【答案】C10、C语言中,下列不合法的字符串常量是OA、”12,8、 y=C、nnD、,ABCDx6dw【答案】B11、设有如下定义:Char*aa2=abcc,abed,则以下说法中正确的是A、aa数组中元素的值分别
6、是,bccTjABCD;B、aa是指针变量,它指向含有两个数组元素的字符型一维数组C、aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址D、aa数组的两个元素中各自存放了字符a和A的地址【答案】C【解析】aa数组被定义为字符型指针数组,有两个元素,分别存放字符串abed和ABCD”的首地址。12、C语言中函数返回值的类型决定于A、return语句中的表达式类型B、调用函数的主调函数类型C、调用、函数时临时类型D、定义函数时所指定的函数类型【答案】D【解析】函数在定义时已经可以指定其函数类型,则函数返回值类型就是该类型。13、若已定义:inta9,*p=a;并在以后的语句中未改变P
7、的值,不能表示al地址的表达式为()oA、p+1B、a+1Cna+D、+p【答案】C14、给出以下定义:charx=wabcdefgn;chary=a,b,c,d,e,f,g;则正确的叙述为A、数组X和数组y等价B、数组X和数组y的长度相同C、数组X的长度大于数组y的长度D、数组X的长度小于数组y的长度【答案】C15、有以下程序:main()(charx=wstringH;x0=0;xl=,0,;x2=,0,;printf(,%d%dn,sizeof(x),strlen(x);)程序运行后的输出结果是OA、61B、70C、63D、71【答案】B16、判断关键字*不是关键字。A、intB、 ex
8、ternC、 breakD、 main【答案】C17、下面定义结构变量的语句中错误的是OA、 structstudentintnum;charname20;s;B、 structintnum;charname20;s;C、 structstudentintnum;charname20;;structstudents;D、 structstudentintnum;charname20;);students;【答案】D18、以下程序的输出结果是Omain()charc=,z,;printf(,%cm,c25);)A、aB、zC、z-25D、y【答案】A19、inta10;给数组a的所有元素分别赋值
9、为1、2、3、的语句是A、for(i=l;ill;i+)ai=i;B、for(i=l;ill;i+)ai-l=i;C、for(i=l;ill;i+)ai+l=i;D、for(i=l;ill;i+)a0=l;【答案】B20、若有以下说明语句:structstudentintnum;charname;floatscore;stu;则下面的叙述不正确的是:()A、StrUCt是结构体类型的关键字B、structstudent是用户定义的结构体类型C、num,SCore都是结构体成员名D、StU是用户定义的结构体类型名【答案】D二、判断题(共10题,每小题2分,共20分)()1、C语言中SiZeOf为
10、运算符。【答案正确()2、表达式语句和表达式没有什么区别。【答案】错误()3、break语句不能够单独使用,只能用于循环语句和SWitCh语句【答案】正确()4、如果for的循环体语句中没有使用COntinUe语句,则以下for语句和While语句等价。for(表达式1;表达式2;表达式3)for的循环体语句表达式1;while(表达式2)(for的循环体语句;表达式3;【答案】正确()5、在标准C语言中,字符串是以0结束的,故字符串的长度也包括,0,。【答案】错误()6、当函数定义在后、调用在先时,vc+允许省略函数声明。【答案】错误()7、在程序设计中,一组具有相同数据类型的变量集合称为数
11、组。【答案】正确()8、tc中函数调用时,函数参数求值顺序是从右到左的。【答案】错误()9、数组初始化的常见方式有三种:直接对数组中的所有元素赋值、只对数组中的一部分元素赋值、对数组全部元素赋值但不指定长度。【答案】正确【解析】数组初始化的常见的方式有三种,具体如下:1、直接对数组中的所有元素赋值2、只对数组中的一部分元素赋值3、对数组全部元素赋值,但不指定长度()10、当一个C语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。【答案】错误三、编程题(共3题,共40分).1、编写程序:求07所能组成的奇数个数。比如:1位数为奇数的个数42位数为奇数的个数283位数为奇数的个数
12、224(本题10分)【答案】#includeintmain(intagrc,char*agrv)longsum=4,s=4;SUln的初始值为4表示,只有一位数字组成的奇数个数为4个i11tj;for(j=2;j=8;j+)(printf(,%d位数为奇数的个数ldn,j-l,s);if(j=2)s*=7;elses*=8;sum+=s;)Printf(%d位数为奇数的个数ldn,j-l,s);Printf(奇数的总个数为:%ldnw,sum);/system(,pause);return0;)2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为
13、结束输入的标志)。注意:部分源程序给出如下。请勿改动main()函数和其他函数中的任何内容,仅在函数Prc)C()的花括号中填人所编写的若干语句。试题程序:char*proc(char(*a)81,intnum)()voidmain()(charss1081,*max;intn,i=0;Printf(输入若干个字符串:);gets(ssi);puts(ssi);whiIe(!strcmp(ssi,w*n)=0)(i+;gets(ssei);puts(ssi);)n=i;max=proe(ss,n);printf(,nmax=%snn,max);(本题14分)【答案】char*proc(char
14、(*a)81,intm)(char*max;inti=0:max=a0:for(i=0;im;i+)if(strlen(max)StrIen(ai)找出最长的字符串max=ai;returnmax;返回最长字符串的地址)3、输入n个朋友的信息,包括姓名、生日、电话号码,本题要求编写程序,按照年龄从大到小的顺序依次输出通讯录。题目保证所有人的生日均不相同。输入格式:输入第一行给出正整数n随后n行,每行按照“姓名生日电话号码”的格式给出一位朋友的信息,其中“姓名”是长度不超过10的英文字母组成的字符串,“生日”是yyyymmdd格式的日期,“电话号码”是不超过17位的数字及+、-组成的字符串。输出
15、格式:按照年龄从大到小输出朋友的信息,格式同输出。输入样例:3zhang1985040313912345678+86-0571-8801844813609876543+86-0571-8801844813609876543wang19821020qian19840619输出样例:wang19821020qian19840619zhang1985040313912345678(本题16分)【答案】#includestructmessage(charnamel30;charname230;charname330;doubleprice;);structmessaged10;intmain()(in
16、tN;scanf(,%dr,&N);inti,j;for(i=0;iN;i+)scanf(,%s%s%s,di.namel,di.name2,di.name3);scanf(w%lfw,di.price);intt,r;doublemax,min;max=min=d0.price;for(j=0;jdj.price)(min=dj.price;t=j;if(maxdj.price)(max=dj.price;r=j;printf(n%.21f,%s%s%sn,max,dr.namel,dr.name2,dr.name3);printf(,%.21f,%s%s%sn,1,min,dt.namel
17、,dt.name2,dt.name3);return0;中国戏曲学院历年C语言程序设计期末(二)考试方式:【闭卷】考试时间:【90分钟】总分:【100分】一、单项选择题(共20题,每小题2分,共40分)1、下面正确的字符常量是oA、“d”B、,C、DD、【答案】C2、下列程序段的输出结果为ointx=3,y=2;printf(,%dr,(x=y,x*=y85);A、1B、7C、3D、5【答案】C3、若定义语句:intb=1,2,3,4,5,*p=b;则表达式*P+的值是OA、1B、2C、b0的地址D、bl的地址【答案】A4、有以下程序#includemain()(inta=5,b=4,c=3,
18、6=2;if(abc)printf(,%dn,d);elseif(c-1=d)=1)printf(%dnw,d+1);elseprintf(,%dn,d+2);)执行后输出的结果是。A、2B、3C、4D、编译时有错,无结果【答案】B【解析】第二个if语句中的表达式c-l=d的值为逻辑值1,所以该条件成立。5、有以下程序段:intx=3;do(Printf(%3d,-=2);)while(!(一x);程序段的输出结果是0A、1B、30C、1-2D、死循环【答案】C6、在一个C语言程序中,oA、main函数必须出现在所有函数之前B、main函数可以在任何地方出现C、main函数必须出现在所有函数之
19、后D、main函数必须出现在固定位置【答案】B【解析】C语言规定,ain函数在程序中的位置是任意的O7、能正确表示:当X的取值范围在1,10达式是O或100,110内为真,否则为假的表A、(x=1)&(x=100)&(x=1)11(x=100)11(x=1)&(x=100)&(x=1)II(x=100)&(x=110)8、下列关于字符串的说法中错误的是oA、在C语言中,字符串是借助于字符型一维数组来存放的,并规定以字符0作为字符串结束标志B、0作为标志占用存储空间,计入串的实际长度C、在表示字符串常量的时候不需要人为在其末尾加入0D、在C语言中,字符串常量隐含处理成以0结尾【答案】B【解析】0
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中国戏曲 学院 历年 语言程序设计 期末 答案 解析

链接地址:https://www.desk33.com/p-1257646.html