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

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

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

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

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

    1、二级 C 语言-617 及答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列关于栈叙述正确的是_。(分数:1.00)A.栈顶元素最先能被删除B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先能被删除2.下列叙述中正确的是_。(分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化3.某二叉树共有 7 个结点,其中叶子结点只有 1

    2、 个,则该二叉树的深度为(假设根结点在第 1 层)_。(分数:1.00)A.3B.4C.6D.74.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转C.选择(分支)结构D.重复(循环)结构6.下面描述中错误的是_。(分数:1.00)A.系统总体结构图支持软件系统的详细设计B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软

    3、件详细设计的表示工具7.负责数据库中查询操作的数据库语言是_。(分数:1.00)A.数据定义语言B.数据管理语言C.数据操纵语言D.数据控制语言8.一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是_。(分数:1.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系9.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B并C交D差10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是_。(分数:1.00)A.-369B.369C.0.369D.整数集合1,2,3,4,511.以下叙述中错误的是_。(分数:1.00)

    4、A.算法正确的程序可以有零个输出B.算法正确的程序最终一定会结束C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果12.以下叙述中正确的是_。(分数:1.00)A.简单 C 语句必须以分号结束B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写在同一行D.C 语句必须在一行内写完13.以下选项中关于 C 语言常量的叙述错误的是_。(分数:1.00)A.常量可分为数值型常量和非数值型常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.经常被使用的变量可以定义成常量D.所谓常量,是指在程序运行过程中,其值不能被改变的量14.以下选项中,不合

    5、法的 C 语言用户标识符是_。(分数:1.00)A.a-bB.AaBcC.a_bD._115.若变量均已正确定义并赋值,以下合法的 C 语言赋值语句是_。(分数:1.00)A.x=n%2.5;B.x=y=5;C.x+n=i;D.x=5=4+1;16.设有定义: int a;float b; 执行 scanf(“%2d%f“, 语句时,若从键盘输入 876 543.0 则 a 和 b 的值分别是_。(分数:1.00)A.87 和 6.0B.876 和 543.0C.87 和 543.0D.76 和 543.017.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“

    6、/x2d“;B.char a=“/n“;C.char a=“a“;D.char a=“aa“;18.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2else y=sqrt(-x);B.y=sqrt(x);if(x0)y=sqrt(-x);C.if(x=0)y=sqrt(x);if(x0)y=sqrt(-x);D.y=sqrt(x=0 x:-x);20.有以下程序 #includestdio.h main() int y=10; while(y-); printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=-1B.

    7、y=0C.y=1D.while 构成无限循环21.有以下程序 #includestdio.h main() int i; for(i=1;i=40;i+) if(i+%5=0) if(+i%8=0)printf(“%d“,i); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.32B.24C.5D.4022.有以下程序 #includestdio.h main() int s; scanf(“%d“, while(s0) switch(s) case 1:printf(“%d“,s+5); case 2:printf(“%d“,s+4);break; case 3:pr

    8、intf(“%d“,s+3); default:printf(“%d“,s+1);break; scanf(“%d“, 运行时,若输入 1 2 3 4 5 0回车,则输出结果是_。(分数:1.00)A.66666B.66656C.6566456D.666665623.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:1.00)A.main()x=fun(2,10);float fun(int a,int b)B.float fun(int a,int b)main()x=fun(i,j);C.float fun(int,in

    9、t);main()x=fun(2,10);float fun(int a,int b)D.main()float fun(int i,int j);x=fun(i,j);float fun(int a,int b)24.若有定义语句: int year=2009,*p= 以下不能使变量 year 中的值增至 2010 的语句是_。(分数:1.00)A.*p+=1;B.(*p)+;C.+(*p);D.*p+;25.若在定义语句: int a,b,c,*p= 接着执行以下选项中的语句,则能正确执行的语句是_。(分数:1.00)A.scanf(“%d%d%d“,a,b,c);B.seanf(“%d“

    10、,p);C.seanf(“%d“,a,b,c);D.scanf(“%d“,26.以下错误的定义语句是_。(分数:1.00)A.int x4=1,2,3,1,2,3,1,2,3,1,2,3;B.int x43=1,2,3,1,2,3,(1,2,3,1,2,3;C.int x3=0,1,1,2,3;D.int x3=1,2,3,4;27.有以下程序 #includestdio.h main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+)printf(“%d“,t2-ii); 程序执行后的输出结果是_。(分数:1.00)A.7 5 1B.7 5 3C.3 6

    11、 9D.3 5 728.有以下程序 #includestdio.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.

    12、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,29.有以下程序(strcat 函数用以连接两个字符串) #includestdio.h #includestring.h main() char a20=“ABCD/0EFG/0“,b=“IJK“; strcat(a,b); printf(“%s/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.ABCDIJKB.ABCDE/OFG/OIJKC.IJKD.EFGIJK30.有以下程序段 char name20; int num; scanf(“name=

    13、%s num=%d“,Tname, 当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name 的值为_。(分数:1.00)A.Lili num=B.name=LiliC.LiliD.name=Lili num=100131.有以下程序 #includestdio.h main() char ch=“uvwxyz“,*pc; pc=ch; printf(“%c/n“,*(pc+5); 程序运行后的输出结果是_。(分数:1.00)AzB.0C.元素 ch5的地址D.字符 y 的地址32.有以下程序 #includestdio.h main() char s=“012xy

    14、“; int i,n=0; for(i=0;si!=0;i+) if(si=“a“ printf(“%d/n“,n); 程序运行后的输出结果是_。(分数:1.00)A.0B.2C.3D.533.有以下程序 #includestdio.h int fun(int n) if(n=1) return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x); printf(:%d/n“,x); 执行程序时,给变量 x 输入 10,程序的输出结果是_。(分数:1.00)A.55B.54C.65D.4534.有以下程序 #include

    15、stdio.h int f(int m) static int n=0; n+=m; return n; main() int n=0; printf(“%d,“,f(+n); printf(“%d/n“,f(n+); 程序运行后的输出结果是_。(分数:1.00)A.1,1B.1,2C.2,3D.3,335.设有以下语句 typedef struct TT (char c;int a4;CIN; 则下面叙述中正确的是_。(分数:1.00)A.CIN 是 struct TT 类型的变量B.TT 是 struct 类型的变量C.可以用 TT 定义结构体变量D.可以用 CIN 定义结构体变量36.有

    16、以下程序 #includestdio.h street ord int x,y;dt2=1,2,3,4; main() struct ord*p=dt; printf(“%d,“,+(p-x); printf(“%d/n“,+(p-y); 程序运行后的输出结果是_。(分数:1.00)A.2,3B.4,1C.3,4D.1,237.有以下程序 #includestdio.h #define SUB(a)(a)-(a) main() int a=2,b=3,c=5,d; d=SUB(a+b)*c; printf(“%d/n“,d); 程序运行后的输出结果是_。(分数:1.00)A.0B.-12C.-

    17、20D.1038.有以下程序 #includestdio.h main() int a=2,b; b=a2; printf(“%d/n“,b); 程序运行后的输出结果是_。(分数:1.00)A.8B.4C.6D.239.下列关于 C 语言文件的叙述中正确的是_。(分数:1.00)A.文件由结构序列组成,可以构成二进制文件或文本文件B.文件由数据序列组成,可以构成二进制文件或文本文件C.文件由一系列数据依次排列组成,只能构成二进制文件D.文件由字符序列组成,其类型只能是文本文件40.有以下程序 #includestdio.h main() FILE*fp; int a10=1,2,3,0,0,i

    18、; fp=fopen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2.dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:1.00)A.1,2,3,0,0,1,2,3,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,0,0,0

    19、,0,0,二、程序填空题(总题数:1,分数:18.00)41.下列给定程序中,函数 fun 的功能是:统计带头结点的单向链表中结点的个数,并存放在形参 n 所指的存储单元中。 请在下划线处填入正确的内容并将下划线删除,使程序得出正确的结果。 注意:部分源程序给出如下。 不得增行或删行,也不得更改程序的结构! 试题程序: #includestdio.h #includestdlib.h #define N 8 typedef struct list int data; struct list*next; SLIST; SLIST*creatlist(int*a); void outlist(SL

    20、IST*); void fun(SLIST*h,int*n) SLIST*p; /*found*/ 1=0; p=h-next; while(p) (*n)+; /*found*/ p=p- 2; main() SLIST*head; int aN=12,87,45,32,91,16,20,48,num; head=creatlist(a); outlist(head); /*found*/ fun( 3, printf(“/nnumber=%d/n“,num); SLIST*creatlist(int a) SLIST*h,*p,*q; int i; h=p=(SLIST*)malloc(s

    21、izeof(SLIST); for(i=0;iN;i+) q=(SLIST*)malloc(sizeof(SLIST); q-data=ai;p-next=q; p=q; p-next=0; return h; void outlist(SLIST*h) SLIST*p; p=h-next; if(p=NULL) printf(“The list is NULL!/n“); else printf(“/nHead“); do printf(“-%d“,p-data); p=p-next; while(p!=NULL); printf(“-End/n“); (分数:18.00)三、程序改错题(总

    22、题数:1,分数:18.00)42.下列给定程序中,函数 fun 的功能是:求出 s 所指字符串中最后一次出现的 t 所指字符串的地址,并通过函数值返回,在主函数中输出从此地址开始的字符串;若未找到,则函数值为 NULL。 例如,当字符串中的内容为“123dabf123dx”,t 中内容为“ab”时,输出结果应是“123dx”。 当字符串中的内容为“123dabf123dx”,t 中内容为“abd”时,则程序输出未找到信息“Not found!”。请改正程序中的错误,使它能得出正确的结果。 注意:不要改动 main 函数,不得增行或删行,也不得更改程序的结构! 试题程序: #includestd

    23、io.h #includestring.h char *fun(char*s,char*t) char*p,*r,*a; /*found*/ a=Null; while(*s) p=s;r=t; while(*r) /*found*/ if(r=p)r+;p+; else break; if(*r=“/0“)a=s; s+; return a; void main() char s100,t100,*p; printf(“/nPlease enter string S:“); scanf(“%s“,s); printf(“/nPlease enter substring t:“); scanf

    24、(“%s“,t); p=fun(s,t); if(p) printf(“/nThe result is:%s/n“,p); else printf(“/nNot found!/n“); (分数:18.00)_四、程序设计题(总题数:1,分数:24.00)43.函数 fun 的功能是:将 s 所指字符串中除下标为偶数同时 ASCII 码值也为偶数的字符外,其余的全部删除;字符串中剩余字符所形成的新串放在 t 所指的数组中。 例如,若 s 所指字符串中的内容为“ABCDEFG123456”,其中字符 A 的 ASCII 码值为奇数,因此应当删除;字符 B 的 ASCII 码值为偶数,但在数组中的下

    25、标为奇数,因此也应当删除;字符 2 的 ASCII 码值为偶数,在数组中的下标也为偶数,因此不应当删除,其他依此类推。最后 t 所指的数组中的内容应是“246”。 注意:部分源程序给出如下。 请勿改动主函数 main 和其他函数中的任何内容,仅在函数 fun 的花括号中填入你编写的若干语句。 试题程序: #includestdio.h #includestring.h void fun(char*s,char t) void main() char s100,t100; printf(“/nPlease enter string S:“); scanf(“%s“,s); fun(s,t); p

    26、rintf(“/nThe result is:%s/n“,t); (分数:24.00)_二级 C 语言-617 答案解析(总分:100.00,做题时间:90 分钟)一、选择题(总题数:40,分数:40.00)1.下列关于栈叙述正确的是_。(分数:1.00)A.栈顶元素最先能被删除 B.栈顶元素最后才能被删除C.栈底元素永远不能被删除D.栈底元素最先能被删除解析:解析 栈是先进后出的数据结构,因此栈顶元素最后入栈却最先被删除,栈底元素最先入栈却最后被删除,所以本题答案为 A。2.下列叙述中正确的是_。(分数:1.00)A.在栈中,栈中元素随栈底指针与栈顶指针的变化而动态变化B.在栈中,栈顶指针不

    27、变,栈中元素随栈底指针的变化而动态变化C.在栈中,栈底指针不变,栈中元素随栈顶指针的变化而动态变化 D.在栈中,栈中元素不会随栈底指针与栈顶指针的变化而动态变化解析:解析 栈是先进后出的数据结构,在对栈操作的整个过程中,栈底指针不变,入栈与出栈操作均由栈顶指针的变化来完成,因此本题答案为 C。3.某二叉树共有 7 个结点,其中叶子结点只有 1 个,则该二叉树的深度为(假设根结点在第 1 层)_。(分数:1.00)A.3B.4C.6D.7 解析:解析 根据二叉树的基本性质 3:在任意一棵二叉树中,度为 0 的叶子结点总比度为 2 的结点多一个,因此本题中度为 2 的结点为 1-1=0 个,据此可

    28、以知道本题目中的二叉树的每一个结点都有一个分支,所以共 7 个结点共 7 层,即深度为 7,选择 D。4.软件按功能可以分为应用软件、系统软件和支撑软件(工具软件)。下面属于应用软件的是_。(分数:1.00)A.学生成绩管理系统 B.C 语言编译程序C.UNIX 操作系统D.数据库管理系统解析:解析 软件按功能可以分为:应用软件、系统软件、支撑软件。操作系统、编译程序、汇编程序、网络软件、数据库管理系统都属于系统软件,因此 B、C、D 都是系统软件,只有 A 是应用软件。5.结构化程序所要求的基本结构不包括_。(分数:1.00)A.顺序结构B.COTO 跳转 C.选择(分支)结构D.重复(循环

    29、)结构解析:解析 1966 年,Boehm 和 Jacopini 证明了程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式的结构化程序设计方法,因此本题答案为 B。6.下面描述中错误的是_。(分数:1.00)A.系统总体结构图支持软件系统的详细设计 B.软件设计是将软件需求转换为软件表示的过程C.数据结构与数据库设计是软件设计的任务之一D.PAD 图是软件详细设计的表示工具解析:解析 详细设计的任务是为软件结构图中而非总体结构图中的每一个模块确定实现算法和局部数据结构,用某种选定的表达工具表示算法和数据结构的细节,因此 A 描述错误。7.负责数据库中查询操作的

    30、数据库语言是_。(分数:1.00)A.数据定义语言B.数据管理语言C.数据操纵语言 D.数据控制语言解析:解析 数据定义语言:负责数据的模式定义与数据的物理存取构建;数据操纵语言:负责数据的操纵,包括查询及增加、删除、修改等操作;数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。因此本题答案为 C。8.一名教师可讲授多门课程,一门课程可由多名教师讲授。则实体教师和课程间的联系是_。(分数:1.00)A.1:1 联系B.1:m 联系C.m:1 联系D.m:n 联系 解析:解析 因为一名教师可讲授多门课程,而一门课程又能由多名教师讲授,所以教师和课程之间是多对多的关系,

    31、可以表示为 m:n,选择 D。9.有三个关系 R、S 和 T 如下: (分数:1.00)A.自然连接B并C交D差 解析:解析 关系 T 中的元组是关系 R 中有而关系 S 中没有的元组的集合,即从关系 R 中除去与关系 S中相同元组后得到的关系 T,因此做的是差的运算,选择 D。10.定义无符号整数类为 UInt,下面可以作为类 UInt 实例化值的是_。(分数:1.00)A.-369B.369 C.0.369D.整数集合1,2,3,4,5解析:解析 只有 B 选项 369 可以用无符号整数来表示和存储。A 选项-369 有负号,选项 C 0.369 是小数,它们都不能用无符号整数类存储。选项

    32、 D 是一个整数集合需要用数组来存储。11.以下叙述中错误的是_。(分数:1.00)A.算法正确的程序可以有零个输出 B.算法正确的程序最终一定会结束C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果解析:解析 算法有零个或多个输入,有一个或多个输出,所以 A 错误。12.以下叙述中正确的是_。(分数:1.00)A.简单 C 语句必须以分号结束 B.C 程序中的每一行只能写一条语句C.C 语言程序中的注释必须与语句写在同一行D.C 语句必须在一行内写完解析:解析 语句必须以分号结束,所以 A 正确,C 语言中书写格式自由,所以 B、C、D 错误。13.以下选项中关

    33、于 C 语言常量的叙述错误的是_。(分数:1.00)A.常量可分为数值型常量和非数值型常量B.常量分为整型常量、实型常量、字符常量和字符串常量C.经常被使用的变量可以定义成常量 D.所谓常量,是指在程序运行过程中,其值不能被改变的量解析:解析 常量是在程序运行时,其值不能被改变的量,跟是否经常使用没关系,所以 C 错误。14.以下选项中,不合法的 C 语言用户标识符是_。(分数:1.00)A.a-b B.AaBcC.a_bD._1解析:解析 用户标识符命名规则为:由数字、字母或下划线组成,且首字母不能是数字,不能和关键字重复,所以 A 错误。15.若变量均已正确定义并赋值,以下合法的 C 语言

    34、赋值语句是_。(分数:1.00)A.x=n%2.5;B.x=y=5; C.x+n=i;D.x=5=4+1;解析:解析 %取余操作数只能是整数,x+n 和数值 5 不能作为赋值的左值,所以 A、C、D 错误。16.设有定义: int a;float b; 执行 scanf(“%2d%f“, 语句时,若从键盘输入 876 543.0 则 a 和 b 的值分别是_。(分数:1.00)A.87 和 6.0 B.876 和 543.0C.87 和 543.0D.76 和 543.0解析:解析 本题考查了格式化输入函数 scanf()的运用。scanf()函数的一般形式为:scanf(格式控制,地址表列)

    35、。其中,“格式控制”是用双引号括起来的字符串,也称“转换控制字符串”,它包括两种信息:格式说明,由“%”和格式字符组成;普通字符,即需要原样输入的字符。“地址表列”是需要接收输入数据的一系列变量的地址。本题中的“格式控制”是“%2d%f”,其中%2d 的意思是要输入一个整数,但该整数最宽只占 2 个字符,而%堤要输入一个浮点数。而题目要求输入的是 876 和 543.0,所以scanf()函数将 87 赋给 a,6 赋给 b。17.有以下定义语句,编译时会出现编译错误的是_。(分数:1.00)A.char a=“/x2d“;B.char a=“/n“;C.char a=“a“;D.char a

    36、=“aa“; 解析:解析 D 选项不能将一个字符串赋值给一个字符变量,所以选择 D。18.当变量 c 的值不为 2、4、6 时,值也为“真”的表达式是_。(分数:1.00)A.(c=2else y=sqrt(-x);B.y=sqrt(x);if(x0)y=sqrt(-x); C.if(x=0)y=sqrt(x);if(x0)y=sqrt(-x);D.y=sqrt(x=0 x:-x);解析:解析 应该先判断 x 是正数还是负数,然后再调用 sqrt 函数,B 选项开始没有判断,所以 B 错误。20.有以下程序 #includestdio.h main() int y=10; while(y-);

    37、 printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:1.00)A.y=-1 B.y=0C.y=1D.while 构成无限循环解析:解析 当 y 为 0 时,y-表达式为 0,条件为假,循环结束,执行判断条件后 y 为-1,所以选择A。21.有以下程序 #includestdio.h main() int i; for(i=1;i=40;i+) if(i+%5=0) if(+i%8=0)printf(“%d“,i); printf(“/n“); 执行后的输出结果是_。(分数:1.00)A.32 B.24C.5D.40解析:解析 本题考查了自增运算符。自增运算符“+”分为前

    38、缀和后缀两种形式。两种形式的作用效果是一样的,都是使运算分量的值加 1,但是它们的表达式的值不一样,前缀形式表达式的值为运算分量加 1 之后的值,而后缀形式表达式的值为运算分量加 1 之前的值。题目中使用了一个 for 循环,循环变量i 从 1 递增到 40。在循环体中有两条嵌套的 if 语句,首先判断 i+%5=0,即判断 i+的值(i 加 1 之前的值)是否能被 5 整除(判断后 i 被加 1),然后再判断+i 的值(i 加 1 之后的值)是否能被 8 整除(判断后 i被加 1),若两个条件都满足了,就输出 i 的值,只有 i=30 时,满足 i+%5=0,此时 i=31,+i%8=0 成

    39、立,此时 i=32。22.有以下程序 #includestdio.h main() int s; scanf(“%d“, while(s0) switch(s) case 1:printf(“%d“,s+5); case 2:printf(“%d“,s+4);break; case 3:printf(“%d“,s+3); default:printf(“%d“,s+1);break; scanf(“%d“, 运行时,若输入 1 2 3 4 5 0回车,则输出结果是_。(分数:1.00)A.66666B.66656C.6566456 D.6666656解析:解析 第一次循环输出 165;然后 s

    40、 接收到 2,第二次循环输出 6;s 接收到 3,第三次循环输出64;接收到 4,第四次循环输出 5;接收到 5,第五次循环输出 6;接收到 0,结束循环,所以答案为 C。23.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误的程序是_。(分数:1.00)A.main()x=fun(2,10);float fun(int a,int b) B.float fun(int a,int b)main()x=fun(i,j);C.float fun(int,int);main()x=fun(2,10);float fun(int a,int b)D

    41、.main()float fun(int i,int j);x=fun(i,j);float fun(int a,int b)解析:解析 在函数调用前,需要定义或声明,A 选项错误。24.若有定义语句: int year=2009,*p= 以下不能使变量 year 中的值增至 2010 的语句是_。(分数:1.00)A.*p+=1;B.(*p)+;C.+(*p);D.*p+; 解析:解析 +优先级高于*,*p+值为 year 下一个变量的值(如果有的话),不能满足题意,所以选择D。25.若在定义语句: int a,b,c,*p= 接着执行以下选项中的语句,则能正确执行的语句是_。(分数:1.0

    42、0)A.scanf(“%d%d%d“,a,b,c);B.seanf(“%d“,p); C.seanf(“%d“,a,b,c);D.scanf(“%d“,解析:解析 scanf 中参数列表,需为地址,B 符合题意,所以选择 B。26.以下错误的定义语句是_。(分数:1.00)A.int x4=1,2,3,1,2,3,1,2,3,1,2,3; B.int x43=1,2,3,1,2,3,(1,2,3,1,2,3;C.int x3=0,1,1,2,3;D.int x3=1,2,3,4;解析:解析 二维数组定义行数可以省略,列数不能省略,所以答案选择 A。27.有以下程序 #includestdio.

    43、h main() int i,t3=9,8,7,6,5,4,3,2,1; for(i=0;i3;i+)printf(“%d“,t2-ii); 程序执行后的输出结果是_。(分数:1.00)A.7 5 1B.7 5 3C.3 6 9D.3 5 7 解析:解析 for 分别输出 t20,t11,t02分别为 3 5 7,答案选择 D。28.有以下程序 #includestdio.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=a

    44、i;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,解析:解析 在本题中,主函数在调用 fun()函数进行排序时,传递的参数是 c+4 和 6,fun()函数实现的功能是将数组 c 的第 5 个元素开始的 6

    45、个元素依次进行从大到小的顺序排列。排序之后,数组 c 的内容变为1,2,3,4,9,8,7,6,5,0。29.有以下程序(strcat 函数用以连接两个字符串) #includestdio.h #includestring.h main() char a20=“ABCD/0EFG/0“,b=“IJK“; strcat(a,b); printf(“%s/n“,a); 程序运行后的输出结果是_。(分数:1.00)A.ABCDIJK B.ABCDE/OFG/OIJKC.IJKD.EFGIJK解析:解析 strcat 函数从/0 开始往后链接,所以结果为 A。30.有以下程序段 char name20; int num; scanf(“name=%s num=%d“,Tname, 当执行上述程序段,并从键盘输入:name=Lili num=1001回车后,name 的值为_。(分数:1.00)A.Lili num=B.name=LiliC.Lili D.name=Lili num=1001解析:解析 scanf 中 name 得到 Lili,num 得到 1001,所以结果


    注意事项

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




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

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

    收起
    展开