【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题508及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 508及答案解析(总分:52.00,做题时间:90 分钟)一、选择题(总题数:35,分数:52.00)1.下列排序方法中,最坏情况下比较次数最少的是_。(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序2.以下选项中,能用作数据常量的是_。(分数:2.50)A.115LB.0118C.1.5e1.5D.o1153.有以下程序: #includestdio.h main() int a=1,b=2; for(;a8;a+)b+=a;a+=2; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.9,18B.8
2、,11C.7,11D.10,144.输出语句:printf(“%d/n“,11+011);的输出结果是_。(分数:1.00)A.20B.22C.022D.0215.设有如下定义: struct int n; char c; a2,*p=a; 则以下错误引用结构体成员 n的是_。(分数:1.00)A.(* a)-nB.a0.nC.p-nD.(* p).n6.以下程序中函数 sort()的功能是对数组 a中的数据进行由大到小的排序。 #includestdio.h void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+)
3、 if(aiaj) t=ai;ai=aj;aj=t; main() int a10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10,D.1,2,10,9,8,7,6,5,4,3,7.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误8.有以下程序: #include
4、stdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)AzB.0C.元素 ch5的地址D.字符 y的地址9.对于基类型相同的两个指针变量之间,不能进行的运算是_。(分数:1.00)A.B.=C.+D.-10.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0;i30;i+=10)a+=f(double)i); printf(“%3.0f/n“,a); double f(d
5、ouble x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.500B.401C.503D.140411.C语言中,下列不合法的字符常量是_。(分数:1.00)A.“/xff“B.“/65“C.“ for(i=0; in; i+) sum+=xi; return sum; main() int a=1, 2, 3, 4, 5, b=6, 7, 8, 9, s=0; s=fun(a, 5)+fun(b, 4); printf(“%d/n“, s); 程序执行后的输出结果是( )。(分数:1.00)A.45B.50C.60D.5513.有两个关系 R、S 如下: R
6、 A B C a 3 2 b 0 1 c 2 1 S A B a 3 b 0 c 2 由关系 R通过运算得到关系 S,则所使用的运算为_。(分数:2.00)A.选择B.投影C.插入D.连接14.以下叙述中正确的是_。(分数:2.00)A.C语言程序将从源程序中第一个函数开始执行B.可以在程序中由用户指定任意一个函数作为主函数,程序将从此开始执行C.C语言规定必须用 main作为主函数名,程序将从此开始执行,在此结束D.main可作为用户标识符,用以命名任意一个函数作为主函数15.若变量已正确定义为 int型,要给 a、b、c 输入数据,正确的输入语句是_。(分数:1.00)A.read(a,
7、b, c);B.scanf(“%d%d%d“, a, b, c);C.scanf(“%D%D%D“, D.scanf(“%d%d%d“, 16.有以下程序: #includestdio.h void f(int x,int n) if(n1) printf(“%d,“,x0); f( printf(“%d,“,x0); else printf(“%d,“,x0); main() int z3=4,5,6; f(z,3); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.6,5,4,6,5,4,B.4,5,6,5,4,C.4,5,6,4,5,6,D.6,5,4,5,6
8、,17.下面程序的输出结果为_。 #includestring.h main() charP17=“abc“=“ABC“.STR50=“xyz“; strcpy(str,strcat(p1,p2); printf(%s,str); (分数:2.00)A.xyzabcABCB.abcABCC.xyzabcD.xyzABC18.有以下程序: #includestdio.h main() int a=1,b=2,c=3,x; x=(ab)c; printf(“%d/n“,x); 程序运行后的输出结果是_。(分数:1.00)A.3B.1C.2D.019.下列选项中,能正确定义数组的语句是_。(分数:1
9、.00)A.int num02008;B.int num;C.int N=2008;int numN;D.#define N 2008int numN;20.下列合法的声明语句是_。(分数:1.00)A.int _abc=50;B.double int=3+5e2.5;C.long do=1L;D.float 3_asd=3e-3;21.若有以下程序: #includestdio.h void fun(float*a, float*b) float w; *a=*a+*a; w=*a; *a=*b; *b=w; main() float x=20, y=3.0, *px= fun(px, py
10、); printf(“%2.0f, %2.0f/n“, x, y); 程序的输出结果是_。(分数:2.50)A.4,3B.2,3C.3,4D.3,222.以下程序调用 fun函数求数组中最大值所在元素的下标: #includestdio.h void fun(int*s,int n,int*k) int i; for(i=0,*k=i;in;i+) if(sis*k)_; main() int a5=1,6,2,8,0,k; fun(a,5,k); printf(“%d%d/n“,k,ak); 在横线处应填入的内容是_。(分数:1.00)A.*k=iB.k=iC.*k=i-sD.k=i-s23
11、.以下叙述中正确的是(分数:1.00)A.C程序中注释部分可以出现在程序中任意合适的地方B.花括号“”和“”只能作为函数体的定界符C.构成 C程序的基本单位是函数,所有函数名都可以由用户命名D.分号是 C语句之间的分隔符,不是语句的一部分24.有三个关系 R、S 和 T如下: R A B C a 1 2 b 2 1 c 3 1 S A D c 4 T A B C D c 3 1 4 则由关系 R和 S得到关系 T的操作是_。(分数:1.00)A.自然连接B交C.投影D并25.若 i、j 已定义成 int型,则下列程序段中内循环体的总执行次数是_。 for(i=6; i0; i-) for(j=
12、0; j4; j+)(分数:2.50)A.20B.24C.25D.3026.设一棵树的度为 3,共有 27个结点,其中度为 3,2,0 的结点数分别为 4,1,10。该树中度为 1的结点数为_。(分数:1.00)A.12B.13C.11D.不可能有这样的树27.设有如下定义: int arr=6, 7, 8, 9, 10; int*ptr; ptr=arr; *(ptr2)=2; printf(“%d, %d/n“, *ptr, *(ptr2); 则下列程序段的输出结果为_。(分数:2.50)A.8,10B.6,8C.7,9D.6,228.有以下程序: #includestdio.h int
13、m=13; int fun2(int x, int y) int m=3; return(x*y-m); main() int a=7, b=5; printf(“%d/n“, fun2(a, b)/m); 程序运行后的输出结果是(分数:1.00)A.1B.2C.7D.1029.有以下程序 #includestdio.h main() int i, t3=9, 8, 7, 6, 5, 4, 3, 2, 1; for(i=0; i3; i+) printf(“%d“, t2-ii); 程序执行后的输出结果是_。(分数:2.00)A.3 5 7B.7 5 3C.3 6 9D.7 5 130.以下叙
14、述中错误的是_。(分数:1.00)A.只要类型相同,结构体变量之间可以整体赋值B.函数的返回值类型不能是结构体类型,只能是简单类型C.可以通过指针变量来访问结构体变量的任何成员D.函数可以返回指向结构体变量的指针31.若有下列定义(设 int类型变量占 2个字节): int i=8, j=9; 则下列语句: printf(“i=%d, j=%d/n“, i, j); 输出的结果是_。(分数:2.50)A.i=8, j-9B.i=%d, j=%dC.i=%8, j=%9D.8, 932.下列定义变量的语句中错误的是_。(分数:2.50)A.int_int;B.double int_;C.char
15、 For;D.float US$;33.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_B.8_8C.voidD.unsigned34.设有输入语句 scanf(“a=%d,b=%d,c=%d“, int i=0;,以下不能将一行(不超过 80个字符)带有空格的字符串正确读入的语句或语句组是_。(分数:2.00)A.gets(s);B.while(si+=getchar()!=“/n“); si=“/0“;C.scanf(“%s“, s);D.do scanf(“%c“, while(si+!=“/n“); si=“/0“;二级 C语言分类模拟题 508答案解析(总分:52.0
16、0,做题时间:90 分钟)一、选择题(总题数:35,分数:52.00)1.下列排序方法中,最坏情况下比较次数最少的是_。(分数:2.00)A.冒泡排序B.简单选择排序C.直接插入排序D.堆排序 解析:解析 冒泡排序、直接插入排序与简单选择排序法在最坏情况下均需要比较 n(n-1)/2次,而堆排序在最坏情况下需要比较的次数是 nlog 2 n,因此本题答案为 D。2.以下选项中,能用作数据常量的是_。(分数:2.50)A.115L B.0118C.1.5e1.5D.o115解析:解析 A 选项中 115L表示 115是长整型数据,合法。B 选项是八进制常量的表示方法,但是在八进制中不能含有数字
17、8,因此 B选项错误。C 选项中 e后面应该是整数,不能是小数(1.5),因此 C选项错误。D 选项中八进制常量应该是数字“0”开始,而不是字母“o”开始。故本题答案为 A。3.有以下程序: #includestdio.h main() int a=1,b=2; for(;a8;a+)b+=a;a+=2; printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:1.00)A.9,18B.8,11C.7,11D.10,14 解析:解析 第一次循环 a的值为 1,满足条件,执行 b+=a与 a+=2,则 b的值变为 3,a 的值变为 3。执行 a+,a 的值为 4,满足条件
18、进入第二次循环,执行完循环体后 b的值为 7,a 的值为 6。执行 a+,a的值为 7,满足条件进入第三次循环,执行完循环体后 b的值为 14,a 的值为 9。执行+,a 的值变为10,不满足条件,循环结束。所以选择 D选项。4.输出语句:printf(“%d/n“,11+011);的输出结果是_。(分数:1.00)A.20 B.22C.022D.021解析:解析 printf(“%d/n“,11+011),11 为十进制,011 为八进制形式,打印格式%d 表示十进制格式输出,因此,先将八进制数转化为十进制,011(8)=811+180=9,相当于 printf(“%d/n“,11+9),故
19、答案为 20,A 选项正确。5.设有如下定义: struct int n; char c; a2,*p=a; 则以下错误引用结构体成员 n的是_。(分数:1.00)A.(* a)-n B.a0.nC.p-nD.(* p).n解析:解析 若已定义了一个结构体变量和一个同一结构体类型的指针变量,并使该指针指向同类型的变量,则可用以下 3种形式来引用结构体变量中的成员,其中结构体变量名也可以是已定义的结构体数组的数组元素:结构体变量名成员名;指针变量名-成员名;(*指针变量名)成员名。题目中 a为数组名是地址常量,不是指针变量,A 选项引用错误。a0为变量名,B 选项引用正确。p 为指针,且正确的指
20、向结构体变量,C 选项引用正确。D 选项符合第三种引用方式,引用正确。6.以下程序中函数 sort()的功能是对数组 a中的数据进行由大到小的排序。 #includestdio.h void sort(int a,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj) t=ai;ai=aj;aj=t; main() int a10=1,2,3,4,5,6,7,8,9,10),i; sort( for(i=0;i10;i+) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.00)A.1,2,3,4,5,6
21、,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,8,7,6,5,4,3,2,9,10, D.1,2,10,9,8,7,6,5,4,3,解析:7.程序调试的任务是_。(分数:1.00)A.设计测试用例B.验证程序的正确性C.发现程序中的错误D.诊断和改正程序中的错误 解析:解析 程序调试的主要任务是改正程序中的错误,而软件测试是发现错误。8.有以下程序: #includestdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)Az B.0C.元素 c
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 508 答案 解析 DOC
