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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、二级 C语言笔试-356 及答案解析(总分:108.00,做题时间:90 分钟)一、选择题(总题数:50,分数:66.00)1.下面程序main()int x=32;printf(“%d/n“,x=x1);的输出是_。A) 100 B) 160 C) 120 D) 64(分数:2.00)A.B.C.D.2.在 Windows菜单中,暗淡(灰色)的命令项表示该命令A) 暂时不能用B) 正在执行 C) 包含下一层菜单 D) 包含对话框(分数:1.00)A.B.C.D.3.以下程序运行后,输出结果为_。main()int y=18,i=0 j,a8;doai=y%2; i+; y=y/2;while

2、(y=1);for(j=1-1;j=0;j-)printf(“%d“,aj);printf(“/n“);A) 10000 B) 10010 C) 00110 D) 10100(分数:1.00)A.B.C.D.4.下列不是合法的 C语言语句是( )。A) a=5 B) int i;i+;C) ; D) ;(分数:2.00)A.B.C.D.5.设有如下函数:fun(floatx)x*=x+;printf(“%d/n“,x);return(x);则函数的类型是_。A) float B) voidC) int D) 无法确定(分数:1.00)A.B.C.D.6.有如下程序main()int x=1,a

3、=0,b=0;switch(x)case 0:b+;case 1:a+;case2:a+;b+;printf(“a%d,b=%d/n“,a,B) ;该程序的输出结果是_。A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A.B.C.D.7.下列 4项说法中,不正确的是_。A) 数据库减少了数据冗余 B) 数据库中的数据可以共享C) 数据库避免了一切数据的重复 D) 数据库具有较高的数据独立性(分数:1.00)A.B.C.D.8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指_。A) 数据与程序独立存放B) 不同的数据被存放在不同的

4、文件中C) 不同的数据只能被对应的应用程序所使用D) 以上三种说法都不对(分数:2.00)A.B.C.D.9.若有以下定义和语句,则输出结果是char s110=“abed!“, *s2=“/n123/“;printf(“%d %d/n“, strlen(s1), strlen(s2);A) 5 5 B) 10 5 C) 10 7 D) 5 8(分数:2.00)A.B.C.D.10.设 a和 b均为 double型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是A) 6.500000 B) 6 C) 5.500000 D) 6.000000(分数:1.00)A.B.C.D

5、.11.按通信距离划分,计算机网络可以分为局域网和广域网。下列网络中属于局域网的是 ( )A) InternetB) CERNETC) NovellD) CHINANET(分数:1.00)A.B.C.D.12.下列关于线性表的叙述中,不正确的是( )。 A) 线性表可以是空表 B) 线性表是一种线性结构 C) 线性表的所有结点有且仅有一个前件和后件 D) 线性表是由 n个元素组成的一个有限序列(分数:2.00)A.B.C.D.13.下列程序的输出结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*a);A) -8 B) 14 C

6、) 0 D) -24(分数:2.00)A.B.C.D.14.若有定义语句:int k23, *pk3; ,则以下语句中正确的是( )。A) pk=k; B) pk0=k12; C) pk=k0; D) pk1=k;(分数:1.00)A.B.C.D.15.设已有定义:float x; 则以下对指针变量 p进行定义且赋初值的语句中正确的是_。A) float *p=1024;B) int *p=(float)x;C) float p=x;D) float *p=x;(分数:2.00)A.B.C.D.16.若有下面的说明和定义,则 sizeof(struct aa )的值是_。struct aain

7、t rl; double r2; float r3;unin uuchar ul5; long u22ua;mya;A) 30 B) 29 C) 24 D) 22(分数:2.00)A.B.C.D.17.已定义以下函数:fun (Char* p2, char* p1)while (*p2=*p1) != /0) p1+;p2+; 函数的功能是( )。A) 将 p1所指字符串复制到 p2所指内存空间 B) 将 p1所指字符串的地址赋给指针 p2C) 对 p1和 p2两个指针所指字符串进行比较 D) 检查 p1和 p2两个指针所指字符串中是否有/0,(分数:1.00)A.B.C.D.18.有下列程序

8、段:int k=0,a=1,b=2,c=3;k=ab?b:a;k=kc?c=k;执行该程序段后,k 的值是( )。A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B.C.D.19.有下列程序:#includestdio.hstructstint(x,y)date2=1,10,2,20;main()structst*p=date;printf(“%d,“,p-y);printf(“%d/n“,(+p)-x);程序的运行结果是( )。A) 10,1 B) 20,1 C) 10,2 D) 20,2(分数:1.00)A.B.C.D.20.C语言库函数 fgets(str,n,fp)的功能是

9、_。A) 从 fp指向的文件中读取长度 n的字符串存入 str指向的内存B) 从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存C) 从 fp指向的文件中读取 n个字符串存入 str指向的内存D) 从 str读取至多 n个字符到文件 fp(分数:1.00)A.B.C.D.21.下列程序的运行结果是( )。main()int a=-5,b=1,c=1;int x=0,Y=2,z=0;if(c0)x=x+ y;if(a=0)if(b0)if(c=0)y=x-y;else if(c0)Y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);A) 2,

10、2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A.B.C.D.22.有下列程序:main()int k5;while(-k) printf(“%d“,k-3);printf(“/n“);执行后的输出结果是( )。A) 1 B) 2 C) 4 D) 死循环(分数:2.00)A.B.C.D.23.C语言中,组成数据文件的成分是_。A) 记录 B) 数据行 C) 数据块 D) 字符(字节)序列(分数:1.00)A.B.C.D.24.下列叙述中正确的是A) 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B) 顺序存储结构只针对线性结构,链式存储结构

11、只针对非线性结构C) 顺序存储结构能存储有序表,链式存储结构不能存储有序表D) 链式存储结构比顺序存储结构节省存储空间(分数:2.00)A.B.C.D.25.以下不正确的定义语句是( )。A) double x5=2.0, 4.0, 6.0, 8.0, 10.0; B) int y5=0, 1, 3, 5, 7, 9; C) char c1=1, 2, 3, 4, 5; D) char c2=/x10, /xa, /x8;(分数:1.00)A.B.C.D.26.下列程序的输出结果是#include“stdio.h“#define M(x,y) x%ymain()int a,m=12,n=100

12、;a=M(n,m);printf(“%d/n“,a-);A) 2 B) 3 C) 4 D) 5(分数:2.00)A.B.C.D.27.有以下程序#include stdio.hvoid fun(int *a, int n)/* fun 函数的功能是将 a所指数组元素从大到小排序*/int t, i,j;for (i=0; in-1 ;i+)for 0=i+l; 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 (i=0;i10; i+) printf(“%d,“, ci

13、);printf(“/n“);A) 1,2,3,4,5,6,7,8,9,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,9,8,7,6,5,0,(分数:1.00)A.B.C.D.28.待排序的关键码序列为(15,20,9,30,67,65,45,90),要按关键码值递增的顺序排序,采取简单选择排序法,第一趟排序后关键码 15被放到第( )个位置。 A) 2 B) 3 C) 4 D) 5(分数:2.00)A.B.C.D.29.有以下程序:#includevoid WriteStr(char *fn,char*str)FIL

14、E*fp;fp=fopen(fn,“w“);fputs(str,fp);fclose(fp);main()WriteStr(“t1.dat“,“start“);WriteStr(“t1.dat“,“end“);程序运行后,文件 t1.dat中的内容是_。A) start B) end C) startend D) endrt(分数:2.00)A.B.C.D.30.若有以下定义和语句: ( )ints45(* ps)5;ps=s;则对 s数组元素的正确引用形式是Apsq+1B*(ps+3)Cps02D*(ps+1)+3(分数:1.00)A.B.C.D.31.有以下程序#includestdioh

15、int f(int t,int n);main()inta4=1,2,3,4,s;s=f(a,4);printf(“%d/n“,s);int f(int t,int n)if(n0)returntn-1+f(t,n-1);else return 0;程序运行后的输出结果是A) 4 B) 10 C) 14 D) 6A.B.C.D.32.以下能正确定义一维数组的选项是A) int a5=0,1,2,3,4,5 B) char a=0,1,2,3,4,5,/0;C) char a=A,B,C; D) int a5=“0123“;(分数:1.00)A.B.C.D.33.有以下程序#includestd

16、io.h#define PT3.5;#define S(x)PT*x*x;main()inta=1,b2; printf(“%4.1f/n“,S(a+b); 程序运行后的输出结果是_。A) 14.0 B) 31.5 C) 7.5 D) 程序有错无输出结果(分数:2.00)A.B.C.D.34.以下叙述中错误的是( )。A) C语言中对二进制文件的访问速度比文本文件快B) C语言中,随机文件以二进制代码形式存储数据C) 语句 FILE fp;定义了一个名为 fp的文件指针D) C语言中的文本文件以 ASCII码形式存储数据(分数:1.00)A.B.C.D.35.有以下程序:main()int x

17、,i;for(i=1;i=50;i+)x=i:if(x%2=0)if(x%3=0)if(x%7=0)printf(“%d“,i);输出结果是( )。A) 28 B) 27 C) 42 D) 41(分数:1.00)A.B.C.D.36.若有以下的说明,对初值中整数 2的正确引用方式是( )。static structchar ch;int i;double x;a23=aa,1,3,4,5,b,2,7,9,8,c,31,93;A)a01.ch B)a01.i C)a00.i D)a02.i(分数:1.00)A.B.C.D.37.若有说明语句:double*P,a;则能通过 scanf语句正确给输

18、入项读入数据的程序段是_。A) *p=a;scanf(“%lf“,p); B) *p=scanf(“%f“,p);C) p=scanf(“%lf“,*p); D) p=a;scanf(“%lf“,p);(分数:2.00)A.B.C.D.38.有以下程序:main()unsigned int a;int b=-1;a=b;printf(“%u“,a);程序运行后的输出结果是( )。A) -1 B) 65535 C) 32767 D) -32768(分数:1.00)A.B.C.D.39.已有定义“char c;”,程序前面已在命令行中包含 ctype.h文件,不能用于判断 c中的字符是否为大写字母

19、的表达式是( )。Aisupper(c) BA-c=ZCA=cint i,j;i=sizeof(a);j=strlen(a);printf(“%d,%d“,i,j);A) 7,7 B) 7,6 C) 6,6 D) 6,7(分数:2.00)A.B.C.D.41.以下程序有错,错误原因是main()int*p,i;char*q,ch;p=printf(“%d/n“,MA(1+a+b);A) 5 B) 6 C) 7 D) 8(分数:1.00)A.B.C.D.43.当调用函数时,实参是一个数组名,则向函数传送的是 _。A) 数组的长度 B) 数组的首地址C) 数组每一个元素的地址 D) 数组每个元素中

20、的值(分数:1.00)A.B.C.D.44.以下叙述正确的是( )。A) continue语句的作用是结束整个循环的执行B) 只能在循环体内和 switch语句体内使用 break语句C) 在循环体内使用 break语句或 continue语句的作用相同D) 从多层循环嵌套中退出时,只能使用 goto语句(分数:1.00)A.B.C.D.45.有以下程序:#include stdio.hmain()FILE *fp; int i, a6=1,2,3 ,4,5,6;fp=fopen(“d3.dat“,“w +b“);fwrite(a,sizeof(int), 6, fp);fseek(fp, s

21、izeof(int)*3, SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3个 int型数据*fread(a, sizeof(int), 3, fp); fclose(fp);for(i=0; i6; i+) printf(“%d,“, ai);程序运行后的输出结果是A) 4,5,6,4,5,6, B) 1,2,3,4,5,6,C) 4,5,6,1,2,3, D) 6,5,4,3,2,1,(分数:1.00)A.B.C.D.46.有以下程序fun(char p10)int n=0,i;for(i=O;i7;i)if(piO=T)n;return n;main()char st

22、r10=“Mon“,“Tue“,“Wed“,“Thu“,“Fri“, “Sat“,“Sun“;printf(“%d/n“,fun(str);A) 1 B) 2 C) 3 D) 0(分数:1.00)A.B.C.D.47.某一个汉字的区位码为(2113H),则其内码为 ( )A) (2199)10B) (C1B3H)C) (C1B3)10D) (B1B3H)(分数:1.00)A.B.C.D.48.下列程序的输出结果是 _。main()int i=3; switch(i)case 1:casc 2: printf(“%d“,i);case 3:case 4: break;defanlt:printf

23、(“OK“);A) 0 B) 3 C) OK D) 没有任何输出(分数:1.00)A.B.C.D.49.下面的函数调用语句中,func 函数的实参个数是_。func(f2(v1,v2),(v3,v4,v5),(v6,max(v7,v8);A) 3 B) 4 C) 5 D) 8(分数:2.00)A.B.C.D.50.对长度为 n的线性表进行顺序查找,在最坏情况下,所需要的比较次数为A) log2n B) n/2 C) n D) n+1(分数:1.00)A.B.C.D.二、填空题(总题数:20,分数:42.00)51.在长度为 n的有序线性表中进行二分查找,最坏的情况下,需要的比较次数为 1。(分

24、数:2.00)填空项 1:_52.栈的基本运算有三种:入栈、退栈和_。(分数:2.00)填空项 1:_53.算法的复杂度主要包括 1 复杂度和空间复杂度。(分数:2.00)填空项 1:_54.结构化程序设计的 3种基本结构分别是顺序、选择和 1。(分数:2.00)填空项 1:_55. 1是数据库应用的核心。(分数:2.00)填空项 1:_56.用 1 结构表示实体及实体之间联系的数据模型称为关系模型。(分数:2.00)填空项 1:_57.以下程序通过函数 sunFun求 (分数:1.00)填空项 1:_58.以下程序中,函数 SumColumMin的功能足:求出 M行 N列二维数组每列元素中的

25、最小值,并计算它们的和值。和值通过形参传回主函数输出。请填空。#define M 2#define N 4void SumColumMm(int aMN,int*sum)int i,j,k,s=0;for(i=0;iN;i+)k=0;for(j=1;jM;j+)if(akiaji)k=j;s+=_;_=s;main()int xMn)=3;,5,1,4,1,8,3,s;SumC01umMm(_);ptintf(“%d/n“,s);(分数:2.00)填空项 1:_59.以下程序的输出结果是_。#include string.hmain()printf(“%d/n“ ,strlen(“IBM/n0

26、12/1/“);(分数:4.00)填空项 1:_60.以下程序运行后的输出结果是_。main()int p7=(11,13,14,15,16,17,18);int i=0,j=0;while(i7printf(“%d/n“,j);(分数:2.00)填空项 1:_61.函数 main()的功能是:在带头节点的单链表中查找数据域中值最小的节点。请填空。#includestdio.hstruct nodeint data;struct node*next;int mainstruct node*first)/*指针 first为链表头指针*/struct node*p;int m;P=first-n

27、ext;m=P-data;p=p-next;for(;P!=NULL;p=_)if(p-datam)m=p-data;return m;(分数:2.00)填空项 1:_62.深度为 5的满二叉树中,叶子结点的个数为 1。(分数:2.00)填空项 1:_63.以下函数把 b字符串连接到 a字符串的后面,并返回 a中新字符串的长度。请填空。strcen (char a ,char b )int num0,n0;while (*(a+num)! 1)num+ +;while(bn)* (a+num) bn;num+ +; 2);return(num);(分数:1.00)填空项 1:_64.阅读下面程

28、序,则执行后的输出结果是_。#include “stdio.h“main()int x,y,z;x=1;y=2;z=3;if(xy)if(xz)printf(“%d“,x);else printf(“%d“,y);printf(“%d/n“,z);(分数:2.00)填空项 1:_65.以下 fun函数的功能是在 N行 M列的整型二维数组中,选出一个最大值作为函数值返回,请填空。(设 M,N 已定义) int fun(int aNM) int i,j,row=0,co1=0; for(i=0;iN;i+) for(i=0;jM;j+) if(aijarowco1)row=i;co1=j; ret

29、urn_; (分数:2.00)填空项 1:_66.以下程序的输出结果是_。#include stdio.hunsigned fun6(unslgned num)unsigned k=1;dok * =mum%10;num/=10;while (num);return k;main()unsigned n=26;printf(“%d/n“,fan6(n);(分数:2.00)填空项 1:_67.函数 delete(s,i,n)的作用是从字符串 s中删除从第 i个字符开始的 n个字符,请填空。void delete(char s,int i,int n)int j,k,length=0;while(

30、slength)_;-i;j=i;If(_)k=i+n;if(i+n=length)while(klength)sj+=sk+;sj=/0;(分数:4.00)填空项 1:_68.以下程序运行后的输出结果是 1。main ( )char a=“Language“,b=“Programe“;char *p1,*p2; int k;p1=a; p2=b;for(k=0;k=7;k+)if(*p1+k)=*(p2+k) printf(“%c“,*(p1+k);(分数:1.00)填空项 1:_69.在 E-R图中,矩形表示 1。(分数:2.00)填空项 1:_70.有以下程序main()int t=1,

31、i=5;for( ; i=0; i-) t*=i;printf(“%d/n“,t);执行后输出结果是_。(分数:3.00)填空项 1:_二级 C语言笔试-356 答案解析(总分:108.00,做题时间:90 分钟)一、选择题(总题数:50,分数:66.00)1.下面程序main()int x=32;printf(“%d/n“,x=x1);的输出是_。A) 100 B) 160 C) 120 D) 64(分数:2.00)A.B.C.D. 解析:解析 是 C语言中规定的左移运算符,例如,a=a2,这个语句即是将 a的二进制数左移两位,左移一位相当于该数乘于 2,左移两位相当于该数乘以 2的 2次方

32、。所以,x1=32*2=64。2.在 Windows菜单中,暗淡(灰色)的命令项表示该命令A) 暂时不能用B) 正在执行 C) 包含下一层菜单 D) 包含对话框(分数:1.00)A. B.C.D.解析:3.以下程序运行后,输出结果为_。main()int y=18,i=0 j,a8;doai=y%2; i+; y=y/2;while(y=1);for(j=1-1;j=0;j-)printf(“%d“,aj);printf(“/n“);A) 10000 B) 10010 C) 00110 D) 10100(分数:1.00)A.B. C.D.解析:4.下列不是合法的 C语言语句是( )。A) a=

33、5 B) int i;i+;C) ; D) ;(分数:2.00)A. B.C.D.解析:解析 选项 A) 是一个表达式,它后面没有分号结尾(C 语言中规定语句必须以分号结束),所以它不是语句;选项 B) 用一个花括号把几条语句括起来了,这是一个复合语句;选项 C) 中只有一个分号,是一个空语句;选项 D) 是个复合语句,也是一个空语句。5.设有如下函数:fun(floatx)x*=x+;printf(“%d/n“,x);return(x);则函数的类型是_。A) float B) voidC) int D) 无法确定(分数:1.00)A.B.C. D.解析:解析 函数 fun缺省返回值类型时,

34、系统将默认为 int型。形参 x是 float型,和函数返回值类型不一致,此时,以函数返回值类型为准。6.有如下程序main()int x=1,a=0,b=0;switch(x)case 0:b+;case 1:a+;case2:a+;b+;printf(“a%d,b=%d/n“,a,B) ;该程序的输出结果是_。A) a=2,b=1 B) a=1,b=1 C) a=1,b=0 D) a=2,b=2(分数:1.00)A. B.C.D.解析:解析 在这个 switch语句中,因为 x的值为 1,所以执行 case1:后面的 a+,这样 a=1。但又由于其下没有 break语句,所以其后面的语句“

35、a+;b+”也将被执行,这样一来,a=2,b=1。7.下列 4项说法中,不正确的是_。A) 数据库减少了数据冗余 B) 数据库中的数据可以共享C) 数据库避免了一切数据的重复 D) 数据库具有较高的数据独立性(分数:1.00)A.B.C. D.解析:解析 数据库系统具有以下 4个特点:数据的集成性、数据的高共享性与低冗余性、数据的独立性、数据统一管理与控制。8.数据独立性是数据库技术的重要特点之一。所谓数据独立性是指_。A) 数据与程序独立存放B) 不同的数据被存放在不同的文件中C) 不同的数据只能被对应的应用程序所使用D) 以上三种说法都不对(分数:2.00)A.B.C.D. 解析:解析 数

36、据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。数据独立性一般分为物理独立性与逻辑独立性两级。9.若有以下定义和语句,则输出结果是char s110=“abed!“, *s2=“/n123/“;printf(“%d %d/n“, strlen(s1), strlen(s2);A) 5 5 B) 10 5 C) 10 7 D) 5 8(分数:2.00)A. B.C.D.解析:解析 strlen 函数的作用是求出字符串的实际长度。字符串“abcd!“的实际长度为 5,字符串“/n123/“的实际

37、长度也为 5(/n为 1个字符,/为 1个字符)。10.设 a和 b均为 double型变量,且 a=5.5、b=2.5,则表达式(int)a+b/b 的值是A) 6.500000 B) 6 C) 5.500000 D) 6.000000(分数:1.00)A.B.C.D. 解析:解析 本题考查的知识点是运算符的优先级。在这个表达式中,优先级最高的是(int)a,也就是对 5.5取整,结果是 5,其次是 b/b,即 2.5/2.5,结果是 1.000000,最后相加结果为 6.000000(表达式的最终结果为实型),所以 4个选项中 D正确。11.按通信距离划分,计算机网络可以分为局域网和广域网

38、。下列网络中属于局域网的是 ( )A) InternetB) CERNETC) NovellD) CHINANET(分数:1.00)A.B.C. D.解析:12.下列关于线性表的叙述中,不正确的是( )。 A) 线性表可以是空表 B) 线性表是一种线性结构 C) 线性表的所有结点有且仅有一个前件和后件 D) 线性表是由 n个元素组成的一个有限序列(分数:2.00)A.B.C. D.解析:解析 线性表是一种线性结构,由 n(n0)个元素组成,所以线性表可以是空表。但是在线性表中,第一个结点没有前件,最后一个结点没有后件,其他结点有且只有一个前件和后件。所以选项 C)是错误的。13.下列程序的输出

39、结果是( )。#includestdio.hmain()int a=4;printf(“%d/n“,(a+=a-=a*a);A) -8 B) 14 C) 0 D) -24(分数:2.00)A.B.C.D. 解析:解析 表达式 a+=a-=a*a看起来复杂,其实将它分成两个表达式来计算就简单了:第一个表达式 (a-=a*a)=(a=a-a*a=-12);第二个表达式(a+=a-=a*a)=(a=a+a=-24)。14.若有定义语句:int k23, *pk3; ,则以下语句中正确的是( )。A) pk=k; B) pk0=k12; C) pk=k0; D) pk1=k;(分数:1.00)A.B.

40、 C.D.解析:解析 本题考查的是指针数组的运用。pk 是指针数组名,是一个常量,不能被赋值,因此选项 A)和 C)都不正确。pk 中的元素是 int型指针,而二维数组名是指向一维数组的指针常量,即行指针,两者之间不可隐式转换,所以选项 D)的赋值是错误的。故应该选择 B)。15.设已有定义:float x; 则以下对指针变量 p进行定义且赋初值的语句中正确的是_。A) float *p=1024;B) int *p=(float)x;C) float p=x;D) float *p=x;(分数:2.00)A.B.C.D. 解析:16.若有下面的说明和定义,则 sizeof(struct aa

41、 )的值是_。struct aaint rl; double r2; float r3;unin uuchar ul5; long u22ua;mya;A) 30 B) 29 C) 24 D) 22(分数:2.00)A.B.C.D. 解析:解析 结构体变量所占内存长度是各成员占的内存长度之和,每个成员分别占有自己的内存单元;共用体变量所占的内存长度等于最长的成员的长度。结构体变量 aa中,成员 r1占 2个字节,r2 占 8个字节,r3 占 4个字节,共用体 ua占 8个字节,所以共占用 2+8+4+8=22个字节。17.已定义以下函数:fun (Char* p2, char* p1)whil

42、e (*p2=*p1) != /0) p1+;p2+; 函数的功能是( )。A) 将 p1所指字符串复制到 p2所指内存空间 B) 将 p1所指字符串的地址赋给指针 p2C) 对 p1和 p2两个指针所指字符串进行比较 D) 检查 p1和 p2两个指针所指字符串中是否有/0,(分数:1.00)A. B.C.D.解析:解析 fun()函数中声明了两个字符串指针作为形参,在其函数体中用了一个 while 循环,首先while 括号内表达式*p2=*p1 是将 p1所指的内容赋值到 p2所指的存储空间中,然后在判断是否为 /0,表达式的值为真时,执行循环体,指针 p1和 p2分别下移一位,当 p1指

43、向字符/n时,表达式的值为假,循环结束,故此函数的功能是将 p1所指字符串复制到 p2所指内存空间中。所以,4 个选项中选项 A符合题意。18.有下列程序段:int k=0,a=1,b=2,c=3;k=ab?b:a;k=kc?c=k;执行该程序段后,k 的值是( )。A) 3 B) 2 C) 1 D) 0(分数:1.00)A.B. C.D.解析:解析 因为 ab 成立,所以条件表达式 ab?b:a 的值等于 b的值等于 2,因此变量 k的值等于2。又因为 k=2c=3 不成立,所以条件表达式 kc?c:k 的值等于 k的值等于 2。把条件表达式kc?c:k 的值赋给变量 k,因而变量 k的值等

44、于 2。因此,选项 B) 为正确答案。19.有下列程序:#includestdio.hstructstint(x,y)date2=1,10,2,20;main()structst*p=date;printf(“%d,“,p-y);printf(“%d/n“,(+p)-x);程序的运行结果是( )。A) 10,1 B) 20,1 C) 10,2 D) 20,2(分数:1.00)A.B.C. D.解析:解析 data2是两个结构体组成的数组,p 指向结构体数组的首地址,p-y 访问第一个结构体的第二个元素;(+p)x 访问第二个结构体的第一个元素。所以输出为 10.2。20.C语言库函数 fget

45、s(str,n,fp)的功能是_。A) 从 fp指向的文件中读取长度 n的字符串存入 str指向的内存B) 从 fp指向的文件中读取长度不超过 n-1的字符串存入 str指向的内存C) 从 fp指向的文件中读取 n个字符串存入 str指向的内存D) 从 str读取至多 n个字符到文件 fp(分数:1.00)A.B. C.D.解析:解析 fgets 函数的作用是从指定的文件读入一个字符串。fgets(str,n,fp);中的 n为要求得到的字符的个数,但只从 fp指向的文件输入 n-1个字符,然后在最后加个/0字符,因此得到的字符串共有 n个字符。21.下列程序的运行结果是( )。main()i

46、nt a=-5,b=1,c=1;int x=0,Y=2,z=0;if(c0)x=x+ y;if(a=0)if(b0)if(c=0)y=x-y;else if(c0)Y=x-y;else z=y;printf(“%d,%d,%d/n“,x,y,z);A) 2,2,0 B) 2,2,2 C) 0,2,0 D) 2,0,2(分数:1.00)A. B.C.D.解析:解析 本题考查 if else语句的使用。 先判断第 1个 if语句,因为 c=10,所以 x=x+ y=0+2=2。第 1个 if语句,因为 a=-50,所以进入下列的复合语句。经判断发现,复合语句中第 2个 if语句的条件均不满足,不执行任何语句退出,在这个过程中 y和 z的值没有发生变化。22.有下列程序:main()int k5;while(-k) printf(“%d“,k-3);printf(“/n“);执行后的输出结果是( )。A) 1 B) 2 C) 4 D) 死循环(分数:2.00)A. B.C.D.解析:解析 在程序语句中,k 的初始值为

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