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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-144 及答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.有以下程序float fun(int x,int y)return(x+y);main()int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是(分数:1.00)A.编译出错B.9C.21D.9.02.有如下程序:#define N2#define MN+1#define NUM2*M+1main()int i;for(i=1;i=NUM;i+)printf(“%d/n“,i);该程序中

2、的 for 循环执行的次数是(分数:1.00)A.5B.6C.7D.83.有定义语句:int b;char c10;,则正确的输入语句是(分数:1.00)A.scanf(“%d%s“,&b,&c);B.scanf(“%d%s“,&b,c);C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,&c);4.若有下面的程序段:char s=“china“;char*p;p=s;则下列叙述正确的是(分数:1.00)A.s 和 p 完全相同B.数组 s 中的内容和指针变量 p 中的内容相等C.s 数组长度和 p 所指向的字符串长度相等D.*p 与 s0相等5.下列有关数据库的描述,

3、正确的是(分数:1.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合D.数据库是一组文件6.下面程序的输出结果是main()int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(“%d/n“,*(p+2);(分数:1.00)A.3B.4C.1D.27.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件 TEST 的长度是#includestdio.hvoid main()FILE*fp=fopen(“TEST“,);fputc(A,fp);fputc(/n,fp);fputc(B,fp);fputc(/n,

4、fp);fputc(C,fp);fclose(fp);(分数:1.00)A.7 字节、7 字节B.7 字节、5 字节C.5 字节、7 字节D.5 字节、5 字节8.下面的程序段运行后,输出结果是int i,j,x=0;static int a88;for(i=0;i3;i+)for(j=0;j3;j+)aij=2*i+j;for(i=0;i8;i+)x+=aij;printf(“%d“,x);(分数:1.00)A.9B.不确定值C.0D.189.若有语句:char*line5;,以下叙述中正确的是(分数:1.00)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 为指针变量

5、B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的。号称为间址运算符D.定义 line 是一个指向字符型函数的指针10.若有以下定义:struct finkint data;struct link*next;a,b,c,*p,*q;且变量 a 和 b 之间已有如下图所示的链表结构:(分数:1.00)A.B.C.D.11.设有以下说明语句typedef structint n;char ch8;PER;则下面叙述中正确的是(分数:1.00)A.PER 是结构体变量名B.PER 是结构体类型名C.typedef struct

6、是结构体类型D.struct 是结构体类型名12.下列有关数据库的描述,正确的是(分数:1.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字13.结构化程序设计的 3 种结构是(分数:1.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构14.以下说法错误的是(分数:1.00)A.一个算法应包含有限个步

7、骤B.在计算机上实现的算法是用来处理数据对象的C.算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现D.算法的目的是求解15.下面程序输出的结果是main()int x;x=-3+4*5-6;printf(“%d“,x);x=3+4%5-6;printf(“%d“,x);x=-3+4%6/5;printf(“%d“,x);x=(7+6)%5/2;printf(“%d“,x);(分数:1.00)A.11 1 -3 1B.11 -3 2 1C.12 -3 2 1D.11 1 2 116.下面程序段的运行结果是char str=“ABC“,*p=str;printf(“%d/n“,*(p+

8、3);(分数:1.00)A.67B.0C.字符C的地址D.字符C17.有如下程序main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是(分数:1.00)A.69825B.63825C.6385D.69382518.有以下程序void ss(char*s,char t)while(*s)if(*s=t)*s=t-a+A;s+; main()char strl100=“abcd

9、dfefdbd“,c=d;ss(str1,c);printf(“%s/n“,strl);程序运行后的输出结果是(分数:1.00)A.ABCDDEFEDBDB.abcDDfefDbDC.abcAAfefAbAD.Abcddfefdbd19.已知int t=0;while(t=1)则以下叙述正确的是(分数:1.00)A.循环控制表达式的值为 0B.循环控制表达式的值为 1C.循环控制表达式不合法D.以上说法都不对20.fseek 函数的正确调用形式是(分数:1.00)A.fseek(文件指针,起始点,位移量)B.fseek(文件指针,位移量,起始点)C.fseek(位移量,起始点,文件指针)D.f

10、seek(起始点,位移量,文件指针)21.下列程序执行后的输出结果是void func(int*a,int b)b0=*a+6; main()int a,b5;a=0;b0=3;func(&a,b);printf(“%d/n“,b0);(分数:1.00)A.6B.7C.8D.922.软件生命周期中所花费用最多的阶段是(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护23.下列可用于 C 语言用户标识符的一组是(分数:1.00)A.void,define,WORDB.a3_b3,_123,CarC.For,-abc,IF CaseD.2a,DO,sizeof24.数据库管理系统中

11、用来定义模式、内模式和外模式的语言为(分数:1.00)A.CB.BasicC.DDLD.DML25.以下叙述中正确的是(分数:1.00)A.用 C 程序实现的算法必须要有输入和输出操作B.用 C 程序实现的算法可以没有输出但必须要有输入C.用 C 程序实现的算法可以没有输入但必须要有输出D.用 C 程序实现的算法可以既没有输入也没有输出26.有以下程序#includestring.hmain()char p=a,b,c,q10=a,b,c;printf(“%d%d/n“,strlen(p),strlen(q);以下叙述中正确的是(分数:1.00)A.在给 p 和 q 数组置初值时,系统会自动添

12、加字符串结束符,故输出的长度都为 3B.由于 p 数组中没有字符串结束符,长度不能确定,但 q 数组中字符串长度为 3C.由于 q 数组中没有字符串结束符,长度不能确定,但 p 数组中字符串长度为 3D.由于 p 和 q 数组中都没有字符串结束符,故长度都不能确定27.栈和队列的共同特点是(分数:1.00)A.都是先进先出B.都是先进后出C.只允许在端点处插入和删除元素D.没有共同点28.已知二叉树后序遍历序列是 dabec,中序遍历序列是 debac,它的前序遍历序列是(分数:1.00)A.acbedB.decabC.deabcD.cedba29.有以下程序:#includestdio.h#

13、includestring.hmain()char a=a,b,c,d,e,f,g,h,/0;int i,j;i=sizeof((分数:1.00)A.;j=strlen(a);&nbs30.以下程序的输出结果是main()char c=z;printf(“%c“,c-25);(分数:1.00)A.aB.ZC.z-25D.y31.以下能正确定义一维数组的选项是(分数:1.00)A.int a5=0,1,2,3,4,5B.char a=0,1,2,3,4,5,/0;C.char a=A,B,C;D.int a5=“0123“;32.已有定义 int(*p)(),指针 p 可以(分数:1.00)A.

14、代表函数的返回值B.指向函数的入口地址C.表示函数的类型D.表示函数返回值的类型33.有如下程序main()char s=“ABCD“,*p;for(p=s+1;ps+4;p+)printf(“%s/n“,p);该程序的输出结果是(分数:1.00)A.ABCDBCDCDDB.AB CDC.BC DD.BCD CD D34.定义如下变量和数组:int k;int a33=9,8,7,6,5,4,3,2,1;则下面语句的输出结果是for(k=0;k3;k+)printf(“%d“,akk);(分数:1.00)A.7 5 3B.9 5 1C.96 3D.7 4 135.下列数据中,不合法的 C 语言

15、实型数据是(分数:1.00)A.0.123B.123e3C.2.1e3.5D.789.036.为了提高测试的效率,应该(分数:1.00)A.随机选取测试数据B.取一切可能的输入数据作为测试数据C.在完成编码以后制定软件的测试计划D.集中对付那些错误群集的程序37.下列程序的输出结果是#include“stdio.h“main()int i,a=0,b=0;for(i=1;i10;i+)if(i%2=0)a+;continue;b+;printf(“a=%d,b=%d“,a,b);(分数:1.00)A.a=4,b=4B.a=4,b=5C.a=5,b=4D.a=5,b=538.若变量已正确说明为

16、float 型,要通过语句 scanf(“%f%f%f“,&a,&b,&c);给 a 赋予 10,0,b 赋予22.0,c 赋予 33.0,下列不正确的输入形式是(分数:1.00)A.10回车22回车33回车B.10.0,22.0,33.0回车C.10.0回车22.0 33.0回车D.10 22回车33回车39.以下选项中可作为 C 语言合法常量的是(分数:1.00)A.-80B.-080C.-8e1.0D.-80.0e40.有以下程序main()int i=1,j=1,k=2;if(j+k+)&i+) printf(“%d,%d,%d/n“,i,j,k);执行后输出结果是(分数:1.00)A

17、.1,1,2B.2,2,1C.2,2,2D.2,2,341.有以下程序:#includestdio.hunion pwint i;char ch2;a;main()ach0=13;ach1=0;printf(“%d/n“,ai);程序的输出结果是(分数:1.00)A.13B.14C.208D.20942.设有以下说明语句struct stuint a;float b;stutype;则下面的叙述不正确的是(分数:1.00)_43.以下程序的输出结果是void fun(int*s)static int j=0;dosj+=sj+1;while(+j2);main()int k,a10=1,2,3

18、,4,5;for(k=1;k3;k+)fun((分数:1.00)_44.若运行时给变量 x 输入 12,则以下程序的运行结果是main()int x,y;scanf(“%d“,&x);y=x12? x+10:x-12;printf(“%d/n“,y);(分数:1.00)A.0B.22C.12D.1045.表达式 0x130x17 的值是(分数:1.00)A.0x04B.0x13C.0xE8D.0x1746.算法的时间复杂度是指(分数:1.00)A.执行算法程序所需要的时间B.算法程序的长度C.算法执行过程中所需要的基本运算次数D.算法程序中的指令条数47.有以下程序#define F(X,Y)

19、(X)*(Y)main()int a=3,b=4;printf(“%d/n“,F(a+,b+); 程序运行后的输出结果是(分数:1.00)A.12B.15C.16D.2048.有以下程序:main()int i,s=1;for(i=1;i50;i+)if(!(i%5)&!(i%3) s+=i;printf(“%d/n“,s);程序的输出结果是(分数:1.00)A.409B.277C.1D.9149.链表不具有的特点是(分数:1.00)A.不必事先估计存储空间B.可随机访问任一元素C.插入删除不需要移动元素D.所需空间与线性表长度成正比50.已定义以下函数fun(char*p2,char*p1)

20、while(*p2=*pl)!=/0)p1+;p2+;函数的功能是(分数:1.00)A.将 p1 所指字符串复制到 p2 所指内存空间B.将 p1 所指字符串的地址赋给指针 p2C.对 p1 和 p2 两个指针所指字符串进行比较D.检查 p1 和 p2 两个指针所指字符串中是否有/0二、填空题(总题数:17,分数:40.00)51.算法的基本特征是可行性、确定性、 【1】 和拥有足够的情报。(分数:2.00)填空项 1:_52.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 【2】 个叶子结点。(分数:2.00)填空项 1:_53.在面向对象的程序设计中,类描述的是具有相似性质的一组

21、【3】 。(分数:2.00)填空项 1:_54.通常,将软件产品从提出、实现、使用维护到停止使用退役的过程称为 【4】 。(分数:2.00)填空项 1:_55.数据库管理系统常见的数据模型有层次模型、网状模型和 【5】 3 种。(分数:2.00)填空项 1:_56.在 scanf()函数调用语句中,可以在格式字符和%号之间加上一个星号,它的作用是跳过对应的输入数据;当输入以下数据时,100 200 300 400 500回车,下面语句的执行结果为 【6】 。main()int a,b,C;scanf(“%d%*d%d%d“,&a,&b,&c);printf(“%d%d%d“,a,b,c);(分

22、数:2.00)填空项 1:_57.设有如下宏定义#define MYSWAP(z,x,y)z=x;x=y;y=z;以下程序段通过宏调用实现变量 a,b 内容交换,请填空。float a=5,b=16,c;MYSWAP( 【7】 a,b);(分数:2.00)填空项 1:_58.阅读下面语句,则程序的执行结果是 【8】 。#include“stdio.h“main()int a=-1,b=1,k;if(+a0)&! (b0)printf(“%d,%d/n“,a,b);else printf(“%d,%d/n“,b,a);(分数:2.00)填空项 1:_59.以下程序的输出结果是 【9】 。main

23、()int a=0;a+=(a=8);printf(“%d/n“,a);(分数:2.00)填空项 1:_60.下列程序的输出结果是 【10】 。main()int i;for(i=1;i=1;i+)if(i4)printf(“%d/n“,i);break;printf(“%d/n“,i+);(分数:2.00)填空项 1:_61.以下程序的功能是:对输入的一行字符串的数字字符按它们的字面值累加,输出此累加和。例如,输入一行字符是:ab34dh8u,输出值应当是 15。请填空。#include stdio.h#include ctype.hmain()char ch; int a,s;【11】 ;

24、while(ch=getchar() 【12】 )if( isdigit (ch)a= 【13】 ;s+=a;printf(“s=%d/n/n“,s);(分数:6.00)填空项 1:_62.以下程序运行的结果是 【14】 。#includeconio.h#includestdio.h#define M 100void fun(int m,int*a,int*n)int i,j=0;for(i=1;i=m;i+)if(i%7=0i%11=0)a j+=i;*n=j;main()int aaM,n,k;clrscr();fun(10,aa,&n);for(k=0;kn;k+)if(k+1)%20=

25、0)printf(“/n“);else printf(“%4d“,aak);printf(“/n“);(分数:2.00)填空项 1:_63.函数 void fun(float*sn,int n)的功能是:根据以下公式计算 s,计算结果通过形参指针 sn 传回;n 通过形参传入,n 的值大于等于 0。请填空。(分数:4.00)填空项 1:_64.strcmp 函数的功能是 【17】 。(分数:2.00)填空项 1:_65.以下程序从输入的 10 个字符串中找出最长的那个串,请填空。#include stdio.h#include string.h#define N 10main()char st

26、rN81,*sp;int i;for(i=0;iN;i+)gets(stri);sp=str0;for(i=1;iN;i+)if(strlen(sp)strlen(stri)【18】 ;printf(“输出最长的那个串:/n%s/n“,sp);printf(“输出最长的那个串的长度:%d/n“,strlen(sp);(分数:2.00)填空项 1:_66.下列程序执行输出的结果是 【19】 。#includestdio.hf(int a)int b=0;static c=3;a=c+,b+;return(a);main()int a=2,i,k;for(i=0;i2;i+)k=f(a+);pri

27、ntf(“%d/n“,k);(分数:2.00)填空项 1:_67.有如图所示的双链表结构,请根据图示完成结构体的定义:lhead data rchildstruct aaint data;【20】 node;(分数:2.00)填空项 1:_二级 C 语言笔试-144 答案解析(总分:90.00,做题时间:90 分钟)一、选择题(总题数:50,分数:50.00)1.有以下程序float fun(int x,int y)return(x+y);main()int a=2,b=5,c=8;printf(“%3.0f/n“,fun(int)fun(a+c,b),a-c);程序运行后的输出结果是(分数:

28、1.00)A.编译出错B.9 C.21D.9.0解析:解析 本题考查函数的综合知识。首先,我们可以利用强制转换类型转换运算符将一个表达式转换成所需类型。如:(double)a 是将 a 转换成 double 类型;(int)(x+y)是将 x+y 的值转换成整型。本题可按部就班地逐步运算:fun(int)fun(a+c,b),a-c)fun(int)fun(10,5),2-8)fun(int)15.000000,-6)fun(15,-6)92.有如下程序:#define N2#define MN+1#define NUM2*M+1main()int i;for(i=1;i=NUM;i+)pri

29、ntf(“%d/n“,i);该程序中的 for 循环执行的次数是(分数:1.00)A.5B.6 C.7D.8解析:解析 该题目测试考生对宏替换的理解。这是一种简单的情况:不带参数的宏。关键要注意在对2*M+1 进行宏替换时,要将宏名 M 原封不动地代进去,得到 NUM 的形式为 2*N+1+1(千万不要随意给 N+1 加上小括号,使 NUM 变为 2。(N+1)+ 1,这就是宏名和变量名之间的区别),在将 N 代进去,得到 NUM 的值为 6。3.有定义语句:int b;char c10;,则正确的输入语句是(分数:1.00)A.scanf(“%d%s“,&b,&c);B.scanf(“%d%

30、s“,&b,c); C.scanf(“%d%s“,b,c);D.scanf(“%d%s“,b,&c);解析:解析 定义 b 为整型数,c 为字符数组,所以在输入语句的地址表列中,要在 b 前加上取址符“&”,而 c 就是字符数组的首地址,所以不用加上取址符“&”。4.若有下面的程序段:char s=“china“;char*p;p=s;则下列叙述正确的是(分数:1.00)A.s 和 p 完全相同B.数组 s 中的内容和指针变量 p 中的内容相等C.s 数组长度和 p 所指向的字符串长度相等D.*p 与 s0相等 解析:解析 字符型指针变量 p 中存放的是 “china“的首地址,所以选项 A)

31、和 B)错误。e 数组长度为6,而 p 所指向的字符串长度为 5,二者不相等,排除选项 C)。5.下列有关数据库的描述,正确的是(分数:1.00)A.数据库是一个 DBF 文件B.数据库是一个关系C.数据库是一个结构化的数据集合 D.数据库是一组文件解析:解析 数据库(Database,简称 DB)是数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。数据库中的数据具有“集成”、“共享”之特点。6.下面程序的输出结果是main()int a10=1,2,3,4,5,6,7,8,9,10,*p=a;printf(“%d/n“,*(p+2);(

32、分数:1.00)A.3 B.4C.1D.2解析:解析 在 C 语言中,数组元素是从 0 开始的。指针变量 p 指向数组的首地址,(p+2)就会指向数组中的第 3 个元素。题目中要求输出的是元素的值。7.对于下述程序,在方式串分别采用“wt”和“wb”运行时,两次生成的文件 TEST 的长度是#includestdio.hvoid main()FILE*fp=fopen(“TEST“,);fputc(A,fp);fputc(/n,fp);fputc(B,fp);fputc(/n,fp);fputc(C,fp);fclose(fp);(分数:1.00)A.7 字节、7 字节B.7 字节、5 字节

33、C.5 字节、7 字节D.5 字节、5 字节解析:解析 以“wt”方式写入的是字符文件,转义字符/n被看作两个字符来处理。而“wb“方式写入的是二进制文件,转义字符/n是一个字符。故正确答案为选项 B)。8.下面的程序段运行后,输出结果是int i,j,x=0;static int a88;for(i=0;i3;i+)for(j=0;j3;j+)aij=2*i+j;for(i=0;i8;i+)x+=aij;printf(“%d“,x);(分数:1.00)A.9B.不确定值C.0 D.18解析:解析 本题主要考查的用二维数组首地址和下标来引用二维数组元素的方法。通过分析可知,程序中的双重循环定义

34、了一个如下的二维数组:*由于数组的下标是从 0 开始的,所以二维数组元素 aij表示的是二维数组 a 的第 i+1 行、第 j+1 列对应位置的元素。9.若有语句:char*line5;,以下叙述中正确的是(分数:1.00)A.定义 line 是一个数组,每个数组元素是一个基类型为 char 为指针变量 B.定义 line 是一个指针变量,该变量可以指向一个长度为 5 的字符型数组C.定义 line 是一个指针数组,语句中的。号称为间址运算符D.定义 line 是一个指向字符型函数的指针解析:解析 C 语言中比:优先级高,因此 line 先与5结合,形成 line5形式,这是数组形式,它有 5

35、 个元素,然后再与 line 前面的“*”结合,表示此数组是一个指针数组,每个数组元素都是一个基类型为 char 的指针变量。10.若有以下定义:struct finkint data;struct link*next;a,b,c,*p,*q;且变量 a 和 b 之间已有如下图所示的链表结构:(分数:1.00)A.B.C.D. 解析:解析 本题考查链表的数据结构,必须利用指针变量才能实现,即一个结点中应包含一个指针变量,用它存放下一结点的地址。11.设有以下说明语句typedef structint n;char ch8;PER;则下面叙述中正确的是(分数:1.00)A.PER 是结构体变量名

36、B.PER 是结构体类型名 C.typedef struct 是结构体类型D.struct 是结构体类型名解析:解析 本题中,typedef 声明新的类型名 PER 来代替已有的类型名,PER 代表上面指定的一个结构体类型,此时,也可以用 PER 来定义变量。12.下列有关数据库的描述,正确的是(分数:1.00)A.数据处理是将信息转化为数据的过程B.数据的物理独立性是指当数据的逻辑结构改变时,数据的存储结构不变C.关系中的每一列称为元组,一个元组就是一个字段D.如果一个关系中的属性或属性组并非该关系的关键字,但它是另一个关系的关键字,则称其为本关系的外关键字 解析:解析 数据处理是指将数据转

37、换成信息的过程,故选项 A)叙述错误;数据的物理独立性是指数据的物理结构的改变,不会影响数据库的逻辑结构,故选项 B)叙述错误;关系中的行称为元组,对应存储文件中的记录,关系中的列称为属性,对应存储文件中的字段,故选项 C)叙述错误。13.结构化程序设计的 3 种结构是(分数:1.00)A.顺序结构、选择结构、转移结构B.分支结构、等价结构、循环结构C.多分支结构、赋值结构、等价结构D.顺序结构、选择结构、循环结构 解析:解析 顺序结构、选择结构和循环结构 (或重复结构)是结构化程序设计的 3 种基本结构。14.以下说法错误的是(分数:1.00)A.一个算法应包含有限个步骤B.在计算机上实现的

38、算法是用来处理数据对象的C.算法中指定的操作,不能通过已经实现的基本运算执行有限次后实现 D.算法的目的是求解解析:解析 算法是指为解决某个特定的问题而采取的确定且有限的步骤,一个算法应当具有以下几个特性:有穷性、确定性、可行性、有零个或多个输入和有一个或多个输出。C)答案是对算法可行性的解释,即算法中指定的操作,可以通过已经实现的基本运算执行有限次后实现。15.下面程序输出的结果是main()int x;x=-3+4*5-6;printf(“%d“,x);x=3+4%5-6;printf(“%d“,x);x=-3+4%6/5;printf(“%d“,x);x=(7+6)%5/2;printf

39、(“%d“,x);(分数:1.00)A.11 1 -3 1 B.11 -3 2 1C.12 -3 2 1D.11 1 2 1解析:解析 本题考查的是算术运算符的各种运算,x=-3+4*5-6=-3+20-6=11;x=3+4%5 -6=3+4-6=1;x=-3+4%6/5=-3+4/5=-3+0 =-3;x=(7+6)%5/2=13%5/2=3/2=1。故正确答案为选项 A)。16.下面程序段的运行结果是char str=“ABC“,*p=str;printf(“%d/n“,*(p+3);(分数:1.00)A.67B.0 C.字符C的地址D.字符C解析:解析 考查指向字符串的指针变量。在该题中

40、,指针变量 p 指向的应该是该字符串中的首地址,p +3 指向的是字符串结束标志/0的地址,因而。(p+3)的值为 0。17.有如下程序main()char ch25=“6937“,“8254“,*p2;int i,j,s=0;for(i=0;i2;i+)pi=chi;for(i=0;i2;i+)for(j=0;pij/0;j+=2)s=10*s+pij-0;printf(“%d/n“,s);该程序的输出结果是(分数:1.00)A.69825B.63825C.6385 D.693825解析:解析 该题稍微难一点。主要要搞清楚以下几点:定义了一个指针数组 charp2后,程序中第一个循环 for

41、(i=0;i2;i+)pi=chi;的作用,是使指针数组的 p0元素(它本身是一个指针)指向了二维数组 ch 的第一行字符串,并使指针数组的 p11)元素指向了二维数组 ch 的第二行字符串,这样,就使指针数组 p 和二维数组 ch 建立起了一种对应关系,以后对二维数组 ch 的某个元素的引用就有两种等价的形式: chij或 pij。对二维数组 ch 的初始化,使其第一行 ch0中存入了字符串“6937“,第二行 ch1中的内容为字符串“8254“。程序中第二个循环中的循环体 s=e*10+pij-0;的功能是这样的,每执行一次,将 s 中的值乘以 10(也即,将s 中的数值整体向左移动一位,

42、并在空出来的个位上添一个 0),再将当前 pij中的字符量转换为相应的数字,然后把这个数字加到 s 的个位上。注意到内层循环的循环条件 pij,0,是指 pij中的字符只要不是字符串结束标志,/0,就继续循环,语句 j+=2;是使下标 j 每次增加 2,也即一个隔一个地从 pi所指向的字符串中取出字符。经过上述解析后,不难看出,该程序首先从 p 0所指向的字符串“6937“中一个隔一个地取出字符,分别是6和3,然后从 p1所指向的字符串“8254“中一个隔一个地取出字符,分别是8和5,同时经过转换和相加运算后,结果 s 中的值应该是 6385,所以,正确答案是 C)。18.有以下程序void

43、ss(char*s,char t)while(*s)if(*s=t)*s=t-a+A;s+; main()char strl100=“abcddfefdbd“,c=d;ss(str1,c);printf(“%s/n“,strl);程序运行后的输出结果是(分数:1.00)A.ABCDDEFEDBDB.abcDDfefDbD C.abcAAfefAbAD.Abcddfefdbd解析:解析 在内存中,字符数据以 ASCII 码存储,它的存储形式就与整数的存储形式相类似。C 语言使字符型数据和整型数据之间可以通用。也可以对字符数据进行算术运算,此时相当于对它们的 ASCII 码进行算术运算,在本题中,

44、s+相当于 s=s+1,即让 s 指向数组中的下一个元素。19.已知int t=0;while(t=1)则以下叙述正确的是(分数:1.00)A.循环控制表达式的值为 0B.循环控制表达式的值为 1 C.循环控制表达式不合法D.以上说法都不对解析:解析 t=1 是将 t 赋值为 1,所以循环控制表达式的值为 1。而判断 t 是否等于 1 时应用 t= 1,注意“=”与“=”的用法。20.fseek 函数的正确调用形式是(分数:1.00)A.fseek(文件指针,起始点,位移量)B.fseek(文件指针,位移量,起始点) C.fseek(位移量,起始点,文件指针)D.fseek(起始点,位移量,文

45、件指针)解析:解析 本题考查函数 fseek 的用法。fseek 函数的调用形式为:fseek(文件指针,位移量,起始点)“起始点”用 0,1 或 2 代替,0 代表“文件开始”,1 为“当前位置”,2 为“文件末尾”。“位移量”指以“起始点”为基点,向前移动的字节数。ANSIC 和大多数 C 版本要求位移量是 long 型数据。这样当文件的长度大于 64k 时不致出现问题。ANSI C 标准规定在数字的末尾加一个字母 L,就表示 long 型。21.下列程序执行后的输出结果是void func(int*a,int b)b0=*a+6; main()int a,b5;a=0;b0=3;func

46、(&a,b);printf(“%d/n“,b0);(分数:1.00)A.6 B.7C.8D.9解析:解析 函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传递到另一个函数中。当数组名作参数时,如果形参数组中的各元素的值发生变化,实参数组元素的值随之发生变化。22.软件生命周期中所花费用最多的阶段是(分数:1.00)A.详细设计B.软件编码C.软件测试D.软件维护 解析:解析 软件生命周期分为软件定义、软件开发及软件运行维护 3 个阶段。本题中,详细设计、软件编码和软件测试都属于软件开发阶段;维护是软件生命周期的最后一个阶段,也是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护的代价。23.下列可用于 C 语言用户标识符的一组是(分数:1.00)A.void,define,WORDB.a3_b3,_123,Car C.For,-abc,IF CaseD.2a,DO,sizeof解析:解析 C 语言规定标识符只能由字母、数

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