C_语言辅导题.pdf

上传人:奔*** 文档编号:90594687 上传时间:2023-05-16 格式:PDF 页数:148 大小:17.32MB
返回 下载 相关 举报
C_语言辅导题.pdf_第1页
第1页 / 共148页
C_语言辅导题.pdf_第2页
第2页 / 共148页
点击查看更多>>
资源描述

《C_语言辅导题.pdf》由会员分享,可在线阅读,更多相关《C_语言辅导题.pdf(148页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、C语言补习资料2011-03-10目录软件技术基础训练(自行阅读到能背诵).-1-常见的语法错误类型.-9-常见的逻辑错误类型.-10-C语言考试内容.-11-数据类型、运算符、表达式、语句、控制流程、预编译-14-测试一.-29-数组、指针、函数、结构体与共用体、文件.-31-测试二.-51-编程训练.-54-课外综合训练.-61-省考真题测验.-84-四川省第32次等级考试(第一套).-103-四川省第32次等级考试(第二套).-108-四川省第32次等级考试(第三套).-112-四川省第32次等级考试(第四套).-116-四川省第32次等级考试(第五套).-117-四川省第33次等级考试

2、(第一套).-121-四川省第33次等级考试(第二套).-124-四川省第33次等级考试(第三套).-126-四川省第33次等级考试(第四套).-129-四川省第33次等级考试(第五套).-132-答案.-135-川软件技术基础训练(自行阅读到能背诵)一、是非判断题(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)数据结构1.数据结构的表示包括数据逻辑结构和存储结构两个方面的表示。A2.冒泡排序算法是一种只能实现升序排序,而不能实现降序排序的排序算法。B3.线性表采用链式储存时,结点的存储地址必须是连续的。B4.栈顶的位置是随着进栈和退栈操作而变化的。A5、数据在计算机内存

3、中的表示是指数据的存储结构。A数据结构:主要研究数据的各种逻辑结构和存储结构,以及对数据的各种操作。主要有三个方面的内容:数据的逻辑结构;数据的物理存储结构;对数据的操作(或算法)。算法的设计取决于数据的逻辑结构,算法的实现取决于数据的物理存储结构。逻辑结构有线性和非线性,包括四种基本类型:线 性(集合结构、线性结构)、非 线 性(树状结构和网络结构)。数据结构在计算机内存中的表示是指数据结构的存储-1-方式,有顺序存储和链接法(用指针反映数据之间的关系)。6、链表可以随机访问任意一个结点,而顺序表则不能。A7、数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。B

4、8、流式文件和记录式文件都以字符为基本单位进行存取。B9、不定长文件是指字段的长度不固定。B10、数组也是一种数据结构,一维数组就是一种顺序表结构。A11、递归算法的程序结构比迭代算法的程序结构更为精练。飕鲤普睡熟醯藕懿翻舞,褊机依麟既睡疆隹薪麓繇需整皤限能。B16、数据的基本单位是数据元素。A数据元素是数据的基本单位,在计算机程序中通常作为一个整体考虑。一个数据元素由若干个数据项组成。数据项是数据的不可分割的最小单位。17.C+语言中所定义的类实际上也是一种数据类型。A软件工程18.在软件生存期内,软件必须进行维护,维护不会产生副作用。B19.在软件的需求分析阶段,要直接面向用户,主要考虑用

5、-2-户的经济承受能力和费用的支付问题。B2 0.需求分析阶段的主要任务应由系统分析员主持完成。A21、软件工程的三要素包括方法、工具和环境。B三要素为方法、工具和过程22、软件结构是以指令为基础而组成的一种控制层次结构。B23、软件测试和软件调试没有任何区别。B24、白盒测试方法一般适用于系统测试。B25、瀑布模型的突出缺点是不适应用户需求的变化。A瀑布模型将软件生命周期的各项活动规定为依固定顺序联接的若干阶段工作,形如瀑布流水,最终得到软件产品优点:a.强调开发的阶段性;b.强调早期计划及需求调查;c.强调产品测试。缺点:a.依赖于早期进行的唯一一次需求调查,不能适应需求的变化;b.由于是

6、单一流程,开发中的经验教训不能反馈应用于本产品的过程;c.风险往往迟至后期的开发阶段才显露,因而失去及早纠正的机会。26,、在面向过程方法的软件生存期内,能准确确定软件系统必须做什么和必须具备功能阶段是需求分析。A27、在软件测试的基本方法中,静态测试不用测试用例。A静态测试的基本特征是,在对软件进行分析、检查和测试时,不实际运行被测试的程序。静态测试可以用于对各种软件文-3-档进行测试,是软件开发中十分有效的质量控制方法之一。动态测试是在计算机上运行被测的程序代码或代码段,通过输入测试用例对其运行情况(输 入/输出的对应关系)进行观察,并对测试结果进行分析。按照不同的测试出发点,可将软件测试

7、方法分为黑盒测试和白盒测试两大类操作系统28.采用动态重定位进行地址转换,允许程序在执行过程中在内存中移动。而静态重定位则不可以。A29.操作系统是最最重要的系统软件。A30、能影响中断响应次序的技术是中断优先级和中断屏蔽。A31、作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。A32、Windows、OS/2,Linux微机操作系统都是多用户多任务操作系统。B33、进程调度按一定的调度算法,从就绪队列中挑选出适合的进程。A34、在单处理器系统中,程序的并发执行,实质上是程序的交替执行。A35、分页存储管理中,页面可以映射到不连续的内存快中。-4-A36、通道方式能实现外设与C

8、P U 之间直接进行数据交换。B通道方式通道控制方式是一种以内存为中心,实现设备和内存直接交换数据的控制方式37、作业与进程的主要区别是前者是由系统自动生成,后者交赛段、X、38卷401Ro B麒 礴 港 是 鬻 翰 的 鳏 酸 去 提 立 即笄娶进程之间一定存在互斥关系。B二、选择题数据结构1、若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是(C)A、1,4,3,2 B、2,3,4,1C、3,1,4,2 D、3,4,2,12、线性链表不具有的特点是(A)A、随机访问 B、无须事先估计所需存储空间大小C、插入时不必移动元素D、所需空间与线性表长度成正比3、以 下(C)不是

9、数据结构研究的主要问题。-5-A、数据元素之间的逻辑关系 B、数据元素之间的存储结构C、软件开发方法 D、实现操作的算法励根鬣挑履小,且进栈过程中可以出栈,A、1,4,3,2 B、2,3,4,1 C 3,1,4,2 D、3,4,2,15.以下特征中哪个不是算法得特征(D)A 可行性 B确定性 C 有 穷 性 D 唯一性(下次从这开始看)6.对象实现了数据和操作的结合,使数据和操作(C)于对象的统一体中。A 结合 B 程序的效率 C 封装 D抽象软件工程7、以下的准则中哪个不是面向对象软件设计应遵循的(B)A、抽象准则 B、独立性准则C、信息屏蔽准则 D、模块化准则面向对象软件设计应遵循的准则是

10、:抽象准则信息屏蔽准则模块化准测-6-8、需求分析中开发人员主要从用户那里了解(A)A、软件做什么 B、软件的结构C、输入的信息 C、软件的测试需求分析中开发人员主要从用户那里了解软件做什么9、软件开发中,模块设计的原则是(A)A、低耦合、高内聚 B、高耦合、高 内 聚 C、高耦合、低 内 聚 D、低耦合、低内聚内聚:一个模块内各个元素彼此结合的紧密程度耦合:一个软件结构内不同模块之间互连程度的度量一个完整的系统,模块与模块之间,尽可能的使其独立存在。也就是说,让每个模块,尽可能的独立完成某个特定的子功能。模块与模块之间的接口,尽量的少而简单。如果某两个模块间的关系比较复杂的话,最好首先考虑进

11、一步的模块划分。这样有利于修改和组合。模块设计的原则高内聚,低耦合10、以下准则中哪个不是软件设计遵循的(D )A、抽象准则 B、模 块 化 准 则 C、信息屏蔽准则D、综合性准则11、在结构化设计方法中,设计功能模块算法属于软件开发中 的(A)阶段。A、详细设计 B、需求分析 C、总体设计D、编程调试-7-12.结构化程序设计主要强调的是(A)A程序易读性 B程序的效率 C程序设计语言的先 进 性D程序的规模操作系统13.在多道程序设计系统中,处于后备状态的作业要经过(B)调度后才能真正执行A作 业 调 度B作业调度和进程调度C进 程 调 度D作业调度和设备调度14.为解决CPU和I/O设备

12、之间速度匹配问题,常采用“缓冲区”方法。“缓冲区”的结构多为(C)oA顺 序 栈B链 栈C顺 序 队 列D循环队列15、任何两个并发进程之间(D)A、一定存在互斥关系 B、一定存在同步关系C、一定彼此独立无关 D、可能存在同步或互斥关系16、以下哪个特征不是分时操作系统的主要特征(A)A、中断管理 B、独立性 C、交互性D、多路性17、以 下(C)不是实时操作系统的特点。A、高可靠性 B、及时响应 C、中断管理 D、独立性18、若当前进程因时间片用完而让出处理机时,该进程应转-8-变 为(B)状态。A、运行 B、就绪 C、等待 D、完成19、操作系统本身是计算机系统软件的重要组成部分,而其物质

13、基础是(A)A、系统硬件 B、程序 C、数据结构 D、标准程序库20、外部设备完成了预定的输入/输出操作所引起的中断是(B)A、外中断 B、I/O中断 C、程序中断D、访问中断常见的语法错误类型1、函数调用发生时实参的类型与形参的类型不匹配;如:int fun(int array,int m)调用时第一个参数应该传递数组首地址而不是值2、函数返回值的类型与函数定义的类型不匹配;如:int*fun(int array,int m)调用后返回的值一定要是一个指向整型变量的指针。3、对数组元素或数组元素的地址引用形式不正确;如:如果a是代表数组的名字,那 么(a+i)表示的是第i个数据元素的地址,而

14、*(a+i)表示的是第i个数据元素的值4、对一些常用库函数调用的时候,所给参数的类型与库-9-函数定义不匹配;如:gets。函数只带一个参数,这个参数应该是字符数组的数组名或则字符指针变量,而不能是普通变量名;如:scanf(“d”,m)应改为 scanf(“d”,&m)常见的逻辑错误类型1、如果程序涉及使用到了循环,那么需要注意循环的次数,以及循环是否继续的条件编写是否符合程序的逻辑需要;如:for(;s=0;s+)就是一种不正确的循环判定条件2、如果程序使用了条件判断,那么需要注意所书写的判定条件,是否符合程序的逻辑需要;如:if(a=l)就是一种不正确的典型范例,应该改为if(a=1)3

15、、如果程序使用了函数的调用,那么需要注意函数调用返回的值是否符合程序的逻辑需要;4、如果程序中出现了赋值语句,那么需要注意赋值号左右两边类型是否一致或复制兼容;如:给数组的名字赋值显然就是不应该的array=ak,应改为 arrayk=ak如果程序中使用了+或-运算符,请注意使用的形式是否符合程序的逻辑需要;例如+运算符是在变量的左边还是在变量的右边;程序中配对的操作符,经常被出题者故意写错,如+写成-,!=写成=,&写成II,写成 等等,看到类似-10-的符号,需要特别注意C 语言考试内容一、数据类型、运算符、表达式LC的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法。2.C

16、运算符的种类、运算优先级和结合性。3.不同类型数据间的转换与运算。4.C 表达式类型(赋值表达式、算术表达式、关系表达式、逻辑表达式、条件表达式、逗号表达式)和求值规则。二、语句L表达式语句,空语句,复合语句。2 .数据的输入和输出,输入输出函数的调用。3 .复合语句。4.语句标号的使用。三、控制流程1.用 i f 语句实现选择结构。2.用 s w i t c h 语句实现多分支选择结构。3.选择结构的嵌套。4.f o r 循环结构。5.w h i l e 和 d o w h i l e 循环结构。6.c o n t i n u e 语句和b r e a k 语句。7.循环的嵌套。四、编译预处

17、理1 .宏定义:不带参数的宏定义;带参数的宏定义。2.“文件包含”处理。-11-五、数组1.一维数组和多维数组的定义、初始化和引用。2.字符串与字符数组。六、函数1.库函数的正确调用。2.函数的定义方法。3.函数的类型和返回值。4 .形式参数与实在参数,参数值的传递。5.函数的正确调用,嵌套调用,递归调用。6 .局部变量和全局变量。7 .变量的存储类别(自动、静态、寄存器、外部),变量的作用域和生存期。8 .内部函数与外部函数。七、指针1 .指针与指针变量的概念,指针与地址运算符。2 .变量、数组、字符串、函数、结构体的指针以及指向变量、数组、字符串、函数、结构体的指针变量。通过指针引用以上各

18、类型数据。3 .用指针作函数参数。4.返回指针值的指针函数。5.指针数组,指向指针的指针,M AI N 函数的命令行参数。八、结构体与共用体1 .结构体和共用体类型数据的定义方法和引用方法。2 .用指针和结构体构成链表,单向链表的建立、输出、删除-12-与插入。九、文件操作1.文件类型指针(F I L E类型指针)。2.文件的打开与关闭(f o p e n,f c lo se)。3.文件的读写(f p utc,f ge tc,f p uts,f ge ts,f re ad,f rwite,f p rintf,f sc anf函数),文件的定位(re wind,f se e k函数)。附:C语言

19、运算符口诀括号成员排第一;。.-全体单目排第二;+*&-乘除余三,加减四;*/%+-移位五,关系六;=等于不等排第七;=!=位与异或和位或;&八I三分天下八九十;(7)逻辑或跟与;|&十二和H一;(8)条件高于赋值;?:=(+=*=/=)(9)逗号运算排最低;,结合性:单目、赋值、条件自右向左结合;其余运算符皆自左向右结合。-13-数据类型、运算符、表达式、语句、控制流程、预编译一、选择题L下列叙述中错误的是()。一C 程序结构(A)C程序书写格式自由,一个语句可以分多行写(B)C 语言中一个文件中的函数可以调用另一文件的函数(C)C程序总是从开头执行,到末尾结束(D)在 C 程序的开头,可以

20、有注释说明2.C语言中最简单的数据类型包括(b).数据类型P20(A)整型、实型、逻辑型(B)整型、实型、字符型(C)整型、字符型、逻辑型(D)整型、实型、逻辑型、字符型3.若变量a 是 int类型,并执行了语句:a=W 量.6;,则正确的叙述是_.数据类型转换规则(混合运算规则)P28(A)a的值是字符C(B)a的值是浮点型(C)不允许字符型和浮点型相加(D)a的值是字符,A,的ASCII值加上14.以下选项中不属于C 语言的类型的是 A.数-14-据类型(A)signed short int(B)unsigned long int(C)unsigned int(D)long short5.

21、下列属于合法C 语言常量的选项是(B)。数据类型之数据常量(A)OxGB(B)123L(C)e3(D)0836.在16位 C 编译系统上,若定义long a;,则能给a 赋 40000的正确语句是_ _ _ _ D.长整型数据赋值(A)a=20000+20000;(B)a=4000*10;(C)a=30000+10000;(D)a=4000L*10L;7.C 语言规定标识符只能由字母、数字和下划线组成,且第一个字符必须是).一一标识符(A)字母或数字(B)数字或下划线(C)字母(D)字母或下划线8.下列属于非法C 语言关键字的选项是()。关键字(A)printf(B)sizeof(C)exte

22、rn(D)long9.下列运算中优先级最低的是()。运算符优先级(A)&(B)I I (C)=(D)+-15-括号第一,单目二,算 术 高 移 位,移 位 高 关 系,关系高 位,位 高 逻 辑,条件高赋值,逗号最低,逻辑与位中与 高 或(括 号,单 目 算术 移位 关系 位 逻辑 条件 逗号)10.为表示关系X 2 y 2 z,应 使 用 C 语 言 表 达 式。一一表达式(A)(x=y)&(y=z)(B)(x=y)AND(y=z)(C)(x=y=z)(D)(x=y)&(y=z)11.设n 为 int型 变 量 且 n=l,则表达式的值是(A)o 运算符+表达式(A)l(B)0(C)-l)-

23、212.若有定义:int a=8,b=5,c;,执 行 语 句 c=a/b+0.4;后,c 的值为(B)。表达式求解(A)1.4(B)l(C)2.0(D)213.若有如下程序段:int x=3,y=4,z;float a=2.0;z=y%x/a;则执行后,z 中的值是()。运算符+表达式(A)4(B)3.0(C)0(D)0.5-16-14.设m,n是整型变量,f 是单精度型变量,则下面正确的赋值语句是()。表达式+赋值语句(A)+n;(B)double(m+n);(C)m=l;(D)f=f%m/n;15.设 count和 sum都是整型变量,并且sum=coimt=3,则计算表达式sum+,s

24、um+=count+后 sum 的值是(B)。-运算符+表达式(A)8(B)7(C)5(D)316.设 a、b、c d x、y 均为 int 型变量,且 a=l、b=2 c=3d=4 x=5、y=6,则逻辑表达式“(x=ab)&(y=cd)”的运算后y 的值为()。一一运算符+表达式+逻辑短路(A)0(B)l(C)3(D)617.以下选项中,与表达式,=+b”完全等价的表达式是.运算符+表达式(A)a+=b(B)b=b+l,a=b(C)a=b,b=b+1(D)a=b+18.以下程序的输出结果是_ _ _ _ _ _ _.运算符之条件运算符main()-17-int a=5,b=4,c=6,d;

25、printf(u%dn,d=ab?(ac?a:c):b);)(A)5(B)4(C)6(D)不确定19.以下程序的输出结果是_ _ _ _ _ _ _ _.运算符与表达式main()int a=4,b=5,c=0,d;d=!a&!bl I !c;printf(dn”,d);)(A)l(B)0(C)非 0 的数(D)-l20.以下程序的输出结果是_ _ _ _ _ _ _ _.位运算之移位运算main()char x=040;printf(%0n,x l);)(A)100(B)80(C)64(D)3221.若有如下程序:-18-main()unsigned int x,y,z;x=015;y=x&

26、Oxll;z=xly;printf(u%d,%dnJ,y,z);则程序运行后的输出结果是一B一位运算之位与+位或(A)l,l(B)l,13(C)29,13(D)29,2922.若有如下程序:main()int a=6;char ch=*b,;printf(u%dn,(a&l)&(ch,m,);则程序运行后的输出结果是_ _ _ _ _ _ _ _ 表达式与格式输出(A)0(B)l(C)2(D)323.以下程序的输出结果是()格式输出及整型常量main()ht i=010J=10,k=0 xl0;printf(4%d,%d,%dn”,i j,k);)(A)8,10,16(B)8,10,10(C)

27、10,10,10(D)10,10,16-19-24.以下程序段的输出结果是_ _ _ _ _ _ _.一一输出语句格式控制int a=1234;printf(u%2dn,a);(A)12(B)34(C)1234(D)提示出错、无结果25.若有说明语句:inta,b,c,*d=&c:,则能正确从键盘读入三个整数分别赋给变量a,b,c的语句是_ _ _ _ _ _ _ _.格式输入语句scanf(A)scanf(u%d%d%d”,&a,&b,d);(B)scanf(u%d%d%d”,&a,&b,&d);(C)scanf(y)scanf(“f”,&y)dse scanf(“f”,&x);28.若有以

28、下程序:if();else;main()int a=3;if(a+3)printf(%dn,a);else printf(u%dWa);上述程序运行后结果是D.(A)l(B)2(C)3(D)429.以下程序段的输出结果是(C).while循环int x=3do printf(u%3d,x-=2);while(!(x);(A)l(B)30(C)l-2)死循环30.若有如下程序:main()int i=6;doprintf(“d”,i-);-21-while(-i);则程序运行后的输出结果是()do while();循环+自减(A)531(B)54321(C)642(D)65432131.有以下程

29、序段:int n=10;while(l)n;printf(u%d,n);则程序执行后n的值是()。while的死循环(A)0(B)l(C)10(D)无数32.若有如下程序:main()int n,t;for(n=l;n0;)printf(a%dw n+n);w后,下列说法正确的是0。-22-自减运算+for(A)循环体执行了 5次,最终n的值是-1(B)循环体执行了 6次,最终n的值是(C)循环体执行了 6次,最终n的值是0(D)循环体执行了 5次,最终n的值是034.以下程序中,while循环的循环次数是_ _ _ _ _ _ _ _.-while 循环+if 选择+continue 和 b

30、reakmain()int i=0;while(i10)if(il)continue;if(i=5)break;i+;)(A)l(B)10(C)6(D)死循环,不能确定次数35.以 下 程 序 的 输 出 结 果 是.f o r循环+switch选择结构main()int a=0,i;-23-for(i=l;i5;i+)switch(i)case0:case3:a+=2;case1:case2:a+=3;default:a+=5;)printf(“%dn,a);)(A)31(B)13(C)10(D)203 6.以 下 程 序 的 输 出 结 果 是 B.while+for+if+breakma

31、in()int i=0,a=0;while(i20)for(;)if(i%10)=0)break;else i-i+=ll;a+=i;/i=0,i=ll,a=ll;i=ll,i=ll+10=21,a=ll+21=32-24-printf(bc);printf(u%dn”,d);)3、以下程序的输出结果是_ _ _ _ _ _ _ _ _.表达式求解main()int a=0a+=(a=8);printf(50)printf(40)printf(tt%d,a);if(a30)printf(t%d,a);6、若有如下程序:main()int n=B;switch(+n)case a:case A:

32、case b:case,B:printf(good);case*c*:case C:printf(“pass”);case*d*:case*D*:printf(“warn”);break;default:printf(w error w);break;-27-则程序运行后的输出结果是_ _ _ _.switch结构7、以下程序的输出结果是_ _ _ _ _ _ _ _.for循环main()int s,i;for(s=0,i=l;i3;i+,s+=i);/i=l,s=0,i=2,s=0+2=2;i=2,i=3,s=2+3=5printf(u%dn,s);)三、程序填空1、下面程序的功能是将a、

33、b的值互换,请填空。main()int x=l,y=2;x=x+y;_;x=x-y;printf(“d,%dn”,x,y;);-表达式求解2、以下程序的功能是:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。请填空。m a in()float x,amax,amin;scanf(amax)amax=x;if()amin=x;-28-scanf(“产,&x);printf(unamax=%f naming=%f n,amax,amin);-while循环+if结构3、下面程序的功能是根据公式e=l+l/l!+l/2!+l/3!+l/4!+-计算e的近似值,精度要

34、求为10-5(le-5)o请填空。main()int n;double e=1.0,t=1.0;fo r(n=l;n+)t=t/n;e+=t;printf(fn”,e);.-for 循环4、下面程序是计算100以内能被4整除且个位数为4的所有整数,请填空。main()int m,n;for(m=0;m+)n=m*10+4;if()c o n tin u e;printf(t%dn,n);-for循环+if结构+contimie控制测试一1.main()int x=l,i=l;for(;x10)break;-29-if(x%2!=2)x+=3;continue;x-=l;printff,%dn,

35、x);该语句输出为printf(%dn,i);该语句输出为2.main()int ij;do if(j%5=0)i+;j+;while(i!=5);printf(Hj=%dnH,j);3.main()int x=10,y;y=x+;printf(u%d,%dn,(+x,y),y+);该语句 输出为)4.从键盘输入五个字符组成的单词,判断该单词是不是h ello,并显示结果。#include main()static char char strl5;inti,(2 9);for(i=0;i5;i+)s t rl i =;-3 0-flag=O;for(i=0;i5;i+)i f(s t r l

36、i !=)flag=l;break;if(flag)printf(uThis word is not hello”);else printf(4This word id hello);)5.以下程序不用第三个变量实现两个数对调的操作。#include main()int a,b;scanf(d,%d”,&a,&b);a=a+b;b=a-b;a=a-b;printf(d,%d”,a,b);)数组、指针、函数、结构体与共用体、文件一、选择题1.下述对C语言字符数组的描述中错误的是().数组之字符数组(A)字符数组可以存放字符串(B)字符数组中的字符串可以整体输入、输出(C)可以在赋值语句中通过赋值

37、运算符“=”对字符数-31-组整体赋值(D)不可以用关系运算符对字符数组中的字符串进行比较2.以下程序段的输出结果是_ _ _A.数组之字符串给数组赋值chars=141141abcf,;printf(u%dn,strlen(s);(A)9(B)12(C)13(D)143.以下程序的输出结果是_ _ _ _ _.二维字符数组之行元素main()char ch35=“AAAA”,“BBB,“CC;printf(%sn”,chl);(A)”AAAA(B)BBB”(C)”BBBCC(D)“CC”4.以下不能正确进行字符串赋初值的语句是_ _ _ _ _.数组之字符串对字符数组赋值(A)char st

38、r5=good!;(B)charstr=good!”;(C)char*str=good!”;(D)char-32-5.若有如下程序:main()int s33=l,2,3,4,5,6,7,8,9,m,n,sum=0;for(m=0;m3;m+)for(n=m;n3;n+)sum+=smn;printf(%d,sum);则程序运行后的输出结果是0。一 二 维 数 组+for循环(A)15(B)26(C)34(D)276.若有如下程序:main()int m,n,s10,t4,sum=0;for(m=0;m10;m+)sm=m;for(m=0;m4;m+)tm=sm*m;for(m=0;m4;m+

39、)sum+=tm*tm;printf(%dn,sum);-数组+循环(A)50(B)98(C)35(D)317.以下程序的输出结果是_ _ _ _ _ _ _.数组之二维数组main()int b33=0,l,2,0,l,2,0,l,2,ij,t=l;for(i=0;i3;i+)for(j=i;j=i;j+)t=t+bibjj;/t+0+1+2-33-printf(%dn,t);(A)3(B)4(C)l(D)98.若有如下程序:main()int a33=l,2,3,4,5,6,7,8,9,i=0,sum=0;dosum=sum+aii;i+;while(i3);printf(d,sum);则

40、程序运行后的输出结果是()。二维数组+d。)while循环(A)15(B)16(C)17(D)189.若有如下程序:main()char a35=“1234”,“5678”,“3456”,*p3;int ij;long t=0;for(i=0;i3;i+)pi=ai;for(i=0;i=,0,&piU=,9,;j+=2)t=10*t+pij-,0,;printf(“ldn”,t);则程序运行后的输出结果是0。二维数组与for循环的嵌套(A)153(B)264-34-(0135735(D)24684610.若有定义:int aa8;,则以下表达式中不能代表数组元素aal的地址的是_ _ _ _

41、_ _ _ _ _ _ _ _.数组之元素地址描述(A)&aa0+l(B)&aal(C)&aa0+(D)aa+111.若有如下程序:main()char*tl/t2,a20=abcdefgh”;tl=MNWE”;t2廿 KLSI”;strcpy(a+3,t2+2);strcpy(a,tl+l);printf(%d”,strlen(a);则程序运行后的输出结果是()。指针+数组+字符串处理函数(A)9(B)7(C)3(D)1012.若定义:int a=5U,*b=&a;,贝!printf(dn”,*b);的输出结果为.指针(A)无 确 定 值 (B)a 的 地 址(C)512(D)51113若有

42、以下定义和语句:指针数组与数组指针int s45,(*ps)5;ps=s;-35-则对S数组元素的正确引用形式是(A)ps+1(B)*(ps+3)(C)psO(D)*(ps+1)+314.以下程序的输出结果是_D.数组+指针运算#include#includemain()char bl8=bl)strcpy(b2,pb);prints44%dn,strlen(b2);(A)8(B)3(C)l(D)715.设有如下的程序段:int a=l,2,3,4,5),*t;t=a;则下列说法正确的是)。指针+数组(A)a和t的内容相同(B)a数组的长度和t所指的字符串长度相等(C)a和t的完全相同(D)指

43、针变量t指向数组a的第一个元素16.若有如下程序:main()-36-char s6=ll,16,17,28,20,*t=s+3;printf(“d”,*t-2);程序运行后的输出结果是_ _ _ _ _ _ _ _.数组+指针(A)19(B)13(C)26(D)3017.下面各被调用函数首部书正确的是()。函数的结构(A)void sub(float x;float y);(B)void sub(float x,y)(C)void sub(float x,float y)(D)void sub(float x,float y);18.下列描述正确的是0。函数定义与调用(A)C语句能嵌套定义函

44、数,但不可以嵌套调用函数(B)C语句不能嵌套定义函数,也不可以嵌套调用函数(C)C语句能嵌套定义函数,也可以嵌套调用函数(D)C语句不能嵌套定义函数,但可以嵌套调用函数19.若有如下函数调用语句:函数参数sub(a,l,fun(b,c),d+c,(a+d,c*f);则在该函数调用语句中含有实参的个数是()0(A)5(B)0(C)-1(D)-220.在C语言中,形参的默认存储类是_ _ _ _ _ _ _.变量存储类型+函数之形参-37-(A)auto(B)register(C)static(D)extern21.以下程序的输出结果是_D.函数之返回值int f()static int i=0;

45、int s=l;s+=i;i+;return s;main()int i,a=0;for(i=0;i5;i+)a+=f();printf(=,A*&ch=,Z,)ch=ch-A+a;return ch;main()char s=ABC+abc=defDEF,*p=s;while(*p)*p=cchar(*p);p+;printf(u%sn,s);(A)abc+ABC=DEFdef(B)abc+abc=defdef-38-(C)abcaABCDEFdef(D)abcabcdefdef23.设有如下定义:sub(int*pl,int*p2)int*p;p=pl;pl=p2;p2=p;main()i

46、nt x,y,*tl,*t2;scanf(d,%d”,&x,&y);tl=&x;t2=&y;sub(x,y);printf(u%d,%d,x,y);如果从键盘上输入8,5 回车,则程序运行后的输出结果是(B)。函数之地址传递(A)5,8(B)8,5(C)0,0(D)编译出错24.若有以下程序#include-函数void f(int n);main()void f(int n);f(5);void f(int n)printf(u%dn,?,n);则以下叙述中不正确的是_ _ _ _ _ _C.(A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f-39-(B)若在主函数前对函数

47、f进行说明,则在主函数和其后的其他函数中都可以正确调用函数f(C)对于以上程序,编译时系统会提示出错信息:提示对f函数重复说明(D)函数f无返回值,所以可用void将其类型定义为无值型25.若有如下程序:sub(int n)int t;if(n=1)return t=5;else t=sub(n-l)+3;return t;main()printf(dn,sub(5);-函数的递归调用(A)17(B)0(C)19(D)2026.在C程序中,如果允许在一个函数内部的复合语句中定义变量,则该变量(C)。一局部变量(A)在本程序范围内有效(B)在本函数范围内有效(C)在本复合语句范围内有效(D)以上

48、说法都不对-40-27.以下程序的输出结果是_C.函数调用+静态存储类型int x=3;main()int i;for(i=l;i=,a,&c=,z,)c=c-32;return c;main()char a50=uABCabc,*t=a;while(*t)*t=sub(*t);t+;)printf(%sn”,a);-指针+函数值传递(A)将字符串中小写字母转换为大写字母(B)将字符串中大写字母转换为小写字母(C)去掉字符串中的大写字母(D)去掉字符串中的小写字母29.若有如下程序:sub(int a,int b,int*z)*z=a+b;return;-41-main()int a=l,b=

49、2,c=3,d,e;sub(a,b,&d);sub(c,d,&e);printf(u%d,e);程序运行后的输出结果是_D函数之地址传递+值传递(A)3(B)4(C)5(D)630.以下程序调用findmax函数返回数组中的最大值。指针+函数之地址传递Hndmax(int*a,int n)int*p,*s;for(p=a,s=a;p-as(B)*p*s(C)apas(D)p-ap-s31.以下程序的输出结果是_ _ _ _ _ _ _ _.函数之数组地址传递+值传递-42-f(int b,int m,int n)int i,s=O;for(i=m;in;i=i+2)s=s+bi;return

50、s;main()int x,a=l,2,3,4,5,6,7,8,9;x=f(a,3,7);printf(a(B)(*t).a+(C)t-a+(D)t+-a-44-37.若定义了以下函数:void sub(.)*t=(int*)malloc(10*sizeof(int);)其中t是该函数的形参,要求通过t把动态分配存储单元的地址传回主调函数,则形参t的正确定义应该是()。一一指针+函数+存储单元动态分配函数(A)int*t(B)int*t(C)long*t(D)long*t38.设有以下说明语句 typedef struct int n;charch8;PER;则下面叙述中正确的是_ _ _ _

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

当前位置:首页 > 教育专区 > 教案示例

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁