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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C 语言笔试-412 及答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.以下 4 组用户定义标识符中,全部合法的一组是 _。A)_mainencludesinB) If-maxturboC) txtREAL3COMD) intk_2_001(分数:2.00)A.B.C.D.2.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数:2.00)A.B.C.D.3.检查软件产品是否符合需求定义的过程称为( )。A) 确认测试 B) 集成测试 C) 验证测试 D) 验收测试(分数:1.00)A.

2、B.C.D.4.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程序设计语言的先进性 D) 程序的易读性(分数:2.00)A.B.C.D.5.以下数据结构中不属于线性数据结构的是( )。A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C.D.6.下列数据结构中,能用二分法进行查找的是( )。A) 顺序存储的有序线性表 B) 结性链表C) 二叉链表 D) 有序线性链表(分数:2.00)A.B.C.D.7.关系数据库管理系统能实现的专门关系运算包括( )。A) 排序、索引、统计 B) 选择、投影、连接C) 关联、更新、排序 D) 显示、打印、制表

3、(分数:2.00)A.B.C.D.8.下列叙述中正确的是_。A) 数据库系统是一个独立的系统,不需要操作系统的支持B) 数据库系统的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(分数:2.00)A.B.C.D.9.设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C.D.10.下列数据中,不合法的 C 语言实型数据的是( )。A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0(分数:1.00

4、)A.B.C.D.11.下列叙述中错误的是_。(A) 计算机不能直接执行用 C 语言编写的源程序(B) C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件(C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件(D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D.12.下列叙述中正确的是( )。A)在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B)实型变量中允许存放整型数C)若 a 和 b 类型相同,在执行了赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D)在 C 程序中,求余运

5、算符“%”两边的类型相同时才能进行运算(分数:2.00)A.B.C.D.13.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;int t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C.D.1

6、4.下列 4 个程序中,完全正确的是( )。 A) #includestdio.h main(); (/*programming*/ printf(“programming!/n“); B) # includestdio.h main() /*/programming/*/ printf(“programming!/n“); C) #includestdio.h main() /*/programming*/*/ printf(“programming!/n“);) D) includestdio.h main() /*programming*/ printf(“programming!/n“

7、);(分数:1.00)A.B.C.D.15.若有以下定义和语句:int a=1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3 的表达式是_。A) p+=2,*(p+) B) p+=2,*+pC) p+=3,*p+ D) p+=2,+*p(分数:1.00)A.B.C.D.16.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是( )。A3.500000 B3C2.000000 D3.000000(分数:1.00)A.B.C.D.17.两次运行下面的程序,如果从键盘上分别输入 3 和 2,则输出结果是( )。 #includestdio.h main()

8、 int x; scanf(“%d“,do(printf(“%d“,x-=4) ;while(!(-X);程序的输出结果是( )。A) 1 B) 2 0 C) 1 -4 D) 死循环(分数:2.00)A.B.C.D.20.有如下程序:#include stdiohmain()int x=23;doPrintf(“%d“,x-);while(! x);该程序的执行结果是( )。A) 321 B) 23 C) 不输出任何内容 D) 陷入死循环(分数:1.00)A.B.C.D.21.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*P=x;,则错误引用 x 数组元素的是A)

9、 *p B) x5 C) *(p+1) D) *x(分数:2.00)A.B.C.D.22.下列程序的输出结果是( )。#includestdio.hint fun(int x)int a;if(x=0x=1)return 3;elsea=x-fun(x-2);return a;void main()printf(“%d“,fun(7);A) 2 B) 8 C) 9 D) 5(分数:2.00)A.B.C.D.23.以下程序的输出结果是( )。union myunstruciint x,y,z;u;int k;a;main()a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf

10、(“%d/n“,a.u.x);A4 B5 C6 D0(分数:1.00)A.B.C.D.24.设函数 fun 的定义形式为:void fun(char ch,float x)则以下对函数 fun 的调用语句中,正确的是_。A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8); D) fun(32,32);(分数:2.00)A.B.C.D.25.定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for(i=0; i3; i+)printf(“%d“,xi2-i);A) 1 5 9 B)

11、1 4 7 C) 3 5 7 D) 3 6 9(分数:2.00)A.B.C.D.26.有以下程序:main()int e=2,4,6,8,10,y=0,x,*p;p=a1;for(x=1;x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出结果是_。A) 10 B) 11C) 14 D) 15(分数:2.00)A.B.C.D.27.下列程序的输出结果是( )。#includestdio.hvoid main()int b6-2,4,6,8,10,12;int*p=b,*q=printf(“%d“,*(p+);printf(“%d,“,*q);A) 4,4 B) 2,2 C

12、) 4,5 D) 2,4(分数:2.00)A.B.C.D.28.下面程序的运行结果是#includestdio.hvoid delch(char *s)int i,j;char *a;a=S;for(i=0,j=0;ai!=/0;i+)if(ai=0 ,则以下语句中正确的是_。(A) pk=k;(B) pk0=k12;(C) pk=k0;(D) pk1=k;(分数:2.00)A.B.C.D.30.若有以下定义和语句:char s10=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),strlen(s2);则输出结果是( )。A5 5 B10 5 C

13、10 7 D5 8(分数:1.00)A.B.C.D.31.下列程序的输出结果是( )。#inCludestdio.hmain()charch25=“1234“,“5678“,*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=pij-0;printf(“%d“,s);A) 6357 B) 6135 C) 1357 D) 691357(分数:1.00)A.B.C.D.32.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。A) 整型表达式 B) 整型常量C) 整型常量或整型表达式 D)

14、任何类型的表达式(分数:2.00)A.B.C.D.33.有如下程序:main()int k=4, n=0;for(; nk; )n+;if(n% 3!=0)continue;k-; printf(“ % d, % d/n“, k, n);程序运行后的输出结果是_。A) 1, 1 B) 2, 2 C) 3, 3 D) 4, 4(分数:2.00)A.B.C.D.34.以下语句或语句组中,能正确进行字符串赋值的是_。A) char*sp;*sp=“right!“; B) char s10;s=“right!“;C) char s10;*s=“right!“; D) char*sp=“right!“;

15、(分数:2.00)A.B.C.D.35.下面程序的输出结果是( )。#includestdio.h#includestring.hmain()char p1=“WHO“,p2=“who“,str50=“xyz“;strcpy(str+1,strcat(p1,p2);printf(“%s“,str);A) xyzWHOwho B) zWHOwho C) zWHOwho D) xWHOwho(分数:2.00)A.B.C.D.36.有以下程序:#include stdio. h main ( )char s = “ABCD“, * p;for(p=s+1;ps+4;p+) pfintf(“ % s

16、/n“ ,p);A) ABCDBCDCDDB) ABCC) BCDD) BCDCDD(分数:1.00)A.B.C.D.37.若有下列说明和语句,已知 int 型数据占 2 个字节,则下列语句的输出结果是( )。struct stchar a15;int b;double c;printf(“%d“,sizeof (struct st);A) 15 B) 8 C) 25 D) 2(分数:1.00)A.B.C.D.38.对于下列定义,不正确的叙述是( )。union dataint a;char b;double c;x=y;A) 变量 x 所占内存的长度等于成员 c 的长度B) 变量 x 的地址

17、和它的各成员地址都是相同的C) 可以在定义时对 x 初始化D) 不能对变量 x 赋值,故 x=y 非法(分数:1.00)A.B.C.D.39.若有以下程序段:int r=8:print(“%d/n“,r1);输出结果是( )。A16 B8 C4 D2(分数:1.00)A.B.C.D.40.有以下程序#includestdio.hmain()FILE*fp;int k,n,i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);for(i=0;i6;i+)fprintfffp,“%d/n“,ai);fclose(fp);fp=fopen(“d2.dat“,“r“);for

18、(i=0;i3;i+)fscanf(fp,“%d%d“,fclose(fp);printf(“%d,%d/n“,k,n);程序运行后的输出结果是( )。A)1,2 B)3,4 C)5,6 D)123,456(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:34.00)41.在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、U /U遍历和后序遍历。(分数:2.00)填空项 1:_42.在最坏情况下,堆排序需要比较的次数为 1。(分数:2.00)填空项 1:_43.软件测试是保证软件质量的重要手段,而软件测试的主要和重要的测试方法是通过测试数据和U /U

19、的设计来实现。(分数:2.00)填空项 1:_44.当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种情况称为 1。(分数:2.00)填空项 1:_45.两种基本测试方法中, 1 测试的原因之一是保证所测试模块中每一个独立路径至少要执行一次。(分数:2.00)填空项 1:_46.下列表达式用于判断 y 是否为闰年。闰年的判断条件是:年号能被 4 整除但不能被 100 整除或年号能被 400 整除,请填空 1。(分数:2.00)填空项 1:_47.若变量 x、y 已定义为 int 类型且 X 的值为 33,y 的值为 3,请将输出语句 printf(_,x/y);补

20、充完整,使其输出的计算结果形式为:x/y=11。(分数:2.00)填空项 1:_48.函数 pi 的功能是根据以下近似公式求 值:*请在下面的函数中填空,完成求 的功能。#include math.hdouble pi(long n)double s = 0.0;long i;for(i = 1;i = n; i+) s = s +U /U;return (sqrt(6*s);(分数:2.00)填空项 1:_49.下列程序的输出结果是_。#includestdio.hmain()int x=1,y=1,a=1,b=1;switch(x)case 1:switch(y)case 0:a+;bre

21、ak;case 1:b+;break;case 2:a+;b+;break;printf(“a=%d,b=%d/n“,a,b);(分数:2.00)填空项 1:_50.当执行以下程序时,输入 1234567890回车,则其中 while 循环体将执行_次。#includestdiohmain()char ch;while(ch=getchar()=0)printf(“#“);(分数:2.00)填空项 1:_51.以下程序运行后的输出结果是_。#include stdio.hmain()int a=1,b=7;dob=b/2;a+=b;while (b1);printf(“%d/n“,a);)(分

22、数:2.00)填空项 1:_52.下面程序将二维数组 a 的行和列元素互换后存放到另一个二维数组 b 中,请填空。 main() int a23=1,2,3,4,5,b32,i,j; for(i=0;i2;i+) for(j=0;j3;j+) _; (分数:2.00)填空项 1:_53.以下程序的功能是:求出数组 x 中各相邻两个元素的和依次存放到 a 数组中,然后输出。请填空。main( )int x10,a9,i;for(i=0;i10;i+) scanf(“%d“,xi);for( 11 ;i10;i+)ai-1=xi+ 12 ;for(i=0;i9;i+) printf(“%d“,ai

23、);printf(“);(分数:4.00)填空项 1:_54.已有定义:double *p;,请写出完整的语句,利用 malloc 函数使 p 指向一个双精度型的动态存储单元 1。(分数:2.00)填空项 1:_55.以下程序的功能是:删去一维数组中所有相同的数,使相同的数只剩一个。数组中的数已按由小到大的顺序排列,函数 fun 返回删除后数组中数据的个数。例如,若一维数组中的数据是:2 2 2 3 4 4 5 6 6 6 6 7 7 8 9 9 10 10 10删除后,数组中的内容应该是:2 3 4 5 6 7 8 9 10。请填空。#include stdio.h#define N 80i

24、nt fun(int a, int n)int i,j=1;for(i=1;in;i+)if(aj-1U /U ai) aj+=ai;U /U;main()int aN=2,2,2,3,4,4,5,6,6,6,6,7,7,8,9,9,10,10,10,i,n=19;printf(“The original data :/n“);for(i=0;in;i+) printf(“%3d“,ai);n=fun(a,n);printf(“/nThe data after deleted :/n“);for(i=0; in; i+) printf(“%3d“,ai); printf(“/n/n“);(分数

25、:4.00)填空项 1:_二级 C 语言笔试-412 答案解析(总分:96.00,做题时间:90 分钟)一、选择题(总题数:40,分数:62.00)1.以下 4 组用户定义标识符中,全部合法的一组是 _。A)_mainencludesinB) If-maxturboC) txtREAL3COMD) intk_2_001(分数:2.00)A. B.C.D.解析:解析 选项 C 中有非法标示符-max,错误;选项 B 中有非法标示符 3COM;选项 D 中有非法标示符int。选项 A 正确。2.按照“先进后出”原则组织数据的数据结构是( )。A) 队列 B) 栈 C) 双向链表 D) 二叉树(分数

26、:2.00)A.B. C.D.解析:解析 栈是一种特殊的线性表,其插入和删除运算都只在线性表的一端进行,而另一端是封闭的。进行插入、删除的一端称为栈顶,封闭的一端称为栈底。栈顶元素是最后被插入的元素,不是最后被删除的,是按先进后出的原则组织数据的。3.检查软件产品是否符合需求定义的过程称为( )。A) 确认测试 B) 集成测试 C) 验证测试 D) 验收测试(分数:1.00)A. B.C.D.解析:解析 确认测试的任务是验证软件的功能柏性能及其他特性是否满足了需求规格说明中确定的各种需求以及软件配置是否完全、正确。4.结构化程序设计主要强调的是( )。A) 程序的规模 B) 程序的效率C) 程

27、序设计语言的先进性 D) 程序的易读性(分数:2.00)A.B.C.D. 解析:解析 程序不仅是编写完就结束了,为了测试和维护程序,往往还有其他人阅读和跟踪程序,因此程序设计的风格应该强调简单和清晰,即程序的易读性,“清晰第一,效率第二”。5.以下数据结构中不属于线性数据结构的是( )。A) 队列 B) 线性表 C) 二叉树 D) 栈(分数:1.00)A.B.C. D.解析:解析 线性表、栈和队列等数据结构所表达和处理的数据以线性结构为组织形式。栈是一种特殊的线性表,它只能在固定的一端进行插入和删除操作,又称后进先出表;队列是插入在一端进行,删除在另一端进行的线性表,又称先进先出表。6.下列数

28、据结构中,能用二分法进行查找的是( )。A) 顺序存储的有序线性表 B) 结性链表C) 二叉链表 D) 有序线性链表(分数:2.00)A. B.C.D.解析:解析 二分法查找只适用于顺序存储的有序线性表,对于顺序存储的非有序线性表和线性链表,都只能采用顺序查找。7.关系数据库管理系统能实现的专门关系运算包括( )。A) 排序、索引、统计 B) 选择、投影、连接C) 关联、更新、排序 D) 显示、打印、制表(分数:2.00)A.B. C.D.解析:解析 关系数据库管理系统的专门关系运算包括选择运算、投影运算和连接运算。8.下列叙述中正确的是_。A) 数据库系统是一个独立的系统,不需要操作系统的支

29、持B) 数据库系统的根本目标是要解决数据的共享问题C) 数据库管理系统就是数据库系统D) 以上三种说法都不对(分数:2.00)A.B. C.D.解析:解析 数据库系统(DBS)是由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。数据库技术的根本目标是解决数据的共享问题。9.设有定义:int k=1,m=2; float f=7;则以下选项中错误的表达式是 _。A) k=k=k B) -k+ C) k% int(f) D) k=f=m(分数:2.00)A.B.C. D.解析:解析 A、D 选项是关系运算表达式,在 C 语言中

30、,只要关系运算符两边是合法的表达式就可以了。C 选项中,%只能对整型进行运算,其中对 f 进行了强制类型转换,但是转换的表达式错了,应为:(int)(f)。10.下列数据中,不合法的 C 语言实型数据的是( )。A) 0.123 B) 123e3 C) 2.1e3.5 D) 789.0(分数:1.00)A.B.C. D.解析:解析 在 C 语言中,实数有两种表示形式。即十进制数形式和指数形式,在指数形式中,字母 e的前面必须有数字,且 e 的后面必须是整数。e3,2.1e3.5,e3,e 等都是不合法的指数形式,而 123e3或 123E3 都代表 123 乘以 10 的 3 次方。11.下列

31、叙述中错误的是_。(A) 计算机不能直接执行用 C 语言编写的源程序(B) C 程序经 C 编译后,生成后缀为.obj 的文件是一个二进制文件(C) 后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件(D) 后缀为.obj 和.exe 的二进制文件都可以直接运行(分数:1.00)A.B.C.D. 解析:12.下列叙述中正确的是( )。A)在赋值表达式中,赋值号的左边既可以是变量,也可以是任意表达式B)实型变量中允许存放整型数C)若 a 和 b 类型相同,在执行了赋值 a=b 后,b 中的值将放入 a 中,但 b 中的值不变D)在 C 程序中,求余运算符“%”两边的类型

32、相同时才能进行运算(分数:2.00)A.B. C.D.解析:解析 选项 A,在赋值表达式中,赋值号的左边只能是变量或者是代表某个存储单元的表达式,不能是任意表达式。在判断选项 B)时首先应该建立这样的概念,整型变量中只能存放整型数,实型变量中能存放实型数,也能存放整型数。选项 C),执行表达式 a=b 后,将把变量 b 存储单元中的值赋给变量a,从而覆盖 a 中原有的值,但 b 中原有的值并不改变。选项 D),在 C 程序中,求余运算符“%”两边的类型均为整型数据。13.有以下程序:#include stdio, hint a =2;int f(int n)static int a: 3;in

33、t t=0;if(n%2) static int a=4;t+ =a+;else static int a=5;t+ :a+;return t + a + +;main ( )int s=a,i;for(i=0;i3;i+)s + =f(i);prinff(“% d /n“ ,s); 程序运行后的输出结果是( )。A) 26 B) 28 C) 29 D) 24(分数:1.00)A.B.C. D.解析:解析 在函数外面定义的变量 a 是全局变量,其作用范围从定义该变量的位置开始到本文件的结束;在 f 函数中的 if 子句(复合语句)和 else 子句中定义的变量 a 是局部变量,其作用范围只在其

34、所在的复合语句内;在 f 函数中定义的第一个变量 a 是静态局部变量,其作用范围只限于函数 f 内部,无论被调用多少次都只初始化一次,并且保留上次函数调用结束时的值,该变量不对复合语句产生作用,所以,f函数的返回值是这个 a 变量和 t 值相加的结果。14.下列 4 个程序中,完全正确的是( )。 A) #includestdio.h main(); (/*programming*/ printf(“programming!/n“); B) # includestdio.h main() /*/programming/*/ printf(“programming!/n“); C) #inclu

35、destdio.h main() /*/programming*/*/ printf(“programming!/n“);) D) includestdio.h main() /*programming*/ printf(“programming!/n“);(分数:1.00)A.B. C.D.解析:解析 选项 A)中,main()函数后面的分号是错误的,C 语言在函数名后面不能有分号;在 C 语言中注释内容必须放在“/*”和“*/”之间,“/*”和“*/”必须成对出现,按语法规定在注释之间不可再嵌套“/*”和“*/”,选项 C)的程序段中注释语句之间有嵌套;C 语言用#include 命令行来

36、实现文件包含的功能。#include 命令行的形式为:#include“文件名”,选项 D)中的 include 前面少了一个#符号。15.若有以下定义和语句:int a=1,2,3,4,5,6,7,8,9,10,*p=a;则值为 3 的表达式是_。A) p+=2,*(p+) B) p+=2,*+pC) p+=3,*p+ D) p+=2,+*p(分数:1.00)A. B.C.D.解析:评析 引用一个数组元素,可以用:(1)下标法,如 ai形式;(2)指针法,如*(a+i)或*(p+i)。数组的下标从 0 开始,值为 3 的数组元素是 a2。B、C 的内容为 a3,D 将 a2前自加,结果为 4

37、。16.假定 x 和 y 为 double 型,则表达式 x=2,y=x+3/2 的值是( )。A3.500000 B3C2.000000 D3.000000(分数:1.00)A.B.C.D. 解析:解析 在 x=2,y=x+3/2 中,3/2=1,2+1=3,因此表达式的值为 3,因为 x,y 为 double 型变量,故选择 D 选项。17.两次运行下面的程序,如果从键盘上分别输入 3 和 2,则输出结果是( )。 #includestdio.h main() int x; scanf(“%d“,do(printf(“%d“,x-=4) ;while(!(-X);程序的输出结果是( )。A

38、) 1 B) 2 0 C) 1 -4 D) 死循环(分数:2.00)A.B.C. D.解析:解析 本题考查 dowhile 循环。执行 printf 语句,x=x-4=1,输出 1,判断 while 循环的控制条件,-x=0,则(!(-x)非零,循环条件成立,执行下一次循环;执行 printf 语句,x=x-4=-4,输出-4,判断 while 循环的控制条件,-X=-5,则(!(-X)为零,循环条件不成立,结束循环。20.有如下程序:#include stdiohmain()int x=23;doPrintf(“%d“,x-);while(! x);该程序的执行结果是( )。A) 321 B

39、) 23 C) 不输出任何内容 D) 陷入死循环(分数:1.00)A.B. C.D.解析:解析 do-while 语句的执行过程中要先执行一次循环体语句,本题中执行 x-后判断 while 中的表达式,表达式的值!x 为假,程序结束循环。21.若有定义语句:double x5=1.0,2.0,3.0,4.0,5.0,*P=x;,则错误引用 x 数组元素的是A) *p B) x5 C) *(p+1) D) *x(分数:2.00)A.B. C.D.解析:解析 数组 x 有 5 个元素,下标范围为 04,选项 B 下标越界。22.下列程序的输出结果是( )。#includestdio.hint fu

40、n(int x)int a;if(x=0x=1)return 3;elsea=x-fun(x-2);return a;void main()printf(“%d“,fun(7);A) 2 B) 8 C) 9 D) 5(分数:2.00)A. B.C.D.解析:解析 本题考查函数的递归调用。在函数递归调用时,fun(7):a=7-fun(5)fun(5):a=5-fun(3)fun3:a=3-fun(1)fun(1):a=3,反推回去 fun(3):a=3-30fun(5):a=5-0=5fun(7):a=7-5=2,最后的计算结果为 223.以下程序的输出结果是( )。union myunstr

41、uciint x,y,z;u;int k;a;main()a.u.x=4;a.u.y=5;a.u.z=6;a.k=0;printf(“%d/n“,a.u.x);A4 B5 C6 D0(分数:1.00)A.B.C.D. 解析:解析 因为 a 是结构体变量,最后一次输入的值为结构体中的值,即 a 中的任何一个值都为 0。24.设函数 fun 的定义形式为:void fun(char ch,float x)则以下对函数 fun 的调用语句中,正确的是_。A) fun(“abc“,3.0); B) t=fun(D,16.5);C) fun(65,2.8); D) fun(32,32);(分数:2.00

42、)A.B.C.D. 解析:解析 函数调用时,函数名必须与所调用的函数名完全一致且实参的个数必须与形参的个数一致,类型上也应按位置与形参一一对应匹配。选项 A 中 abc 是字符串,与形参不匹配;由于 fun 函数的返回值类型为 vold,所以选项 B 中进行了赋值操作是不正确的;选项 C 中的65是不合法的表示形式,单引号中应该是单个字符。所以只有选项 D 是合法的函数调用形式。25.定义如下变量和数组:int i;int x33=1,2,3,4,5,6,7,8,9;则下面语句的输出结果是( )。for(i=0; i3; i+)printf(“%d“,xi2-i);A) 1 5 9 B) 1

43、4 7 C) 3 5 7 D) 3 6 9(分数:2.00)A.B.C. D.解析:命题目的 考查二维数组元素的引用方法。解题要点 题中通过二维数组的行、列下标来定位元素的位置,从而实现元素的引用。考点链接 二维数组和数组元素的值。26.有以下程序:main()int e=2,4,6,8,10,y=0,x,*p;p=a1;for(x=1;x3;x+)y+=px;printf(“%d/n“,y);程序运行后的输出结果是_。A) 10 B) 11C) 14 D) 15(分数:2.00)A.B.C. D.解析:解析 指针变量 p 指向数组元素 a1,则 p1即为 a2,p2即为 a3,执行第一次 f

44、or 循环时,y=y+p1=0+a2=6,第二次执行 for 循环,y=y+p2=6+a3=14,此时 x 为 3,for 循环条件不满足,退出循环,输出 y 的值为 14。27.下列程序的输出结果是( )。#includestdio.hvoid main()int b6-2,4,6,8,10,12;int*p=b,*q=printf(“%d“,*(p+);printf(“%d,“,*q);A) 4,4 B) 2,2 C) 4,5 D) 2,4(分数:2.00)A.B.C.D. 解析:解析 首先定义了一个指向一维数组 b 的指针 p,一个指向指针 p 的指针变量 q,输出*(p+)是先输出*p

45、 即 b0的值,再将指针 p 指向数组的下一个元素 b1,输出 *q 是输出指针 p 所指单元的内容,即 b1的值。28.下面程序的运行结果是#includestdio.hvoid delch(char *s)int i,j;char *a;a=S;for(i=0,j=0;ai!=/0;i+)if(ai=0 ,则以下语句中正确的是_。(A) pk=k;(B) pk0=k12;(C) pk=k0;(D) pk1=k;(分数:2.00)A.B. C.D.解析:30.若有以下定义和语句:char s10=“abcd!“,*s2=“/n123/“;printf(“%d%d/n“,strlen(s1),

46、strlen(s2);则输出结果是( )。A5 5 B10 5 C10 7 D5 8(分数:1.00)A. B.C.D.解析:解析 /n 和/分别为转义字符,各占据一个字符的位置。31.下列程序的输出结果是( )。#inCludestdio.hmain()charch25=“1234“,“5678“,*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=pij-0;printf(“%d“,s);A) 6357 B) 6135 C) 1357 D) 691357(分数:1.00)A.B.C. D.解析:解析 本题先将指针 p 指向二维数组 ch25,相当于 p0=“1234“,p1=“5678“,通过双重for 循环,是要将 p 中的字符隔一个输出一个,通过 s=pij-0这条语句是将所要输出的字符转换成相应的+进制数。32.在 C 语言中,引用数组元素时,其数组下标的数据类型允许是( )。A) 整型表达式 B) 整型常量C) 整型常量或整型表达式 D) 任何类型的表达式(分数:2.00)A.B.C. D.解析:

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