ImageVerifierCode 换一换
格式:DOC , 页数:17 ,大小:90KB ,
资源ID:1325975      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1325975.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-13 及答案解析(总分:110.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.abB.a|bC.abD.a42.有以下程序: #includestdio.h #includestring.h typedef structchar name9;char sex;float score2;)STU; void f(STU a) STU b=

2、“Zhao“,m,85.0,90.0);int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0); f(C) ;printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,C.score1); 程序的运行结果是_。(分数:2.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,903.下列叙述中正确的是_。(分数:2.00)A.数据库

3、系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题C.数据库管理系统就是数据库系统D.以上三种说法都不对4.有以下程序: main() char*p=“3697“,“2584“; int i,j;long num=0; for(i=0;i2;i+) j=0; while(pij!=/0) if(pij-0)%2)num=10*num+pij-0; j+=2; printf(“%d/n“,num); 程序执行后的输出结果是_。(分数:2.00)A.35B.37C.39D.39755.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一

4、个函数值,以下选项中错误的程序是_。(分数:2.00)A.main()B.float fun(int a,int b) x=fun(2,10); main() float fun(int a,int b) x=fun(i,j);C.float fun(int,int);D.main() main() float fun(int i,int j); x=fun(2,10); x=fun(i,j); float fun(int a,int b) float fun(int a,int b)6.有以下程序: void change(int k)k0=k5;) main() int x10=1,2,3

5、,4,5,6,7,8,9,10,n=0; while(n=4)(change(xn);n+; for(n=0;n5;n+)printf(“%d“,xn); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 57.以下叙述中错误的是_。(分数:2.00)A.可以通过 typedef 增加新的类型B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名8.下列选项

6、中不属于结构化程序设计方法的是_。(分数:2.00)A.自顶向下B.逐步求精C.模块化D.可复用9.有以下程序: main() int a33,*P,i; p=a00; for(i=0;i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是_。(分数:2.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 510.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,ch);B.while

7、(ch=getchar()!=N)printf(“%c“,ch);C.while(ch=getchar()=N)printf(“%c“,ch);D.while(ch=getchar()=N)printf(“%c“,ch):11.有以下程序: #includestdio.h main() int i,j; for(i=3;i=1;i-) for(j=1;j=2;j+)printf(“%d“,i+j); printf(“/n“); 程序运行的结果是_。(分数:2.00)A.2 3 4B.4 3 2C.2 3D.4 5 3 4 5 5 4 3 3 4 3 4 4 5 2 312.有以下程序: #in

8、cludestdio.h void fun(char *a,char*b) while(*a=*)a+; while(*b=*a)b+;a+; main() char*s=“*a*b*“,t80; fun(s,t);puts(t); 程序的运行结果是_。(分数:2.00)A.*a*bB.a*bC.a*b*D.ab13.有以下程序: #includestring.h void f(char p10,int n) char t10;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strcmp(pi,pj)0) strcpy(t,pi);strcpy(pi

9、,pj);strcpy(pj,t); main() char p510=“abc“,“aabdfg“,“abbd“,“dedbe“,“cd“; f(p,5); printf(“%d/n“,strlen(p0); 程序运行后的输出结果是_。(分数:2.00)A.2B.4C.6D.314.有以下程序: main() int y=10; while(y-);printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1C.y=1D.while 构成无限循环15.冒泡排序在最坏情况下的比较次数是_。(分数:2.00)A.n(n+1)/2B.nlog2nC.n

10、(n-1)/2D.n/216.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2)static int a=4;t+=a+; elsestatic int a=5;t+=a+; return t+a+; main() int s=a,i; for(i=0;i3;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29D.2417.程序流程图中有箭头的线段表示的是_。(分数:2.00)A.图元关系B.数据流C.控制流D.调用关系18.有以下程序: #inc

11、ludestring.h main(int argc,char*argv) int i=1,n=0; while(iargc)n=n+strlen(argvi);i+ printf(“%d/n“,n); 该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行: proc 123 45 67 则该程序的输出结果是_。(分数:2.00)A.3B.5C.7D.1119.设有条件表达式:(EXP)i+:j-,则以下表达式中与(EXP)完全等价的是_。(分数:2.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)20.以下叙述中错误的是_。(分数:2.00)A

12、.C 语言源程序经编译后生成后缀为.obj 的目标程序B.C 程序经过编译、连接步骤后才能形成一个真正可执行的二进制机器指令文件C.用 C 语言编写的程序称为源程序,它以 ASC代码形式存放在一个文本文件中D.C 语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令21.有以下程序: #includestdio.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“,i1,i2); 程序的运行结果是_。(分数:2.00)A.12 12B.11

13、 7C.11 11D.12 722.以下能正确定义字符串的语句是_。(分数:2.00)A.char str=/064;B.char str=“kx43“;C.char str=“;D.char str=“/0“;23.有以下程序: main() int a,b,d=25; a=d/10%9;b=a(-1); printf(“%d,%d/n“,a,b); 程序运行后的输出结果是_。(分数:2.00)A.6,1B.2,1C.6,0D.2,024.有以下程序: void swap(char*x,char*y) cbar t; t=*x; *x=*y; *y=t; main() char*s1=“ab

14、c“,*s2=“123“; swap(s1,s2);printf(“%s,%s/n“,s1,s2); 程序执行后的输出结果是_。(分数:2.00)A.123,abcB.abc,123C.1bc,a23D.321,cba25.对长度为 n 的线性表进行顺序查找,在最坏的情况下所需要的比较次数为_。(分数:2.00)A.log2nB.n/2C.nD.n+126.下列定义变量的语句中错误的是_。(分数:2.00)A.int_int;B.double int_;C.char for;D.float US27.有以下程序: #includestdio.h main() FILE*fp;int a10=1

15、,2,3,i,n; fp=fopen(“d1.dat“,“w“); for(i=0;i3;i+)fprintf(fp,“%d“,ai); fprintf(fp,“/n“); fclose(fp); fp=fopen(“d1.dat“,“r“); fscanf(fp,“%d“,n); fclose(fp); printf(“%d/n“,n); 程序的运行结果是_。(分数:2.00)A.12300B.123C.1D.32128.有以下程序: #includestdio.h main() int s12=1,2,3,4,4,3,2,1,1,1,2,3,c5=0,i; for(i=0;i12;i+)c

16、si+; for(i=1;i5;i+)printf(“%d“,ci); printf(“/n“); 程序的运行结果是_。(分数:2.00)A.1 2 3 4B.2 3 4 4C.4 3 3 2D.1 1 2 329.设有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课 SC(学号,课号,成绩),则表 SC 的关键字(键或码)为_。(分数:2.00)A.课号,成绩B.学号,成绩C.学号,课号D.学号,姓名,成绩30.以下能正确定义且赋初值的语句是_。(分数:2.00)A.int n1=n2=10;B.char c=32;C.float f=f+1.

17、1;D.double x=12.3E2.5;31.若有定义:float x=1.5;int a=1,b=3,c=2;则正确的 switch 语句是_。(分数:2.00)A.switch(x)B.switch(int)x); case 1.0:printf(“*/n“); case 1:printf(“*/n“); case 2.0:printf(“*/n“); case 2:printf(“*/n“);C.switch(a+b)D.switch(a+b) case 1;printf(“*/n“); case 1:printf(“*/n“); case 2+1:printf(“*/n“); ca

18、se c:printf(“*/n“);)32.对如下二叉树: ABDECF 进行后序遍历的结果为_。(分数:2.00)A.ABCDEFB.DBEAFCC.ABDECFD.DEBFCA33.设有定义语句 int(*f)(int);,则以下叙述正确的是_。(分数:2.00)A.f 是基类型为 int 的指针变量B.f 是指向函数的指针变量,该函数具有一个 int 类型的形参C.f 是指向 int 类型一维数组的指针变量D.f 是函数名,该函数的返回值是基类型为 int 类型的地址34.以下叙述中错误的是_。(分数:2.00)A.C 语句必须以分号结束B.复合语句在语法上被看做一条语句C.空语句出现

19、在任何位置都不会影响程序运行D.赋值表达式末尾加分号就构成赋值语句35.以下叙述中错误的是_。(分数:2.00)A.改变函数形参的值,不会改变对应实参的值B.函数可以返回地址值C.可以给指针变量赋一个整数作为地址值D.当在函数的开头包括头文件 stdio.h 时,可以给指针变量赋 NULL36.在软件开发中,需求分析阶段产生的主要文档是_。(分数:2.00)A.可行性分析报告B.软件需求规格说明书C.概要设计说明书D.集成测试计划37.有以下程序: #includestdio.h struct tt int x;struct tt*y;*p; struct tt a4=20,a+1,15,a+

20、2,30,a+3,17,a main() int i; p=a; for(i=1;i=2;i+)printf(“%d“,p-x);p=P-y; 程序的运行结果是_。(分数:2.00)A.20,30,B.30,17C.15,30D.20,1538.两个或两个以上模块之间关联的紧密程度称为_。(分数:2.00)A.耦合度B.内聚度C.复杂度D.数据传输特性39.在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是_。(分数:2.00)A.并B.交C.投影D.笛卡儿乘积40.有以下程序: #includestdio.h #includestring.h void fun(char*s,in

21、t n) char*t;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj)t=si;si=sj;sj=t; main() Char*ss=“bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4); 程序的运行结果是_。(分数:2.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc二、B填空题/B(总题数:13,分数:30.00)41.设某循环队列的容量为 50,头指针 front=5(

22、指向队头元素的前一位置),尾指针 rear=29(指向队尾元素),则该循环队列中共有 1 个元素。(分数:2.00)填空项 1:_42.在面向对象方法中, 1 描述的是具有相似属性与操作的一组对象。(分数:2.00)填空项 1:_43.诊断和改正程序中错误的工作通常称为 1。(分数:2.00)填空项 1:_44.一个关系表的行称为 1。(分数:2.00)填空项 1:_45.在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中, 1 负责数据的模式定义与数据的物理存取构建。(分数:2.00)填空项 1:_46.以下程序运行时若从键盘输入:10 20 30回车。输出结果是_。 #inc

23、ludestdio.h main() int i=0,j=0,k=0; scanf(“%d%*d%d“,i,j,k);printf(“%d%d%d/n“,i,j,k); (分数:2.00)填空项 1:_47.下面程序由两个源程序文件:t4.h 和 t4.c 组成,程序编译运行结果是_。t4h 的源程序为: #define N 10 #define f2(x)(x*N) t4.c 的源程序为: #includestdio.h #define M 8 #define f(x)(x)*M) #include“t4.h“ main() int i,j; i=f(1+1);j=f2(1+1); prin

24、tf(“%d%d/n“,i,j); (分数:2.00)填空项 1:_48.以下程序的运行结果是_。 main() (int a=2,b=7,c=5; switch(a0) case 1:switch(b0) case 1:switch(“);break; case 2:printf(“!“);break; case 0:switch(c=5) case 0:printf(“*“);break; case 1:printf(“#“);break; case 2:printf(“$“);break; default:printf (“); printf(“/n“); (分数:2.00)填空项 1:

25、_49.以下程序的功能是:将输入的正整数按逆序输出。例如:若输入 135,则输出 531,请填空。 #includestdio.h main() int n,s; printf(“Enter a number:“);scanf(“%d“,n); printf(“Output:“); do s=n%10;printf(“%d“,s);_; while(n!=0); printf(“/n“); (分数:2.00)填空项 1:_以下 isprime 函数的功能是:判断形参 a 是否为素数,是素数,函数返回 1,否则返回 0。请填空。int isprime(int a) int i;for(i=2;i

26、=a/2;i+)if(a%i=0)U (10) /U;U (11) /U;(分数:4.00)(1).(分数:2.00)填空项 1:_填空项 1:_50.以下程序的输出结果是_。 int fun(int*x,int n) if(n=0) return x0; else return x0+fun(x+1,n-1); main() int a=1,2,3,4,5,6,7; printf(“%d/n“,fun(a,3); (分数:2.00)填空项 1:_函数 rotate 的功能是:将 a 所指 N 行 N 列的二维数组中的最后一行放到 b 所指二维数组的第 0 列中,把a 所指二维数组中的第 0

27、行放到 b 所指二维数组的最后一列中,b 所指二维数组中其他数据不变。#define N 4void rotate(int aN,int bN)int i,j;for(i=0;iN;i+)biN-1=U (13) /U;U (14) /U=aN-1i;(分数:4.00)(1).(分数:2.00)填空项 1:_填空项 1:_51.函数 main()的功能是:在带头节点的单链表中查找数据域中值最小的节点。请填空。 #includestdio.h struct node int data; struct node*next; int mainstruct node*first)/*指针 first

28、为链表头指针*/ struct node*p;int m; P=first-next;m=P-data;p=p-next; for(;P!=NULL;p=_) if(p-datam)m=p-data; return m; (分数:2.00)填空项 1:_二级 C 语言笔试-13 答案解析(总分:110.00,做题时间:90 分钟)一、B选择题/B(总题数:40,分数:80.00)1.变量 a 中的数据用二进制表示的形式是 01011101,变量 b 中的数据用二进制表示的形式是 11110000。若要求将 a 的高 4 位取反,低 4 位不变,所要执行的运算是_。(分数:2.00)A.ab B

29、.a|bC.abD.a4解析:解析 1 与 1 异或结果为 0,0 与 1 异或结果为 1,可见要使某位数翻转,只要使其与 1 进行异或运算即可。0 与 0 进行异或运算结果为 0,1 与 0 进行异或运算结果为 1,可见要使某位的数不变,只要使其与 0 进行异或运算即可。2.有以下程序: #includestdio.h #includestring.h typedef structchar name9;char sex;float score2;)STU; void f(STU a) STU b=“Zhao“,m,85.0,90.0);int i; strcpy(a.name,b.name)

30、; a.sex=b.sex; for(i=0;i2;i+)a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0); f(C) ;printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,C.score1); 程序的运行结果是_。(分数:2.00)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m,85,90解析:解析 本题考查的是结构体变量的单向值传递。题目中,把结构体变量中的数据作为一个整体传送给相应的形参,传递的是实参结构体变量中的值。函数体内对形

31、参结构体变量中任何成员的操作,都不会影响对应实参中成员的值。3.下列叙述中正确的是_。(分数:2.00)A.数据库系统是一个独立的系统,不需要操作系统的支持B.数据库系统的根本目标是要解决数据的共享问题 C.数据库管理系统就是数据库系统D.以上三种说法都不对解析:解析 数据库系统(DBS)是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库技术的根本目标是解决数据的共享问题。4.有以下程序: main() char*p=“3697“,“2584“; int i,j;long num=0; for(i=0;i2;i+)

32、 j=0; while(pij!=/0) if(pij-0)%2)num=10*num+pij-0; j+=2; printf(“%d/n“,num); 程序执行后的输出结果是_。(分数:2.00)A.35B.37C.39 D.3975解析:解析 通过赋值表达式指针数组*p等价于数组 p24;表达式“pij-0”可用来表示该字符数组元素的数值,故表达式“(pij-0)2”为判断该字符数组元素的数值的奇偶性,表达式“num=10*num+pij-0”中的数值运算表示直接加该字符数组元素的数值。5.若各选项中所用变量已正确定义,函数 fun 中通过 return 语句返回一个函数值,以下选项中错误

33、的程序是_。(分数:2.00)A.main() B.float fun(int a,int b) x=fun(2,10); main() float fun(int a,int b) x=fun(i,j);C.float fun(int,int);D.main() main() float fun(int i,int j); x=fun(2,10); x=fun(i,j); float fun(int a,int b) float fun(int a,int b)解析:解析 在调用函数时,此函数必须被声明或定义过。A 选项中 fun 在调用时并未声明,因此是错误的。6.有以下程序: void

34、change(int k)k0=k5;) main() int x10=1,2,3,4,5,6,7,8,9,10,n=0; while(n=4)(change(xn);n+; for(n=0;n5;n+)printf(“%d“,xn); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)A.6 7 8 9 10 B.1 3 5 7 9C.1 2 3 4 5D.6 2 3 4 5解析:解析 本题主要考查数组元素的地址作为实参,当 n=0 时,把 x0的地址传递给被调函数change(),即把形参 k 和实参 x 指向同一个存储单元,执行被调函数后 k0=6,即 x0=6;当

35、 n=1 时,执行被调函数后 x1=7,以此类推,最后得到 x 数组的值为 6,7,8,9,10。7.以下叙述中错误的是_。(分数:2.00)A.可以通过 typedef 增加新的类型 B.可以用 typedef 将已存在的类型用一个新的名字来代表C.用 typedef 定义新的类型名后,原有类型名仍有效D.用 typedef 可以为各种类型起别名,但不能为变量起别名解析:解析 typedef 用来声明新的类型名来代替已有的类型名,typedef 只是对已经存在的类型增加了一个类型名,原有类型名仍有效。typedef 不能用来定义变量。8.下列选项中不属于结构化程序设计方法的是_。(分数:2.

36、00)A.自顶向下B.逐步求精C.模块化D.可复用 解析:解析 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化,限制使用goto 语句。9.有以下程序: main() int a33,*P,i; p=a00; for(i=0;i9;i+)pi=i; for(i=0;i3;i+)printf(“%d“,a1i); 程序运行后的输出结果是_。(分数:2.00)A.0 1 2B.1 2 3C.2 3 4D.3 4 5 解析:解析 本题的考点是 C 语言的指针。p 指向二维数组 a 的首地址,而二维数组是按行存放的。因此“。for(i=0;i9;i+)pi=i;”的结果是等价于 a

37、33=0,1,2,3,4,5,6,7,8,也就是 a33=0,1,2),3,4,5),6,7,8。因此 a1i(i=0,1,2)的结果是 3、4、5。输出结果应该是:3 4 5。10.要求通过 while 循环不断读入字符,当读入字母 N 时结束循环。若变量已正确定义,以下正确的程序段是_。(分数:2.00)A.while(ch=getchar()!=N)printf(“%c“,ch); B.while(ch=getchar()!=N)printf(“%c“,ch);C.while(ch=getchar()=N)printf(“%c“,ch);D.while(ch=getchar()=N)pr

38、intf(“%c“,ch):解析:解析 因为 while 是以条件为假时结束循环,因此选项 C、D 不正确。“!=”的优先级比“=”高,因此“ch=getchar()!=N”相当于“ch=(getchar!=N)”,ch 并不能得到输入的字符,只能得到 true或者 false 值。11.有以下程序: #includestdio.h main() int i,j; for(i=3;i=1;i-) for(j=1;j=2;j+)printf(“%d“,i+j); printf(“/n“); 程序运行的结果是_。(分数:2.00)A.2 3 4B.4 3 2C.2 3D.4 5 3 4 5 5 4

39、 3 3 4 3 4 4 5 2 3 解析:解析 本题主要考查 for 循环语句的嵌套。外层主循环执行了 3 次,嵌套的循环语句每轮执行 2次,每次输出 i+j 的值,推出嵌套循环语句后换行。12.有以下程序: #includestdio.h void fun(char *a,char*b) while(*a=*)a+; while(*b=*a)b+;a+; main() char*s=“*a*b*“,t80; fun(s,t);puts(t); 程序的运行结果是_。(分数:2.00)A.*a*bB.a*bC.a*b* D.ab解析:解析 函数 fun 中的第一个 while 循环语句将指针定

40、位在字符串 a 的第一个不是*号的字符上;第二个 while 循环语句将 a 所指向的字符赋值给 b,直到字符串的结束符为止。调用函数 fun(s,t);,首先将指针指向a,s=“a*b*”,然后将 s 中的字符赋给 t。13.有以下程序: #includestring.h void f(char p10,int n) char t10;int i,j; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(strcmp(pi,pj)0) strcpy(t,pi);strcpy(pi,pj);strcpy(pj,t); main() char p510=“abc“,“aab

41、dfg“,“abbd“,“dedbe“,“cd“; f(p,5); printf(“%d/n“,strlen(p0); 程序运行后的输出结果是_。(分数:2.00)A.2B.4C.6 D.3解析:解析 本题考核的是二维字符数组按行存放字符串、二维数组名作为函数的参数以及字符串的排序。主函数中定义了一个二维字符串数组 p 并按行赋值,调用 f()函数,将字符串从小到大排序,strcmp()函数的功能是对两个字符串作向右逐个字符比较,直到出现不同的字符或遇到“/0”为止。如果全部字符都相同,则认为相等;若出现不同的字符则以第一个不相同的字符的比较结果为准。由此可知最小的字符串是“aabdfg”,排

42、序后存放在 p0中,最后在主函数中输出 p0的长度。14.有以下程序: main() int y=10; while(y-);printf(“y=%d/n“,y); 程序执行后的输出结果是_。(分数:2.00)A.y=0B.y=-1 C.y=1D.while 构成无限循环解析:解析 whik 语句一般形式为: While(表达式)语句; 其语句先判断表达式,后执行语句。而表达式 y-先返回 y 的当前值,再进行-1 运算。15.冒泡排序在最坏情况下的比较次数是_。(分数:2.00)A.n(n+1)/2B.nlog2nC.n(n-1)/2 D.n/2解析:解析 在最坏情况下冒泡排序法需要比较的次

43、数为 n(n-1)/2。16.有以下程序: int a=2; int f(int n) static int a=3; int t=0; if(n%2)static int a=4;t+=a+; elsestatic int a=5;t+=a+; return t+a+; main() int s=a,i; for(i=0;i3;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.26B.28C.29 D.24解析:解析 定义“int a=2;”中的全局变量 a,起作用的范围是从定义此变量的位置开始到本源文件结束;定义“static in

44、t a=3;”中的静态局部变量 a 的作用范围是其所在的函数 f,并对其只赋一次初值,以后每次调用函数时不再重新赋值,而只保留上次函数调用结束时的值;复合语句“staticint a=4;t+=a+;”和“static int a=5;t+=a+;)”中定义的两个变量 a 属于复合语句中定义的变量,作用的范围只在其本身所在的复合语句内,对于本程序来讲,第三行定义的静态局部变量并不会对第4、5 两行的复合语句产生作用,这是因为复合语句也定义了与其同名的静态局部变照。17.程序流程图中有箭头的线段表示的是_。(分数:2.00)A.图元关系B.数据流C.控制流 D.调用关系解析:解析 程序流程图是软件过程设计中常用的图形描述工具之一。构成程序流程图的最基本符号有:或,表示控制流;表示加工步骤;表示逻辑条件。18.有以下程序: #includestring.h main(int argc,char*argv) int i=1,n=0; while(iargc)n=n+strlen(argvi);i+ printf(“%d/n“,n); 该程序生成的可执行文件名为:proc.exe,若在运行时输入命令行: proc 123 45 67 则该程序的输出结果是_。(分数:2.00)A.3B.5C.7 D.

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