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

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

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

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

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

    1、二级 C语言模拟 655及答案解析(总分:107.00,做题时间:90 分钟)一、选择题(总题数:40,分数:53.00)1.已有定义:int x=3,y=4,z=5;,则表达式!(x+y)+z-1 for(i=0;in/2;i+) t=ai; ai =an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i, s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(“%d/n“, s); 程序运行后的输出结果是(分数:1.00)A.22B.10C.34D.303.若变量已正确定义,有以下程

    2、序段: int a=3, b=5, c=7; if(ab) a=b; c=a; if(c!= a) c=b; printf(“% d, % d, % d/n“, a, b, c); 则程序输出结果为_。(分数:1.00)A.程序段语法错B.3,5,3C.3,5,5D.3,5,74.当整型变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2)|(c=4)|(c=6)B.(c=2 while(i=4)exch(xi);i+; for(i=0;i5;i+)printf(“%d“,xi); printf(“/n“); 程序运行后输出的结果是_。(分数:1.00)A

    3、.2 4 6 8 10B.1 3 5 7 9C.1 2 3 4 5D.6 7 8 9 107.若要求从键盘读入含有空格字符的字符串,应使用函数_。(分数:2.00)A.getc()B.gets()C.getchar()D.scanf()8.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log2n) D.O(nlog2n)(分数:1.00)A.B.C.D.9.当 a=4,b=5,c=7,d=6 时,执行下面一段程序: if(ab) if(cd)x=1; else if(ac) if(bc)x=2; else x=3; else x

    4、=4; else x=5; 程序执行后,x 的值为_。(分数:2.50)A.1B.2C.3D.410.若在定义语句:int a,b,c,*p=B.scanf(“%d%d%“, a, b, c);C.scanf(“%d“, p);D.scanf(“%d“, 11.若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是(分数:2.00)A.EOFB.-1C.非零值D.NULL12.有如下程序: #includestdio.h main() int a=0,b=1; if(+a=b+) printf(“T“); else printf(“F“); printf(“a=%d

    5、,b=%d/n“,a,b); printf(“/n“); 程序运行后的输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2D.Fa=0,b=213.有如下程序: #includestdio.h #includestring.h main() char a=“THIS/0“,*b=“OK/0/0“; printf(“%d,%d,%d,%d“,strlen(a),sizeof(a),strlen(b),sizeof(b); 程序运行后的输出结果是_。(分数:1.00)A.4,6,2,4B.4,4,4,1C.6,5,2,1D.6,4,2,414.有以下程序:

    6、#includestdio.h double f(double x); main() double a=0; int i; for(i=0; i30; i+=10) a+=f(double)i); printf(“%5.0f/n“, a); double f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.503B.401C.500D.140415.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“);B.char *s;s=“BOOK!“;C.char s10;s=“BOOK!“;D.char s;s=“BOO

    7、K!“;16.有以下程序 #includestdioh main() FILE*fp;int i=20,j=30,k,n; fp=fopen(“d1dat”,“w”); fprintf(fp,“%d/n”,i);fprintf(fp,“%d/n”,j); fclose(fp); fp=fopen(“d1.dat”,“r”); fscanf(fp,“%d%d”,A; void f(A c) /* 注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(A); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结

    8、果是_。(分数:1.00)A.2,4B.1,2C.1,4D.2,319.工厂生产中所需的零件可以存放在多个仓库中,而每一仓库中可存放多种零件。则实体仓库和零件间的联系是_。(分数:1.00)A.多对多B.一对多C.多对一D.一对一20.以下叙述中正确的是_。(分数:2.00)A.在 C程序中,模块化主要是通过函数来实现的B.程序的主函数名除 main外,也可以使用 Main或 mainC.程序可以包含多个主函数,但总是从第一个主函数处开始执行D.书写源程序时,必须注意缩进格式,否则程序会有编译错误21.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字

    9、母B.下画线C.数字字符D.连接符22.有以下程序段: int m23,(*p)3; p=m; 则以下对 m数组元素的引用正确的是_。(分数:1.00)A.(P+1)0B.*(*(p+2)+1)C.*(p1+1)D.p1+223.以下定义语句中正确的是_。(分数:1.00)A.char a=“A“b=“B“;B.flo at a=b=10.0;C.int a=10,*b=D.float *a,b=24.有以下程序 #include stdio.h main() unsigned char a=8, c; c=a3; printf(“%d/n“,c); 程序运行后的输出结果是_。(分数:1.00

    10、)A.32B.16C.1D.025.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是( )。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考26.在 Windows环境下,能实现窗口移动的操作是( )(分数:1.00)A.用鼠标拖动窗口中的任何部位B.用鼠标拖动窗口的边框C.用鼠标拖动窗口的控制按钮D.用鼠标拖动窗口的标题栏。27.有以下程序: #include stdio.h int disp(char * str

    11、) while (* str) putchar( * str+); putchar(“#“); return * str; main( ) printf(“%d/n“,disp(“C#123“); 程序运行后的输出结果是_。(分数:1.00)A.C#123#0B.C#1230C.C#0D.C#123#/028.以下程序的运行结果是_。 #include stdio.h main() int num=4; switch (num) case 0: printf(“0“); break; case 1: printf(“1“); break; case 2: printf(“2“); break;

    12、 default: printf(“-1“); break; (分数:1.00)A.-1B.0C.1D.229.以下选项中不是 C语句的是_。(分数:1.00)A.int i;i+;printf(“%d/n“, i);B.;C.a=5, c=10D.;30.若有以下程序 #includestdio.h main() int a=-2, b=0; do+b; while(a+); printf(“%d, %d/n“, a, b); 则程序的输出结果是_。(分数:2.00)A.2, 3B.0, 2C.1, 2D.1, 331.下面不属于需求分析阶段任务的是_。(分数:1.00)A.确定软件系统的功

    13、能需求B.确定软件系统的性能需求C.需求规格说明书评审D.制定软件集成测试计划32.有以下程序: int f1(double a) return a*a; int f2(int x,int y) double a,b; a=f1(x); b=f1(y); return a+b; main() double w; w=f2(2.1,4.0); ) 变量 w的值是_。(分数:2.00)A.20.21B.20C.20.0D.0.033.有以下程序 main() char s=“ABCD“,*p; for(p=s+1;ps+4;p+)printf(“%s/n“,p); 程序运行后的输出结果是(分数:1

    14、.00)A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD34.以下选项中不能用作 C程序合法常量的是_。(分数:2.00)A.1,234B./123C.123D.“/x7G“35.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_B.8_8C.voidD.unsigned36.a、b 和 c都是 int型变量,且 a3,b4,c5,则下面的表达式中,值为 0的表达式是 ( )(分数:1.00)A.“a“ main() int k,(*f)(),a=5,b=10; f=add; . 则以下函数调用语句错误的是_。(分数:1.00)A.k=f(a,b);B.k=add(

    15、a,b);C.k=(*f)(a,b);D.k=*f(a,b);39.有以下程序 #includestdio.h void fun(int*p,int*q) int t; t=*p;*p=*q;*q=t; *q=*p; main() int a=0,b=9; fun(a,b); pfintf(“%d%d/n“,a,b); 程序的输出结果是_。(分数:1.00)A.9 9B.0 0C.9 0D.0 940.为了建立如下图所示的存储结构(即每个节点含两个域,data 是数据域,next 是指向节点的指针域),则在( )处应填入的选项是_。 Struct link char data;_ node;

    16、(分数:2.00)A.link next;B.struct link * next;C.link *next;D.struct link next;二、程序填空题(总题数:1,分数:20.00)41.给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和 3门课的成绩。函数 fun的功能是将该学生的各科成绩都乘以一个系数 a。 请在程序的下画线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include stdico.h typedef struct int hum; char name 9; f

    17、loat score3; STU; void show(STU tt) int i; printf(“%d%s;“,tt.num,tt.name); for(i=0; i3; i+) printf(“%5.1f“,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

    18、and name and scores:/n“); show(std); printf(“/nInput a number:“); scanf(“%f“, /*found*/ modify( 3,a); printf(“/nA result of modifying:/n“); show(std); (分数:20.00)三、程序修改题(总题数:1,分数:30.00)42.下列给定程序中,函数 fun的功能是:输出 MM整数方阵,然后求两条对角线上元素之和,并作为函数值返回。 请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main函数,不得增行或删行,也不得更改程序的结构! 试题程

    19、序: #includestdlib.h #includeconio.h #includestdio.h #define M 5 /*found*/ int fun(int n,int xx) int i,j,sum=0; printf(“/nThe%d x%d matrix:/n“,M,M); for(i=0;iM;i+) for(j=0;jM;j+) /*found*/ printf(“%f“,xxij); printf(“/n“); for(i=0;in;i+) sum+=xxii+xxin-i-1; return(sum); void main() int aaMM=1,2,3,4,5,

    20、4,3,2,1,0,6,7,8,9,0,9,8,7,6,5,3,4,5,6,7; system(“CLS“); printf(“/nThe sum of all elements on 2 diagnals is%d“,fun(M,aa); (分数:30.00)_四、程序设计题(总题数:1,分数:4.00)43.请编写程序,输入一行字符(用回车结束),输出每个字符以及与之对应的 ASCII代码值,每行输出三对。 (分数:4.00)_二级 C语言模拟 655答案解析(总分:107.00,做题时间:90 分钟)一、选择题(总题数:40,分数:53.00)1.已有定义:int x=3,y=4,z=5

    21、;,则表达式!(x+y)+z-1 for(i=0;in/2;i+) t=ai; ai =an-1-i;an-1-i=t; main() int b10=1,2,3,4,5,6,7,8,9,10; int i, s=0; reverse(b,8); for(i=6;i10;i+) s+=bi; printf(“%d/n“, s); 程序运行后的输出结果是(分数:1.00)A.22 B.10C.34D.30解析:解析 本题考查的知识点是数组名作为函数参数及函数调用。reverse()数的功能是将具有 n个元素的数组 a反序存放。在主函数中调用语句是“reverse(b,8);”,实现的功能是把 b

    22、数组的前八个元素逆置,所以 b数组中依次存放的值为“8,7,6,5,4,3,2,1,9,10”。for 循环了 4次,分别把b6、b7、b8和 b9的值(分别是 2、1、9、10)加到了 s中,s 的结果是 22,所以最后输出的 s值为22。所以 4个选项中 A正确。3.若变量已正确定义,有以下程序段: int a=3, b=5, c=7; if(ab) a=b; c=a; if(c!= a) c=b; printf(“% d, % d, % d/n“, a, b, c); 则程序输出结果为_。(分数:1.00)A.程序段语法错B.3,5,3 C.3,5,5D.3,5,7解析:解析 两个 if

    23、语句的判断条件都不满足,程序只执行了 c=a这条语句,所以变量 c的值等于 3,变量 b的值没能变化,程序输出的结果为 3,5,3。所以正确的答案为 B。4.当整型变量 c的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2)|(c=4)|(c=6)B.(c=2 while(i=4)exch(xi);i+; for(i=0;i5;i+)printf(“%d“,xi); printf(“/n“); 程序运行后输出的结果是_。(分数:1.00)A.2 4 6 8 10B.1 3 5 7 9C.1 2 3 4 5D.6 7 8 9 10 解析:解析 本题中 exch函数

    24、是用数组中的第 6个元素对第 1个元素进行赋值,所以数组的值应该为 6 7 8 9 10。7.若要求从键盘读入含有空格字符的字符串,应使用函数_。(分数:2.00)A.getc()B.gets() C.getchar()D.scanf()解析:解析 函数 getc()是从数据流中读入一个字符。getchar()从键盘读入一个字符。scanf()是格式化输入函数,空格字符被用于多个数据输入的分隔符,含有空格的字符串会被截断。gets()用于字符串的输入,并且以回车键为结束符。8.在长度为 n的有序线性表中进行二分法查找,最坏情况下需要比较的次数是_。 A.O(n) B.O(n2) C.O(log

    25、2n) D.O(nlog2n)(分数:1.00)A.B.C. D.解析:解析 当有序线性表为顺序存储时才能用二分法查找。可以证明的是,对于长度为 n的有序线性表,在最坏情况下,二分法查找只需要比较 log2n次,而顺序查找需要比较 n次,因此本题答案为 C。9.当 a=4,b=5,c=7,d=6 时,执行下面一段程序: if(ab) if(cd)x=1; else if(ac) if(bc)x=2; else x=3; else x=4; else x=5; 程序执行后,x 的值为_。(分数:2.50)A.1B.2 C.3D.4解析:10.若在定义语句:int a,b,c,*p=B.scanf

    26、(“%d%d%“, a, b, c);C.scanf(“%d“, p); D.scanf(“%d“, 解析:解析 题中整型指针变量 p存放的是变量 c的地址。所以本题答案为 C。11.若 fp是指向某文件的指针,且已读到文件末尾,则库函数 feof(fp)的返回值是(分数:2.00)A.EOFB.-1C.非零值 D.NULL解析:12.有如下程序: #includestdio.h main() int a=0,b=1; if(+a=b+) printf(“T“); else printf(“F“); printf(“a=%d,b=%d/n“,a,b); printf(“/n“); 程序运行后的

    27、输出结果是_。(分数:1.00)A.Ta=0,b=1B.Fa=1,b=2C.Ta=1,b=2 D.Fa=0,b=2解析:解析 程序执行过程为:判断+a=b+是否成立,+a 前缀运算先加 1,则 a=1,b+后缀运算先取值,则 b=1,1=1 成立,输出 T,之后 b=2,输出 a=1,b=2。13.有如下程序: #includestdio.h #includestring.h main() char a=“THIS/0“,*b=“OK/0/0“; printf(“%d,%d,%d,%d“,strlen(a),sizeof(a),strlen(b),sizeof(b); 程序运行后的输出结果是_

    28、。(分数:1.00)A.4,6,2,4 B.4,4,4,1C.6,5,2,1D.6,4,2,4解析:解析 strlen()函数求得参数中字符串的长度(不包括字符串结束符“/0“),sizeof()运算符求得参数这种类型所占存储空间的长度。题意中 a是数组名,由于定义时省略维数大小,数组大小是初始化的字符个数,a 的数组大小为 6。综上所述,strlen(a)只计算字符“T“、“H“、“I“、“S“,结果为4;sizeof(a)是求得数组 a的大小,结果为 6;另外指针 b指向一个字符串“OK/0/0”,所以 strlen(b)只计算字符“0“、“K“,结果为 2;sizeof(b)求得指针占用

    29、存储空间的大小,结果为 4。故本题答案为 A选项。14.有以下程序: #includestdio.h double f(double x); main() double a=0; int i; for(i=0; i30; i+=10) a+=f(double)i); printf(“%5.0f/n“, a); double f(double x) return x*x+1; 程序运行后的输出结果是_。(分数:1.00)A.503 B.401C.500D.1404解析:解析 此题是一个简单的函数调用,当 i=0并且 i30,执行 i+=10,并且调用函数 f,所以当i=0时,结果为 1;当 i=

    30、10时,结果为 101;当 i=20时,结果为 401,所以 a=1+101+401=503。15.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“);B.char *s;s=“BOOK!“; C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;解析:解析 字符指针可以用字符串常量赋值,字符数组不可以,所以答案选择 B。16.有以下程序 #includestdioh main() FILE*fp;int i=20,j=30,k,n; fp=fopen(“d1dat”,“w”); fprintf(fp,“%d/n”,i);fprin

    31、tf(fp,“%d/n”,j); fclose(fp); fp=fopen(“d1.dat”,“r”); fscanf(fp,“%d%d”,A; void f(A c) /* 注意:c 是结构变量名*/ int j; c.b+=1;c.p+=2; main() int i; A a=1,2; f(A); printf(“%d,%d/n“,a.b,a.p); 程序运行后的输出结果是_。(分数:1.00)A.2,4B.1,2 C.1,4D.2,3解析:解析 结构体变量可以作为函数的参数和返回值。作为函数的实参时,可以实现函数的传值调用。当使用结构体变量作为函数的形参时,实参也应该是结构体变量名以实

    32、现传值调用,实参将复制的副本传递给形参,在被调用函数中改变形参值对于调用函数中的实参没有影响。因此本题选择 B。19.工厂生产中所需的零件可以存放在多个仓库中,而每一仓库中可存放多种零件。则实体仓库和零件间的联系是_。(分数:1.00)A.多对多 B.一对多C.多对一D.一对一解析:解析 零件可以存放在多个仓库中,而每一仓库中可存放多种零件,则实体仓库和零件间的联系是多对多。故本题答案为 A选项。20.以下叙述中正确的是_。(分数:2.00)A.在 C程序中,模块化主要是通过函数来实现的 B.程序的主函数名除 main外,也可以使用 Main或 mainC.程序可以包含多个主函数,但总是从第一

    33、个主函数处开始执行D.书写源程序时,必须注意缩进格式,否则程序会有编译错误解析:21.按照 C语言规定的用户标识符命名规则,不能出现在标识符中的是_。(分数:2.00)A.大写字母B.下画线C.数字字符D.连接符 解析:解析 C 语言中标识符由字母、下画线、数字组成,且开头必须是字母或下画线。所以 D选项中的连接符不合法。22.有以下程序段: int m23,(*p)3; p=m; 则以下对 m数组元素的引用正确的是_。(分数:1.00)A.(P+1)0B.*(*(p+2)+1)C.*(p1+1) D.p1+2解析:解析 数组元素 aij可表示为*(ai+j),因此,在定义数组 m和指针变量

    34、P后,*(p1+1)表示指向数组 m11,因此答案为 C选项。23.以下定义语句中正确的是_。(分数:1.00)A.char a=“A“b=“B“;B.flo at a=b=10.0;C.int a=10,*b= D.float *a,b=解析:解析 在 A选项中,定义了两个 char型的变量,但是在这两个变量之间应该加上逗号;在 B选项中,没有对 b进行定义,只是对 b进行了赋值,因此是错误的;在 D选项中,把一个指针赋值给了一个float型的变量,因此是错误的。24.有以下程序 #include stdio.h main() unsigned char a=8, c; c=a3; prin

    35、tf(“%d/n“,c); 程序运行后的输出结果是_。(分数:1.00)A.32B.16C.1 D.0解析:解析 无符号整型变量 a的值为 8,二进制表示为 00001000,右移 3位后为 00000001,即十进制的 1,因此输出 1。25.面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是( )。(分数:1.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题 D.鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考解析:解析 面向对象的设计方法与传统的面向过程的方法有本质不同,它的

    36、基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题。它强调模拟现实世界中的概念而不强调算法,它鼓励开发者在软件开发的绝大部分中都用应用领域的概念去思考。本题答案为 C)。26.在 Windows环境下,能实现窗口移动的操作是( )(分数:1.00)A.用鼠标拖动窗口中的任何部位B.用鼠标拖动窗口的边框C.用鼠标拖动窗口的控制按钮D.用鼠标拖动窗口的标题栏。 解析:解析 鼠标拖动窗口的标题栏,能实现窗口的移动;拖边框,实现窗体的大小调整。27.有以下程序: #include stdio.h int disp(char * str) while (* str) putchar( * s

    37、tr+); putchar(“#“); return * str; main( ) printf(“%d/n“,disp(“C#123“); 程序运行后的输出结果是_。(分数:1.00)A.C#123#0 B.C#1230C.C#0D.C#123#/0解析:解析 disp()函数中,存在 while循环,当指针指向地址单元存储的字符不等于空字符/0,输出此字符,否则退出循环,输出#。在主函数中调用 disp()函数时,字符串“C#123”先全部输出,当指针指向字符串最后空字符时,退出循环,输出#,并且再将/0返回输出。由于 disp()函数返回类型为 int,所以返回/0的 ASCII码 0,

    38、因此,答案为 A选项。28.以下程序的运行结果是_。 #include stdio.h main() int num=4; switch (num) case 0: printf(“0“); break; case 1: printf(“1“); break; case 2: printf(“2“); break; default: printf(“-1“); break; (分数:1.00)A.-1 B.0C.1D.2解析:解析 该题目考查 switch语句。因为 num不满足前 3个 case,所以进入 default分支,输出-1。29.以下选项中不是 C语句的是_。(分数:1.00)A

    39、.int i;i+;printf(“%d/n“, i);B.;C.a=5, c=10 D.;解析:30.若有以下程序 #includestdio.h main() int a=-2, b=0; do+b; while(a+); printf(“%d, %d/n“, a, b); 则程序的输出结果是_。(分数:2.00)A.2, 3B.0, 2C.1, 2D.1, 3 解析:解析 当 a为 0时循环条件不成立,执行完循环条件后 a为 1,循环共执行 3次,所以 b值为 3。31.下面不属于需求分析阶段任务的是_。(分数:1.00)A.确定软件系统的功能需求B.确定软件系统的性能需求C.需求规格说

    40、明书评审D.制定软件集成测试计划 解析:解析 需求分析阶段的工作有:需求获取;需求分析;编写需求规格说明书;需求评审。所以选择 D选项。32.有以下程序: int f1(double a) return a*a; int f2(int x,int y) double a,b; a=f1(x); b=f1(y); return a+b; main() double w; w=f2(2.1,4.0); ) 变量 w的值是_。(分数:2.00)A.20.21B.20C.20.0 D.0.0解析:33.有以下程序 main() char s=“ABCD“,*p; for(p=s+1;ps+4;p+)p

    41、rintf(“%s/n“,p); 程序运行后的输出结果是(分数:1.00)A.ABCDBCDCDDB.ABCDC.BCDD.BCDCDD 解析:解析 本题中首先定义一个字符数组 s,并将字符串“ABCD”存到数组 s中,定义了一个字符指针变量 p,在接下来 for循环中,循环体共执行了三次,第一次 p指向 s1,所以此时输出的 p所指的字符串的值为 BCD;第二次循环 p指向 s2,所以此时输出的 P所指的字符串的值为 CD;第三次循环 p指向 s3,因此此时输出的 p所指的字符串的值为 D。34.以下选项中不能用作 C程序合法常量的是_。(分数:2.00)A.1,234 B./123C.12

    42、3D.“/x7G“解析:解析 选项 A中的 1,234在两侧加双引号才是 C程序的合法常量。35.以下选项中,能用作用户标识符的是_。(分数:1.00)A._0_ B.8_8C.voidD.unsigned解析:解析 C 语言中标识符由字母、下划线或数字组成,且开头必须是字母或下划线。另外,关键字不能作为标识符。B 选项中以数字 8开头,所以错误。C 与 D中用的是关键字 void与 unsigned,因此错误。故本题答案为 A。36.a、b 和 c都是 int型变量,且 a3,b4,c5,则下面的表达式中,值为 0的表达式是 ( )(分数:1.00)A.“a“ main() int k,(*

    43、f)(),a=5,b=10; f=add; . 则以下函数调用语句错误的是_。(分数:1.00)A.k=f(a,b);B.k=add(a,b);C.k=(*f)(a,b);D.k=*f(a,b); 解析:解析 D 选项中“*f(a,b)”表示调用后返回一个指向整型数据的地址指针,即该函数的返回值为指针类型,因此不能将其赋值给整型变量 k。39.有以下程序 #includestdio.h void fun(int*p,int*q) int t; t=*p;*p=*q;*q=t; *q=*p; main() int a=0,b=9; fun(a,b); pfintf(“%d%d/n“,a,b);

    44、程序的输出结果是_。(分数:1.00)A.9 9 B.0 0C.9 0D.0 9解析:解析 fun 函数完成的功能是将两个数交换,然后再将第一个数赋值给第二个数,main 中调用后a b分别为 9 9,答案选择 A。40.为了建立如下图所示的存储结构(即每个节点含两个域,data 是数据域,next 是指向节点的指针域),则在( )处应填入的选项是_。 Struct link char data;_ node; (分数:2.00)A.link next;B.struct link * next; C.link *next;D.struct link next;解析:解析 本题主要考查链表中节点

    45、的概念,属于基础知识,其中指针域应该是指向下个节点,所以答案为 B。二、程序填空题(总题数:1,分数:20.00)41.给定程序通过定义并赋初值的方式,利用结构体变量存储了一名学生的学号、姓名和 3门课的成绩。函数 fun的功能是将该学生的各科成绩都乘以一个系数 a。 请在程序的下画线处填入正确的内容,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #include stdico.h typedef struct int hum; char name 9; float score3; STU; void show(STU tt) int i; printf(“%d%s;“,tt.num,tt.name); for(i=0; i3; i+) printf(“%5.1f“,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 origi


    注意事项

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




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

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

    收起
    展开