欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言分类模拟题527及答案解析.doc

    • 资源ID:1325556       资源大小:65.50KB        全文页数:15页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言分类模拟题527及答案解析.doc

    1、二级 C语言分类模拟题 527及答案解析(总分:48.50,做题时间:90 分钟)一、选择题(总题数:35,分数:48.50)1.函数 ftell(fp)的作用是_。(分数:2.00)A.得到 fp所指向文件的当前读写位置B.初始化文件的位置指针C.移动文件的位置指针D.以上答案均正确2.有以下程序: #include stdio.h main ( ) char ch =“uvwxyz“,*pc; pc=ch; printf(“%c/n“, * (pc+5); 程序运行后的输出结果是_。(分数:2.50)AzB.0C.元素 ch5的地址D.字符 y的地址3.若有 char s33=“AAA“,

    2、“BBB“,“CCC“;说明语句,则与它等价的语句是_。(分数:2.50)A.char*s=“AAA“,“BBB“,“CCC“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“;4.某二叉树共有 845个节点,其中叶子节点有 45个,则度为 1的节点数为_。(分数:1.00)A.400B.754C.756D.不确定5.以下选项中能表示合法常量的是_。(分数:1.00)A.整数: 1,200B.实数: 1.5E2.0C.字符斜杠: “D.字符串: “/007“6.设已有定义:fl

    3、oat x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是_。(分数:2.00)A.int *p=(float)x;B.float *p=C.float p=D.float *p=1024;7.有以下程序: #includestdio.h int mul(int val) static int init=1; return init *=val; main() int i; for(i=1;i=5;i+) printf(“%d,“,mul(i); 程序运行后的输出结果是_。(分数:1.00)A.1,2,6,24,120,B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6

    4、,8,8.有下列程序: int fun(int x,int n) static int sum=0,1; 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.559.数据处理的最小单位是_。(分数:1.00)A.数据B.数据元素C.数据项D.数据结构10.有以下程序 #includestdio.h oid fun(int*a,int n) /*fun函

    5、数的功能是将 a所指数组元素从大到小排序*/ (int t,i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)(t=ai;ai=aj;aj=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4,6); for f(i=0;i10;i+)printf(“%d,“,ci); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.1,2,3,4,9,8,7,6,5,0,B.0,9,8,7,6,5,1,2,3,4,C.0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,5,6,7,8,9,0

    6、,11.有以下程序: #includestdio.h main() int a=1,b=2,c=3,x; x=(ab) printf(“%d/n“,x); 程序的运行结果是_。(分数:2.00)A.3B.1C.2D.012.下列数组定义中错误的是 _ 。(分数:2.00)A.int x3=0;B.int x23=1,2,3,4,5,6;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;13.有以下程序: include stdio.h main( ) int i,a; for (i=0; i=10; i+) a=i; printf(“%d,%d/n“,i,a

    7、); 程序的运行结果是_。(分数:1.00)A.11,10B.10,10C.10,11D.11,1114.若有定义: int w35; 则以下不能正确表示该数组元素的表达式是_。(分数:1.00)A.*(w+1)4B.*(*w+3)C.*(*(w+1)D.*(while(*s);B.for(i=0;ti=si;i+);C.while(*t=*s)t+;s+;D.for(i=0,j=0;ti+=sj+;);21.若有以下程序段: double x=5.16894; printf(“%f/n“,(int)(x*1000+0.5)/(double)1000); 则程序段的输出结果是_。(分数:1.0

    8、0)A.5.170000B.5.175000C.5.169000D.5.16800022.设有定义:char p=“1“, “2“, “3“, *q=p;,以下不能计算出一个 char型数据所占字节数的表达式是_。(分数:1.00)A.sizeof(p)B.sizeof(chat)C.sizeof(*q)D.sizeof(p0)23.为了合理组织数据,应遵循的设计原则是 _(分数:1.00)A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系B.用外部关键字保证有关联的表之间的联系C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段D.以上各原则都包括24.以下叙

    9、述中错误的是_。(分数:1.00)A.函数的返回值类型不能是结构体类型,只能是简单类型B.函数可以返回指向结构体变量的指针C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员D.只要类型相同,结构体变量之间可以整体赋值25.已知 int i, x34;,则不能将 x11的值赋给变量 i的语句是_。(分数:1.00)A.i=*(*(x+1)+1);B.i=x11;C.i=*(*(x+1);D.i=*(x1+1);26.函数 fseek(fp,-10L,SEEK_END)的含义是_。(分数:2.00)A.将文件位置指针从当前位置向后移动 10个字节B.将文件位置指针移到距离文件头 10个字

    10、节处C.将文件位置指针从文件末尾处向后退 10个字节D.将文件位置指针移到离当前位置 10个字节处27.以下叙述中错误的是_。(分数:1.00)A.getchar函数用于从磁盘文件读入字符B.gets函数用于从终端读入字符串C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件28.有以下程序(注:字符 a的 ASCII码值为 97): #includestdio.h main() char *s=“abc“; do printf(“%d“, *s%10);+s; while(*s); 程序运行后的输出结果是_。(分数:1.00)A.789B.abcC.78

    11、90D.97989929.有定义:int a=64,b=8;,则表达式(a while(c=getchar()!=“/n“) switch(c-“2“) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default : putchar(c+2); break; printf(“/n“); 从第一列开始输入数据:2473CR,CR代表 Enter键,程序的输出结果是(分数:2.00)A.668977B.668966C.66778777D.668876632.执行以下程序时输

    12、入 1234567CR,则输出结果是 #include stdio.h main() int a=1,b; scanf(“%3d%2d“, printf(“%d%d/n“,a,b); (分数:1.00)A.12367B.12346C.12312D.1234533.若变量已正确定义并赋值,以下不能构成 C语句的选项是_。(分数:2.00)A.B+ +;B.A=a+b;C.a=a+bD.A?a:b;34.有如下程序 #includestdio.h main() int i,data; scanf(“%d“, for(i=0;i5;i+) if(idata printf(“%d,“,i); 程序运行

    13、时,从键盘输入:13回车后,程序输出结果为_。(分数:1.00)A.0,2,4,B.1,3,5,C.0,1,2,3,4,5,D.0,1,2,3,35.数据库管理系统是_。(分数:2.50)A.操作系统的一部分B.在操作系统支持下的系统软件C.一种编译系统D.一种操作系统二级 C语言分类模拟题 527答案解析(总分:48.50,做题时间:90 分钟)一、选择题(总题数:35,分数:48.50)1.函数 ftell(fp)的作用是_。(分数:2.00)A.得到 fp所指向文件的当前读写位置 B.初始化文件的位置指针C.移动文件的位置指针D.以上答案均正确解析:2.有以下程序: #include s

    14、tdio.h main ( ) char ch =“uvwxyz“,*pc; pc=ch; printf(“%c/n“, * (pc+5); 程序运行后的输出结果是_。(分数:2.50)Az B.0C.元素 ch5的地址D.字符 y的地址解析:解析 语句 pc=ch;使得指针变量指向字符数组 ch的首地址,即指向字符“u”,则 pc+5指向的是字符向后移动 5位,指向字符“z”。所以输出的*pc+5 的值即为 z。因此 A选项正确。3.若有 char s33=“AAA“,“BBB“,“CCC“;说明语句,则与它等价的语句是_。(分数:2.50)A.char*s=“AAA“,“BBB“,“CCC

    15、“;B.char*s3=“AAA“,“BBB“,“CCC“;C.char s5=“AAA“,“BBB“,“CCC“;D.char s3=“AAA“,“BBB“,“CCC“; 解析:解析 二维字符数组在定义时可省略第一维的维数,根据初始化有 3个字符串,所以选项 D中数组有 3行,与已知说明语句等价。4.某二叉树共有 845个节点,其中叶子节点有 45个,则度为 1的节点数为_。(分数:1.00)A.400B.754C.756 D.不确定解析:解析 在树结构中,一个节点所拥有的后件个数称为该节点的度,所有节点中最大的度称为树的度。对任何一棵二叉树,度为 0的节点(即叶子节点)总是比度为 2的节点

    16、多一个。二叉树共有 845个节点,度为 0的节点有 45个,度为 1的节点数为 n 1 ,度为 2的节点数为 n 2 ,则 845=45+n 1 +n 2 ,且 45=n 2 +1,则 n 1 =756,C选项正确。5.以下选项中能表示合法常量的是_。(分数:1.00)A.整数: 1,200B.实数: 1.5E2.0C.字符斜杠: “D.字符串: “/007“ 解析:解析 选项 A:整数中不能用逗号分隔,选项 B:实数中 E后数值必须是整数,选项 C:C 语言里字符串中的字符“/”需转义,应为“/”。6.设已有定义:float x;,则以下对指针变量 p进行定义且赋初值的语句中正确的是_。(分

    17、数:2.00)A.int *p=(float)x;B.float *p= C.float p=D.float *p=1024;解析:解析 指针是用来存放地址的变量,用(类型名*指针变量名)的形式定义。赋值时应将某个变量地址即 return init *=val; main() int i; for(i=1;i=5;i+) printf(“%d,“,mul(i); 程序运行后的输出结果是_。(分数:1.00)A.1,2,6,24,120, B.1,2,3,4,5,C.1,1,1,1,1,D.1,2,4,6,8,解析:解析 static 静态变量只在声明时初始化一次。mul()函数定义了累乘,第一

    18、次init=1,init*=val,第二次 init=1,val=2,第三次 init=2,val=3,第四次 init=6,val=4,第五层init=24,val=5,因此结果为 1,2,6,24,120。故答案为 A选项。8.有下列程序: int fun(int x,int n) static int sum=0,1; 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

    19、.45B.50C.60 D.55解析:解析 在函数 int fun(int x, int n)的定义中,变量 sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数 int fun(int x,int n)的功能是求出数组 x各个元素的和,所以在主函数中,调用函数 fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用 fun(b,4)后,变量 sum=15+6+7+8+9=45,所以 s=15+45=60。9.数据处理的最小单位是_。(分数:1.00)A.数据B.数据元素C.数据项 D.数据结构解析:10.有以下程序 #in

    20、cludestdio.h oid fun(int*a,int n) /*fun函数的功能是将 a所指数组元素从大到小排序*/ (int t,i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)(t=ai;ai=aj;aj=t; main() int c10=1,2,3,4,5,6,7,8,9,0,i; fun(c+4,6); for f(i=0;i10;i+)printf(“%d,“,ci); printf(“/n“); 程序的运行结果是_。(分数:1.00)A.1,2,3,4,9,8,7,6,5,0, B.0,9,8,7,6,5,1,2,3,4,C.

    21、0,9,8,7,6,5,4,3,2,1,D.1,2,3,4,5,6,7,8,9,0,解析:解析 在本题中,主函数在调用 fun()函数进行排序时,传递的参数是 c+4和 6,fun()函数实现的功能是将数组 c的第 5个元素开始的 6个元素依次进行从大到小的顺序排列。排序之后,数组 c的内容变为1,2,3,4,9,8,7,6,5,0。11.有以下程序: #includestdio.h main() int a=1,b=2,c=3,x; x=(ab) printf(“%d/n“,x); 程序的运行结果是_。(分数:2.00)A.3 B.1C.2D.0解析:解析 本题考查位运算符以及相关运算。为按

    22、位或, for (i=0; i=10; i+) a=i; printf(“%d,%d/n“,i,a); 程序的运行结果是_。(分数:1.00)A.11,10 B.10,10C.10,11D.11,11解析:解析 当 i=10时循环继续执行,i 值赋值给变量 a。赋值完成后执行 i=i+1,此时 i=11,判定是否满足条件 i=10,不满足条件,结束循环。循环结束时,printf()是从右到左结合的,输出 i,a 的值为 11,10,答案为 A选项。14.若有定义: int w35; 则以下不能正确表示该数组元素的表达式是_。(分数:1.00)A.*(w+1)4 B.*(*w+3)C.*(*(w

    23、+1)D.*(while(*s); B.for(i=0;ti=si;i+);C.while(*t=*s)t+;s+;D.for(i=0,j=0;ti+=sj+;);解析:解析 do*t+=*s+;while(*s);不能因为当*s=“/0“时,while(*s)跳出循环,这样字符串结束标志“/0“没有复制给*t,造成*t 不完整。注意,*t+=*s+是先执行 t=*s,然后才进行t=t+1,s=s+1。B、C、D 选项都能将“/0“复制过去。所以选择 A选项。21.若有以下程序段: double x=5.16894; printf(“%f/n“,(int)(x*1000+0.5)/(doubl

    24、e)1000); 则程序段的输出结果是_。(分数:1.00)A.5.170000B.5.175000C.5.169000 D.5.168000解析:解析 %f 的输出格式是以带小数点的数学形式输出浮点数。首先计算 x*1000,结果为 5168.94,然后+0.5,结果为 5169.44;然后进行强制类型转换,转换成整型为 5169,然后除以双精度数据 1000,结果也为双精度数据 5.169,输出时按照%f 的格式输出,所以输出结果为 5.169000。22.设有定义:char p=“1“, “2“, “3“, *q=p;,以下不能计算出一个 char型数据所占字节数的表达式是_。(分数:1

    25、.00)A.sizeof(p) B.sizeof(chat)C.sizeof(*q)D.sizeof(p0)解析:解析 根据题目中的定义可以知道 sizeof(p),计算的是数组 p中所有元素所占用的字节数,而不是 char型数据所占字节数。所以选择 A选项。23.为了合理组织数据,应遵循的设计原则是 _(分数:1.00)A.“一事一地”的原则,即一个表描述一个实体或实体之间的一种联系B.用外部关键字保证有关联的表之间的联系C.表中的字段必须是原始数据和基本数据元素,并避免在表之间出现重复字段D.以上各原则都包括 解析:24.以下叙述中错误的是_。(分数:1.00)A.函数的返回值类型不能是结

    26、构体类型,只能是简单类型 B.函数可以返回指向结构体变量的指针C.可以通过指向结构体变量的指针访问所指结构体变量的任何成员D.只要类型相同,结构体变量之间可以整体赋值解析:解析 函数返回值类型可分为简单类型和结构体类型。25.已知 int i, x34;,则不能将 x11的值赋给变量 i的语句是_。(分数:1.00)A.i=*(*(x+1)+1);B.i=x11;C.i=*(*(x+1); D.i=*(x1+1);解析:26.函数 fseek(fp,-10L,SEEK_END)的含义是_。(分数:2.00)A.将文件位置指针从当前位置向后移动 10个字节B.将文件位置指针移到距离文件头 10个

    27、字节处C.将文件位置指针从文件末尾处向后退 10个字节 D.将文件位置指针移到离当前位置 10个字节处解析:27.以下叙述中错误的是_。(分数:1.00)A.getchar函数用于从磁盘文件读入字符 B.gets函数用于从终端读入字符串C.fputs函数用于把字符串输出到文件D.fwrite函数用于以二进制形式输出数据到文件解析:解析 本题考查的是文件操作。题中“fopen(fn,“w“)”的作用是打开 fn所指向的文件,使用文件方式为“写入”;“fputs(str,fp)”的作用是将字符 str的值输出到 fp所指向的文件中去。在程序中,两次使用“写入”的方式打开同一个文件,在第二次打开时,

    28、文件指针指向文件头,所以此次写入的数据覆盖了文件原有的数据,故本题中“t1.dat 的内容为 end。故本题答案为 A。28.有以下程序(注:字符 a的 ASCII码值为 97): #includestdio.h main() char *s=“abc“; do printf(“%d“, *s%10);+s; while(*s); 程序运行后的输出结果是_。(分数:1.00)A.789 B.abcC.7890D.979899解析:解析 因为小写字符 a,b,c 的 ASCII码值分别为 97,98,99,而在 dowhile循环语句中,每次对字符的 ASCII码值除 10取余数并输出,所以输出

    29、结果为 7、8、9。故选择 A选项。29.有定义:int a=64,b=8;,则表达式(a while(c=getchar()!=“/n“) switch(c-“2“) case 0 : case 1 : putchar(c+4); case 2 : putchar(c+4); break; case 3 : putchar(c+3); default : putchar(c+2); break; printf(“/n“); 从第一列开始输入数据:2473CR,CR代表 Enter键,程序的输出结果是(分数:2.00)A.668977 B.668966C.66778777D.6688766解析

    30、:32.执行以下程序时输入 1234567CR,则输出结果是 #include stdio.h main() int a=1,b; scanf(“%3d%2d“, printf(“%d%d/n“,a,b); (分数:1.00)A.12367B.12346C.12312D.12345 解析:解析 scanf 函数中的格式控制说明为“%3d%2d”,分别选中输入中的 3位和 2位,因此a=123,b=45。因此正确答案为 D)。33.若变量已正确定义并赋值,以下不能构成 C语句的选项是_。(分数:2.00)A.B+ +;B.A=a+b;C.a=a+b D.A?a:b;解析:解析 C 语言中规定,C

    31、 语句必须以分号“;”结束。C 选项中没有结束符号,所以错误。34.有如下程序 #includestdio.h main() int i,data; scanf(“%d“, for(i=0;i5;i+) if(idata printf(“%d,“,i); 程序运行时,从键盘输入:13回车后,程序输出结果为_。(分数:1.00)A.0,2,4, B.1,3,5,C.0,1,2,3,4,5,D.0,1,2,3,解析:解析 程序通过 scanf()函数,输入 data的值 13,for 循环中,i 的值遍历 04,对每个 i的值执行 if语句判断,其中:idata 始终为假;所以表达式 idata&

    32、i%3=0 始终为假;所以 if语句的判断条件需要看 idata&i%2 的值,由于 idata 始终为真,所以 idata&i%2 的值又取决于 i%2的值,也就是说整个 if语句的判断条件取决于 i%2的值,如果 i%2为真,那么 if语句成立,执行 continue,否则执行 printf()函数,所以当 i取值 1、3 时,i%2 的为 1,if 条件成立,执行 continue;当 i取值0、2、4 时,i%2 的值为 0,if 条件不成立,执行 printf()函数,输出 0,2,4,本题答案为 A。35.数据库管理系统是_。(分数:2.50)A.操作系统的一部分B.在操作系统支持下的系统软件 C.一种编译系统D.一种操作系统解析:解析 数据库管理系统是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是一种在操作系统支持下的系统软件,因此本题答案为 B。


    注意事项

    本文(【计算机类职业资格】二级C语言分类模拟题527及答案解析.doc)为本站会员(proposalcash356)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开