【计算机类职业资格】二级C语言笔试-30及答案解析.doc
《【计算机类职业资格】二级C语言笔试-30及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试-30及答案解析.doc(34页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试-30 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下程序的输出结果是_。fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,(分数:2.00)A.;2.有以下程序:void sum(int *(分数:2.00)A.a0=a1;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=1;i0;i-)sum(main()int a=3,b=6,*x=(分数:2.00)A.6 3B.3 6C.编译出错D.005.当执行下面的程序时,如
2、果输入 ABC,则输出结果是_。#include “stdio.h“#include “string.h“main()char ss10=“12345“;gets(ss);strcat(ss,“6789“);printf(“%s/n“,ss);(分数:2.00)A.ABC6789B.ABC67C.12345ABC6D.ABC4567896.假设 a 和 b 为 int 型变量,则执行以下语句后,b 的值为_。a=1;b=10;dob-=a;a+;while(b-0);(分数:2.00)A.9B.-2C.-1D.87.希尔排序法属于_类型的排序法。(分数:2.00)A.交换类排序法B.插入类排序
3、法C.选择类排序法D.建堆排序法8.假定建立了以下链表结构,指针 p、q 分别指向如图所示的结点,则以下可以将 q 所指结点从链表中删除并释放该结点的语句组是_。(分数:2.00)A.B.C.D.9.若有定义 int*p3;,则以下叙述中正确的是_。(分数:2.00)A.定义了一个基类型为 int 的指针变量 p,该变量有三个指针B.定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针C.定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素D.定义了一个可指向二维数组的指针变量 p,所指一维数组应具有三个 int 类型元素10.在 C 语言中,引用数组元
4、素时,其数组下标的数据类型允许是_。(分数:2.00)A.整型常量B.整型表达式C.整型常量或整型表达式D.任何类型的表达式11.软件调试的目的是_。(分数:1.00)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能12.在结构化方法中,软件功能分解属于软件开发中的_阶段。(分数:1.00)A.详细设计B.需求分析C.总体设计D.编程调试13.对长度为 N 的线性表进行顺序查找,在最坏情况下所需要的比较次数为_。(分数:1.00)A.N+1B.NC.(N+1)/2D.N/214.有以下程序:main()int x8=8,7,6,5,0,0,*s;s=x+3;printf(“%d/n
5、“,s2);程序运行后的输出结果是_。(分数:1.00)A.随机值B.0C.5D.615.有以下程序:void swap1(int *a,int *b) int *c=a;s=b,b=c;void swap2(int *aint *b) int c=*a;*a=*b,*b=c;main()int a=10, b=15;swap 1(a=10,b=15;swap2(printf(“%d,%d“,a,b) ;其输出结果为_。(分数:1.00)A.15,10,10,15B.15,10,15,10C.10,15,10,15D.10,15,15,1016.有以下程序:main()int a;char c
6、=10;float f=100.0;double x;a=f/=c*=(x=6.5);printf(“%d%d%3.1f%3.1f/n“,a,c,f,x);程序运行后的输出结果是_。(分数:1.00)A.1 65 1 6.5B.1 65 1.5 6.5C.1 65 1.0 6.5D.2 65 1.5 6.517.以下程序试图把从终端输入的字符输出到名为 abctxt 的文件中,直到从终端读入字符串#号时结束输入和输出操作,但程序有错#includestdiohmain()FILE*fout;char ch;fout=fopen(abctxt,w);ch=fgetc(stdin);while(c
7、h!=#)fputc(ch,four);ch=fgetc(stdin);fclose(fout);出错的原因是_。(分数:1.00)A.函数 fopen 调用形式错误B.输入文件没有关闭C.函数 fgetc 调用形式错误D.文件指针 stdin 没有定义18.以下程序段中与语句 k=ab?(bc?1:0):0;功能等价的是_。(分数:1.00)A.if(ab) printf(“/n“);假定以上程序经编译和连接后生成可执行文件 PROGEXE,如果在此可执行文件所在目录的 DOS 提示符下键入 PROG ABCDEFGHIJKL (分数:1.00)A.B.C.D.21.下列程序的输出结果是_。
8、main()char a10=9,8,7,6,5,4,3,2,1,0,*p=a+5;printf(“%d“,*-p);(分数:1.00)A.非法B.a4的地址C.5D.322.下列叙述中正确的是_。(分数:1.00)A.C 语言编译时不检查语法B.C 语言的子程序有过程和函数两种C.C 语言的函数可以嵌套定义D.C 语言中,根据函数能否被其他源文件调用,被区分为内部函数和外部函数23.对于下面的程序#includestdio.h#includestring.hchar *scmp(char*s1,char*s2)if(strcmp(s1,s2)0)return(s1);else return(
9、s2);main()int i:char string20,sb320;for(i=0;i3;i+)gets(stri);strcpy(string,scmp(str0,str1);strcpy(string,scmp(string,str21);printf(“%s/n“,string);若运行时依次输入 abcd、abba 和 abc 三个字符串,则输出结果为_。(分数:1.00)A.abcdB.abbaC.abcD.abca24.下列关于队列的叙述中正确的是_。(分数:1.00)A.在队列中只能插入数据B.在队列中只能删除数据C.队列是先进先出的线性表D.队列是先进后出的线性表25.设有
10、以下声明语句struct exint x;float y;char z;example;则下面的叙述中不正确的是_。(分数:1.00)A.struct 是结构体类型的关键字B.example 是结构体类型名C.x,y,z 都是结构体成员名D.struct ex 是结构体类型26.当执行下面的程序时,其输出结果为_。union stint a;char b;main()union st s;char *p=(char*)(分数:1.00)A.1B.2C.3D.不确定27.以下程序的输出结果是_。main()int i,k,a10,p3k=5;for(i=0;i10;i+)ai=ifor(i=0;
11、i3;i+)pi=ai*(i+1);for(i=0;i3;i+)k+=pi*2;printf(“%d/n“,k);(分数:1.00)A.20B.21C.22D.2328.下面程序运行后的输出结果是_。fut(int,*s,int P23)*s=p11;main()int a23=1,3,5,7,9,11,*p;p=(int *)malloc(sizeof(int);fut( (分数:1.00)A.0B.1C.2D.332.设 char 型变量 x 中的值为 10100111,则表达式(2+x)(3)的值为_。(分数:1.00)A.10101001B.10101000C.11111101D.01
12、01010133.若变量 c 为 char 类型,能正确判断出 c 为小写字母的表达式是_。(分数:1.00)A.a=c=zB.(c=a)|(c=z)C.(a=c) and(z=c)D.(c=a)(分数:1.00)A.15B.14C.不确定D.035.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是_。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考36.下列程序段的输出结果是_。void fun(int *x,int
13、 *y)printf(“%d%d“,*x,*y);*x=3;*y=4;main()int x=1,y=2;fun(printf(“%d%d“,x,y);(分数:1.00)A.2 1 4 3B.1 2 1 2C.1 2 3 4D.2 1 1 237.以下程序的输出结果是_。long fun(int n)long s;if(n=1|n=2)s=2;else s=n-fun(n-1);relum s;main()printf(“%ld/nt“,fun(3);(分数:1.00)A.1B.2C.3D.438. (分数:1.00)A.B.C.D.39.若 a 为 int 类型,且其值为 3,则执行完表达式
14、 a+=a-=a*a 后,a 的值是_。(分数:1.00)A.-3B.9C.-12D.640.若执行以下程序时从键盘上输入 9,则输出结果是_。main()int n;scanf(“%d:“,(分数:1.00)A.11B.10C.9D.841.对下面的程序进行编译与连接生成可执行文件 c.exe,并在 DOS 命令提示符下输入:cI said“I love China“!程序代码如下:main(int argc,char*argv)printf(“%d“,argC) ;其输出结果为_。(分数:1.00)A.4B.5C.6D.742.下面的程序输出结果是_。#define r 16#if r=1
15、6void p(int(分数:1.00)A.43.有以下程序段:int x=3;doprintf(“%d“,x-=2);while(!(-x);其输出结果是_。(分数:1.00)A.1B.3 0C.1 -2D.死循环44.在下列选项中,_不是一个算法一般应该具有的基本特征。(分数:1.00)A.确定性B.可行性C.无穷性D.拥有足够的情报45.以下所列的各函数首部中,正确的是_。(分数:1.00)A.void play(var a:Integer,var b:Integer)B.void play(int a,b)C.void play(int a,intb)D.Sub play(a as i
16、nteger,b as integer)46.以下程序的输出结果是_。#define SQR(X) X*Xmain()int a=16,k=2,m=1;a/=SQR(k+m)/SQR(k+m);printf(“%d/n“,(分数:1.00)A.;48.以下只有在使用时才为该类型变量分配内存的存储类说明是_。(分数:1.00)A.auto 和 staticB.auto 和 registerC.register 和 staticD.extern 和 register49.信息隐蔽的概念与下述_概念直接相关。(分数:1.00)A.软件结构定义B.模块独立性C.模块类型划分D.模拟耦合度50.有以下程
17、序段:int k=0;while(k=1)k+;while 循环执行的次数是_。(分数:1.00)A.无限次B.有语法错,不能执行C.一次也不执行D.执行 1 次二、填空题(总题数:18,分数:36.00)51.栈的基本运算有三种:入栈、退栈和 【1】 。(分数:2.00)填空项 1:_52.在面向对象方法中,信息隐蔽是通过对象的 【2】 性来实现的。(分数:2.00)填空项 1:_53.数据流的类型有 【3】 和事务型。(分数:2.00)填空项 1:_54.数据库系统中实现各种数据管理功能的核心软件称为 【4】 。(分数:2.00)填空项 1:_55.关系模型的数据操纵即是建立在关系上的数据
18、操纵,一般有 【5】 、增加、删除和修改四种操作。(分数:2.00)填空项 1:_56.下列程序的输出结果是 【6】 。main()int a=1,b=2;a=a+b;b=a-b;a=a-b;prrintf(“%d,%d/n“,a,b) ;(分数:2.00)填空项 1:_57.下列程序的输出结果是 1600,请填空:main()int a=9,b=2;float x= 【7】 ,y=11,z;z=a/2+b*x/y+1/2;printf(“%5.2f/n“,z);(分数:2.00)填空项 1:_58.用以下语句调用库函数 malloc,使字符指针 st 指向具有 11 个字节的动态存储空间,请
19、填空。st=(char*) 【8】 ;(分数:2.00)填空项 1:_59.下列程序段的输出结果是 【9】 。main()char b=“Hello,you“;b5=0;printf(“%s/n“,B) ;(分数:2.00)填空项 1:_60.下列程序段的输出结果是 【10】 。int n=c;switch(n+)default:printf(“error“);break;case a:case A:case b:case B:printf(“good“);break;case c:caseC:printf(“pass“);case d:caseD:printf(“warn“);(分数:2.0
20、0)填空项 1:_61.以下程序通过函数指针 p 调用函数 fun,请在填空栏内写出定义变量 p 的语句。void fun(int*x,int*y)main()int a=10,b=20;【11】 :p=fun; p((分数:2.00)填空项 1:_63.下列程序的输出结果是 【13】 。void fun(int *n)while(*n)-);printf(“%d“,+(*n);main()int a=100;fun((分数:2.00)填空项 1:_65.以下程序运行后的输出结果是 【15】 。main()char a=“Language“,b=“Programe“;char,p1,*p2;i
21、nt k;p1=a,p2=b;for(k=0;k=7;k+)if*(p1+k)=*(p2+k)printf(“%c“,*(p1+k);(分数:2.00)填空项 1:_66.下面程序把从终端读入的文本(用作为文本结束标志)输出到一个名为 bidat 的新文件中,请填空。#include “stdioh“FILE *fp;main()char ch;if(fp=fopen( 【16】 )=NULL)exit(0);while(ch=getchar()!=)fputc(ch,fp);fclose(fp);(分数:2.00)填空项 1:_67.以下程序是从终端读入数据到数组中,统计其中正数的个数,并计
22、算它们的和。请填空。main()int i,a20,sum,count;sum=count= 【17】 ;for(i=0;i20;i+)scanf(“%d“, 【18】 );for(i=0;i20;i+)if(ai0)count+:sum+= 【19】 ;printf(“sum=%d,count=%d/n“,sum.count);(分数:2.00)填空项 1:_68.若变量 n 中的值为 24,则 prnt 函数共输出 【20】 行。void prnt(int n,int aa)int i;for(i=1;i=n;i+)printf(“%6d“,aai);if!(i%5)printf(“/n“
23、);printf(“/n“);(分数:2.00)填空项 1:_二级 C 语言笔试-30 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:50,分数:60.00)1.以下程序的输出结果是_。fun(int x,int y,int z)z=x*x+y*y;main()int a=31;fun(5,2,(分数:2.00)A.;解析:评析 本题中,a 的值并没有改变,因为传递到函数中的是变量值。2.有以下程序:void sum(int *(分数:2.00)A.a0=a1;main()int aa10=1,2,3,4,5,6,7,8,9,10,i;for(i=1;i0;i-)sum
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 30 答案 解析 DOC
