【计算机类职业资格】二级C语言笔试97及答案解析.doc
《【计算机类职业资格】二级C语言笔试97及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】二级C语言笔试97及答案解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、二级 C 语言笔试 97 及答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.数据的存储结构是指( )。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示2.在一棵二叉树上第 5 层的结点数最多是( )。(分数:1.00)A.8B.16C.32D.153.以下叙述中正确的是( )。(分数:1.00)A.预处理命令行必须位于 C 源程序的起始位置B.在 C 语言巾,预处理命令行都以“#“开头C.每个 C 程序必须在开头包含预处理命令行;#include stdih
2、D.C 语言的预处理不能实现宏定义和条件编译的功能4.以下不合法的字符常量是( )。(分数:1.00)A./018B./C./D./xcc/5.对以下二叉树 (分数:1.00)A.ACBDFEGB.ACBDFGEC.ABDCGEFD.FCADBEG6.设有定义:int k=1,m=2:float f=7;,则以下选项中错误的表达式是( )。(分数:1.00)A.k=k=kB.-k+C.k%int(D.k=f=m8.若有以下程序段(n 所赋的是八进制数): int m=32767,n=032767; printf(“%d,%/n“,m,n); 执行后输出结果是( )。(分数:1.00)A.327
3、67,32767B.32767,032767C.32767,77777D.32767,0777779.算法具有 5 个特性,以下选项中不属于算法特性的是( )o(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性10.以下程序段的输出结果是( )。 int a=1234; printf(“%2d/n“,A) ;(分数:1.00)A.12B.34C.1234D.提示出错,无结果11.有以下程序: #include stdio.h main() FILE *fp; int i; char ch=“abcd“,t; fp=fopen(“abc.dat“,“wb+“); for(i=0;i4;i
4、+)fwrite( switch(a%3) case 0:m+;break; case 1:m+; switch(b%2) default: m+; case 0:m+;break; rintf(“%d/n“,m); 程序运行后的输出结果是( )。(分数:1.00)A.1B.2C.3D.414.按照“后进先出”原则组织数据的数据结构是( )。(分数:1.00)A.队列B.栈C.双向链表D.二叉树15.以下能正确定义二维数组的是( )。(分数:1.00)A.int a3;B.int a3=2*3;C.int a3=;D.int a23=1,2,3,4;16.有以下程序: #include std
5、io.h main() inta=1,2,3,4,5,6,7,8,9,10,11,12,,*p=a+5,*q=NULL; *q=*(p+5); printf(“%d %d/n“,*p,*q); 程序运行后的输出结果是( )。(分数:1.00)A.运行后报错B.6 6C.6 11D.5 1017.已有定义:Mt x=3,y=4,z=5;,则表达式!(x/y)+z-1 strcat(p,r); strcpy(p+strlen(q),q); printf(“%d/n“,strlen(p); 程序运行后的输出结果是( )。(分数:1.00)A.9B.6C.11D.735.以下程序段十,不能正确赋字符串
6、(编译时系统会提示错误)的是( )。(分数:1.00)A.chars10=“abedefg“;B.char t=“abcdefS“,*s=t;C.chars10;s=“abcdefg“;D.chars10;strcpy(s,“abcdefg“);36.设有如下定义, struct sk int a; float b; data; int*p; 若要使 P 指向 data 中的 a 域,正确的赋值语句是( )。(分数:1.00)A.p= for (i=1; iargc; i+) n=n*10+*argvi-0; printf(“%d/n“,n); 编译连接后生成可执行文件 tt.exe。若运行时
7、输入以下命令行 tt 12 345 678 程序运行后的输出结果是( )。(分数:1.00)A.12B.12345C.12345678D.13640.以下对结构体类型变量 td 的定义中,错误的是( )。(分数:1.00)A.typedef struct aa int n; float m; AA; AA td;B.struct aa int n; float m; td; stmct aa td;C.stmct int n; float m; aa; stmct aa td;D.struct int n; float m; td;41.已定义 ch 为字符型变量,以下赋值语句中错误的是( )
8、。(分数:1.00)A.ch=/;B.ch=62+3C.ch=NULL;D.ch=/xaa;42.以下程序的输出结果是( )。 mam() char cf35=“AAAA“,“BBB“,“CC“); printf(“/“%s/“n“,cf1); (分数:1.00)A.“AAAA“B.“BBB“C.“BBBCC“D.“CC“44.以下关于字符串的叙述中正确的是( )。(分数:1.00)A.C 语言中有字符串类型的常量和变量B.两个字符串中的字符个数相同时才能进行串符串大小的比较C.可以用关系运算符对字符串的大小进行比较D.空串一定比空格打头的字符串小45.在数据库系统巾,用户所见的数据模式为(
9、)。(分数:1.00)A.概念模式B.外模式C.内模式D.物理模式,46.有以下程序: #include stdio.h #define N 5 #define M N+1 #define f(x) (x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d%d/n“,i1,i2); 程序的运行结果是( )。(分数:1.00)A.12 12B.11 7C.11 11D.12 747.以下选项中可作为 C 语言合法整数的是( )。(分数:1.00)A.10110BB.0386C.0XffaD.x2a248.设有如下说明: typedef stru
10、ct int n; char c;double x;STD; 则以下选项:能正确定义结构体数组并赋初值的语句是( )。(分数:1.00)A.STDtt2=1,A,62,2,B,75;B.STDtt2=1,“A“,62,2,“B“,75;C.struet tt2= 1,A,2,B;D.struct tt2=1,“A“,62.5,2,“B“,75.0;49.有以下程序: main() int i=0,s=0; do if(i%2) i+;continue; i+; s+=i; while(i7);. printf(“%d/n“,s); 执行后输出的结果是( )。(分数:1.00)A.16B.12C
11、.28D.2150.有以下程序: #include stdio.h #include string.h typedef structchar name9;char sex;float score2STU; STU f(STU A) STU b=“Zhao“,m,85.0,90.0; int i; strcpy(a.name,b.namC) ; a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; return a; main() STU c=“Qian“,f,95.0,92.0,d; d=f(C) ; pintf(“%s,%c,%2.of%2of/n“,
12、d.name,d.sex,d.score0, scanq(“i=%d,j=%d“, printf(“i=%d,j=%d/n“,i,j); 要求给 i 赋 10,给 j 赋 20,则应该从键盘输入U 【7】 /U。(分数:2.00)填空项 1:_58.若有以下程序: main() int,p,a=5; if(P=a!=0) printf(“%d/n“,p); else printf(“%d/n“,p+2); 执行后输出结果是U 【8】 /U。(分数:2.00)填空项 1:_59.当运行以下程序时,输入 abed,程序的输出结果是:U 【9】 /U。 insert(char str) int i
13、i=strlen(str); while(i0) str2*i=stri;str2*-1=*;i-; printf(“%s/n“,str); main() char str40; scanf(“%s“,sB) ; insert(str); (分数:2.00)填空项 1:_60.以下程序运行后的输出结果是U 【10】 /U。 main() int a44=1,2,3,4,5,6,7,8,11,12,13,14,15,16,17,18; int i=0,j=0,s=0; while(i+4) if(i=2|=4)continue; j=0; do s+=aij; j+; while(j4); Pr
14、intf(“%d/n“,s); (分数:2.00)填空项 1:_61.己定义 char ch=$;int i=l,j;,执行 j=!ch (分数:2.00)填空项 1:_64.以下程序中函数 f 的功能是在数组 x 的 n 个数(假定 n 个数互不相同)小找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。 #include stdio.h void f(int x,int n) int p0,p1,i,j,t,m; i=j=x0; p0=p1=0; for(m=O;mn;m+) if(xmi) i=xm; p0=m; else if(xmj) j=xm;p1=m
15、;) t=xp0;xp0=xn-1;xn-1=t; t=xpl;xp1=U 【14】 /U;U 【15】 /U=t main() int a10,u; for(u=0;u10;u+) scamp(“%d“, f(a,10); for(u=0;u10;u+)printf(“%d“,au); ptintf(“/n“); (分数:2.00)填空项 1:_65.以下程序运行后的输出结果是U 【16】 /U。 struct NODE int num; stmct NODE *next; ; main() struct NODE s3=1,/0),2,/0),3,/0),*p,*q,*r; int sum
16、=0; s0next=s+1; s1next=s+2; s2next=s; p=s q=p-next; r=q-next; sum+=q-next-num; sum+=r-next-next-num; printf(“%d/n“,sum); (分数:2.00)填空项 1:_66.下面程序的运行结果是U 【17】 /U。 int f(int a,int n) if(n1)return a0+f( printf(“%d/n“,s); (分数:2.00)填空项 1:_67.以下程序中,函数 SumColumMin 的功能足:求出 M 行 N 列二维数组每列元素中的最小值,并计算它们的和值。和值通过形
17、参传回主函数输出。请填空。 #define M 2 #define N 4 void SumColumMm(int aMN,int*sum) int i,j,k,s=0; for(i=0;iN;i+) k=0; for(j=1;jM;j+) if(akiaji) k=j; s+=U 【18】 /U; U 【19】 /U=s; main() int xMn)=3;,5,1,4,1,8,3,s; SumC01umMm(U 【20】 /U); ptintf(“%d/n“,s); (分数:2.00)填空项 1:_二级 C 语言笔试 97 答案解析(总分:84.00,做题时间:90 分钟)一、B选择题/
18、B(总题数:50,分数:50.00)1.数据的存储结构是指( )。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:解析 数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,也称数据的物理结构,所以选项 D 正确。2.在一棵二叉树上第 5 层的结点数最多是( )。(分数:1.00)A.8B.16 C.32D.15解析:解析 根据二叉树的性质,在二叉树的第 K 层上,最多有 2k-1 个结点。所以,第五层的结点数最多为 16。3.以下叙述中正确的是( )。(分数:1.00)A.预处理命令行必须位于
19、C 源程序的起始位置B.在 C 语言巾,预处理命令行都以“#“开头 C.每个 C 程序必须在开头包含预处理命令行;#include stdihD.C 语言的预处理不能实现宏定义和条件编译的功能解析:解析 预处理命令行可以出现在 C 源程序的任何位置,故选项 A 不正确。#includestdio.h预处理命令行的意思是将 stdioh 头文件插入源程序中该行命令所在的位置,表示我们将在后续行中用到stdioh 头文件中定义的函数或类型,若程序中没有用到这些函数或类型就可以不用包含此头文件,故选项 C 不正确。C 提供的预处理功能主要有:宏定义、文件包含和条件编译三种功能,故选项 D 不正确。在
20、 C 语言中,预处理命令行都以”#”开头,故应该选择 B。4.以下不合法的字符常量是( )。(分数:1.00)A./018 B./C./D./xcc/解析:解析 在选项 A 中,“/”后跟着三个数字,是表示一个 ASCII 码值等于这三位数字所组成的八进制数数值的字符,但是八进制数只能是由 0-7 这八个数字表示,而选项 A 中出现了数字 8 所以是不合法的。选项 B 是表示一个双引号的转义字符表示方法;选项 C 表示的是一个反斜杆;选项 D 表示一个 ASCII 值为十六进制值“的字符。故应该选择 A。5.对以下二叉树 (分数:1.00)A.ACBDFEG B.ACBDFGEC.ABDCGE
21、FD.FCADBEG解析:解析 二叉树的中序遍历递归算法为:如果根不空,则按中序次序访问左子树,访问跟结点,按中序次序访问右子树;否则返回。本题中,根据中序遍历算法,应首先按照中序次序访问以 C 为根结点的左子树,然后再访问根结点 P,最后才访问以 E 为根结点的右子树。遍历以 C 为根结点的左子树同样要遵循中序遍历算法,因此中序遍历结果为 ACBD;然后遍历根结点 P;遍历以 E 为根结点的右子树,同样要遵循巾序遍历算法,因此巾序遍历结果为 EG。最后把这三部分的遍历结果按顺序连接起来,中序遍历结果为 ACBDFEG。因此,本题的正确答案是选项 A。6.设有定义:int k=1,m=2:fl
22、oat f=7;,则以下选项中错误的表达式是( )。(分数:1.00)A.k=k=kB.-k+C.k%int( D.k=f=m解析:解析 强制类型转换运算符的格式是: (类型名)变量名 所以将浮点型变量 f 转换为整型应写作(int)f,故选项 C 是错误的。解析:解析 本题中定义了整型变量 a 和一个指向整型数据的指针变量 pa,并定义 pa 是一个存放 a 的地址的变量。选项 B 是应该将 a 改为中,(i+1)不是变量,该表达式的值为常量,而在什运算中,其运算对象必须为变量,故选项 C 错误,选项 D 中为复合赋值表达式,正确。所以应当选择 C。13.有以下程序: main() int
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 二级 语言 笔试 97 答案 解析 DOC
