C语言期末考试练习题.docx

上传人:太** 文档编号:94313757 上传时间:2023-07-30 格式:DOCX 页数:18 大小:39.70KB
返回 下载 相关 举报
C语言期末考试练习题.docx_第1页
第1页 / 共18页
C语言期末考试练习题.docx_第2页
第2页 / 共18页
点击查看更多>>
资源描述

《C语言期末考试练习题.docx》由会员分享,可在线阅读,更多相关《C语言期末考试练习题.docx(18页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、(:语言期末考试练习题.doc20152016 C语言II练习题I单选题一、基础部分1、以下数组初始化语句语法错误的是(B)A.int array5 = 1,2, 3, 4, 5;intarrayLJ = 1 .5;C.int arrayl = 1,2, 3,4,5;D.int array5 = 1, 2, 3;2、设比De都是int型变量,且a=3,b=4,c=5,则下面表达式中, 值为0的表达式是(D )A.a&bA. a = bC. a|b+c&b?c D? ! (ab)&!c|l)3、C语言规定:在个源程序中main函数的位置:(C)A.必须在最开始B.必须在系统调川的库函数的后面C.

2、可以任意D.必须在最后 4A si?eof(float)是:(B )A.一个双精度型表达式B. 一个整型表达式一种函数调用C. 一个不合法的表达式5、printf两数中用到格式符5$ ,其中数字5表示输出的字符串 占用5歹I。如果字符串长度大于5,则输出按方式(B )A.从左起输出该字串,右补空格B.按原字符长从左向右全部输出C.右对齐输出该字串,左补空格六、结构体1、定义一个结构体变量后,该变量所占内存大小是()A.结构体中第一个成员所需内存容量B.结构体中最后一个成员所需内存容量C.结构体中各成员所需内存容最总和D.结构体成员中占内存容量最大者所需的容量2、程序中有下而 的说明和定义str

3、uct abc int x ; char y ; struct abc si, s2 ;则会发生的情 况是OA.编译出错B.程序将顺利编译、连接、执行C.能顺利通过编译、连接、但不能执行D.能顺利通过编译、但连接出错3、若有程序片段struct LIST int num;struct NODE *next; LI;下列叙述正确的是(C )。A以上的说明形式非法B LIST是一个结构体变量C L1是一个结构体类型D L1是一个结构体变蜃4、当定义一个结构体变量时,系统分配 给它的内存是(A)oA.各成员所需内存量的总和B.结构中第一个成员所需内存量C.结构中最后一个成员所需内存量D.成员中占内存

4、量最人者所需的容量5、有如下定义struct person char name9; int age;struct person class10 =根据上述定义,能输出字母A的语句是(B )A ? printf ( %crTzclass(3).name );B ? printf (,%cn ,class3.name0);C.printf ( %cn,z/class3.name 1);D.printf ( age D)(*p).age七、文件操作1、以下叙述中错误的是()。A.C语言源程序经编译后生成后缀为.obj的H标程序制机器指令文件C.用C语言编写的程序称为源程序,它以ASCII代码形式存放

5、在 一个文本文件中D.C语言中的每条可执行语句和非执行语句最终都将被转换成二进 制的机器指令A vjxrf* 3平 rj* 吓.rj* rj% 叶炉 rj% rp 吓.rj* 节平吓.rj* rj% . b rj* rj% rf* rj%2、在C语言中,缓冲文件系统是指:(B )A.缓冲区是由用户自己申请的B.缓冲区是由系统白动建立的C.缓冲区是根据文件的大小决定的D.缓冲区是根据内存的大小决定的3、若fp是指向某文件的指针,H.已读到该文件的末尾,则函数 fcof (fp )的返回值是()A. EOFB.-1C.非零值D. NULL*1?4、若执行fopcn函数时发生错误,则函数的返回值是一

6、B一。人)地址值8)00 1 D) EOF5、若要用fopen函数打开一个新的二进制文件,该文件要既能读 也能写,则打开方式字符串应是一A一oA) ab+ B) wb+ C ) rb+ D ) ab”6、fsea nf函数的正确调用形式是 D。A ) fscant (文件指针,格式字符串,输出表列);B )f scant (格式字符串,输出表列,文件指针);C)f scant (格式字符串,文件指针输出表列);D ) fscanf (文件指针,格式字符串,输入表列);7、关于函数fclosc的叙述错谋的是一 D。A)关闭一个打开的文件;B )需要向该函数传递-个文件指针作实参;C)既可以关闭二

7、进制文件也可以关闭文本文件; D)通过该函数关闭文件后还能继续读写数据; 八、C + +部分1、下列关于类的继承描述中,()是错误的A.派牛类町以访问基类的所有数据成员,也能调用基类的所有成员函数B.派生类也是基类,但基类不一定具有派生类的全部属性和方法C.继承描述类的层次关系,派生类可以具有与基类相同的属性和方法D.一个基类町以有多个派生类,一个派生类町以有多个茶类.2、编写C+程序一般需经过的儿个步骤依次是()A.编辑、调试、编译、连接B.编辑、编译、连接、运行 C.编译、调试、编辑、连接 D.编译、编辑、连接、运行rj* ij% rj% rj% rjw rjw rj% rj* rj% t

8、j* rj* rj* 吃、rjw rjw tjw V rj% rjw rjw rj% rj* rjw rj* rj* 户 rj% rj% ijw3、下面关于对象概念的描述中,错误的是(A )。A.对彖就是C语言中的结构变量B.对象代表着正在创建的系统中的一个实体C.对象是一个属性和操作(或方法)的封装体D.对象Z间的信息传递是通过消息进行的4、卞列描述中错误的是(C )0A.文寸象与文寸象之间可以通过消息进行通信和联络B.类用于描述事物的属性和对事物的操作C.类与类之间必须是平等的关系,而不能组成层次关系D.类与类之间可以通过封装而具有明确的独立性5、面向文寸象程序设计思想的主要特征中不包括(

9、D )oA.封装性B.多态性C.继承性D.功能分解,逐步求精6、采用重载函数的目的是(D )。A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性7、在面向对象方法中,封装的含义,不包括D A)通过对象把属性和操作包装起来;B)通过对彖隐藏其内部细节;C)各对象相互独立,互不干扰;D)复制其他类的所有内容;8、向系统动态申请内存的函数不包括D A) mallloc B) reallocC) new D) delete9、在声明类时,下面说法if确的是_ CoA)可以在类的声明中给数据成员赋值;B)数据成员的存储类空可以是任意类型;Qprivate,public,protected 可以

10、任意顺序出现;D)没有用private,public,protected定义的数据成员是公有成员;II填空题:一、基础部分.在循环语句的循环体中,break语旬的作用是(退出其所在循环)1 .程序段 int i=0,x=15; for(; i.在C语言中,用于定义常量的关键字是(const)2 .for(;)语句相当于 while( true).C语言中的标识符只能由3种字符纽成,它们是数字、字母、卜-划线3 .在C语言中,&作为单目运算符时表示的是一取地址运算 匕T*?Y?.哼?。亨?4 .一个C程序由若T个函数组成,但其中必须有一个main()函数。&数组在内存小占连续一片的存储区,数组名

11、代表其首地址。9.C语言表达式5278的值是_ 0。10 .函数的定义不可以嵌套,但函数的调川可以嵌套。11 .已知i=5.6泻出语句a二(int)i;执行后变量i的值是5.60.如果函数不要求带M结果值.可用void来定义函数返问值为空。12 .一个C语言程序是由若干个组成。函数二、数组1.有数组定义:inta5 = 12,3,99,7,53;则值最小的数组元素的下 标值是:1。rjA r|A r|A rj* rjw rjA r|A rjw rjA rj rjA r| 9A r|A rj* rjw rjA rjA rjw rjA rj* r|A rjA r|A rjA ijw rjA rj*

12、 rjA rj* r|A ejA rjA r|A.对于一维数组的定义类型说明符数组名常量表达式r其中常量 表达式可以包括整形常量和一符号常量 不能包含一变量 o2 .若有定义:double x35;则x数组中行下标的下限为一0 列下标的上限为rjA ij* rjw ijA r|A ijw rjA rj 9A ijA r| r|A rj* rjw rjA rj* rjA rj*r|A rjA 9A r|A rjA rjw rjA rj* rjA ij* r|A rjA r|.若二维数组a有m列,则在aijnij的元素个数为i*m+i 3 .若有int矶10=6,7,8910;,则是将5个初值依次

13、赋给a0至a(4)o三、指针1?变量i的值为3, i的地址为1()0()若欲使p为指向i的指针变蜃, 使用的语旬是_ int二&i o2 .设pl, p2为同类型的指针变量,若有pl二二p2,则说明 pl?p2指向一同一个变量或数组元素 O3 .当函数中使J IJ指针变量作为形参时,它和实参共亨内存地址 空间。立立立 1A 立 1A 立1人立 1A 立彳.彳.彳.彳.彳.彳.4 .设有如下定义:int (*ptr) ( ) ; ptr是指向函数的指针;该函数 返向一个皿型数据.有以下程序#includemain() char * p= a bed eOf g hj i kO;printf(H%

14、dn,strlen(p);)程序运行后的输出结果是一5。5 .已定义以下函数fun(char *p2, char *pl) while(*p2=*p l)! = 0) pl + +;p2+;)函数的功能是:将pl所指字符串复制到p2所指内存空间立立立 1A 立 1A 立 1人立 1A 立 1A y?+x 汁+y;printf( %d,%d,%dfxfyfz);)A)l,2,3 B)l,3,3C) 2,3,3 D)2,2,38、下而程序段的运行结果是C。int n=0;while(n + + =2);printf(H%d n,n);A) 2 B)3 C)4 D)有语法错9、关于格式说明符彳说法正

15、确的是.D。A)输出十进制整数;B)以指数形式输出实数;C)输出实数且输出的数字全部是有效数字;D)输出实数,但输出的数字并不一定全部是有效数字; 1()、在C语言中,函数返回值的类型最终取决于A A)函数定义时在函数首部所说明的函数类型;B)return语句中表达式值的类型;C)调用函数时主调函数所传递的实参类型;D)函数定义时形参的类型;立立立立立彳.彳.彳.彳.彳.彳.7 .如果有以下结构体类型的说明和变量定义,则把结点b连接到a 之后的语句是.next二q;ostruct NDchar data;struct ND *next; a,b,*p=&a,*q 二&b.设有如下语旬:stmc

16、tint x;int y;d2= 1,3)42,7);则执行:printf( %dn,d 0 ?y/d 0 .x*d I.x);输出的是一6。立立立立 y)的值为(9);表达式+(*pt-y)的值为(10) 0 12七、文件操作9 在fopen函数中使用文件的方式是“rt+,该方式的含义是一 读弓打开一个文木文件2、C语言可以处理的文件类型是一文本文件少进制文件。3、f eof(fp)函数用来判断文件是否结束.如果遇到文件结束.函数 值为非0值否则为_0_。4、调用fopen函数打开一文木文件,在使用方式”这一项中,如果是为输入而打开需填入,或r+。5、C语言文件有两种类型:文件和一文件,其差

17、别在 于存储数值型数据的方式不同。文本二进制6、因为操作系统对于同时打开的文件数目是有限制的,所以在文 件使用结束后必须川函数关闭由函数一打开的文件,否则会出现意想 不到的后果。fclosefopen7、语句 fwrite(buffer,sizeof(Student)3 fp );实现的功能是:一、基础部分1.以下程序的输出结果为(X=8) #include int main() int i, j, x = 0;for (i = 0; i 2; i + +) X+ ;for (j = 0; j 5) printf(t4%dn,m);else;printf( /7%dn,m?);3、下面程序的运

18、行结果是 o s=254#include void main() int a,s,n,count;a=2; s=0; n= 1; count= 1;while(count=7) n = n*a; s=s+n; +count; printfC s=%d ,s);)二、数组1.书写下面程序运行结果:101 69 55 34 23 11 7 1 void main()int a8 = 34,55,11,7,69,101,1,23);int i, j, k, tmp;for(i=(); i7; i+)k = i;for(j=i + l;j ak) k=j;if(k!= i)tmp = ai;ai =

19、ak;ak = tmp;)for(i=0; iv& i+) printf( ,/%3d/, , ai);)10 下面程序的运行结果是一#&*&%o#includcvoid main()(chars=ABCCDA ;int k;char c;for(k=l;(c=sk)!=x 0;k+) switch(c) case A:pmchar(%);continue;case B汁+k;break;default:putchar(*);case CiputcharC&);continue;)putchar(#);)11 #includevoid main()float b6= 1.1,2.2,3.3,4

20、,4,5.5,6.6m; int i;t=bO;for(i=0;i5;i+)(bi = bi+l;)b 二 t;for(i=();i6;i+) printf( %6?2f : bi);)2.203.304.405.506.60 IJ 0四、指针和数组1、书写下而程序运行结果:23 69 1 34#define N 4void Swap(int *x, int *y);void output(int array5 int n);void main()(int aN = 34,69 _L 23;Swap(&a01,&aN-l);output(a, N);)void Swap(int int *y)

21、int tmp; tmp = *x;*y = tmp;void output(int a, int n)(int i;for(i=0; iprintf(H%3d, ai);printfQAn M);)2.下而程序的运行结果是3, 0,?90, 23, 6, 10, #includevoid invert( int*, int i, int j);void main()int a6= 10,6,23,-90,0,3),1;invert(a,0,5);for(i=0;i6;i+)printf(4%d ; ai); printfCW);void invert(int *s,int i,int j)i

22、nt t;/b)8i8i!c|l)二、数组1、以下对二维数组的定义中正确的是()。3A.inta4=l, 2, 3, 4, 5, 6);B. int a3;C? int a3= 1, 2, 3, 4, 5, 6; D. int a = 1,2,3,4,5,6;2、假定一个int型变量占用两个字节,若有定义:intx10=0,2,4; 则数组x在内存中所占字节数是()。A.3B.6C. 10203、以下对二维数组a的正确说明是一CA.int a3f;B.float a(3,4);C.double a I 4;D.float a(3)(4);4、若二维数组a有m歹I,则计算任一元素叩山在数组中位置

23、的公式为一D一。(假设alO儿0位于数组的第一个位置上。)A.i*m+j8 .j*m + iC.i*m+j-lD.i*m+j+l5、数组名作为实参传递给形参口寸,数组名被处理为_C。A.该数组的长度.该数组的元素个数C.该数组的首地址D.该数组中各元素的值6、若有说明:intallO;,则文寸数组元素正确引用的是()。(A)a10(B)a3.5(C)a(5)(D)aO7、以下能正确定义数组并正确赋初值的语句是:()Ax intN=5,bNN;B. intal2=l/3;intc2=l,2,3,4);D. intd31 2=1,2,3,4);8、定义了一维int型数组a10后,下面错误的引用是:

24、()。A.aO = l;B.a10=2;C.a0 = 5*2;D.al=a2*a01 ;三、指针1、指针,其含义是指该变量的?A.值B.地址C.名D.一个标志2人若有语旬int *point,a二4;和point=&a bfri均代表地址的 R选项是D。A.a,point,*&aB.&*a,&a,*poin(C?*&point,*point,&a D.&a , &*point,point3、两个指针变最不可以一A一A.相加B比较C相减D指向同一地址A?_L?_L ”?_L ?_L!? ? ?土?_L 叫.叫 叫.叫叫.叫.人7人rTw 不能正确进行字符串赋初值的语句是()A.char str5

25、= H good!n;B.char *str 二good!;2、以下程序的输出结果是()main() char * p= a bed e()f g h ij kO M;printf(M%dn H,strlen(p);)A. 5B.153X i nt allO,*p=a;不能代表a地址的是()B. char str = H good!M;D. char str5=u g o; o, d);C.6LU16D ?以匕皆有nJ能D.71771715、下面程序的运行结果是? #include # include main() (char *sl = n AbDeG M ;char *s2=AbdEg*;

26、 sl +=2;s2+=2; printf(H %dn,strcmp(s 1 ,s2); A.正数B.负数C.零6、下而程序的运行结果是. #include #include fun(char *w,int n) char t,*sl,*s2; sl=w;s2=w+n- I;while(s 1 main() char *p;p=”1234567” ; fun(p,strlen(p); puts(p); A. 7654321 B.1714171 C J711717rj% rjw rj% rj% rjw rjw ijw rj% ijA rj* ij% rjw Di、rjw rjw rjw rj%

27、rj% rj* rjw rj% ij% ij% rjw rjw7、若有以下定义,则对a数组元素的止确引用是一D oint a5J/:p=a; A.*&矶5B.a+2C 卢(p+5) D.*(a+2)8、下面程序段的运行结果是一D ochar *s=n abcde; s+=2;printf(,/%d ,s); A.cdeB.字符CC.字符C的地址D.无确定的输出结果9、设pl和p2是指向同一个字符串的指针变量,c为字符变量, 则以下不能正确执行的赋值语句是一B o A. c二*pl+*p2; B.p2=c C.pl = p2 D.c=*pl*(*p2);10、若有说明语句 char aJ = H

28、 It is mine 11; char :p=u It is mine 0;则以下不正确的叙述是_D oA.p+1B.a+1C. +a4、以下正确的程序段是A.char str 20;B.char *p; scanf(M %s u,&str); scanf(%s,p); C.char str 20;D.char str20,*p=str; scanf(H %s n ,&str2J); scanf(%s ,p);D. + + pA.a + 1表示的是字符t的地址B.p指向另外的字符串时,字符串的长度不受限制C.p变量中存放的地址值可以改变D.a中只能存放10个字符11、若有以下定义和语句,则对

29、s数组元素的正确引用的形式是() int s4(5),(*ps)(5);ps=s;(A)ps+1(B)*(ps+3);(Qps;(D)*(ps+l)+312、若有定义:in 2H3,则对a数组的第i行j列元素地址的正 确引用为 a)*(ai+j) b)(a+i)c)*(a+j) d)ai+j五、字符串1、下面程序段的运行结果是一D。char a7 = abcdef*; char b4 = ABC;strcpy(a,b);printf(n%c H,a 5);A.空格B.0C.eD.f2、下而程序的运行结果是_B o#includevoid main()(charstr=/zSSSWLIAA c;

30、int k;for(k=2;(c=strk)!=,0;k+)switch(c) case T 汁+k;break;case L:continue;default:putchar(c);continue;)putchar(*);A.SSW*B.SW*C.SW*AD.SWrjw r|A rj r| rj* rjw rj* rj* 9ArjA 9A3、设有数组定义:char arrayLJ = u China,;则数组array所占的 空间为()。(A)4个字节(B)5个字节(C)6个字节(D)7个字节4、下面程序的运行结果是:()。chare二 Jc,O;abOC. abOcOB.运行后将输出Ch

31、D.编译出错printf ( %s : c ); A ? abB. abc5、有下面的程序段:char a ,b二China; a=b;printf ( %s,a ); A.运行后将输出China C运行后将输出Chio把以buffer为首地址的3个学生结构体类型数据输出 到文件。八* * C+:1.语句 cout? helloO world的输出是2.当建立一个新对象时,程序自动调用构造函数%1 7 , %1*T* rTwrTw?Tw?Y?3.C + +源程序文件的缺省扩展名为CDD。4.构成对象的两个主要因素是_属性和行为,其中属性用于描述对 象的静态特征,行为用于描述对彖的动态特征。5.类和对象的关系可表述为:类是对象的抽象,而对象则是类的 实例。6.在关键字private后面定义的成员为类的私有成员。7.对象将其大部分实现细节隐藏起来,这种机制称为封装。&复杂对象可以山简单对象构成,这种现象称为聚合。*!? *! ? e % ? e %!? *1* ? %!? ?. *4* ? ?_L ? ?*1A ?!? ? ?_L %!? ? ? ?1_ ?!? ? ? “ ? ” ? ”叫.叫.叫.叫.rTw #T #T rTw 7A rTw rTw 7A rTw 7A rTw9、和一作为函数重载判断的依据。参数 in程序分析题

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 解决方案

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com