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

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

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

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

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

    1、全国计算机等级考试二级 C 语言真题 2003 年 9 月及答案解析(总分:88.00,做题时间:90 分钟)一、B选择题/B(总题数:50,分数:50.00)1.在计算机中,一个字节所包含二进制位的个数是 A)2 B)4 C)8 D)16(分数:1.00)A.B.C.D.2.在多媒体计算机中,CD-ROM 属于 A)存储媒体 B)传输媒体 C)表现媒体 D)表示媒体(分数:1.00)A.B.C.D.3.在 DOS 系统中,带有通配符的文件名*.*表示 A)硬盘上的全部文件 B)当前盘当前目录中的全部文件 C)当前盘上的全部文件 D)根目录中的全部文件(分数:1.00)A.B.C.D.4.十六

    2、进制数 100 转换为十进制数为 A)256 B)512 C)1024 D)64(分数:1.00)A.B.C.D.5.能将高级语言编写的源程序转换为目标程序的软件是 A)汇编程序 B)编辑程序 C)解释程序 D)编译程序(分数:1.00)A.B.C.D.6.在 Internet 中,用于在计算机之间传输文件的协议是 A)TELNET B)BBS C)FTP D)WWW(分数:1.00)A.B.C.D.7.在 Windows 环境下,资源管理器左窗口中的某文件夹左边标有“+“标记表示 A)该文件夹为空 B)该文件夹中含有子文件夹 C)该文件夹中只包含有可执行文件 D)该文件夹中包含系统文件(分数

    3、:1.00)A.B.C.D.8.在 Windows 环境下,下列叙述中正确的是 A)在“开始“菜单中可以增加项目,也可以删除项目 B)在“开始“菜单中不能增加项目,也不能删除项目 C)在“开始“菜单中可以增加项目,但不能删除项目 D)在“开始“菜单中不能增加项目,但可以删除项目(分数:1.00)A.B.C.D.9.从 Windows 环境进入 DOS 方式后,返回 Windows 环境的命令为 A)QUIT B)WIN C)EXIT D)ESC(分数:1.00)A.B.C.D.10.下列叙述中正确的是 A)计算机病毒只感染可执行文件 B)计算机病毒只感染文本文件 C)计算机病毒只能通过软件复制

    4、的方式进行传播 D)计算机病毒可以通过读写磁盘或网络等方式进行传播(分数:1.00)A.B.C.D.11.以下叙述中正确的是 A)C 程序中注释部分可以出现在程序中任意合适的地方 B)花括号“和“只能作为函数体的定界符 C)构成 C 程序的基本单位是函数,所有函数名都可以由用户命名 D)分号是 C 语句之间的分隔符,不是语句的一部分(分数:1.00)A.B.C.D.12.以下选项中可作为 C 语言合法整数的是 A)10110B B)0386 C)0Xffa D)x2a2(分数:1.00)A.B.C.D.13.以下不能定义为用户标识符的是 A)scanf B)Void C)_3com_ D)in

    5、t(分数:1.00)A.B.C.D.14.有以下程序 main( ) int a; char c=10; float f=100.0; double x; a=f/=c*=(x=6.5); printf(“%d %d %3.1f %3.1f/n“,a,c,f,x); 程序运行后的输出结果是 A)1 65 1 6.5 B)1 65 1.5 6.5 C)1 65 1.0 6.5 D)2 65 1.5 6.5(分数:1.00)A.B.C.D.15.以下选项中非法的表达式是 A)0a)|(m=aA.B.C.D.17.有定义语句:int x, y;,若要通过 scanf(“%d,%d“,语句使变量 x

    6、得到数值 11,变量 y 得到数值 12,下面四组输入形式中,错误的是A)11 12 B)11, 12C)11,12D)11,12(分数:1.00)A.B.C.D.18.设有如下程序段: int x=2002, y=2003; printf(“%d/n“,(x,y); 则以下叙述中正确的是 A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为 2002 D)输出值为 2003(分数:1.00)A.B.C.D.19.设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数值保留到小数点后两位,并将第三位四舍五入的是 A)x=x*100+0

    7、.5/100.0; B)x=(x*100+0.5)/100.0; C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;(分数:1.00)A.B.C.D.20.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为 3 的是(分数:1.00)A.if (c x=1; else if (b x=2; else x=3;B.if (a3) x=3; else if (b x=2; else x=1;C.if (aD.if (a x=b; if (b x=c; if (c x=a;21.有以下程序 main( ) in

    8、t s=0,a=1,n; scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序的输出值为 2,则应该从键盘给 n 输入的值是 A)-1 B)-3 C)-5 D)0(分数:1.00)A.B.C.D.22.若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值(c 大于 0) s=a; for(b=1;b1;n-) s=s+1/n; printf(“%6.4f/n“,s); 程序运行后输出结果错误,导致错误结果的程序行是 A)s=1.0; B)for(n=10;n1;n-) C)s=s+1/n; D

    9、)printf(“%6.4f/n“,s);(分数:1.00)A.B.C.D.25.已定义 ch 为字符型变量,以下赋值语句中错误的是 A)ch=/; B)ch=62+3; C)ch=NULL; D)ch=/xaa;(分数:1.00)A.B.C.D.26.若已定义的函数有返回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(分数:1.00)A.B.C.D.27.有以下函数定义: void fun(int n, double x) 若以下选项中的变量都已正确定义并赋值

    10、,则对函数 fun 的正确调用语句是 A)fun(int y,double m); B)k=fun(10,12.5); C)fun(x,n); D)void fun(n,x);(分数:1.00)A.B.C.D.28.有以下程序 void fun(char *a, char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2; p1= p2= fun(p1,p2); printf(“%c%c/n“,c1,c2); 程序运行后的输出结果是 A)Ab B)aa C)Aa D)Bb(分数:1.00)A.B.C.D.29.若程序中已包含头文件 stdio.h,以下

    11、选项中,正确运用指针变量的程序段是 A)int *i=NULL; B) float *f=NULL; scanf(“%d“,i); *f=10.5; C)char t=m, *c= D) long *L; *c= L=/0;(分数:1.00)A.B.C.D.30.有以下程序 #include stdio.h main( ) printf(“%d/n“,NULL); 程序运行后的输出结果是 A)0 B)1 C)-1 D)NULL 没定义,出错(分数:1.00)A.B.C.D.31.已定义 c 为字符型变量,则下列语句中正确的是 A)c=97; B)c=“97“; C)c=97; D)c=“a“;

    12、(分数:1.00)A.B.C.D.32.以下不能正确定义二维数组的选项是 A)int a22=1,2; B)int a 2=1,2,3,4; C)int a22=1,2,3; D)int a2 =1,2,3,4;(分数:1.00)A.B.C.D.33.以下选项中不能正确把 cl 定义成结构体变量的是 A) typedef struct int red; int green; int blue; COLOR; COLOR cl; B)struct color cl int red; int green; int blue; C) struct color int red; int green;

    13、int blue; cl; D)struct int red; int green; int blue; cl;(分数:1.00)A.B.C.D.34.以下能正确定义一维数组的选项是 A)int num ; B) #define N 100 int numN; C)int num0100; D) int N=100; int numN;(分数:1.00)A.B.C.D.35.下列选项中正确的语句组是 A)char s8; s=“Beijing“; C)char s8; s=“Beijing“; B)char *s; s=“Beijing“; D)char *s; s=“Beijing“;(分数

    14、:1.00)A.B.C.D.36.已定义以下函数 fun(int *p) return *p; 该函数的返回值是 A)不确定的值 B)形参 p 中存放的值 C)形参 p 所指存储单元中的值 D)形参 p 的地址值(分数:1.00)A.B.C.D.37.下列函数定义中,会出现编译错误的是 A)max(int x,int y,int *z) *z=xy ? x:y; B)int max(int x,y) int z; z=xy ? x:y; return z; C)max(int x,int y) int z; z=xy?x:y; return(z); D)int max(int x,int y)

    15、 return(xy?x:y); (分数:1.00)A.B.C.D.38.有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是 A)12 B)15 C)16 D)20(分数:1.00)A.B.C.D.39.有以下程序 fun(int a, int b) if(ab) return(a); else return(b); main( ) int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(“

    16、%d/n“, r); 程序运行后的输出结果是 A)3 B)6 C)8 D)12(分数:1.00)A.B.C.D.40.若有定义:int *p3;,则以下叙述中正确的是 A)定义了一个基类型为 int 的指针变量 p,该变量具有三个指针 B)定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针 C)定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素 D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素(分数:1.00)A.B.C.D.41.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符

    17、串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.B.C.D.42.有以下程序 struct s int x,y; data2=10,100,20,200; main( ) struct s *p=data; printf(“%d/n“,+(p-x); 程序运行后的输出结果是 A)10 B)11 C)20 D)21(分数:1.00)A.B.C.D.43.有以下程序段 main( ) int a=5,*b,*c; c= b= 程序在执行了 c=b=语句后,表达式:*c

    18、 的值是 A)变量 a 的地址 B)变量 b 中的值 C)变量 a 中的值 D)变量 b 的地址(分数:1.00)A.B.C.D.44.有以下程序#include main() char str20=“Hello“,“Beijing“,*p=str;printf(“%d/n“,strlen(p+20);程序运行后的输出结果是A)0 B)5 C)7 D)20(分数:1.00)A.B.C.D.45.已定义以下函数 fun(char *p2, char *p1) while(*p2=*p1)!=/0) p1+;p2+; 函数的功能是 A)将 p1 所指字符串复制到 p2 所指内存空间 B)将 p1

    19、所指字符串的地址赋给指针 p2 C)对 p1 和p2 两个指针所指字符串进行比较 D)检查 p1 和 p2 两个指针所指字符串中是否有/0(分数:1.00)A.B.C.D.46.有以下程序 main( ) int x=3, y=2, z=1; printf(“%d/n“,x/y 程序运行后的输出结果是 A)3 B)2 C)1 D)0(分数:1.00)A.B.C.D.47.若 fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为 A)0 B)1 C)-1 D)一个非 0 值(分数:1.00)A.B.C.D.48.下列关于 C 语言数据文件的叙述中正确的是 A)文件

    20、由 ASCII 码字符序列组成,C 语言只能读写文本文件 B)文件由二进制数据序列组成,C 语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(分数:1.00)A.B.C.D.49.有以下程序 main( ) int a33,*p,i; p= for(i=0;iA.B.C.D.50.有以下结构体说明和变量定义,如图所示,指针 p、q、r 分别指向一个链表中的三个连续结点。 struct node int data; struct node *next; *p, *q, *r; (分数:

    21、1.00)A.B.C.D.二、B填空题/B(总题数:19,分数:38.00)51.计算机软件分为系统软件与应用软件,UNIX 属于 【1】 。(分数:2.00)填空项 1:_52.假设在当前盘的当前目录下有两个文件 A.TXT 和 B.TXT,现要将文件 B.TXT 合并连接到文件 A.TXT 的后面。若使用 TYPE 命令,则完整的命令为 【】 。(分数:2.00)填空项 1:_53.Internet 的信息服务方式分为基本服务和扩展服务,电子邮件属于 【】 。(分数:2.00)填空项 1:_54.在 Windows 环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件

    22、与文件夹移动到 【4】文件夹中。(分数:2.00)填空项 1:_55.在 Windows 环境下,为了进行“添加/删除程序“操作,首先打开 【】 ,然后双击其中的相应图标。(分数:2.00)填空项 1:_56.以下程序运行后的输出结果是 U【6】 /U 。 main() int p=30; printf(“%d/n“,(p/30 ? p/10 : p%3); (分数:2.00)填空项 1:_57.以下程序运行后的输出结果是 U【7】 /U。 main() char m; m=B+32; printf(“%c/n“,m);(分数:2.00)填空项 1:_58.以下程序运行后的输出结果是 【8】

    23、。 main( ) int a=1,b=3,c=5; if (c=a+b) printf(“yes/n“); else printf(“no/n“); (分数:2.00)填空项 1:_59.以下程序运行后的输出结果是 【】 。 main( ) int i,m=0,n=0,k=0; for(i=9; i=11;i+) switch(i/10) case 0: m+;n+;break; case 10: n+; break; default: k+;n+; printf(“%d %d %d/n“,m,n,k); (分数:2.00)填空项 1:_60.执行以下程序后,输出#号的个数是 【10】 。#

    24、include main1 int i,j;for(i=1; ifor(j=2; ja)|(m=aA.B.C. D.解析:解析由于整个表达式中出现了“”运算符,则先计算“”前的表达式的值。若非 0,则不再计算其后表达式的值,由于 ba 为逻辑真 1,1 赋给 n,n 为 1 再赋给 k,k 值为 1,则“”左边式子的值为 1,故不再计算其后的式子,m 值不发生变化。17.有定义语句:int x, y;,若要通过 scanf(“%d,%d“,语句使变量 x 得到数值 11,变量 y 得到数值 12,下面四组输入形式中,错误的是A)11 12 B)11, 12C)11,12D)11,12(分数:1

    25、.00)A. B.C.D.解析:解析在输入函数中由于出现了非格式说明符“,”,则输人数据时,非格式说明符必须原样输入。18.设有如下程序段: int x=2002, y=2003; printf(“%d/n“,(x,y); 则以下叙述中正确的是 A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 B)运行时产生出错信息 C)输出值为 2002 D)输出值为 2003(分数:1.00)A.B.C.D. 解析:解析因为(x,y)是一个逗号表达式,其值是最后一个式子的值,故本表达式值为 2003,然后输出表达式的值。19.设变量 x 为 float 型且已赋值,则以下语句中能将 x 中的数

    26、值保留到小数点后两位,并将第三位四舍五入的是 A)x=x*100+0.5/100.0; B)x=(x*100+0.5)/100.0; C)x=(int)(x*100+0.5)/100.0; D)x=(x/100+0.5)*100.0;(分数:1.00)A.B.C. D.解析:解析选项 A)中,x 的值发生变化,近似为原先的 100 倍,而选项 B),选项 D)均不能保证小数点后只保留两位小数。20.有定义语句:int a=1,b=2,c=3,x;,则以下选项中各程序段执行后,x 的值不为 3 的是(分数:1.00)A.if (c x=1; else if (b x=2; else x=3;B.

    27、if (a3) x=3; else if (b x=2; else x=1;C.if (aD.if (a x=b; if (b x=c; if (c x=a;解析:解析选项 A),B)考查了多分支结构的用法,选项 A)中的程序段执行时,ca,ba 条件均不成立,故执行 else 后的语句,x 值为 3;选项 B)中 a3 条件成立,执行 x=3;而选项 C),D)是单分支结构的用法,选项 C)中程序段执行时,a21.有以下程序 main( ) int s=0,a=1,n; scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要

    28、使程序的输出值为 2,则应该从键盘给 n 输入的值是 A)-1 B)-3 C)-5 D)0(分数:1.00)A.B. C.D.解析:解析本题考查了循环的执行,因 s 在程序中起一个计数变量的作用,即记录循环执行的次数,若循环执行 两次,a 的值等于 n 时退出循环,即 a 减两次 2 后应等于 n,可推算出 n 的值为-3。22.若有如下程序段,其中 s、a、b、c 均已定义为整型变量,且 a、c 均已赋值(c 大于 0) s=a; for(b=1;b1;n-) s=s+1/n; printf(“%6.4f/n“,s); 程序运行后输出结果错误,导致错误结果的程序行是 A)s=1.0; B)f

    29、or(n=10;n1;n-) C)s=s+1/n; D)printf(“%6.4f/n“,s);(分数:1.00)A.B.C. D.解析:解析当“”两侧均为整型数时,运算结果为整数,因此 1n(n1)的结果总为 0,而不是小数。25.已定义 ch 为字符型变量,以下赋值语句中错误的是 A)ch=/; B)ch=62+3; C)ch=NULL; D)ch=/xaa;(分数:1.00)A. B.C.D.解析:解析选项 A)中,ch 存储了字符反斜杠;选项 B)中存储了 ASCII 码值是 65 对应的字符;选项 D)是单撇号括起x 后跟一到两位十六进制数,表示一个转义字符。26.若已定义的函数有返

    30、回值,则以下关于该函数调用的叙述中错误的是 A)函数调用可以作为独立的语句存在 B)函数调用可以作为一个函数的实参 C)函数调用可以出现在表达式中 D)函数调用可以作为一个函数的形参(分数:1.00)A.B.C.D. 解析:解析C 语言规定,函数的形参要么为空,要么是变量。如果是变量则用以接收主函数传递过来的数据。27.有以下函数定义: void fun(int n, double x) 若以下选项中的变量都已正确定义并赋值,则对函数 fun 的正确调用语句是 A)fun(int y,double m); B)k=fun(10,12.5); C)fun(x,n); D)void fun(n,x

    31、);(分数:1.00)A.B.C. D.解析:解析选项 A)中的实参不能在调用时声明;选项 B)错误,因为无返回值的函数不能出现在表达式中;选项 D)错误,其调用格式不正确。28.有以下程序 void fun(char *a, char *b) a=b; (*a)+; main() char c1=A,c2=a,*p1,*p2; p1= p2= fun(p1,p2); printf(“%c%c/n“,c1,c2); 程序运行后的输出结果是 A)Ab B)aa C)Aa D)Bb(分数:1.00)A. B.C.D.解析:解析本题考查了地址的调用。在子函数 fun()中,a,b 分别存储的是存放“

    32、A”,“a,两个字符所在存储单元的地址。但在子函数中直接改变了指针变量 a 所指存储单元(a=b,即 b 所指单元)中的值,使其变为“b”,故子函数执行结束时,c1 的值不变,c2 的值改变。29.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是 A)int *i=NULL; B) float *f=NULL; scanf(“%d“,i); *f=10.5; C)char t=m, *c= D) long *L; *c= L=/0;(分数:1.00)A.B.C.D. 解析:解析选项 C)显然不对。选项 A),B),D)从语法上讲都是可以的,但内存中地址为 NULL,

    33、即地址0 的单元不能随意存放用户数据,因为这样可能会破坏其他程序。选项 D)中尽管用了,0,(在内存中也为 0),但并未向该单元存放数据,故该项正确。30.有以下程序 #include stdio.h main( ) printf(“%d/n“,NULL); 程序运行后的输出结果是 A)0 B)1 C)-1 D)NULL 没定义,出错(分数:1.00)A. B.C.D.解析:解析因为在头文件 stdioh 中,已对 NULL 作了宏定义,其值为 0。31.已定义 c 为字符型变量,则下列语句中正确的是 A)c=97; B)c=“97“; C)c=97; D)c=“a“;(分数:1.00)A.B

    34、.C. D.解析:解析字符常量是用单撇号括起来的个字符或一串字符,故选项 A)不正确。选项 B),D)均为字符串。而选项 C)是把 ASCII 码值为 g7 的字符赋给了变量 c。32.以下不能正确定义二维数组的选项是 A)int a22=1,2; B)int a 2=1,2,3,4; C)int a22=1,2,3; D)int a2 =1,2,3,4;(分数:1.00)A.B.C.D. 解析:解析C 语言中明确规定,在定义二维数组时,后一个下标值不能省略,否则将无法判定数组中某一行的元素个数。33.以下选项中不能正确把 cl 定义成结构体变量的是 A) typedef struct int

    35、 red; int green; int blue; COLOR; COLOR cl; B)struct color cl int red; int green; int blue; C) struct color int red; int green; int blue; cl; D)struct int red; int green; int blue; cl;(分数:1.00)A.B. C.D.解析:解析选项 A)是把结构体类型改名后定义为变量 cl。选项 C),D)则是在定义结构体类型时定义变量,而选项 B)不符合结构体类型定义的语法规则。34.以下能正确定义一维数组的选项是 A)in

    36、t num ; B) #define N 100 int numN; C)int num0100; D) int N=100; int numN;(分数:1.00)A.B. C.D.解析:解析定义一维数组时,其下标值必须为常量,故选项 A),C)和 D)均不符合语法规则,选项 B)是先定义了符号常量,后定义数组,这是允许的。35.下列选项中正确的语句组是 A)char s8; s=“Beijing“; C)char s8; s=“Beijing“; B)char *s; s=“Beijing“; D)char *s; s=“Beijing“;(分数:1.00)A.B.C.D. 解析:解析C 语

    37、言不允许通过赋值语句给字符数组赋值,故选项 A),C)不正确,而“”是在定义变量的同时对变量进行初始化时使用,在赋值时不能使用。36.已定义以下函数 fun(int *p) return *p; 该函数的返回值是 A)不确定的值 B)形参 p 中存放的值 C)形参 p 所指存储单元中的值 D)形参 p 的地址值(分数:1.00)A.B.C. D.解析:解析在表达式中出现*p,表示引用指针变量所指存储单元的内容。37.下列函数定义中,会出现编译错误的是 A)max(int x,int y,int *z) *z=xy ? x:y; B)int max(int x,y) int z; z=xy ?

    38、x:y; return z; C)max(int x,int y) int z; z=xy?x:y; return(z); D)int max(int x,int y) return(xy?x:y); (分数:1.00)A.B. C.D.解析:解析定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。38.有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%d/n“, F(a+, b+); 程序运行后的输出结果是 A)12 B)15 C)16 D)20(分数:1.00)A. B.

    39、C.D.解析:解析本题考查了带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用 a+替换 X,用 b+替换 Y,再求(a+)*(b+)的值。39.有以下程序 fun(int a, int b) if(ab) return(a); else return(b); main( ) int x=3, y=8, z=6, r; r=fun(fun(x,y), 2*z); printf(“%d/n“, r); 程序运行后的输出结果是 A)3 B)6 C)8 D)12(分数:1.00)A.B.C.D. 解析:解析此题考查了带返回值的函数的调用。fun()函数的功能是求出两个数的

    40、最大数并返回主函数r=fun(fun(x,y),2*z)处。执行过程为先调用函数 fun(x,y)求得两数中的较大者,再进行自身的递归调用,此时函数中的两个参数为刚求得的数和 2*z(即 12)传递给子函数,找出两数中的大数。40.若有定义:int *p3;,则以下叙述中正确的是 A)定义了一个基类型为 int 的指针变量 p,该变量具有三个指针 B)定义了一个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int 的指针 C)定义了一个名为*p 的整型数组,该数组含有三个 int 类型元素 D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int 类型元素(分数:1

    41、.00)A.B. C.D.解析:解析int *p3是定义指针数组,该数组共含有 3 个元素,每个元素所指存储单元中存储的数据为整型数据。41.以下程序中函数 scmp 的功能是返回形参指针 s1 和 s2 所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)A.B. C.D.解析:解析当第一次执行 strcpy()函数时,把输入的前两个串中的较小者复制到 string 中,第二次调用 strcpy()函数时,则是把前两者中的较小者与第三个串进行比较返回

    42、较小者,并复制到 string 中,故string 存放了 3 个输入串中的最小者。42.有以下程序 struct s int x,y; data2=10,100,20,200; main( ) struct s *p=data; printf(“%d/n“,+(p-x); 程序运行后的输出结果是 A)10 B)11 C)20 D)21(分数:1.00)A.B. C.D.解析:解析data 数组中共有两个元素,指针变量 p 所指的单元为数组的第一个存储单元,该单元中存储了数组中的第一个元素。故 p-x 值为 10,+(p-x)值为 11。43.有以下程序段 main( ) int a=5,*b

    43、,*c; c= b= 程序在执行了 c=b=语句后,表达式:*c 的值是 A)变量 a 的地址 B)变量 b 中的值 C)变量 a 中的值 D)变量 b 的地址(分数:1.00)A.B.C. D.解析:解析*c 即*(*c),*c 的值为 b,*b 的值为 a,故*(*c)的值为 a,即*c 的值为 a。44.有以下程序#include main() char str20=“Hello“,“Beijing“,*p=str;printf(“%d/n“,strlen(p+20);程序运行后的输出结果是A)0 B)5 C)7 D)20(分数:1.00)A.B.C. D.解析:解析尽管定义的是二维数组

    44、,但为其分配的存储单元却是连续的。第一个字符串占了 20 个存储单元,第二个字符串将从第 21 个单元开始存放,而 strlen(p+20)则是从第 21 个存储单元开始的字符串中包含的字符个数。45.已定义以下函数 fun(char *p2, char *p1) while(*p2=*p1)!=/0) p1+;p2+; 函数的功能是 A)将 p1 所指字符串复制到 p2 所指内存空间 B)将 p1 所指字符串的地址赋给指针 p2 C)对 p1 和p2 两个指针所指字符串进行比较 D)检查 p1 和 p2 两个指针所指字符串中是否有/0(分数:1.00)A. B.C.D.解析:解析while(

    45、*p2=*p1)!=0)有两个作用,一个是判断条件是否成立以决定是否再次进入循环,另一个作用是判定之前先完成*p2=*p1 操作,该操作的作用是把 p1 所指存储单元的字符送给 p2 所指存储单元中。该循环作用就是把 p1 所指字符串中的字符逐一地送到 p2 所指存储单元,直到 p1 所指单元内容为0为止。46.有以下程序 main( ) int x=3, y=2, z=1; printf(“%d/n“,x/y 程序运行后的输出结果是 A)3 B)2 C)1 D)0(分数:1.00)A.B.C.D. 解析:解析先求得 xy 的值为 1,然后按位对非 1 数进行与运算,则结果必为 0。47.若

    46、fp 已正确定义并指向某个文件,当未遇到该文件结束标志时函数 feof(fp)的值为 A)0 B)1 C)-1 D)一个非 0 值(分数:1.00)A. B.C.D.解析:解析feof()函数用于检测当前读写的位置是否遇到文件结束标志位,若未遇到结束标志,则该函数返回值为 0;若遇到文件结束标志,则返回-1。48.下列关于 C 语言数据文件的叙述中正确的是 A)文件由 ASCII 码字符序列组成,C 语言只能读写文本文件 B)文件由二进制数据序列组成,C 语言只能读写二进制文件 C)文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D)文件由数据流形式组成,可按数据的存放形式分为二进制文件和文本文件(分数:1.00)A.B.C.D. 解析:解析选项 A),B)只说明了文件组织形式中的某一种,而选项 C)中,记录是读写数据的一种形式。49.有以下程序 main( ) int a33,*p,i; p= for(i=0;iA.B. C.D.解析:解析


    注意事项

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




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

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

    收起
    展开