《北京联合大学C语言程序设计期末精选样卷(含六卷).docx》由会员分享,可在线阅读,更多相关《北京联合大学C语言程序设计期末精选样卷(含六卷).docx(62页珍藏版)》请在优知文库上搜索。
1、B、COntinUC语句的作用是结束整个循环的执行C、在循环体内使用break语句或continue语句的作用相同D、从多层循环嵌套中退出时,只能使用got。语句【答案】A6、已知三个字符为a、Z和8,按它们的ascii码值升序排序,结果是。A、 8,a,ZB、 a,8,ZC、 a,Z,8D、 8,Z,a【答案】D7、语句while(!f);中的条件!f等价于()A、 f=0B、 f!=lC、 f!=0D、f【答案】A8、若有以下的定义:intt32;能正确表示t数组元素地址的表达式是OAs&t32B、t3Cs&tlD、 t2【答案】D9、有下面程序段chara3,b=china;a=b;pr
2、intf(%3,r,a);则下面的说法正确的是QA、运行后见输出ChinaB、运行后见输出ChC、运行后见输出ChiD、编译出错【答案】D10、在宏定义#加灯11。Pl3.14159中,用宏名代替一个。A、常量B、单精度数C、双精度数D、字符串C语言程序设计期末精选样卷(一)(总分100分.考试时长90分钟一、单项选择题(每小题2分,共40分).1、以下数值中,不正确的八进制数或十六进制数是OA、0x16B、016C、-16D、Oxaaaa【答案】C2、若X为int型变量,则执行以下语句后,x的值为ox=6;x+=-=x*x;A、36B、-60C、60D、-24【答案】B3、下列关于指针变量的
3、描述,不正确的是0A、在没有对指针变量赋值时,指针变量的值是不确定的B、同类指针类型可以进行相减操作C、在使用没有赋值的指针变量时,不会出现任何问题D、可以通过指针变量来取得它指向的变量值【答案】C【解析】没有赋值的指针变量,可能指向任何地方,如果指向系统,那么使用该指针可能导致系统崩溃。4、SWitCh语句不能用于下列哪种数据类型()A、 doubleB、 byteC、 shortDxchar【答案】A【解析】SWiSh语句中表达式expression只能返回这几种类型的值:int、byte、short和Char。如果比较的数据类型是double型,则不能使用SWitCh结构。5、下列叙述中
4、正确的是oA、只能在循环体内和SWitCh语句体内使用break语句printf(n%d,ar);)As192R、29Cs27D、25【答案】B16、以下程序运行后的输出结果是oincludemain()(ints=0,k;for(k=7;k=0;k)(switch(k)ease1:case4:case7:s+;break;case2:case3:case6:break;case0:case5:s+=2;break;)piintf(s=%dn,s);A、s=5B、s=lC、s=3D、s=7【答案】D17、下面哪个不是关键字?A、intB、 structC、 defineD、 continue【
5、答案】D11、设有数组定义:Chararray=student;则数组所占的存贮空间为。A、6个字节B、7个字节C、8个字节D、9个字节【答案】C12、若有定义:Char*x=abcdefghi;以下选项中正确运用了StrCPy函数的是。A、chary10;strcpy(y,x4);B、chary10:strcpy(+y,&x1);C、chary10,*s;strcpy(s=y+5,x);D、chary10,*s;strcpy(s=y+l,x+1);【答案】D【解析】字符串复制函数StrCPy调用形式为:strcpy(sl,s2)”,其功能为把s2所指字符串的内容复制到SI所指空间,函数返回S
6、I的值,即目的串的首地址。为保证复制的合法性,Sl必须指向一个足够容纳s2串的存储空间。13、下面语句中()是C语言的正确赋值语句。A、 a=l,b=2B、 1+;C、 a=b=5D、 y=int(x);【答案】B14、C语言中函数返回值的类型是由决定的.A、函数定义时指定的类型B、return语句中的表达式类型C、调用该函数时的实参的数据类型D、形参的数据类型【答案】A15、下列程序运行结果为:defineP3ItdefineS(a)P*a*amain()intar;ar=S(3+5);二、判断题(每小题2分,共20分)()1、若有定义:inta;则SCanf($d,a);可以给变量a赋值。
7、【答案】错误()2、位运算符是针对二进制数的每一位进行运算的符号,是专门针对数字。和1进行操作的。【答案】正确()3、在if语句中,必须出现else。【答案】错误()4、While循环语句的循环体至少执行一次.【答案】错误()5、C语言约定0计入字符串的长度。【答案】错误()6、C程序总是从main函数的第一条语句开始执行的。()【答案】正确()7、以下定义了一个一维数组str,该数组可以存放81个字符型数据。charstr81;【答案】正确()8、C语言规定,函数返回值的类型是由return语句中表达式类型所决定的。()【答案】错误()9、在对数组全部元素赋初值时,可以省略行数,但不能省略列
8、数【答案】正确【答案】C18、下面程序的输出结果为Omain()inta,b;b=(a=3*5,a*4,a*5);Printf(%dM,b);)A、60B、75C、65D、无确定值【答案】B19inta5,*p=a;对a数组元素地址的正确引用是A、p+5B、 &a0C、 &a+lD、 *a+l【答案】B【解析】A越界,C和D表达错误。20、有如下定义structperson(charname9;intage;);structpersonclass10=johu,17,paul,19,mary,18,ada16);根据上述定义,能输出字母m的语句是A、 prinftB、 printfC、 pri
9、nftDs printf【答案】D(%cn ( %cn ( %cn ( %cn,fclass3.name);class3.namel)class2,namel)class2.name0)voidmainOcharss1081,*max;intn,i=0;Printfr输入若干个字符串:);gets(ssi);puts(ssi);whiIe(!strcmp(ssi,*)=0)(i+;gets(ssei);puts(ssi);)n=i;max=proe(ss,n);printf(nmax=%sn”,max);(本题14分)【答案】char*proc(char(*a)81,intm)char*max
10、;inti=0:max=a0:for(i=0;im;i+)if(strlen(max)Vstrlen(ai)找出最长的字符串max=ai;returnmax;返回最长字符串的地址3、题目描述,逆序输出成绩表输入一组学生的成绩,将输入内容逆序输出。输入输入格式为每行两个数值,学号N为10位数字,成绩S取值为整数(0S100)读取输入直到输入结束(数据总量不超过50行)输出输出格式为每行两个数值,学号N之后有一个空格,成绩值的输出宽度占3个位置样例输入20#040578()10、当一个C语言程序由多个文件模块组成时,整个程序可以包含多个main()函数。【答案】错误三、编程题每小题分,共40分)1
11、、编写程序:求元素个数为10的一维数组元素中的最大值和最小值。(本题10分)【答案】includestdio.hnmain()intterm10;Inti,max,min;Printf(请输入10个整数:”);for(i=0;i10;i+)(scanf(,%d,&termi);max=term;min=term0;for(i=0;i10:i+)if(termimax)max=tcrmi;)printf(max=%d,min=%d,max,min);)2、编写一个函数,从传人的m个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用*作为结束输入的标志)。注意:部分源程序给出如下。请
12、勿改动Inain()函数和其他函数中的任何内容,仅在函数ProC()的花括号中填人所编写的若干语句。试题程序:char*proc(char(*a)81,intnum)20#04268020#04026120#037795样例输出20#03779520#04026120#04268020#040578(本题16分)【答案】ttincludettincldeconstintN=50+5;typedefstructstudentcharno15;intscore;STU;intmain()STUstuN;intn=0;while(scanf(%s%d,stun.no,&stun.score)!=EO
13、F)n+;for(inti=n-1;i=0;i)printf(w%s%3dn,stui.no,stui.score);returnO;D、结构化程序设计提倡模块化的设计方法【答案】C【解析】本题考查的知识点是:结构化程序设计。结构化程序由3种基本结构组成:顺序结构、选择结构和循环结构。已经得到证明,由3种基本结构组成的算法结构可以解决任何复杂的问题。故本题中选项C)是错误的。6、以下叙述中错误的是oA、C语言是一种结构化程序设计语言B、使用三种基本结构构成的程序只能解决简单问题Cs结构化程序由顺序、选择、循环三种基本结构组成D、C语言编译系统允许对函数单独进行编译,从而可以实现模块化【答案】B【解析】C语言是一种结构化程序设计语言,结构化程序由顺序、选择、循环三种基本结构组成,使用三种基本结构构成的程序可以解决任何复杂问题。C语言编译系统允许对函数单独进行编译,从而可以实现模块化。本题答案为B选项。7、若要对a进行+运算,则a应具有下面说明A、 inta32;B、 char*a12,ab;C、 char(*a)3;D、 intb10,*a=b;【答案】A【解析】左移1位,相当于乘以2,题中的X的值是一个八进制,转换为+进制数是32,再乘