【计算机类职业资格】二级C语言分类模拟题547及答案解析.doc
《【计算机类职业资格】二级C语言分类模拟题547及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言分类模拟题547及答案解析.doc(18页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C语言分类模拟题 547及答案解析(总分:61.50,做题时间:90 分钟)一、选择题(总题数:40,分数:61.50)1.有以下程序: #includestdio.h ain() int a=3; a+=a-=a*a; printf(“%d/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.0B.9C.3D.-122.下列叙述中正确的是_。(分数:1.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.以上说法都不对3.以下关于 C语言数据类型的叙述中正确的
2、是_。(分数:2.50)A.C基本数据类型包括:分为整型、实型、浮点型、字符型四种B.实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型4.若有定义:char*ps=“aa“,“bb“,“cc“,“dd“;,则以下叙述正确的是_。(分数:1.00)A.*ps0是字符“a“B.*ps0是字符串“aa“C.ps0是字符“a“D.ps是字符串“aa“5.有以下程序: #includestdio.h main() int a=0,b=0,c=0,d=0
3、; if(a=1)b=1;c=2; else d=3; printf(“%d,%d,%d,%d/n“,a,b,c,d); 程序的运行结果是_。(分数:2.50)A.1,1,2,0B.0,0,0,3C.编译有错D.0,1,2,06.以下说法中正确的是_。(分数:2.50)A.C语言程序的执行都是从程序的第一个函数开始B.在 C语言程序中,要调用的函数必须在 main函数中声明C.任何 C语言程序的执行都是从 main函数开始D.C语言程序中的 main函数必须放在程序的最前面7.有以下程序 #includestdio.h void f(int*q) int i=0; for(;i5;i+)(*q
4、)+; main() int a5=1,2,3,4,5,i; f(a); for(i=0;i5;i+)printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:1.00)A.6,2,3,4,5,B.2,2,3,4,5,C.1,2,3,4,5,D.2,3,4,5,6,8.执行下列程序中的输出语句后,a 的值是 _ 。 main() int a; printf(“%d/n“, (a=2*3,a*5,a+7); (分数:1.00)A.17B.37C.6D.139.以下叙述中不正确的是_。(分数:2.50)A.在不同的函数中可以使用相同的名字的变量B.函数中的形式参数是局部变量C.在一个函
5、数内定义的变量只在本函数范围内有效D.在一个函数内的复合语句中定义的变量在本函数范围内有效10.指针变量 p的基类型为 double,并已指向一连续存储区,若 p中当前的地址值为 65490,则执行 p+后,p 中的值为 _(分数:1.00)A.65490B.65492C.65494D.6549811.下述程序的输出结果是_。 #includestdio.h void main() char a=1,b=2; char c=ab2; printf(“/n%d“,c); (分数:2.50)A.9B.10C.12D.212.若有以下程序: #include stdio.h main( ) int
6、a=1,b=2,c=3,d=4; if(a=2) | (b=1)c=2; if(c= =3) printf(“%d,%d,%d,%d/n“,a,b,c,d); 则程序的输出结果是_。(分数:2.50)A.1,2,3,4B.2,1,2,-1C.5,1,2,-1D.2,2,2,413.有以下程序: #include stdio.h main () FILE *pf; char *s1=“China“, *s2=“Beijing“; pf=fopen(“abc.dat“, “wb+“); fwrite(s2, 7, 1, pf); fwrite(s1, 3, 1, pf); fclose (pf);
7、 以上程序运行后,abc.dat 文件的内容是 _ 。(分数:1.00)A.ChinaB.BeijingC.BeijingChiD.BeijingChina14.若有定义:int x=3,y=2;float a=2.5,b=3.5;则下面表达式的值为_。 (x+y)%2+(int)a/(int)b(分数:1.00)A.1.0B.1C.2.0D.215.C语言程序中,若函数无返回值,则应该对函数说明的类型是_。(分数:1.00)A.intB.doubleC.charD.void16.链表不具有的特点是_。(分数:2.50)A.不必事先估计存储空间B.可随机访问任意元素C.插入、删除不需要移动元素
8、D.所需空间与线性表长度成正比17.有以下程序: #include stdio.h main() int x=1, y=2, z=3; if(xy) if(yz) printf(“% d“, +z); else printf(“% d“, +y); printf(“% d/n“, x+); 程序的运行结果是_。(分数:1.00)A.331B.41C.2D.118.一个 C语言程序是由_。(分数:2.00)A.一个主程序和若干子程序组成B.函数组成C.若干过程组成D.若干子程序组成19.若变量已正确定义,有以下程序段:i=0;do printf(“%d,“,i);while(i+);printf
9、(“%d/n“,i);程序的运行结果是_。(分数:2.50)A.0,1B.0,0C.1,1D.程序进入无限循环20.下列定义数组的语句中,正确的是_。(分数:1.00)A.int N=10;int xN;B.# define N 10int xN;C.int x010;D.int x;21.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:1.00)A.B.C.D.22.以下叙述正确的是_。(分数:1.00)A.do-while语句构成的循环,当 while语句中的表达式值为 0时结束循环
10、B.do-while语句和 while-do构成的循环功能相同C.while-do语句构成的循环,当 while语句中的表达式值为非 0时结束循环D.do-while语句构成的循环,必须用 break语句退出循环23.以下关于逻辑运算符两侧运算对象的叙述中正确的是_。(分数:2.50)A.可以是任意合法的表达式B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.只能是整数 0或 124.下列关于 C语言数据文件的叙述中正确的是(分数:1.00)A.文件由 ASCII码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可
11、按数据的存放形式分为二进制文件和文本文件D.文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件25.有以下程序: #includestdio.h main() char s=“aeiou“), *ps; ps=s; printf(“%c/n“, *ps+4); 程序运行后的输出结果是( )。(分数:1.00)AaBeCuD.元素 s4的地址26.若有函数定义如下: int fun(int x, int y) return x-y; 则以下涉及上述函数的说明语句错误的_。(分数:1.00)A.int fun(int x, y);B.int fun(int, int);C.int f
12、un(int a, int b);D.int i, fun(int x, int y);27.对于循环队列,下列叙述中正确的是_。(分数:2.50)A.队头指针是固定不变的B.队头指针一定大于队尾指针C.队头指针一定小于队尾指针D.队头指针可以大于队尾指针,也可以小于队尾指针28.有以下程序 struct Sint n;int a20; void f(int *a,int n ) int i; for(i=0;iN-1;i+)NBSP;AI+=I; main() int i;struct S s10,2,3,1,6,8,7,5,4,10,9; f(s.a,s.n); for(i=0;iS.N;
13、i+)NBSP;PRINTF(“%D“,S.AI); 程序运行后的输出结果是_。(分数:2.00)A.2,4,3,9,12,12,11,11,18,9,B.3,4,2,7,9,8,6,5,11,10,C.2,3,1,6,8,7,5,4,10,9,D.1,2,3,6,8,7,5,4,10,9,29.在 ASCII代码表中每一个大写字母比它相应的小写字母的 ASCII码 _ 。(分数:2.00)A.小 32B.小 64C.大 32D大 130.若变量已正确定义,在 if(W) printf(“%d/n“,k); 中,以下不可替代 W的是_。(分数:2.00)A.a b+cB.ch=getchar(
14、)C.a= =b+cD.a+ +31.设栈的顺序存储空间为 S(1:m),初始状态为 top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为_。(分数:1.00)A.30B.20C.m-19D.m-2032.有以下程序段: int i,n; for(i=0;i8;i+) n=rand()%5; switch(n) case 1: case 3:printf(“%d/n“,n); break; case 2: case 4:printf(“%d/n“,n); continue; case 0:exit(0); printf(“%d/n“,n); 以下关于程序段执行情况
15、的叙述,正确的是_。(分数:1.00)A.for循环语句固定执行 8次B.当产生的随机数 n为 4时结束循环操作C.当产生的随机数 n为 1和 2时不做任何操作D.当产生的随机数 n为 0时结束程序运行33.下列叙述中正确的是_。(分数:2.50)A.调用 printf()函数时,必须要有输出项B.使用 putchar()函数时,必须在之前包含头文件 stdio.hC.在 C语言中,整数可以以二进制、八进制或十六进制的形式输出D.调节 getchar()函数读入字符时,可以从键盘上输入字符所对应的 ASCII码34.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是_。(分数:
16、1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.不强调模拟现实世界中的算法而强调概念35.有如下程序: #include stdio.h main( ) int i, data; scanf(“%d“, for(i=0; i10; i+) if(idata) break; printf(“%d,“,i); 程序运行时,从键盘输入:3回车后,程序输出结果为_。(分数:1.00)A.3,4,5,B.1,2,3,C.2,3,4,D.0,1,2,3,36.若 a=3,b=4,c=5,d=6,则条件表达式 a
17、b?a:cd?c:d 的值是_。(分数:2.00)A.4B.3C.2D.137.有以下程序: #include stdio.h double fun(double a) double x; x = a - (int)a; return x: main( ) double a = 3.1415; printf(“%f/n“,fun(a); 程序的运行结果是_。(分数:1.00)A.3.000000B.3.141500C.0.141500D.0.00000038.用 MIPS来衡量计算机性能的指标是 ( )(分数:1.00)A.存储容量B.可靠性C.处理能力D.运算速度39.有以下程序 #incl
18、udestdio.h int fun(int(*s)4,int n,int k) int m,i; m=s0k; for(i=1;in;i+) if(sikm) m=sik; return m; main() int a44=1,2,3,4, 11,12,13,14, 21,22,23,24, 31,32,33,34; printf(“%d/n“,fun(a,4,0); 程序的运行结果是_。(分数:1.00)A.31B.34C.4D.3240.有以下程序: #includestdio.h main() int a4,p,x,i; for(i=3;i0;i-)ai-1=i*2-1; scanf(
19、“%d“, i=0; while(aix)i+; p=i; for(i=3;ip;i-)ai=ai-1; ap=x; for(i=0;i4;i+)printf(“%3d“,ai); printf(“/n“); 执行时输入:2回车,则输出结果是_。(分数:1.00)A.1 2 3 4B.5 4 3 1C.1 2 3 5D.3 2 1 4二级 C语言分类模拟题 547答案解析(总分:61.50,做题时间:90 分钟)一、选择题(总题数:40,分数:61.50)1.有以下程序: #includestdio.h ain() int a=3; a+=a-=a*a; printf(“%d/n“,a); 程
20、序运行后的输出结果是_。(分数:1.00)A.0B.9C.3D.-12 解析:解析 首先计算 a*a结果为 9,执行 a=a-9,a 的值为-6,然后执行 a+=a,即 a=a+a=-6+(-6),所以值为-12。2.下列叙述中正确的是_。(分数:1.00)A.循环队列中的元素个数随队头指针与队尾指针的变化而动态变化 B.循环队列中的元素个数随队头指针的变化而动态变化C.循环队列中的元素个数随队尾指针的变化而动态变化D.以上说法都不对解析:解析 在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针 front指向队头元素的前一个位置。因此,从队头指针 front指向的后一个位置直
21、到队尾指针 rear指向的位置之间所有的元素均为队列中的元素。所以循环队列中的元素个数随队头指针和队尾指针的变化而变化,故 A正确。3.以下关于 C语言数据类型的叙述中正确的是_。(分数:2.50)A.C基本数据类型包括:分为整型、实型、浮点型、字符型四种B.实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式C.若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D.若只处理“真”和“假”两种逻辑值,应使用逻辑类型解析:解析 C 基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有 2,8,16 进制表达,
22、在 C语言中没有定义逻辑类型,而是一般用 0代表假,用非零代表真。4.若有定义:char*ps=“aa“,“bb“,“cc“,“dd“;,则以下叙述正确的是_。(分数:1.00)A.*ps0是字符“a“ B.*ps0是字符串“aa“C.ps0是字符“a“D.ps是字符串“aa“解析:解析 定义指针数组 ps,ps0代表数组首个元素的地址,即”aa”的地址,同时也是”aa”第一个字符 a的地址,所以*ps0代表字符 a。5.有以下程序: #includestdio.h main() int a=0,b=0,c=0,d=0; if(a=1)b=1;c=2; else d=3; printf(“%d
23、,%d,%d,%d/n“,a,b,c,d); 程序的运行结果是_。(分数:2.50)A.1,1,2,0B.0,0,0,3C.编译有错 D.0,1,2,0解析:解析 本题中 if(a=1)b=1;与 else d=3;之间多了语句 c=2;,所以会出现 else语句的位置错误的编译失败提示。6.以下说法中正确的是_。(分数:2.50)A.C语言程序的执行都是从程序的第一个函数开始B.在 C语言程序中,要调用的函数必须在 main函数中声明C.任何 C语言程序的执行都是从 main函数开始 D.C语言程序中的 main函数必须放在程序的最前面解析:7.有以下程序 #includestdio.h v
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 分类 模拟 547 答案 解析 DOC
