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

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

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

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

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

    1、二级 C 语言模拟 648 及答案解析(总分:163.00,做题时间:90 分钟)一、选择题(总题数:40,分数:53.00)1.以下叙述中正确的是_。(分数:2.00)A.C 程序书写格式自由,一个语句可以写在多行上B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序中的注释只能出现在程序的开始位置和语句的后面D.用 C 语言编写的程序只能放在一个程序文件中2.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的(分数:1.00)A.安全性B.一致性C.可理解性D.合理性3.以下关于 fclose(fp)函数的叙述正确的是_。(分数:1.0

    2、0)A.当程序中对文件的所有写操作完成之后,必须调用 fclose(fp)函数关闭文件B.当程序中对文件的所有写操作完成之后,不一定要调用 fclose(fp)函数关闭文件C.只有对文件进行输入操作之后,才需要调用 fclose(fp)函数关闭文件D.只有对文件进行输出操作之后,才能调用 fclose(fp)函数关闭文件4.有以下程序: main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf(“%d,%d,%d,%d/n“,a,b,c,d); 程序运行后输出结果是(分数:1.00)A.0,1,2,0B.0,0,0,3C.1,1

    3、,2,0D.编译有错5.以下程序中函数 f 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进行由大到小排序。#include stdio.h void f(int b, int n, int flag) int i,j,t; for (i=0; in-1; i+ +) for (j=i+1; jn; j+ +) if (flag ? bibj : bibj) t=bi; bi=bj; bj=t; main( ) int a10=5,4,3,2,1,6,7,8,9,10,i; f( f(a,5,1); for(i=0;i10;i+ +) printf(“%d,“

    4、,ai); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.3,4,5,6,7,2,1,8,9,10,C.5,4,3,2,1,6,7,8,9,10,D.10,9,8,7,6,5,4,3,2,1,6.已知字符“A“的 ASCII 代码值是 65,字符变量 c1 的值是“A“,c2 的值是“D“。则执行语句 printf(“%d,%d“,c1,c2-2); 的输出结果是_。(分数:1.00)A.A,68B.65,66C.A,BD.65,687.与数学表达式 xyz 对应的 C 语言表达式是_。(分数:1.00)A.(x=y)|(y=x)B.(x=y=z

    5、)C.(x=y)!(y=z)D.(x=y)(y=z)8.按照 C 语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符9.以下叙述中正确的是_。(分数:2.50)A.continue 语句的作用是使程序的执行流程跳出包含它的所有循环B.break 语句只能用在循环体内和 switch 语句体内C.在循环体内使用 break 语句和 continue 语句的作用相同D.break 语句只能用于 switch 语句体中10.有以下程序 #includestdio.h void fun(int a, int b) int t; t=a

    6、; a=b; b=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; for(i=0; i10; i+=2) fun(ci, ci+1); for(i=0; i10; i+) printf(“%d,“, ci); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.1, 2, 3, 4, 5, 6, 7, 8, 9, 0,B.2, 1, 4, 3, 6, 5, 8, 7, 0, 9,C.0, 9, 8, 7, 6, 5, 4, 3, 2, 1,D.0, 1, 2, 3, 4, 5, 6, 7, 8, 9,11.有关系 R 如下

    7、,其中属性 B 为主键: R B C D a 0 k1 b 1 n1 2 p1 则其中最后一个记录违反了_。(分数:1.00)A.实体完整性约束B.参照完整性约束C.用户定义的完整性约束D.关系完整性约束12.以下程序不用第 3 个变量,实现将两个数进行对调的操作,请填空。 #include stdio.h main() int a, b; scanf(“% d% d“, printf(“a=% db=% d“, a, b); a=a+b; b=a-b; a=_; printf(“a=% db=% d/n“, a, b); (分数:1.00)A.a+bB.a-bC.b*aD.a/b13.以下不

    8、能作为合法常量的是_。(分数:1.00)A.1.234e0B.1.234e04C.1.234e+4D.1.234e0.414.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C.外模式D.数据模式15.以下对结构体变量 mix 中成员 x 的正确引用是_。 struct int t;int x; mix,*p; p=(分数:1.00)A.(*p).mix.xB.(*p).xC.p-mix.xD.mix.x16.有以下程序: #includestdio.h int a=5; int func(int a) int b=1; static int c=5; a+; b+; +

    9、c; return(a*b*c); main() int k,a=4; for(k=0;k3;k+) printf(“%d,“,func(a); 程序执行后的输出结果是_。(分数:1.00)A.72,147,256,B.60,60,60,C.72,98,128,D.60,70,80,17.有以下程序: #includestdio.h #includestring.h main() char str20“One*World“, “One*Dream!“, *p=str1; prinft(“%d, “, strlen(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:

    10、1.00)A.9, One*WorldB.9, One*Dream!C.10, One*Dream!D.10, One*World18.有以下程序: #includestdio.h int fun(int x, int n) static int sum=0, i; 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.5

    11、519.下列叙述中,正确的是_。(分数:1.00)A.线性链表是线性表的链式存储结构B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构20.若有定义语句:“int x=10;”,则表达式 x-=x+x 的值为_。(分数:1.00)A.-20B.-10C.0D.1021.下列数据结构中,能用二分法进行查找的是_。(分数:1.00)A.顺序存储的有序线性表B.线性链表C.二叉链表D.有序线性链表22.以下程序的输出结果是_。 main () int x=5,n=3,s,j; for(j=0;j2;j+) s=fun(x,n); printf(“%d“,s); fun(

    12、int a,int b) static int n=0,i=2; i=n+1; n=i+a-b; return(n); (分数:1.00)A.3 7B.3 5C.3 6D.3 323.已知字母 A 的 ASCII 码值是 65,字母 a 的 ASCII 码值是 97,以下程序_。 main() char a=“A“; int b=20; pxintf(“%d,%o“,(a=a+a,a+b,b) ,a+“a“-“A“,b); A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141D.输出结果为 20,141,2024.有以下语句,则对 a 数组元素的引

    13、用不正确的是(0i9) int a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:2.00)A.ap-aB.*(ai)C.piD.*(*(a+i)25.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B并C交D差26.某二叉树有 5 个度为 2 的结点,则该二叉树中的叶子结点数是_。(分数:2.00)A.10B.8C.6D.427.简单程序设计步骤中不包括_。(分数:1.00)A.编码B.确定算法C.安装编译程序D.调试28.在函数 scanf 的格式控制中,格式说明的类型与输入项的类型应该对应匹配。如果类型不匹配,系统将 _ 。(分数:1.00)A.不予接收

    14、B.并不给出出错信息,但不能得到正确的数据C.能接收到正确输入D.给出出错信息,不予接收输入29.以下选项中叙述错误的是_。(分数:2.00)A.在 C 程序的同一函数中,各复合语句内可以定义变量,其作用域仅限本复合语句内B.C 程序函数中定义的赋有初值的静态变量,每调用一次函数,赋一次初值C.C 程序函数中定义的自动变量,系统不自动赋确定的初值D.C 程序函数的形参不可以说明为 static 型变量30.设有如下定义: int arr=6, 7, 8, 9, 10; int*ptr; ptr=arr; *(ptr2)=2; printf(“%d, %d/n“, *ptr, *(ptr2);

    15、则下列程序段的输出结果为_。(分数:2.50)A.8,10B.6,8C.7,9D.6,231.若有以下程序: #include stdio.h main( ) int a=6,b=0,c=0; for(;a) b + =a; a- = c+ + ; printf(“%d,%d,%d/n“,a,b,c); 则程序的输出结果是_。(分数:2.50)A.5,6,0B.6,0,0C.6,6,1D.5,6,132.有以下程序: #include stdio.h main() int x=1, y=2, z=3; if(xy) if(yz) printf(“% d“, +z); else printf(“

    16、% d“, +y); printf(“% d/n“, x+); 程序的运行结果是_。(分数:1.00)A.331B.41C.2D.133.设栈的顺序存储空间为 S(0:49),栈底指针 bottom=49,栈顶指针 top=30(指向栈顶元素)。则栈中的元素个数为_。(分数:1.00)A.30B.29C.20D.1934.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划35.以下选项中,能表示逻辑值“假”的是_。(分数:1.00)A.1B.0.000001C.0D.100.036.下列运算符中优先级最低的

    17、算符是_。(分数:1.00)A.|B.!=C.=D.+37.下列定义数组的语句中错误的是_。(分数:2.00)A.int x23=1,2,3,4,5,6;B.int x3=0;C.int x3=1,2,3,4,5,6;D.int x23=1,2,3,4,5,6;38.设有定义:int a=0,b=1;,以下表达式中,会产生“短路”现象,致使变量 b 的值不变的是_。(分数:1.00)A.a+ *s=*p1+*(p2+); main() int a2=1, 2, b2=10, 20, *s=a; fun(a, b, s); printf(“%d/n“, *s); 程序运行后的输出结果是_。(分数

    18、:2.00)A.1B.10C.11D.240.有以下程序: #include stdio.h #include string.h typedef struct char name10; char sex; int age; STU; void fun(STU *t) strcpy(*t).name,“Tong“); (*t).age+; main() STU s2=“Hua“,“m“,18,“Qin“,“f“,19; fun(s+1); printf(“%s,%d,%s,%d/n“,s0.name,s0.age,s1.name,s1.age); 程序运行后的输出结果是_。(分数:1.00)A.

    19、Hua,18,Tong,20B.Hua,18,Qin,19C.Tong,19,Qin,19D.Hua,19,Tong,19二、程序填空题(总题数:1,分数:30.00)41.给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和 3 门课的成绩。函数 modify 的功能是将该学生的各科成绩都乘以一个系数 a。 请在程序的下划线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h typedef struct int num; char name9; float score3

    20、; STU; void show(STU tt) int i; printf(“%d %s:“,tt.num.tt.name); for(i=0;i3;i+) printf(“%5.1“,tt.scorei); printf(“/n“); /*found*/ void modify( 1*ss,float a) int i; for(i=0;i3;i+) /*found*/ ss- 2;*=a; main() STU std=1,“Zhanghua“,76.5,78.0,82.0; float a; printf(“/nThe original number and nameand score

    21、s:/n“); show(std); printf(“/nInput a number:“); scanf(“%f“, /*found*/ modify( 3,a); printf(“/nA result of modifying:/n“); show(std); (分数:30.00)三、程序修改题(总题数:1,分数:40.00)42.下列给定程序中,函数 proc()的功能是:首先把 b 所指字符串中的字符按逆序存放,然后将 str1 所指字符串中的字符和 str2 所指字符串中的字符,按排列的顺序交叉合并到 str 所指数组中,过长的剩余字符接在 str 所指数组的尾部。 例如,当 str

    22、1 所指字符串中的内容为 ABCDEFG,str2 所指字符串中的内容为 1234 时,str 所指数组中的内容应该为 A483C2D1EFG;而当 str1 所指字符串中的内容为 1234,str2 所指字符串中的内容为 ABCEDFG时,str 所指数组中的内容应该为 1G2F3E4DCBA。 请修改程序中的错误,使它能得出正确的结果。 注意:不要改动 main()函数,不得增行或删行,也不得更改程序的结构。 试题程序: #includestdlib.h #includeconio.h #includestdio.h #includestring.h void proc(char*str1

    23、, char*str2, char*str) int i, j; char ch; i=0; j=strlen(str2)-1; /*found* while(ij) ch=str2i; str2i=str2j; str2j=ch; i+; j-; while(*str1 | *str2) if(*str1)*str=*str1; str+; str1+; if(*str2)*str=*str2; str+; str2+; /*found* *str=0; void main() char s1100, s2100, t200; system(“CLS“); printf(“/nEnter s

    24、1 string:“); scanf(“%s“, s1); printf(“/nEnter s2 string:“); scanf(“%s“, s2); proc(s1, s2, t); printf(“/nThe result is: %s/n“, t); (分数:40.00)_四、程序设计题(总题数:1,分数:40.00)43.函数 fun 的功能是:将 a、b 中的两个两位正整数合并形成一个新的整数放在 c 中。合并的方式是:将 a中的十位和个位数依次放在变量 c 的千位和十位上,b 中的十位和个位数依次放在变量 c 的个位和百位上。例如,当 a=45,b=12。调用该函数后,c=425

    25、1。 注意:部分源程序存在文件 PROG1.C 中。数据文件 IN.DAT 中的数据不得修改。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 #include stdio.h void fun(int a,int b,long *c) void NONO() /* 本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。 */ FILE *rf,*wf; int i,a,b;long c; rf=fopen(“in.dat“,“r“); wf=fopen(“out.dat“,“w“); for(i=0;i10;i+) fscanf(r

    26、f,“%d,%d“, fun(a,b, fprintf(wf,“a=%d,b=%d,c=%ld/n“,a,b,c); fclose(rf); fclose(wf); main() int a,b;long c;void NONO(); printf(“Input a,b:“); scanf(“%d%d“, fun(a,b, printf(“The result is:%ld/n“,c); NONO(); (分数:40.00)_二级 C 语言模拟 648 答案解析(总分:163.00,做题时间:90 分钟)一、选择题(总题数:40,分数:53.00)1.以下叙述中正确的是_。(分数:2.00)A

    27、.C 程序书写格式自由,一个语句可以写在多行上 B.C 程序书写格式严格,要求一行内只能写一个语句C.C 程序中的注释只能出现在程序的开始位置和语句的后面D.用 C 语言编写的程序只能放在一个程序文件中解析:解析 C 程序书写格式自由,B、C、D 错误。2.在结构化程序设计思想提出之前,在程序设计中曾强调程序的效率。与程序的效率相比,人们更重视程序的(分数:1.00)A.安全性B.一致性C.可理解性 D.合理性解析:解析 结构化程序设计方法设计出的程序具有明显的优点。其一,程序易于理解、使用和维护;其二,提交了编程工作的效率,降低了软件开发成本。其中,人们更重视前者。3.以下关于 fclose

    28、(fp)函数的叙述正确的是_。(分数:1.00)A.当程序中对文件的所有写操作完成之后,必须调用 fclose(fp)函数关闭文件 B.当程序中对文件的所有写操作完成之后,不一定要调用 fclose(fp)函数关闭文件C.只有对文件进行输入操作之后,才需要调用 fclose(fp)函数关闭文件D.只有对文件进行输出操作之后,才能调用 fclose(fp)函数关闭文件解析:解析 对一个文件操作完成后,要将该文件关闭,“关闭”就是使文件指针变量不再指向该文件。程序编写者应该在程序终止之前关闭所有文件,如果不关闭,文件将会丢失数据。因为,在向文件写数据时,是先将数据输出到缓冲区,待缓冲区充满后才正式

    29、输出给文件。如果当数据未充满缓冲区而程序结束运行,就会将缓冲区中的数据丢失。用 fclose 函数关闭文件,可以避免这个问题,它先把缓冲区中的数据输出到磁盘文件,然后才释放文件指针变量。所以对文件的所有写操作完成之后必须要关闭文件,故 A选项正确,B 选项错误。只要对文件进行操作后,都要调用 fclose 文件关闭文件,故 C、D 选项错误。4.有以下程序: main() int a=0,b=0,c=0,d=0; if(a=1) b=1;c=2; else d=3; printf(“%d,%d,%d,%d/n“,a,b,c,d); 程序运行后输出结果是(分数:1.00)A.0,1,2,0B.0

    30、,0,0,3C.1,1,2,0D.编译有错 解析:解析 if 中的语句组包含两条语句,但是没有花括号,所以编译有错。如果这个时候没有 else,就理解成语句组只有一条语句,编译将是正确的。5.以下程序中函数 f 的功能是:当 flag 为 1 时,进行由小到大排序;当 flag 为 0 时,进行由大到小排序。#include stdio.h void f(int b, int n, int flag) int i,j,t; for (i=0; in-1; i+ +) for (j=i+1; jn; j+ +) if (flag ? bibj : bibj) t=bi; bi=bj; bj=t;

    31、 main( ) int a10=5,4,3,2,1,6,7,8,9,10,i; f( f(a,5,1); for(i=0;i10;i+ +) printf(“%d,“,ai); 程序运行后的输出结果是_。(分数:2.50)A.1,2,3,4,5,6,7,8,9,10,B.3,4,5,6,7,2,1,8,9,10, C.5,4,3,2,1,6,7,8,9,10,D.10,9,8,7,6,5,4,3,2,1,解析:解析 本题重点考查函数的参数传递。函数的参数传递分为传值和传地址两种情况。本题就是结合数组考查参数传递的情形。函数 f 完成的功能是对数据进行排序,语句 f( 的输出结果是_。(分数:

    32、1.00)A.A,68B.65,66 C.A,BD.65,68解析:解析 在 C 语言中,字符型数据在内存中的存储形式是 ASCII 码值。当需要以整型格式输出字符时,输出的也是 ASCII 码值。字符“A“和“D“的 ASCII 码值分别为 65 和 68。7.与数学表达式 xyz 对应的 C 语言表达式是_。(分数:1.00)A.(x=y)|(y=x)B.(x=y=z)C.(x=y)!(y=z)D.(x=y)(y=z) 解析:解析 本题考查关系表达式和逻辑表达式。y 大于等于 x 同时 y 小于等于 z,因此 x=y 和 y=z是逻辑与的关系,D 选项正确。8.按照 C 语言规定的用户标识

    33、符命名规则,不能出现在标识符中的是_。(分数:1.00)A.下划线B.大写字母C.数字字符D.连接符 解析:解析 C 语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。因此 D 选项中的连接符不合法。9.以下叙述中正确的是_。(分数:2.50)A.continue 语句的作用是使程序的执行流程跳出包含它的所有循环B.break 语句只能用在循环体内和 switch 语句体内 C.在循环体内使用 break 语句和 continue 语句的作用相同D.break 语句只能用于 switch 语句体中解析:解析 continue 语句的作用是:跳过循环体中剩余的语句而进行下一次循环,

    34、所以 A 选项错误。Break 语句的作用是终止正在执行的 switch 流程,跳出 switch 结构或者强制终止当前循环,从当前执行的循环中跳出所以 C、D 选项错误。10.有以下程序 #includestdio.h void fun(int a, int b) int t; t=a; a=b; b=t; main() int c10=1, 2, 3, 4, 5, 6, 7, 8, 9, 0, i; for(i=0; i10; i+=2) fun(ci, ci+1); for(i=0; i10; i+) printf(“%d,“, ci); printf(“/n“); 程序的运行结果是_。

    35、(分数:2.00)A.1, 2, 3, 4, 5, 6, 7, 8, 9, 0, B.2, 1, 4, 3, 6, 5, 8, 7, 0, 9,C.0, 9, 8, 7, 6, 5, 4, 3, 2, 1,D.0, 1, 2, 3, 4, 5, 6, 7, 8, 9,解析:解析 函数调用中发生的数据传递是单向的,即只能把实参的值传递给形参,而不能把形参的值反向地传递给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化,所以数组 c 中的元素的值并没有变化,故选择 A。11.有关系 R 如下,其中属性 B 为主键: R B C D a 0 k1 b 1 n1 2 p1 则其中最后

    36、一个记录违反了_。(分数:1.00)A.实体完整性约束 B.参照完整性约束C.用户定义的完整性约束D.关系完整性约束解析:解析 关系模型中可以有 3 类完整性约束:实体完整性约束、参照完整性约束和用户定义的完整性约束。实体完整性约束是指,若属性 M 是关系的主键,则属性 M 中的属性值不能为空值。属性 B 为主键,最后一个记录为空,违反了实体完整性约束,故 A 选项正确。12.以下程序不用第 3 个变量,实现将两个数进行对调的操作,请填空。 #include stdio.h main() int a, b; scanf(“% d% d“, printf(“a=% db=% d“, a, b);

    37、 a=a+b; b=a-b; a=_; printf(“a=% db=% d/n“, a, b); (分数:1.00)A.a+bB.a-b C.b*aD.a/b解析:13.以下不能作为合法常量的是_。(分数:1.00)A.1.234e0B.1.234e04C.1.234e+4D.1.234e0.4 解析:解析 实数的指数形式为:尾数 E(e)整型指数,其中字母 E 或 e 之前必须要有数字,E 或 e 后面的指数必须是整数。选项 A、B、C 都正确;选项 D 中 e 后面的指数是小数,不合法。故本题答案为 D 选项。14.数据库系统的三级模式不包括_。(分数:1.00)A.概念模式B.内模式C

    38、.外模式D.数据模式 解析:解析 数据库系统的三级模式为内模式、外模式和概念模式,所以答案选择 D。15.以下对结构体变量 mix 中成员 x 的正确引用是_。 struct int t;int x; mix,*p; p=(分数:1.00)A.(*p).mix.xB.(*p).x C.p-mix.xD.mix.x解析:解析 结构体变量中的成员有 3 种引用方式:结构体变量名成员名;指针变量名-成员名:(*指针变量名)成员名。16.有以下程序: #includestdio.h int a=5; int func(int a) int b=1; static int c=5; a+; b+; +c

    39、; return(a*b*c); main() int k,a=4; for(k=0;k3;k+) printf(“%d,“,func(a); 程序执行后的输出结果是_。(分数:1.00)A.72,147,256,B.60,60,60,C.72,98,128,D.60,70,80, 解析:解析 首先程序中有一个全局变量 a,初值为 5,在 main()函数中,局部变量 a 屏蔽全局变量 a,同样,在 func()函数中,形参 a 也屏蔽全局变量 a;另外 func()函数中,c 是静态局部变量,只会初始化一次,后续使用时,c 的值是上一次调用函数后 c 的值。综上所述,main()函数中:当

    40、k=0 时,实参a=4,func()函数的形参 a=4、b=1、c=5,自增后形参 a=5、b=2、c=6,返回值为 60,输出 60;当 k=1 时,实参 a=4,func()函数的形参 a=4、b=1、c=6,自增后形参 a=5、b=2、c=7,返回值为 70,输出 70;当k=2 时,实参 a=4,func()函数的形参 a=4、b=1、c=7,自增后形参 a=5、b=2、c=8,返回值为 80,输出80。故本题答案为 D 选项。17.有以下程序: #includestdio.h #includestring.h main() char str20“One*World“, “One*Dr

    41、eam!“, *p=str1; prinft(“%d, “, strlen(p); printf(“%s/n“, p); 程序运行后的输出结果是_。(分数:1.00)A.9, One*WorldB.9, One*Dream!C.10, One*Dream! D.10, One*World解析:解析 本题输出两个结果:第一个是求字符串的长度;第二个是输出的字符串,数组的下标是从0 开始的,所以当 str 取 1 的时候,应为“One*Dream!”。18.有以下程序: #includestdio.h int fun(int x, int n) static int sum=0, i; for(i

    42、=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.60 D.55解析:解析 函数 fun 的功能是求数组的 n 个元素之和。fun(a, 5)=15。由于 sum 是静态局部变量,所以保持 15 不变,fun(b, 4)=45,所以 s=fun(a, 5)+fun(b, 4)=60。19.下列叙述中,正确的是_。(分数:1.00)A.线

    43、性链表是线性表的链式存储结构 B.栈与队列是非线性结构C.双向链表是非线性结构D.只有根结点的二叉树是线性结构解析:解析 根据数据结构中各数据元素之间前后关系的复杂程度,可将数据结构分为两大类型:线性结构与非线性结构。如果一个非空的数据结构满足下列两个条件:有且只有一个根结点;每个结点最多有一个前驱,也最多有一个后继。则称该数据结构为线性结构,也叫做线性表。若不满足上述条件,则称之为非线性结构。线性表、栈、队列和线性链表都是线性结构,而二叉树是非线性结构。20.若有定义语句:“int x=10;”,则表达式 x-=x+x 的值为_。(分数:1.00)A.-20B.-10 C.0D.10解析:解

    44、析 表达式 x=-x+x 可以写成 x=x-(x+x),所以 x 的值为-10。21.下列数据结构中,能用二分法进行查找的是_。(分数:1.00)A.顺序存储的有序线性表 B.线性链表C.二叉链表D.有序线性链表解析:解析 二分查找只适用于顺序存储的有序表。此处所说的有序表是指线性表中的元素按值非递减排列(即从小到大,但允许相邻元素值相等)的。选项 A 正确。22.以下程序的输出结果是_。 main () int x=5,n=3,s,j; for(j=0;j2;j+) s=fun(x,n); printf(“%d“,s); fun(int a,int b) static int n=0,i=2

    45、; i=n+1; n=i+a-b; return(n); (分数:1.00)A.3 7B.3 5C.3 6 D.3 3解析:23.已知字母 A 的 ASCII 码值是 65,字母 a 的 ASCII 码值是 97,以下程序_。 main() char a=“A“; int b=20; pxintf(“%d,%o“,(a=a+a,a+b,b) ,a+“a“-“A“,b); A.表达式非法,输出零或不确定值B.因输出项过多,无输出或输出不确定值C.输出结果为 20,141 D.输出结果为 20,141,20解析:解析 本题中首先输出逗号表达式“a=a+a,a+b,b”的值,即 20。然后以八进制的

    46、形式输出a+“a“-“A“的值为 97 对应的八进制数 141,由于最后个表达式 b 没有对应输出格式的输出项表列就不会输出。24.有以下语句,则对 a 数组元素的引用不正确的是(0i9) int a10=0,1,2,3,4,5,6,7,8,9,*p=a;(分数:2.00)A.ap-aB.*(ai)C.piD.*(*(a+i) 解析:解析 本题考查数组指针的应用。选项 D)第一层括号中为数组 a 中第 i 项元素的值,外面再加指针运算符没有意义。25.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B并C交D差 解析:解析 关系 T 中的元组是关系 R 中有而关系 S 中没有的元组的集合,即从关系 R 中除去与关系 S中相同元组后得到的关系 T,因此做的是差的运算,选择 D


    注意事项

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




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

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

    收起
    展开