二级C语言分类模拟题551_第1页
二级C语言分类模拟题551_第2页
二级C语言分类模拟题551_第3页
二级C语言分类模拟题551_第4页
二级C语言分类模拟题551_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、二级 C语言分类模拟题 551选择题1、有如下程序:#includemain()char a=3,b=A;int i;for(i=0;i 6;i+)if(i%3)putchar(a+i);else putchar(b+i);printf(n); 程序运行后的输出结果是 。A A45D78 B ABC678 C 34CD78 D 34AB782、下列关于线性链表的叙述中,正确的是 。A 各数据结点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致B 各数据结点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续C 进行插入与删除时,不需要移动表中的元素D 以上 3 种说法都不对3、以下

2、叙述错误的是 。A C语言区分大小写B C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改C 整数和实数都能用 C语言准确无误地表示出来D 在 C程序中,正整数可以用十进制、八进制和十六进制的形式来表示4、有两个关系 R和T如下:RABCa12b4423d32TACa2b43d2则由关系 R得到关系 T的操作是 。A 选择 B 交 C 投影 D 并5、结构化程序所要求的基本结构不包括 。A 顺序结构 B COTO跳转 C 选择(分支)结构 D 重复(循环) 结构6、C源程序中不能表示的数制是 。A 十六进制 B 八进制 C 十进制 D 二进制7、以下选项中,合法的

3、C语言常量是 。A 21.84 B CPP C 1.0 D2MB8、设二叉树共有 150 个结点,其中度为 1的结点有 10个,则该二叉树中的叶子结点数为 A 71 B 70C 69 D 不可能有这样的二叉树9、下列选项中,能正确定义数组的语句是 。A int num0.2008; B int num;C int N=2008;int numN;D #define N 2008int numN;10 、下列程序的输出结果是 。#includemain() int i, s=0;for(i=1; i 10; i+)if(!(i%2)&!(i%3)s+=i;printf(%dn, s);A 4 B

4、 39C 45 D 611 、以下语句的输出结果是 。printf(%dn,strlen(t065xffn);A 5 B 8C 14 D 输出项不合法,无正常输出12 、下列叙述中正确的是 。A 在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B 在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C 在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D 在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化13 、若用数组名作为实参,则传递给形参的是 。A.数组的首地址 B.数组第一个元素的值C.数组中全部元素的值D. 数组元素的个数14、有以下程序:#include mai

5、n()FILE *fp;int i,k,n;fp=fopen(data.dar,w+);for(i=1;i 6;i+)fprintf(fp,%d ,i);if(i%3=0)fprintf(fp,n);rewind(fp);fscanf(fp,%d%d,&k,&n); printf(%d%dn,k,n); fclose(fp);程序运行后的输出结果是 ( ) 。A. 0 0 B. 123 45 C. 1 4 D. 1 215 、以下叙述中正确的是 。A 数组下标的下限是 1B 数组下标的下限由数组中第一个非零元素的位置决定C 数组下标的下限由数组中第一个被赋值元素的位置决定D char c1,

6、c2, *c3, c440; 是合法的变量定义语句16 、有以下程序#includeint fun(char s)int n=0;while(*s =0)n=10*n+*s-0;s+;return(n);main()char s10=6,1,*,4,*,9,*,0,*; printf(%dn,fun(s); 程序的运行结果是 。A 61490 B 61 C 9 D 517 、 下面程序段的运行结果是char a =lanuage,*p;p=a; while(*p!=u)printf(%c,*p-32);p+;A LANGUAGE B language CLAN D langUAGE18 、有以

7、下程序#includetypedef structint b,p;A;void f(A c) /*注意: c 是结构变量名 */int j;c.b+=1;c.p+=2;main()int i;A a=1,2;f(A.;printf(%d,%dn,a.b,a.p);程序运行后的输出结果是 。A2,4B 1,2C1,4D2,319 、已定义以下函数:int fun(int*p) return *p;fun 函数返回值是 。A一个整数 B不确定的值 C形参p中存放的值 D形参 p的地址值20 、读取二进制文件的函数调用形式为: fread(buffer,size,count,fp);,其中 buff

8、er 代表的是 。A一个内存块的字节数B一个整型变量,代表待读取的数据的字节数C一个文件指针,指向待读取的文件D一个内存块的首地址,代表读入数据存放的地址21 、在位运算中,操作数每右移两位,其结果相当于 ( ) 。A. 操作数乘以 2 B. 操作数除以 2C. 操作数除以 4 D. 操作数乘以 422 、以下叙述中正确的是 。Aa 是实型变量, C允许进行赋值 a=10 ,但不可以这样说:实型变量中允许存放整型值 B在赋值表达式中,赋值号左边既可以是变量也可以是任意表达式C执行表达式 a=b 后,在内存中 a和b存储单元中的原有值都将被改变, a的值已由原值改变为 b 的值, b的值由原值变

9、为 0D已有a=3 ,b=5 ,当执行了表达式 a=b ,b=a 之后,使a中的值为5,b中的值为323 、以下选项中,能够正确利用随机函数 rand() ,产生一个英文字母的表达式是 。Arand()%2=0?rand()%A:rand()%aBrand()%26+A|rand()%26+aCrand()%26+A&rand()%26+aDrand()%2=0?rand()%26+A:rand()%26+a24 、设计软件结构是软件生命周期的 A软件定义期B软件开发期C软件维护期D以上 3个都不是D_0025 、以下选项中不合法的标识符是A&a BFOR C print26 、某二叉树的中序

10、序列为ADCBA BBDCABDCA,后序序列为 DCBA,则前序序列为C ABCD D BADC27 、下列关于函数的叙述中正确的是 。A每个函数都可以被其他函数调用 ( 包括main 函数 ) B每个函数都可以被单独编译C每个函数都可以单独运行D在一个函数内部可以定义另一个函数28、若 a、b、c、d都是int 型变量且初值为 0,以下选项中不正确的赋值语句是Aa=b=c=100 ; Bd+ ; Cc+b ; Dd=(c=22)-(b+);29 、下列叙述中正确的是 。A线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的B线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构C

11、线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构D线性表的链式存储结构所需要的存储空间与顺序存储结构没有任何关系30 、下列定义变量的语句中错误的是 。A. int _int;B. double int_; C. char For; D. float US$;31 、以下程序的输出结果是 。#include struct stint x;int*y;*p;int dt4=1,2,3,4);struct st aa41=2,&dt0,3,&dt0,4,&dt0,5,&dt0,;main()p=aa;printf(%dn,+(p- x);A1 B2 C3D 432 、有以下程序:#inc

12、lude #define N 4main()int aNN=0, i, j, k;for(i=0; iN/2; i+)for(j=i; jN-i; j+)aij=aN-i-1j=i+1;for(k=i+1; k N-i-1; k+)aki=akN-i-1=i+1;for(j=0; j N; j+)printf(%2d, a1j);printf(n);执行后的输出结果是 。A1 2 2 1B1 1 1 1C2 1 1 2D2 2 2 233 、设有定义: “int a; float b;” ,执行“scanf(%2d%f, &a, &b); ” 语句时,若从键盘输入876543.0 , a和b的

13、值分别是 。A876 和543.000000B87 和6.000000C87和543.000000D 76和543.00000034 、以下选项中叙述错误的是 。AC程序函数中定义的赋有初值的静态变量,每调用一次函数赋一次初值B在C程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内 CC程序函数中定义的自动变量,系统不自动赋确定的初值 DC程序函数的形参不可以说明为 static 型变量35 、有以下函数:int aaa(char *s)char *t=s;while(*t+ +);t-;return(t-s);以下关于 aaa 函数功能叙述正确的是 。A将串s复制到串 t

14、B比较两个串的大小 C求字符串 s 的长度 D求字符串 s 所占字节数36 、有以下程序#include int fun(int x,int n)static int sum=0,i;for(i=0;iyear=1980D40 、有以下程序:#include #define N 4void fun(int aN,int b) int i;for(i=0;i N;i+ +) bi = aii;main( )int xN=1,2,3,4,5,6,7,8,9,10,yN,i;fun(x, y);for(i=0;i N;i+ +)printf(%d, yi);printf(n);程序的运行结果是 。D

15、3,4,8,10,A1,0,7,0,B 1,2,3,4,C1,4,5,9,答案:选择题1、A 解析 putchar 函数是向标准输出设备上输出一个字符。字符在内存中以 AScII 码方式存储,可以 与整数进行加减运算,但是要保证计算结果在 0 255 之间。本题执行过程为: i=0 ,i%3=0 ,if 条 件不成立执行 else 函数体,输出字符 A;i=1 , i%3=1 ,if 条件成立输出字符 4;i=2 ,i%3=2 ,if 条件成立输出字符 5;i=3 ,if 条件不成立,输出字符 D;i=4 和i=5 时,分别输出字符 7 与8;i=6 退 出for 循环。所以程序运行后输出结果

16、为 A45D78 ,故A选项正确。2、C 解析 线性链表中各个数据节点的存储空间可以不连续,其存储顺序与逻辑顺序也可以不一致,所 以A和B选项错误。线性链表在插入和删除数据时只需要修改指针的指向,即可不需要移动表中的元 素。3、C4、C 解析 关系T是由关系 R的第1、3列的元组组成,这是对关系 R进行投影运算的结果。可以简单理解 为:选择运算是对行的操作,投影运算是对列的操作。5、B 解析 1966 年Boehm和Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复三种基本控制结 构就足以表达出各种其他形式结构的程序设计方法。6、D 解析 在C语言中整型常量可以用十进制、八进制和十六

17、进制等形式表示,但不包括二进制,所以 选择 D。7、A 解析 21.84 是典型的浮点型数据,故 A选项正确;字符常量是单引号括起来的一个字符,字符串 常量是双引号括起来的字符序列, B、C选项错误;C语言常量不能直接用未加引号的字母、 数字组合, 故D选项错误。8、D 解析 在树结构中, 一个结点所拥有的后件个数称为该结点的度, 所有结点中最大的度称为树的度。 对任何一棵二叉树,度为 0的结点总是比度为 2的结点多一个。如果有一棵二叉树,结点总数为 150 , 假设度为 0的结点个数为 n ,则有n+10+n-1=150 ,n=70.5 ,由于结点个数必须是整数,所以不可能 有题目中这样的二

18、叉树。故选择 D选项。9、D 解析 C 语言不允许定义动态数组,定义数组的大小必须为常量表达式。 A选项错误, C语言中数组 没有此类型的定义方法; B选项错误,定义数组应指明数组大小,如果不指明数组大小,需要给定初 值的个数; C选项错误, N为变量,不能用来定义数组大小。因此 D选项正确。10、D 解析 if 语句的条件是当 i 既是3的倍数又是 2的倍数时成立,所以此程序实现的功能是将 10以内既 是3的倍数又是 2 的倍数的数相加。11、A 解析 由一对双引号括起来的一串字符为字符串。字符常量是用一对单引号括起来的单个字符,还 有一些特殊字符常量,即以 “ ”开头的转义字符。 “ ”后

19、可以为某些单个字符也可以为八进制或十六 进制数字。 t 065 xff n共5个字符,故 A选项正确。12、C 解析 栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由 栈顶指针的变化来完成,因此本题答案为 C。13、A 解析 用数组名作为实参,调用函数只是把数组的首地址传送给形参指针。14、D 解析 程序首先定义了一个文件指针 fp ,并使用 fopen() 函数以“w+”方式新建一个可读写文件 “data.dat ”。然后使用一个 for 循环,循环变量 i 从1递增到 5,在循环体中每次写入循环变量 i 的 值和 4 个空格,当 i 能被 3 整除的时候写入

20、一个换行符。所以循环结束时,文件中的内容应该为:1 2 34 5接下来程序使用 rewind() 函数,将文件的读写指针调回起始位置。 并调用 fscanf() 函数从文件 中读取两个整数到变量 k和 n。所以最终输出应该为: 1 2。故本题选 D。15、D 解析 C语言规定,数组下标值的下限一律为 0 ,对于一维数组 amax(max 是一个编译时可知的值 ) 来说,它的第一个和最后一个元素分别是 a0 和amax-1 。所以,数组下标值的下限与数组中元 素的位置无关,故 A、B、C选项错误。16、B 解析 f 函数将数组字符串转换为对应的整数,遇见不是数字字符停止,所以答案选择B。17、C

21、 解析 本段程序的作用是输出字符串 “lanuage ”中字母 u之前的字符,并将其转化为大写字母。 注意:如果一个字符数组用来作为字符串使用,那么在定义该字符数组时,数组的大小就应该比 它将要实际存放的最长字符多一个元素,以存放, 0 ,。18、B 解析 结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。 当使用结构体变量作为函数的形参时, 实参也应该是结构体变量名以实现传值调用, 实参将复制的副B。本传递给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。因此本题选择19、A 解析 返回值为指针变量指向的数据,该数据已被定义为整型。因此 A选项正确。

22、20、D 解析 函数: fread(void* buffer, size t size,sizet count, FILE * stream)的功能是从一个文件流中读数据,读取 count 个元素,每个元素 size 字节,如果调用成功则返回 count 。其中, buffer 用于接收数据的内存地址,大小至少是 size * count 字节; size 表示单 个元素的大小,单位是字节; count 表示元素的个数,每个元素是 size 字节; stream 表示输入流。21、C 解析 在位运算中,操作数每右移两位,相当于在操作数的左侧添 0,最右面的两位被移出,即操 作数除以 4。22、

23、A 解析 C 语言中语法上规定实型变量是不能存放整型类的数据的,整型数据也不能存放实型数据。 这是为了避免类型转换之间可能会发生错误。23、D 解析 rand() 函数是产生随机数的函数,它可以生成 0RAND_MAX之间的一个随机数,其中 RAND_MAX是stdlib.h中定义的一个整数。 通常如果我们需要随机 0N-1 之间的一个随机数, 需要使用rand() 的结果对N求模即可。选项 A中,rand()%2 只有两个值 0或1,所以当rand()%2 的结果 为0时,整个表达式的值是 rand()%A ,这里A 要转换成ASCII 码值65 ,所以结果为 064之间 的一个随机数,当

24、rand()%2 的结果为 1 时,整个表达式的值是 rand()%a ,a 的ASCII 码值为 97,所以结果是096之间的一个随机数, 可见选项A错误;逻辑或运算符 | 或逻辑与运算符 &的结 果都只能是 0或非0,所以选项 B、C也是错误的;选项 D中,如果rand()%2 的结果为 0,那么整个表 达式的值为 rand()%26+A ,0 25 之间任一个数与 A 的和都是一个大写字母;如果 rand()%2 的值为 1,整个表达式的值为: rand()%26+a ,0 25之间任一个数与 a 的和都是一个小写字母, 所以选项 D正确;本题答案为 D。24、B 解析 本题是对软件设计

25、结构的考查。设计软件结构是软件概要设计阶段进行的,而概要设计属于 软件开发期。25、A 解析 C 语言中标识符由字母、下划线、数字组成,且开头必须是字母或下划线。另外,关键字不 能作为标识符。因为 C语言中区分大小写,所以 B选项中的 “FOR”可以作为标识符来用。 A选项中含有 非法字符 &,所以其不合法。26、C 解析 二叉树遍历可以分为 3种:前序遍历 (访问根节点在访问左子树和访问右子树之前 ) 、中序遍 历(访问根节点在访问左子树和访问右子树两者之间 ) 、后序遍历( 访问根节点在访问左子树和访问右 子树之后) 。本题中中序序列为 BDCA,后序序列为 DCBA,可知A为根节点, B

26、DC为左侧节点, C是B 右子节点, D是C右子节点,故前序序列为 ABCD, C选项正确。27、B 解析 在C语言中,函数定义是平行的,函数不能嵌套定义,即函数之间没有从属关系。虽然函数 之间可以相互调用,但main() 函数不能被调用,选项A错误:C程序从 main() 函数开始执行,当main() 函数执行完毕时,整个程序就结束了。 C程序的执行必须从 main() 函数开始,选项 C选项错误;函数 不能嵌套定义,选项 D错误。 28、C29、B 解析 线性链式存储结构中每个结点都由数据域与指针域两部分组成,增加了存储空间,因此一般 要多于顺序存储结构,选项 B正确。30、D 解析 C 语言中用来标识变量名、符号常量名、函数名、数组名、类型名、文件名的有效字符序列 称为标识符, C语言规定标识符能由字母、数字和下划线三种字符组成,且第个字符必须为字母或下划线。选项 D中含有 “$”,故不符合标识符的定义。 31、C32、A 解析 本题程序需要输出二维数组 a中第二行的各个元素值,即 a1 这个一维数组的元素值。分析 程序可知只有在两种情况下才会对 a1 中的元素赋值:外层for 循环中 i=0 ,内层第二个 for 循环 的k取值为 1,aki=a10=1,akN-i-1=a13=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论