二级C语言模拟试题2.DOC
本文由林宗川贡献 doc文档可能在WAP端浏览体验不佳。建议您优先选择TXT,或下载源文件到本机查看。 26有以下程序 include main char c6; int I0 for;i6;c-getchar,i; forI0;i6;iputcharci; primfn; 如果从键盘上输入 ab回车 c回车 def回车 则输出结果为. Aa b c d e f 答案C 评析1getchar此函数的作用是从终端或系统隐含指定的输入设备输入一个字符。 2putchar此函数的作用是向终端输出一个字符,也可以输出控制字符。 本题在输入字符时,ab 和 c 后面的回车符分别赋给了 c2和 e4,所以,正确答案为 c。 27在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是。 A地址传递 D传递方式由用户指定 答案B 评析c 语言规定,实参变量对形参变量的数据传递是单向值传递,只由实参传给形参。 在内存中,实参单元与形参单元是不同的单元。调用结束后,实参单元仍保留并维持原值。 28下面程序 include include main char*p1abc,*p2ABC,str50xyz; strcpystr2,strcatp1,p2; printfsn,str; 的输出是。 AxyzabcABC CyzabcABC BzabcABC DxyabcABC B单向值传递 C由实参传递给形参,再由形参传递给实参 Ba b c d Cab c d Dabcdef 答案D 评析 strcatpl,p2将字符串 abcABC 放到了*pl 所指向的存储单元中; strcpy 在本题将 abcABC 复制到 str2 所指向的存储单元中,即覆盖原 str 数组中的字符 z 及其后的所有字符,故 str 的值 为xyabcABC。 29下面程序 int aa332,4,6; main int i,*paa00; forI0;i2;i ifi0aaIil*p1; elsep; printfd。p; , 的输出是。 A23 答案A 评析 观察题目, 可以发现, *paa01o语句实际是将数组 aa 的首地址赋给了指针变量 p, 将 i 的值带入 for 循环中,i0 时,aa013,p2;*p 输出的是指针所指向的数组值,此时 p 所指向的是 aaOO,输出 2,而 il 时执行了p 操作使指针向后移动指向了 aaO 儿 1,所以 在输出*p 时应为 3。 30以下程序的输出结果是。 include include funchar*w,int n char t,*s1,*s2; s1w;s2wn-l whiles1 define FUDGEy define PRaprintf define PRINT la main All B12 C13 D15 答案B 评析在程序中如果有带实参的宏,则按define 命令行中指定的字符串从左到右进行置换, 如果串中包含宏中的形参,则将程序语句中相应的实参代替形参。将实参带入已经定义的宏中, 可以得出答案灯12。 35以下程序段给数组所有的元素输入数据,请选择正确答案填入 include main int a10,iO; whileil0scanfd,; Aai 答案A 评析a 就是数组 a 的首地址,而 ax 是数组中第 x 个元素的地址, 。所以在四个选项中, 选项 B 和 c 只能输入一个数据,选项 D 不能给 aO输入数据,只有 A 可以完成给数组所有的元 素输入数据的任务。 36以下对枚举类型名的定义中正确的是。 Aenum aone,two,three; Cenum aone,two,three; 答案B 评析声明枚举类型用 enum 开头。例如enum weekdaysun,mon,tue,wed,thu,fri,sat; 说明1、在 c 编译中,对枚举元素按常量处理,同时可以改变他们的值。2、枚举值可以用 来做判断比较。3、一个整数不能直接赋给一个枚举变量。 Benum aone9,two-1,three; Denum aone,two,three; Bail Cai DaI intx2; PRINTlFUDGE5*x; 284y d,inta PRa;putcharn 37字符char型数据在微机内存中的存储形式是. A反码 CEBCDIC 码 答案D 评析 将一个字符常量放到一个字符变量中, 实际上并不是把该字符本身放到内存单元中去, 而是将该字符的 ASCII 码值放到存储单元中。 38下面程序的输出是。 typedef union long x2; int y4; char z8; MYTYPE; MYTYPE them; main printfdn,sizeofthem; B16 C8 D24 A32 答案C 评析sizeofx是一个标准 c 函数,它的返回值是 x 型的数据结构占用的内存字节数。题目 中定义了一个共用体,共用体变量在内存中所占的长度等于最长的成员的长度。 39有以下程序,程序运行后的输出结果是。 Int fintb4 Ij; ifI2i3-j; sbij; return s main int a441,2,3,4,O,2,4,6,3,6,9,12,3,2,1,0; printfdn,fa; A22 答案D 评析本题通过函数调用对数组 a00、a1l、a2112、a03进行求和,然后用 return 语句返回 s 的值。 40不能把字符串Hello赋给数组 b 的语句是。 Acharb10H,e,1,l,0,; Bll C18 D16 int I,J,sO; forj004;j B补码 DASCII 码 Bchar b10h,e,1,lO,; Ccharb10;strcpyb,Hello; Dchar b10Hello; 答案B 评析 c 语言中, 在 大写字母和小写字母被认为是两个不同的字符, 因此, hello和Hello 是两个不同的字符串。 41下面程序的输出是。 main primfxd,yd,adn,x,y,a; Ax4,y4,a1 Cx5,y4,a3 答案D 评析注意的是 x中 x 值的引用时,这里应当是先引用,后自加,具体执行过程如下 第一次 while 循环条件为真,执行 aall;此时,x 的值已为 4,判断 yx 不成立,继续 执行循环; 第二次 while 循环条件为假,此时 x 的值已为 5,退出 while 循环,执行 printf。 42若有程序 funint a,int b static int cO cab return C; main int x5,y3,z7,r; rfuny,xy,z; rfunx,y; printfdn,r; 上面程序的输出结果是。 A23 答案A 评析stoic 声明的外部变量只限于被本文件引用,而不能被其他文件引用。用 static 来声明 一个变量的作用有对局部变量用 static 声明,则为该变量分配的空间在整个程序执行期间始 终存在;全部变量用 static 声明,则该变量的作用域只限于本文件模块即被声明的文件中。 B15 C19 D18 BX5,y5,a1 Dx5,y4,al int x3,y6,a0; a1; whilexy-1 ifyxbreak; 调用第一个 fun,其两个实参的值为3,53与 7 即 8 与 7,在函数 fun 执行结束返回 15。第二 次调用 fun 时,由于 stat为静态类型,其值保留,执行 fun5,3后,其返回值为 23,故选 A。 43下面程序的输出是。 main char*s12134211; int vl0,v20,v30,v40,k; fork0;sk;k switchsk defaultv4; caselvl; case3v3; case2v2; printfv1d,v2d,v3d,v4dn,v1,v2,v3,v4; Avl4,v22,v3l,v4l Cvl5,v28,v36,v4l 答案C 评析当 switch 后面括弧内的表达式的值与某一个 case 后面的常量的表达式的值相等时, 就执行此 caSe 后面的语句,若所有的 case 中的常量表达式的值都没有与表达式的值匹配的,就 执行 default 后面的语句。 44下面程序的输出是。 main int k11; printfkd,ko,kxn,k,k,k; Akl1,k12,kl1 Ckl1,k013,k0 xb 答案D 评析在 C 语言格式字符的输出中,d是以带符号的十进制形式输出整数;0是以 8 进制无符号形式输出整数不输出前导符 O; Oox是以 16 进制无符号形式输出整数不输出前 导符 0 x。 45下面程序段中 c 的二进制值是。 char a3,b6,c; cab1 A00001011 答案B 评析c 语言提供六种位运算符,按优先级由高到低的顺序分别为取反、左移和右 移、按位与、按位异或八、按位或I。所以表达式 caAbl 先运算 bl 得二进制值为 00001 100,再运算 aA00001 100,最后得二进制值 00001ll1。B 评析c 语言提供六种位运算符,按优先级由高到低的顺序分别为取反、左移和右 B00001111 C00011110 D00011100 Bkll,k13,k13 Dkl1,k13,kB Bvl4,v29,v33,v4l Dvl8,v28,v38,v48 移、按位与、按位异或八、按位或I。所以表达式 caAbl 先运算 bl 得二进制值为 00001 100,再运算 aA00001 100,最后得二进制值 00001ll1。 46以下叙述中正确的是。 AC 语言比其他语言高级 BC 语言可以不用编译就能被计算机识别执行 CC 语言以接近英语国家的自然语言和数学语言作为语言的表达形式 DC 语言出现的最晚,具有其他语言的一切优点 答案C 评析计算机语言分为低级语言、汇编语言和高级语言,c 语言属于高级语言,但并不是说 c 语言比其他语言高级,所以选项 A 错误;除了低级语言外,其他各种语言都必须编译成能被计 算机识别的二进制数才能执行,选项 B 错误;C 语言出现从 1972 年到 1973 年间,并不是出现 最晚的语言,所以选项 D 也是错误的。 47下列可用于 C 语言用户标识符的一组是。 Avoid define WORD CFor -abc IFCase 答案B 评析c 语言规定标识符只能由字母、数字和下划线 3 种字符组成,且第一个字符必须为字 母或下划线,所以排除 c 和 D。c 语言还规定标识符不能为 c 语言的关键字,从而选项 Avoid 是 关键字是错误的。 48fgetc 函数的作用是从指定文件读入一个字符,该文件的打开方式必须是。 A只读 答案D 评析fgetc 函数是指从指定的文件读入一个字符,该文件必须是以读或读写方式打开的。 电 etc函数的调用形式为chfgetcfp; 。 49请选出正确的程序段。 Aint*p Scanfd,p; Cint*s,k; Char *p,c; sk pc; *pa; 答案C 评析本题的 A 和 B 犯了一个同样的错误,即指针变量 p 定义后并没有指向具体的变量, 因此不能进行赋值操作。另外,在选项 D 中,s 是 int 指针变量,p 是 char 型指针变量,所指向 的内存单元所占用的字节数是不同的,因而不能将字符指针变量 p 的值赋给整型指针变量 s。 *s100; Dint*s,k; char *p,e; sk pc; sp; *sl; Bint*s,k; B追加 C读或读写 D以上均正确 Ba3_b3 _123 Car D2a DO sizeof 50若有下面的说明和定义,则 sizeofstruct aa的值是。 struct aa int rl;double r2;float r3 union uuchar u15;long u22ua; mya; A30 答案D 评析 结构体变量所占内存长度是各成员占的内存长度之和, 每个成员分别占有自己的内存 单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量 aa 中,成员 r1 占 2 个字 节,r2 占 8 个字节,r3 古 4 个字节,共用体 ua 占 8 个字节,所以共占用 284822 个字节。 二、填空题每空 2 分,共 40 分 填空题 请将每一个空的正确答案写在答题卡的 【1】 【20】 至 序号的横线上, 答在试卷上不得 分。 B29 C24 D22 1在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种前序遍 历、 【1】 遍历和后序遍历。 答案 【1】中序 评析在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种前序遍 历、中序遍历和后序遍历。 前序遍历是指在访问根结点、遍历左子树与遍历右子树这三者中,首先访问根结点,然后遍 历左子树,最后遍历右子树;并且遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最 后遍历右子树。 中序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历左子树,然后访问 根结点,最后遍历右子树;并且遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后 遍历右子树。 后序遍历指在访问根结点、遍历左子树与遍历右子树这三者中,首先遍历右子树,然后访问 根结点,最后遍历左子树;并且遍历左、右子树时,仍然先遍历右子树,然后访问根结点,最后 遍历左子树。 2结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、 【2】 和限制使用 goto 语句。 答案 【2】模块化 评析结构化程序设计方法的主要原则可以概括为自项向下、逐步求精、模块化和限制使用 goto 语句。 自顶向下程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。 不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。 逐步求精对复杂问题,应设计一些子目标作过度,逐步细化。 模块化一个复杂问题,肯定是由若干稍简单的问题构成。模块化是把程序要解决的总目标 分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。 限制使用 goto 语句。 3软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测 试数据和 【3】 的设计来实现。 答案 【3】测试实例 评析进行软件测试时,应精心设计测试实例和选择测试数据,以对系统进行全面测试。 4数据库系统的三级模式分别为 答案 【4】概念 或 概念级 评析数据库系统在其内部具有三级模式及二级映射,三级模式分别是概念级模式、内部级 模式和外部级模式。 概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户应用公共数据视图。 内模式又称物理模式, 它给出了数据库物理存储结构与物理存取方法, 如数据存储的文件结 构、索引、集簇及 hash 等存取方式与存取路径,内模式的物理性主要体现在操作系统及文件级 上, 它还未深入到设备级上如磁盘及磁盘操作。 外模式也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由 概念模式推导面出。 5数据字典是各类数据描述的集合,它通常包括 5 个部分,即数据项、数据结构、数据流、 【5】 和处理过程。 答案 【5】数据存储 评析数据字典是各类数据描述的集合,它通常包括 5 个部分,即数据项,是数据的最小单 位;数据结构,是若干数据项有意义的集合;数据流,可以是数据项,也可以是数据结构,表示 某一处理过程的输入或输出;数据存储,处理过程中存取的数据,常常是手工凭证、手工文档或 计算机文件;处理过程。 6下面程序的输出是 main int arr10,i,kO fori0;i10;i arrii; forI1;i4;i karrIi; printfdn,k; 答案 【6】12 评析本题通过第一个 for 循环将数组 arrO-arr9分别赋值为 0-9,通过第二个 for 循环的 三次循环累加,求出结果为 12,具体分析如下 ilk0arr1l 即 k2 i2k2arr22 即 k6 i3k6arr33 即 k12; 7若 a10,b20,则表达式ap 【20】iN 评析本题主要考查了插入排序。由于程序中的数组在开始已经按从小到的大顺序排好。在 插入时,首先要查到第一个大于待插入数的数组下标,即当待插入元素小于数组中当前元素时, 记下数组的当前下标 p,并结束循环。故第一空目的是为了记下数组下标,应填 pi;插入排序 的第二部是将大于待插入元素的所有元素都向后移动一位, 故在循环时, 要从最后一个元素到第 p 个元素都要后移一位,因此第二空应埴 ip。最后一个循环是将 N1 个元素都输出,故最后 一空应为 iN。注本题有多种答案,以上仅提供一种1