《C测验题 .docx》由会员分享,可在线阅读,更多相关《C测验题 .docx(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品名师归纳总结1简答题 同学的记录由学号和成果组成,N 名同学的数据已放入主函数中的结构体数组 s中,请编写函数 fun,其功能是:把分数最高的同学数据放在 b 所指的数组中。留意:分数最高的同学可能不止一个,函数返回分数最高的同学人数。留意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的如干语句。试卷程序:可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:【参考答案】【考点分析】此题考查:结构体数组操作。用循环判定结构查找数组中的最大值。【解题思路】可编辑资料 - - - 欢迎下载精品名师归纳总结该程序使用两个循环判定语句
2、,第1 个循环判定语句的作用是找出最大值。第 2 个循环判定语句的作用是找出与max 相等的成果即最高成果 的同学记录,并存入 b 中。【解题宝典】 对于如何找出数组中最大值 多个相等 的方法,我们已经不生疏。如何对结构体数组进行类似操作了 .把握以下语句:2单项题 以下定义数组的语句中,正确选项 。参考答案: A参考解读:数组说明的一般形式为:类型说明符数组名 常量表达式。B 选项中 N 是变量,不能用变量定义数组长度。 c 选项中数组长度是非法的一串数字。定义数组时必需为其指明长度,D 选项中数组长度为空,所以非法。可编辑资料 - - - 欢迎下载精品名师归纳总结3单项题 如有以下程序段就
3、以下选项中值为 6 的表达式是A.P-nB.*p.nC.p-n+D.+P-n参考答案: D参考解读:此题考查结构体变量的引用,其中a为定义的结构体数组, D 选项中 P-n 为 5,+P-11为 6,所以 D 选项正确。4单项题 有以下程序程序运行后的输出结果是A.4B.8C.9D.6参考答案: B可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:此题考查宏定义,宏定义只是做个简洁的替换,执行 NUM=N+l+1*N+1/2=8 ,选项 B 正确。5单项题 有以下程序程序要求输出结构体中成员 a的数据,以下不能填入横线处的内容是A.a.aB.*P.aC.P-aD.*p.a参考答案: B
4、参考解读:此题考查结构体变量的引用,题目中要求输出结构 体中成员 a的数据, P 为指针, * P 为结构体变量,那么 *P.a 可以表示为结构体中成员 a的数据。6单项题 如有定义语句: double a, *P=&a 。以下表达中错误选项 。可编辑资料 - - - 欢迎下载精品名师归纳总结A. 定义语句中的 * 号是-个间址运算符B.定义语句中的木号是 -个说明符C.定义语句中的 P 只能存放 double 类型变量的的址D.定义语句中, P=&a 把变量 a的的址作为初值赋给指针变量 P参考答案: A参考解读:在变量定义double a, *P: &a。中, 号是一个指针运算符,而非间址
5、运算符,所以A 错误。7单项题 设有以下程序段:以下表达正确选项 。A. 只有变量 c 的定义是合法的B. 只有变量 a,b, c 的定义是完全合法的C.全部变量的定义都是完全合法的D.只有变量 a, b 的定义是完全合法的可编辑资料 - - - 欢迎下载精品名师归纳总结参考答案: D参考解读: float“8=1,.02.0。定义了一个包含 8 个 float 型元素的数组,并初始化了数组的前2 项,其他项是随机数。 int b1=0 ,定义了只有一个 int 型元素的数组,并初始化为 0。char c=A”, ” B。定义一个 char型数组,大小有初始化元素准备,但初始 化值是字符串,类
6、型不兼容,编译出错。char d=1。定义一个 cha r 型变量,但是初始化赋值字符串,类型不兼容,编译出错。因此只有 a,b 定义和初始化正确。故答案为 D 选项。8单项题 有以下程序:程序运行后的输出结果是 。可编辑资料 - - - 欢迎下载精品名师归纳总结A.1002,ZhangDa, 1202.0 B.1002,ChangRon9,1202.0 C.1001,ChangRon9,1098.0 D.1001,ZhangDa, 1098.0 参考答案: D参考解读:此题考查结构体的相关操作以及传值、传址的区别,该题中调用 f 函数后,会生成参数 a 的一个副本,而不会转变 a的值,所以
7、a值保护原值,选项 D 正确。9单项题 有以下程序:就以下函数调用语句错误选项 。A.k :fa,B.。B.k: adda, B.。C.k=*fa , B.。D.k=*a ,B.。参考答案: D可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读: D 选项中+fa,b表示调用后返回一个指向整型数据的的址指针,即该函数的返回值为指针类型,所以不能将其赋值给 整形变量 k。10单项题 程序调试的任务是 。A. 设计测试用例B. 验证程序的正确性C.发觉程序中的错误D.诊断和改正程序中的错误参考答案: D参考解读:程序调试的任务是诊断和改正程序中的错误。1填空题 以下给定程序中,函数fun 的
8、功能是进行数字字符转换。如形参 ch 中是数字字符 09,就将 0转换成 9,1转换成 8, 2转换成 7, , 9转换成 0。如是其他字符就保持不变。并将转换后的结果作为函数值返回。请在程序的下画线处填入正确的内容并将下画线删除,使程序得出正确的结果。可编辑资料 - - - 欢迎下载精品名师归纳总结留意:部分源程序给出如下。不得增行或删行,也不得更换程序的结构 .试卷程序:参考解读:【参考答案】1char2ch=9 3 O【考点分析】可编辑资料 - - - 欢迎下载精品名师归纳总结此题考查:函数定义,留意函数定义的一般形式以及有参函数和无参函数的区分。 if 语句条件表达式,此题的条件表达式
9、是判定数字字符。函数返回值,其一般形式为 “return表达式。 ”。【解题思路】填空 l:函数定义时,类型标识符指明白函数的类型,函数的类型实际上是函数返回值的类型,所以此处应当填入char。填空 2:通过 if 条件语句判定字符串中字符是否为数字字符, 即大于等于字符 0,同时小于等于字符 9。填空 3:return 语句完成函数返伺操作,要实现字符转换,完整语句为 return9 一ch 一 0。【解题宝典】 .有参函数定义,其一般形式为: 类型标识符函数名 形式参数列表 声明部分语句可编辑资料 - - - 欢迎下载精品名师归纳总结在形参列表中给出的参数称为形式参数,它们可以是各种类型的
10、变量,各参数之间用逗号分隔。在进行函数调用时,主调函数将赐予这些形式参数实际的值。形参也是变量,必需在形参列表中给出类型说明。2单项题 以下表达中错误选项 。A.gets 函数用于从终端读人字符串B.getehar函数用于从磁盘文件读人字符C.fputs 函数用于把字符串输出到文件D.fwrite 函数用于以二进制形式输出数据到文件参考答案: B参考解读:此题考查字符处理函数和文件操作函数。属于基础学问,其中 B 选项 9etchar函数是用于从终端读人一个字符。3单项题 以下选项中合法的实型常量是 A.0B.3.13e-2.1C.914D.2.0*10参考答案: C参考解读: A 选项为整型
11、数据。 B 选项中 e 后面必需为整数。 D选项是表达式,不是常量,所以选择C。可编辑资料 - - - 欢迎下载精品名师归纳总结4单项题 有以下程序段:以下选项中不能正确引用字符串的是 。A.3B.p3C.str2D.*P参考答案: A参考解读: t p3 一 p30 是一个字符,不是字符串,选项 A 错误。P3和 str2 和+P 分别代表了 ddd, eec,flaa。答案为 A 选项。5单项题 有以下程序 strcpy 为字符串复制函数, streat为字符串连接函数 程序运行后的输出结果是A.a12xyzB.bc2yzC.a2yzD.12yz 参考答案: C可编辑资料 - - - 欢迎
12、下载精品名师归纳总结参考解读:此题考查字符串处理函数 strcpy 和 streat,执行完 str cpya+1, b+2。后, a变为 a2,执行完 strcata, c+1后, a变为 a2y z,所以答案为 C 选项。6单项题 在软件开发中,需求分析阶段产生的主要文档是 。A. 软件集成测试方案B.软件详细设计说明书C.用户手册。D.软件需求规格说明书参考答案: D参考解读:需求分析阶段的工作可以概括为:需求猎取、需求分析、编写需求规格说明书、需求评审四个方面。所以选择D。7单项题 如有以下程序就程序的输出结果是可编辑资料 - - - 欢迎下载精品名师归纳总结A.1 ,2,3, 4B.
13、2,1,2, -1C.5, 1,2,-1D.2,2, 2, 4参考答案:参考解读:第一个 if 语句的判定条件中是规律或表达式,所以只要有一个运算对象为真结果就为真,且假如前面的已经为真,后 面的表达式不再进行执行判定。执行第一个if 判定条件时 a 的值为2,整个表达式的值为真, b 的值不变, c 的值为 2。判定其次个 if 条件为规律与表达式。只有两个运算对象均非零,才为真,第一个表 达式 c=3,不成立,不再判定其次个运算对象,所以不执行d=-1 操作和 a=5 操作。所以结果为选项D。8单项题 下面选项中的程序段,没有编译错误选项参考答案: A参考解读:此题考查字符数组的初始化以及
14、指向字符串的指针, B 选项不能直接将字符串赋值给数组名, C 选项不能将两个字符数组直接相互赋值, D 选项中不能这样定义 charmark,必需指定长度或者直接初始化。可编辑资料 - - - 欢迎下载精品名师归纳总结9单项题 以下选项中关于程序模块化的表达错误选项 。A. 可接受自底向上、逐步细化的设计方法把如干独立模块组装成所要求的程序B. 把程序分成如干相对独立、功能单一的模块,可便于重复使用这些模块C. 把程序分成如干相对独立的模块,可便于编码和调试D. 可接受自顶向下、逐步细化的设计方法把如干独立模块组装成所要求的程序参考答案: A参考解读:程序模块化思想中,可以接受自顶向下、逐步
15、细化的方法。所以选项 A 中“自底向上 ”的说法是错误的。10单项题 已知大写字母 A 的 ASCIl 码值是 65,小写字母 a 的ASCIl 码值是 97。以下不能将变量 C 中的大写字母转换为对应小写字母的语句是 。A.C= 。A+C.%26一a B.c=c+32C.c=c 一A+a可编辑资料 - - - 欢迎下载精品名师归纳总结D.c=c 一A%26+-a参考答案: A参考解读:依据题意可知,小写字母比与之对应的大写字母的ASC码大 32。A 选项中字符 A 加上 c 表示的大写字符再对字母个数 26 取余,本身这个表达式没有任何含义,所以选择A 选项。1单项题 以下表达中正确选项A.
16、 假如函数带有参数,就不能调用自己B. 全部函数均不能接受函数名作为实参传入C.函数体中的语句不能显现对自己的调用D.函数名代表该函数的入口的址参考答案: B参考解读:此题考查函数调用相关学问, B 选项中函数可以接受函数名作为实参传人,引用函数名也是指针, C、A 选项是错误的,由于递归函数就能调用自己。2单项题 有以下程序:可编辑资料 - - - 欢迎下载精品名师归纳总结程序运行时,输入的值在哪个范畴才会有输出结果 。A. 小于 3 的整数B. 不等于 10 的整数C. 大于 3 或等于 10 的整数D. 大于 3 且不等 10 的整数参考答案: D参考解读:依据代码可知假如 x 的值小于
17、等于 3,执行空语句,不进行打印操作。假如 x 的值大于 3,再判定 x 的值是否不等于l0,假如不等于 l0 就打印 X 的值,所以选择 D 选项。3单项题 设有以下语句:int a=1,b=2,c。c=aba 与 P+-a 都是合语法的表达式,但二者不等价B.语句+P-a。的成效是使 P 增 1C.语句+P-a。的成效是使成员 a增 1D.语句P-s+。等价于 *P-s+。参考答案: C参考解读:此题考查结构体变量的引用,+P-a的成效是使成员 a增 1,P+-a 不合法, * P-s+为字符 e,与* P-s+ 不等 价。8单项题 有以下程序:执行时输入: 6,就输出结果是 。可编辑资料
18、 - - - 欢迎下载精品名师归纳总结A.6B.8C.7D.5参考答案: C参考解读:后置自增运算: k+表示先运算,后自如。 ift+6p 血 ff“ %nd”, t。else prinff、“n%”d,t。t 的初值为 6,t+av 表达的是当 x 数组中的数大于平均值时,应当把这些大于平均值的数放在 y 数组的前半部分,因而此空应当填 yj+ 。填空 3:此空说明当 xi 不等于什么时, Xi 中的数要赋值给 Y数组,由题意可知此空只能填写一1。2单项题 有以下程序:程序运行后的输出结果是 。A.10, One*Dream.B.9, One*Dream.C.9,One*WorldD.10
19、 ,One*World参考答案: A参考解读: P 是指向二维字符数组其次行 One+Dream.的数组指针,所以长度是 l0,打印输出的也是该字符串。3简答题 同学的记录由学号和成果组成,N 名同学的数据已放入主函数中的结构体数组 s中,请编写函数 fun,其功能是:把分数最高的同学数据放在 b 所指的数组中。留意:分数最高的同学可能不止一个,函数返回分数最高的同学人数。可编辑资料 - - - 欢迎下载精品名师归纳总结留意:部分源程序给出如下。请勿改动主函数 main 和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的如干语句。试卷程序:参考解读:可编辑资料 - - - 欢迎下载精
20、品名师归纳总结【考点分析】此题考查:结构体数组操作。用循环判定结构查找数组中的最大值。【解题思路】该程序使用两个循环判定语句,第1 个循环判定语句的作用是找出最大值。第 2 个循环判定语句的作用是找出与max 相等的成果即最高成果 的同学记录,并存入 b 中。【解题宝典】 对于如何找出数组中最大值 多个相等 的方法,我们已经不生疏。如何对结构体数组进行类似操作了 .把握以下语句:4单项题 有以下程序:可编辑资料 - - - 欢迎下载精品名师归纳总结程序运行后的输出结果是 。A.7B.10C.8D.9参考答案: D参考解读:调用 fa, b函数返回 3,调用 fa,c函数返回 6, 所以外层调用
21、 ffa ,b, fa,c。即调用 f3, 6函数返回 9。5单项题 有以下程序程序的输出结果是A.9B.14C.10D.15参考答案: D可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:考查函数的递归调用,只需要一步一步递归调用fun 函数即可,执行 fun5=5+4+3+2+fun1=15 。所以答案为 D 选项。1单项题 表达式: imdouble9/2 一 9%2 的值是 。A.0B.3C.4D.5参考答案: B参考解读:先将整型数据 9 强制转换成 double 型,然后除以 2 得到的结果与 double 型保持一样,即为 4.5,然后将 4.5 强制转换成整型数据 4,
22、然后运算 9%2 的值为 1,最终运算 4 一 l 的值为 3,所以选择 B 选项。2单项题 有以下程序:程序运行后的输出结果是 。A.LoB.30C.0D.64参考答案: D可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:此题目中静态局部变量x,在静态储备区内支配储备单元。在程序整个运行期间都不释放。所以第一次循环s的值为2,其次次循环中,返回的 x 的值为 4,所以 s 的值为 8,第三次循环,返回的 x 的值为 8,所以 S 的值为 64.3单项题 有以下程序:程序运行后的输出结果是 。A.8B.2C.4D.1参考答案: A参考解读:第一次调用m=fff1 ,其次次为 m=ff
23、2 ,第三次为 m=f4,即返回值为 8。4单项题 如变量已正确定义,以下选项中非法的表达式是A.a.=4|bB.a=1/2*x=Y=20 , x*3C.a %4 13A +32参考答案: B可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读: A 选项中a即表示 a 为字符常量,再给 a赋值 1/2*x=Y=20 , x*3 ,是不正确的。因此 B 选项正确。5单项题 如有以下程序就程序的输出结果是A.0 ,3,2, 2, 1,0, 3, 1, B.1, 4,3, 3, 2,1, 4,2,C.5, 6,5, 6, 5,6, 5,6,D.6,7,6, 7, 6,7, 6, 7, 参考答案
24、: A参考解读:此题考查二维字符数组的运用,题目中第确定义了一 个一维字符数组,从三层 for 循环可以看出要找的是 w 数组中每个字符在二维数组中的位置,比如d 字母,在 a数组中就是 0, 3 其他字符类似,所以此题答案为 A。可编辑资料 - - - 欢迎下载精品名师归纳总结1单项题 下面关于 “EOF”的表达,正确选项A.EOF 的值等于 0B.EOF 是在库函数文件中定义的符号常量C.文本文件和二进制文件都可以用EOF 作为文件终止标志D.对于文本文件, fgetc 函数读入最终一个字符时,返回值是EOF参考答案: B参考解读:在 c 语言中,或更精确的说成 c 标准函数库中表示文件终
25、止符 end of file。在 while 循环中以 EOF 作为文件终止标志,这种以 EOF 作为文件终止标志的文件,必需是文本文件。在文本文件中,数据都是以字符的 ASCII 代码值的形式存放。我们知道, ASCII 代码值的范畴是 0 255,不行能显现 -1,因此可以用 EO F 作为文件终止标志。2单项题 如有定义: int a, h。通过语句: scanf ”%。d%d”,& a, &B. 。,能把整数 3 赋给变量 a,5 赋给变量 b 的输入数据是 。A.3 5B.3,5C.3。5D.35参考答案: C可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:输入数据的格式必
26、需与seanf的格式把握串完全匹配,所以输入时必需在3 和 5 之间输入 “。”。3单项题 有以下程序:程序运行后的输出结果是 。A.02356B.0235C.235D.2356参考答案: C参考解读: k 的值为 5,逐个对 caBe语句进行匹配,均不匹配,执行 default 下的语句 n=0。k 一一。再执行 case2:ca804:后面的语句 n+=2。k 一一。执行 break语句跳出 switch 判定,打印 n 的值,即 2。经过第一次循环后, k 的值为 3,然后进行 k0&ll0&n5 ,所以终止循环。整个程序的打印结果为 235。4单项题 有以下程序:程序运行后的输出结果是
27、 。A.9B.8C.7D.10参考答案: A参考解读:题目中静态局部变量 a,在静态储备区内支配储备单元,在程序整个运行期间都不释放。所以第 -次调用函数执行 n+=a+。时 a先与 n 相加在再进行自增。 n 的值为 4,a的值为 2,且 a 变量执行完后空间没有释放。再执行 s:。+fa时, s 的值为 4,调用 fa函数时 n 的返回值为 n=3+2=5,且此时 a 的值为 3 了。所以 s 的值为 9。可编辑资料 - - - 欢迎下载精品名师归纳总结5单项题 如有以下程序就程序的输出结果是A.abedB.ABEJC.abejD.ABCD 参考答案: C参考解读: 如有以下程序该题目第一
28、初始化变量 a 和 b,通过 for 循环语句使 a取值为 0、1、2、3,f 函数的功能是将 a*a+a的值返回给 b,即 b 为 ab e j。最终通过字符输出函数putchar将 b 输出。因此 C 选项正确。1填空题 给定程序中,函数 fun 的功能是:调用随机函数产生 20 个互不相同的整数放在形参 a所指数组中 此数组在主函数中已置O。可编辑资料 - - - 欢迎下载精品名师归纳总结请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。留意:部分源程序在文件 BLANKl.C 中。不得增行或删行,也不得更换程序的结构. 试卷程序:参考解读:1N 或 20 2brea
29、k 3n可编辑资料 - - - 欢迎下载精品名师归纳总结【解题思路】填空 l:变量 n 用于储备数组的下标,要通过 while 语句对数组进行赋值,数组的容量为 20,因此循环条件应为 n20。填空 2:通过一个 for 循环判定 X 是否与数组中已存的元素重复,如重复就跳出 for 循环终止。填空 3:如 for 循环是由 break语句终止的,就 X 与数组中的元素重复,此时 i 必定小于 n。如 for 循环是由于循环变量 i 递增到某值,而不再中意循环条件终止的,说明X 的值与数组中的元素不重复,就此时 i 的值等于 n。2简答题 以下给定程序中函数 fun 的功能是:统计 subst
30、r所指的字符串在 str 所指的字符串中显现的次数。例如,如字符串为 aaas 1kaaa,s 子字符串为 as,就应输出 2。请改正程序中的错误,使它能得出正确的结果。留意:不要改动 main 函数,不得增行或删行,也不得更换程序的结构.试卷程序:可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读:【参考答案】1fori=0 。stri 。i+2ifsubstrk+1=0【考点分析】可编辑资料 - - - 欢迎下载精品名师归纳总结此题考查: for 循环语句的格式, for 循环语句使用最为灵敏, 其一般形式为 for表达式 1。表达式 2。表达式 3,留意表达式之间使用“。”相隔。
31、if 条件语句的格式,其中 if 关键字需要区分大小写,不能混淆使用。关键字是由C 语言规定的具有特定意义的字符串,也称为保留字。用户定义的标识符不应与关键 字相同,并且关键字应小写。 .【解题思路】先看循环条件 fori=0 , stri ,i+ ,不难发觉此处 for 循环语句的格式有误,其中表达式之间应以 “。”相隔。同时很简洁发觉 if 条件语句处的关键字书写错误。3单项题 以下表达中正确选项A. 语句 int a8=0 。是合法的B. 语句 inta=0 。是不合法的,遗漏了数组的大小C. 语句 char a2= A ,BII 。是合法的,定义了一个包含两个字符的数组D. 语句 ch
32、ar a3。a=AB 。是合法的,由于数组有三个字符空间的容量,可以储存两个字符参考答案: A可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读: B 选项中,如给全部元素赋值,就在数组说明中,可以不给出数组元素的个数。 C 选项中, char a2= ,B 。不合法,应为 char a2= A, B 。D 选项中,字符数组只能在定义 的时候可以用字符串常量来初始化,但不能够先定义字符数组,然后再用字符串常量进行赋值。因此A 选项正确。4单项题 以下选项中合法的实型常量是 A.0B.3.13e-2.1C.914D.2.0*10参考答案: C参考解读: A 选项为整型数据。 B 选项中 e 后面必需为整数。 D选项是表达式,不是常量,所以选择C。5单项题 以下表达中正确选项A. 循环发生嵌套时,最多只能两层B. 三种循环 for, while,do-while 可以相互嵌套C. 循环嵌套时,假如不进行缩进形式书写代码,就会有编译错误D. for 语句的圆括号中的表达式不能都省略掉参考答案: B可编辑资料 - - - 欢迎下载精品名师归纳总结参考解读: A 选项中,循环发生嵌套时,没有规定层数。 C 选项中,循环嵌套时,书写代码时没有要求必需缩进。 D 选项中, for 语句的圆括号中的表达式都可以省掉。因此 B 选项正确。6单项题 以下表达中正确选项 。A. 有一个以