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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2005年4月及答案解析.doc

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

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

    【计算机类职业资格】全国计算机等级考试二级C语言真题2005年4月及答案解析.doc

    1、全国计算机等级考试二级 C 语言真题 2005 年 4 月及答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.数据的存储结构是指 _。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示2.下列关于栈的描述中错误的是 _。(分数:1.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针3.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 _。(分数:1.00)A.冒泡排序为

    2、n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n-1)/24.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为 _。(分数:1.00)A.log2nB.n/2C.nD.n+15.下列对于线性链表的描述中正确的是 _。(分数:1.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的6.下列对于软件测试的描述中正确的是 _。(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是

    3、使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误D.软件测试的目的是使程序符合结构化原则7.为了使模块尽可能独立,要求 _。(分数:1.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强8.下列描述中正确的是 _。(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合9.数据独立性是数据库技术的重要特点之一,所谓数据独立

    4、性是指 _。(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对10.用树形结构表示实体之间联系的模型是 _。(分数:1.00)A.关系模型B.网状模型C.层次模型D.以上三个都是11.算法具有五个特性,以下选项中不属于算法特性的是 _。(分数:1.00)A.有穷性B.简洁性C.可行性D.确定性12.以下选项中可作为 C 语言合法常量的是 _。(分数:1.00)A.-80B.-080C.-8e1.0D.-80Oe13.以下叙述中正确的是 _。(分数:1.00)A.用 C 程序实现的算法必须要有输入和输出操作B.

    5、用 C 程序实现的算法可以没有输出但必须要输入C.用 C 程序实现的算法可以没有输入但必须要有输出D.用 C 程序实现的算法可以既没有输入也没有输出14.以下不能定义为用户标识符的是 _。(分数:1.00)A.MainB.0C.intD.sizeof15.以下选项中不能作为合法常量的是 _。(分数:1.00)A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e016.数字字符 0 的 ASC值为 48,若有以下程序 main() char a=1,b=2; printf(“%c“,b+); printf (“%d/n“,b-a); 程序运行后的输出结果是 _。(分数:

    6、1.00)A.32B.502C.22D.2,5017.有以下程序: main() int m=12,n=34; printf(“%d%d“,m+,+n); printf(“%d%d/n“,n+,+m); 程序运行后的输出结果是 _。(分数:1.00)A.12353514B.12353513C.12343514D.1234351318.有定义语句 int b;char c10;,则正确的输入语句是 _。(分数:1.00)A.scallf(“%d%s“,B.scallf(“%d %s“,C.scanf(“%d %s“,b,D.scanf(“%d%s“,b, printf(“%d%d%/n“,m,n

    7、,p); 若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456;p 中的值为 789,则正确的输入是 _ 。(分数:1.00)A.m=123 n=456p=789B.m=123 n=456 p=789C.m=123,n=456,p=789D.123 456 78920.有以下程序: main() int a,b,d=25; a=d/10%9; b=a printf(“%d,%d/n“,a,b); 程序运行后的输出结果是 _。(分数:1.00)A.6,1B.2,1C.6,0D.2,021.有以下程序: main() int i=1,j=2,k=3; if(i+=1 程序运行后

    8、的输出结果是 _。(分数:1.00)A.22B.76C.72D.6225.以下能正确定义一维数组的选项是 _。(分数:1.00)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5;C.char a=A,B,C;D.int a5=“0123“;26.有以下程序 int f1 (int x,inty)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d); g=a+b+c+d

    9、-e-f; pintf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是 _。(分数:1.00)A.4,3,7B.3,4,7C.52,7D.2,5,727.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是 _。(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度D.上述说法都不对28.有以下程序: void f(int*x,int*y) int t; t=*x;*x=*y;*y=t; main() int a 8=1, 2,3,4,5, 6, 7,8,i,*p,*q; p=a;q= whi

    10、le(pq) f(p,q);p+;q-; for(i=0;i8;i+)printf(“%d,“ai); 程序运行后的输出结果是 _。(分数:1.00)A.823,4,5,6,7,1,B.5,6,7,8,12,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1,29.有以下程序: main() int a3,3*p,i; p= for(i=m;i=n;i-)ai+1=ai main() int i, aN=1,2,3,4,5,6,7,8,9,10; fun(a,2,9); for(i=0;i5;i+)printf(“%d“,ai); 程序运行后的输出结果是 _。(分数

    11、:1.00)A.10234B.12344C.12334D.1223432.有以下程序 main() int a 32=0,(* ptr 2,i,j; for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);pb+; for(i=0;i3;i+) for(j=0;j2;j+)printf(“%2d“,aij);printf(“/n“); 若运行时输入:123回车,则输出结果是 _。(分数:1.00)A.产生错误信息B.10C.12D.10 20 30 20 00 00 3033.有以下程序: prt(int*m,int n) int i; for(i=0;in;i+)mi)+

    12、; main() int a=1,2,3,4,5,i; prt(a,5); for(i=0;i5;i+) printf(“%d,“,ai); 程序运行后的输出结果是 _。(分数:1.00)A.1,2,3,4,5,B.2,3,4,5,6,C.3,4,5,6,7,D.2,3,4,5,1,34.有以下程序: main() int a=1,2,3,4,5,6,7,8,9,0,*p; for(p=a;pa+10,p+)printf(“%d,“,*p); 程序运行后的输出结果是 _。(分数:1.00)A.1,2,3,4,5,6,7,8,9,0,B.2,3,4,5,6,7,8,9,10,1,C.0,1,2,

    13、3,4,5,6,7,8,9,D.1,1,1,1,1,1,1,1,1,1,35.有以下程序: #define P3 void F(int x)return(P*x*x); main() printf(“%d/n“,F(3+5); 程序运行后的输出结果是 _。(分数:1.00)A.192B.29C.25D.编译出错36.有以下程序 main() int c=35;printf(“%d/n“,cchar b;double c;data; 以下叙述中错误的是 _。(分数:1.00)A.data 的每个成员起始地址都相同B.变量 data 所占的内存字节数与成员 c 所占字节数相等C.程序段 data=

    14、5;printf(“%f/n“,dat;输出结果为 5.000000D.data 可以作为函数的实参39.以下语句或语句组中,能正确进行字符串赋值的是 _。(分数:1.00)A.char*sp;*sp=“right!“;B.char s10;s=“right!“;C.char s 10;*s=“right!“;D.char*sp=“right!“;40.设有如下说明 typedef struct ST long a;int b;char c2;NEW; 则下面叙述中正确的是 _。(分数:1.00)A.以上的说明形式非法B.ST 是一个结构体类型C.NEW 是一个结构体类型D.NEW 是一个结构

    15、体变量41.有以下程序: main() int a=1,b; for(b=1;b=10;b+) if(a=8)break; if(a%21)a+=5;continue; a-=3; printf(“%d/n“,b); 程序运行后的输出结果是 _。(分数:1.00)A.3B.4C.5D.642.有以下程序: main() char s=“159“,*p; p=s; printf(“%c“,*p+);printf(“%c“,*p+); 程序运行后的输出结果是 _。(分数:1.00)A.15B.16C.12D.5943.有以下函数: fun(char*a,char*b) while(*a!=/0 b

    16、+; return(*a-*b); 该函数的功能是 _。(分数:1.00)A.计算 a 和 b 所指字符串的长度之差B.将 b 所指字符串连接到 a 所指字符串中C.将 b 所指字符串连接到 a 所指字符串后面D.比较 a 和 b 所指字符串的大小44.有以下程序: main() int num44=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,ij; for(i=0;i4;i+) for(j=0;j=i;j+) printf(“%4c“,); for(j=_;j4;j+) printf(“%4d“,numij); printf(“/n“); 若要按以下形式输出

    17、数组右上半三角 1 2 3 4 6 7 8 11 12 16 则在程序下划线处应填入的是 _ 。(分数:1.00)A.i-1B.iC.i+1D.4-i45.有以下程序: point(char *p)p+=3; main() char b4=a,b,c,d,*p=b; point(p);printf(“%c/n“,*p); 程序运行后的输出结果是 _。(分数:1.00)A.aB.bC.cD.d46.程序中若有如下说明和定义语句 char fun(char*); main() char*s=“one“,a5=0,(*f1)()=fun,ch; . 以下选项中对函数 Fun 的正确调用语句是 _。(

    18、分数:1.00)A.(*f1)(;B.*f1(*;C.fun(struct node *next; *p,*q,*r, (分数:1.00)A.P-next=q-next;B.p-next=(p-next-next;C.p-next=rD.p=q-next;48.以下对结构体类型变量 td 的定义中,错误的是 _。(分数:1.00)A.typedef struct aaB.struct aa int n; int n; float m; float m; AA; td; AAtd; struct aa td;C.structD.struct int n; int n; float m; floa

    19、t m; aa; td; struct aa td;49.以下与函数 fseek(fp,OL,SEEK_SET)有相同作用的是 _。(分数:1.00)A.feof(fB.ftell(fC.fgetc(fD.rewind(f50.有以下程序 #includestdio.h void WriteStr(char*fn,char*str) FILE*fp; fp=fopen(fn“w“);fputs(str,fp);fclose(fp); main() WriteStr(“t1.dat“start“); WriteStr(“t1,dat“,“end“); 程序运行后,文件 t1.dat 中的内容是

    20、_。(分数:1.00)A.startB.endC.startendD.endrt二、B填空题/B(总题数:18,分数:36.00)51.某二叉树中度为 2 的结点有 18 个,则该二叉树中有 【1】 个叶子结点。(分数:2.00)填空项 1:_52.在面向对象方法中,类的实例称为 【2】 。(分数:2.00)填空项 1:_53.诊断和改正程序中错误的工作通常称为 【3】 。(分数:2.00)填空项 1:_54.在关系数据库中,把数据表示成二维表,每一个二:维表称为 【4】 。(分数:2.00)填空项 1:_55.问题处理方案的正确而完整的描述称为 【5】 。(分数:2.00)填空项 1:_56

    21、.以下程序运行时,若从键盘输入:10 20 30回车,输出的结果是U 【6】 /U。 #includestdio.h main() int i=0,j=0,k=0; scanf(“%d%*d%d“, printf(“%d%d%d/n“,i,j,k); (分数:2.00)填空项 1:_57.以下程序运行后的输出结果是U 【7】 /U。 #define S(x)4*x*x+1 main() int i=6,j=8; printf(“%d/n“,S(i+j); (分数:2.00)填空项 1:_58.以下程序运行后的输出结果是U 【8】 /U。 main() int a=3,b=4,c=5,t=99;

    22、 if(baa;a=c;c=t if(aca=t; printf(“%d%d%d/n“,a,b,c); (分数:2.00)填空项 1:_59.以下程序运行后的输出结果是U 【9】 /U。 main() int a,b,c; a=10;b=20;c=(a%b1)|(a/b1; printf(“%d %d%d/n“,a,b,c); (分数:2.00)填空项 1:_60.以下程序运行后的输出结果是U 【10】 /U。 main() char c1,c2; for(c1=O,c2=9;c1c2;c1+,c2-) printf(“%c%c“,c1,c2); printf(“/n“); (分数:2.00)

    23、填空项 1:_61.已知字符 A 的 ASC代码值为 65,以下程序运行时若从键盘输入 B33回车,则输出结果是U 【11】 /U。 #includestdio.h main() char a,b; a=getchar();scanf(“%d“, a=a-A+0;b=b*2; printf(“%c%c/n“,a,b); (分数:2.00)填空项 1:_62.以下程序中,fun 函数的功能是求 3 行 4 列二维数组每行元素中的最大值。请填空。 void fun(int,int,int(*)4,int*); main() int a 34=1,2,41,36,28,19,33,15,27,3,2

    24、7,19,1,b3,i; fun(3,4,a,b,); for(i=0;i3;1+)printf(“%4d“,bi); printf(“/n“); void fun(int m,int n,int ar4,int*br) int i,j,x; for(i=0;im;i+) x=ari0; for(j=0;jn;j+)if(xarij)x=arij; U 【12】 /U=x; (分数:2.00)填空项 1:_63.以下程序运行后的输出结果是U 【13】 /U。 void swap(int x,int y) int t; t=x;x=y;y=t;printf(“%d%d“,x,y); main()

    25、 int a=3,b=4; swap(a,b);pintf(“%d%d“,a,b); (分数:2.00)填空项 1:_64.以下程序运行后的输出结果是U 【14】 /U。 #includestring.h void fun(char *s,int P,int k) int i; for(i=p;ik-1;i+)si=si+2; main() char s=“abcdefg“; fun(s,3,strlen(s);puts(s) (分数:2.00)填空项 1:_65.以下程序运行后的输出结果是U 【15】 /U。 #includestring.h main() char ch=“abc“,x34

    26、;int i; for(i=0;i3;1+)strcpy(xi,ch); for(i=0;i3;i+)printf(“%s“, b+;c+; return(a+b+c); main() int i,a=5; for(i=0;i3;i+)printf(“%d%d“,i,fun(a);printf(“/n“); (分数:2.00)填空项 1:_67.以下程序运行后的输出结果U 【17】 /U。 struct NODE int k; struct NODE *link; ;main() structNODEm5,*p=m,*q=m+4; int i=0; while(p!=q) p-k=+i;p+;

    27、 q-k=i+;q-; q-k=i; for(i=0;i5;i+)printf(“%d“,mi.k); printf(“/n“); (分数:2.00)填空项 1:_68.以下程序中函数 huiwen 的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串yes!,否则函数返回字符串 no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。 #includestring.h char*huiwen (char*str) char*p1,*p2;int i,t=0; p1=str;p2=U 【18】 /U。 for(i=0;istrlen(str)/2;i

    28、+) if(*p1+!=*p2-)t=1;break; if(U 【19】 /U)return(“yes“!); else return(“no!“); main() char str50; printf(“Input:“);scanf(“%s“,str); printf(“%s/n“, U【20】 /U); (分数:2.00)填空项 1:_全国计算机等级考试二级 C 语言真题 2005 年 4 月答案解析(总分:86.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.数据的存储结构是指 _。(分数:1.00)A.存储在外存中的数据B.数据所占的存储空间量C.数

    29、据在计算机中的顺序存储方式D.数据的逻辑结构在计算机中的表示 解析:评析数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。2.下列关于栈的描述中错误的是 _。(分数:1.00)A.栈是先进后出的线性表B.栈只能顺序存储 C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针解析:评析栈是一种特殊的线性表,又称先进后出表(First In Last Out,FILO)。3.对于长度为 n 的线性表,在最坏情况下,下列各排序法所对应的比较次数中正确的是 _。(分数:1.00)A.冒泡排序为 n/2B.冒泡排序为 nC.快速排序为 nD.快速排序为 n(n

    30、-1)/2 解析:评析假设线性表的长度为 n,则在最坏情况下,冒泡排序需要经过 n/2 遍的从前往后扫描和 n/2遍的从后往前扫描,需要比较次数数为 n(n-1)/2。快速排序法的最坏情况比较次数也是 n(n-1)/2。4.对长度为 n 的线性表进行顺序查找,在最坏情况下所需要的比较次数为 _。(分数:1.00)A.log2nB.n/2C.n D.n+1解析:评析顺序查找过程中,如果被查找的元素是线性表中的最后一个元素,或者元素不在线性表中,贝需要与线性表中所有的元素进行比较。对长度为 n 的线性表进行顺序查找,在最坏隋况下需要比较 n 次。5.下列对于线性链表的描述中正确的是 _。(分数:1

    31、.00)A.存储空间不一定是连续,且各元素的存储顺序是任意的 B.存储空间不一定是连续,且前件元素一定存储在后件元素的前面C.存储空间必须连续,且前件元素一定存储在后件元素的前面D.存储空间必须连续,且各元素的存储顺序是任意的解析:评析在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来来确定的。6.下列对于软件测试的描述中正确的是 _。(分数:1.00)A.软件测试的目的是证明程序是否正确B.软件测试的目的是使程序运行结果正确C.软件测试的目的是尽可能多地发现程序中的错误 D.软件测试的目的是使程序符

    32、合结构化原则解析:评析关于软件测试的目的,Grenford JMyers 在 The Art of Software Testing 一书中给出了深刻的阐述,整体来说,软件测试的目的就是尽可能多地发现程序中错误。7.为了使模块尽可能独立,要求 _。(分数:1.00)A.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量强B.模块的内聚程度要尽量高,且各模块间的耦合程度要尽量弱 C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强解析:评析模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。软件设计,

    33、应尽量做到高内聚,低耦合,有利于提高模块的独立性。8.下列描述中正确的是 _。(分数:1.00)A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合 解析:评析计算机软件是计算机系统中与硬件相互依存的另一部分,是包:括程序、数据及相关文档的完整集合。9.数据独立性是数据库技术的重要特点之一,所谓数据独立性是指 _。(分数:1.00)A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对 解析:评析数据独立性是数据与程序间的互不依赖性,即数据库中数据独立于应用程序而不

    34、依赖于应用程序。也就是说,数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。选项 A、B、C 三种说法都是错误的。10.用树形结构表示实体之间联系的模型是 _。(分数:1.00)A.关系模型B.网状模型C.层次模型 D.以上三个都是解析:评析层次模型是最早发展起来的数据库模型,它的基本结构是树形结构。11.算法具有五个特性,以下选项中不属于算法特性的是 _。(分数:1.00)A.有穷性B.简洁性 C.可行性D.确定性解析:评析有穷性、确定性、有零个或多个输入、有一个或多个输出、有效性是算法的基本特性。12.以下选项中可作为 C 语言合法常量的是 _。(分数:1.00)A.-80 B.-

    35、080C.-8e1.0D.-80Oe解析:评析C 语言的常量分为整型常量、实型常量和字符型常量。选项 A 属于实型常量中的十进制小数形式的表示法,是合法的。13.以下叙述中正确的是 _。(分数:1.00)A.用 C 程序实现的算法必须要有输入和输出操作B.用 C 程序实现的算法可以没有输出但必须要输入C.用 C 程序实现的算法可以没有输入但必须要有输出 D.用 C 程序实现的算法可以既没有输入也没有输出解析:评析算法的特性中包括“有零个或多个输入”及“有一个或多个输出”这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一千算法必须至少有一个输出。14.以下不能定义为

    36、用户标识符的是 _。(分数:1.00)A.MainB.0C.intD.sizeof 解析:评析C 语言规定标识符只能由字母;数字和下划线三种符号组成,而且第一个字符必须是字母或下划线。注意:大写字母和小写字母被认为是两个不同的字符。A 中 Main 与主函数名 main 不同。15.以下选项中不能作为合法常量的是 _。(分数:1.00)A.1.234e04B.1.234e0.4 C.1.234e+4D.1.234e0解析:评析指数形式的实型常量要求字母 e(或 E)之前必需有数字,且 e 后面的指数必须为整数,所以本题中选项 B 非法。16.数字字符 0 的 ASC值为 48,若有以下程序 m

    37、ain() char a=1,b=2; printf(“%c“,b+); printf (“%d/n“,b-a); 程序运行后的输出结果是 _。(分数:1.00)A.32B.502C.22 D.2,50解析:评析执行语句“printf(“%c,“,b+);”后,b 的值变成字符 3,执行“printf(“%d/n“,b-a);“,即3-1。17.有以下程序: main() int m=12,n=34; printf(“%d%d“,m+,+n); printf(“%d%d/n“,n+,+m); 程序运行后的输出结果是 _。(分数:1.00)A.12353514 B.12353513C.12343

    38、514D.12343513解析:评析执行“printf(“%d%d“,m+,+n);”后,输出的是 m 和 n+l 的值 1235,接着执行“printf(“%d%d/n“n+,+m);”输出 n 和 m+1 的值 3514。18.有定义语句 int b;char c10;,则正确的输入语句是 _。(分数:1.00)A.scallf(“%d%s“,B.scallf(“%d %s“, C.scanf(“%d %s“,b,D.scanf(“%d%s“,b, printf(“%d%d%/n“,m,n,p); 若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为 456;p 中的值为 78

    39、9,则正确的输入是 _ 。(分数:1.00)A.m=123 n=456p=789 B.m=123 n=456 p=789C.m=123,n=456,p=789D.123 456 789解析:评析根据本题的数据输入形式“scanf(“m=%dn=%dp=%d“, printf(“%d,%d/n“,a,b); 程序运行后的输出结果是 _。(分数:1.00)A.6,1B.2,1 C.6,0D.2,0解析:评析本题中“a=d/10%9;”的值为 25/10%9=2;“b=a 程序运行后的输出结果是 _。(分数:1.00)A.22B.76C.72 D.62解析:评析C 语言中以/0作为字符串的结束符,且

    40、 strlen()函数计算的是/0字符前的所有字符的个数。数组定义以后系统就为其分配相应大小的内存空间,而不论其中有没有内容。25.以下能正确定义一维数组的选项是 _。(分数:1.00)A.int a5=0,1,2,3,4,5;B.char a=0,1,2,3,4,5; C.char a=A,B,C;D.int a5=“0123“;解析:评析选项 A 中定义的是 5 个数组元素,但赋值的时候赋的是 6 个元素,所以出错;选项 C 不符合数组定义形式,数组名后应加上“”;选项 D 的类型说明符错误,如果用 char 定义就对了;选项 B 中的 0,1,2,3,4,5 分别表示对应字符的 ASCI

    41、I 码,所以选项 B 是正确的。26.有以下程序 int f1 (int x,inty)return xy?x:y; int f2(int x,int y)return xy?y:x; main() int a=4,b=3,c=5,d=2,e,f,g; e=f2(f1(a,b),f1(c,d);f=f1(f2(a,b),f2(c,d); g=a+b+c+d-e-f; pintf(“%d,%d,%d/n“,e,f,g); 程序运行后的输出结果是 _。(分数:1.00)A.4,3,7 B.3,4,7C.52,7D.2,5,7解析:评析 函数 f1 的功能是返回两个数中比较的值,f2 的功能是返回两

    42、个数中比较小的值。27.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是 _。(分数:1.00)A.数组 a 和 b 的长度相同B.a 数组长度小于 b 数组长度C.a 数组长度大于 b 数组长度 D.上述说法都不对解析:评析C 语言规定/0为字符串结束标志。所以“char a=“xyz“”的数组长度为 4,而“b=x,y,z;”的数组长度为 l 数组长度与 strlen 函数所求的长度不同,本题是指数组占内存空间的大小。28.有以下程序: void f(int*x,int*y) int t; t=*x;*x=*y;*y=t; main() int a 8=1, 2,3

    43、,4,5, 6, 7,8,i,*p,*q; p=a;q= while(pq) f(p,q);p+;q-; for(i=0;i8;i+)printf(“%d,“ai); 程序运行后的输出结果是 _。(分数:1.00)A.823,4,5,6,7,1,B.5,6,7,8,12,3,4,C.1,2,3,4,5,6,7,8,D.8,7,6,5,4,3,2,1, 解析:评析本程序中函数 f 的作用是交换指针变量 x 和 y 所指向的存储单元的值。29.有以下程序: main() int a3,3*p,i; p= for(i=m;i=n;i-)ai+1=ai main() int i, aN=1,2,3,4

    44、,5,6,7,8,9,10; fun(a,2,9); for(i=0;i5;i+)printf(“%d“,ai); 程序运行后的输出结果是 _。(分数:1.00)A.10234B.12344C.12334 D.12234解析:评析本题函数 fun 的作用是将指定的数组元素(从下标 n 到下标 m)向后移一位。由函数调用“fun(a,2,9);”可知,函数 fun 用于将 a2到 a9的各元素依次向后移一位,移完后,a 数组中各元素的值分别为 1,2,3,4,5,6,7,8,9,10,故输出的前 5 个数组元素为 12334。32.有以下程序 main() int a 32=0,(* ptr 2,i,j; for(i=0;i2;i+)ptr=a+i;scanf(“%d“,ptr);pb+; for(i=0;i3;i+) for(j=0;j2;j+)printf(“%2d“,aij);printf(“/n“); 若运行时输入:123回车,则输出结果是 _。(分数:1.00)A.产生错误信息B.10 C.12D.10 20 30 20 00 00 30解析:评析二维数组 a,通过 a32=0将数组中的各个元素初始化为 0,指针变量 ptr,指向包含 2个元素的一维数组。a00=1,a10=2,故本题的输出选 B。33.有以下程序: prt(int*m,int n) int i; for


    注意事项

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




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

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

    收起
    展开