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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]2003年9月国家二级(C语言)笔试真题试卷及答案与解析.doc

1、2003 年 9月国家二级( C语言)笔试真题试卷及答案与解析 1 在计算机中,一个字节所包含二进制位的个数是 ( A) 2 ( B) 4 ( C) 8 ( D) 16 2 在多媒体计算机中, CD-ROM属于 ( A)存储媒体 ( B)传输媒体 ( C)表现媒体 ( D)表示媒体 3 在 DOS系统中,带有通配符的文件名 *.*表示 ( A)硬盘上的全部文件 ( B)当前盘当前目录中的全部文件 ( C)当前盘上的全部文件 ( D)根目录中的全部文件 4 十六进制数 100转换为十进制数为 ( A) 256 ( B) 512 ( C) 1024 ( D) 64 5 能将高级语言编写的源程序转换

2、为目标程序的软件是 ( A)汇编程序 ( B)编辑程序 ( C)解释程序 ( D)编译程序 6 在 Internet中,用于在计算机之间传输文件的协议是 ( A) TELNET ( B) BBS ( C) FTP ( D) WWW 7 在 Windows环境下,资源管理器左窗口中的某文件夹左边标有 “+“标记表示 ( A)该文件夹为空 ( B)该文件夹中含有子文件夹 ( C)该文件夹中只包含有可执行文件 ( D)该文件夹中包含系统文件 8 在 Windows环境下,下列叙述中正确的是 ( A)在 “开始 “菜单中可以增加项目,也可以删除项目 ( B)在 “开始 “菜单中不能增加项目,也不能删除

3、项目 ( C)在 “开始 “菜单中可以增加项目,但不能删除项目 ( D)在 “开始 “菜单中不能增加项目,但可以删除项目 9 从 Windows环境进入 DOS方式后,返回 Windows环境的命令为 ( A) QUIT ( B) WIN ( C) EXIT ( D) ESC 10 下列叙述中正确的是 ( A)计算机病毒只感染可执行文件 ( B)计算机病毒只感染文本文件 ( C)计算机病毒只能通过软件复制的方式进行传播 ( D)计算机病毒可以通过读写磁盘或网络等方式进行传播 11 以下叙述中正确的是 ( A) C程序中注释部分可以出现在程序中任意合适的地方 ( B)花括号 “和 “只能作为函数

4、体的定界符 ( C)构成 C程序的基本单位是函数,所有函数名都可以由用户命名 ( D)分号是 C语句之间的分隔符,不是语句的一部分 12 以下选项中可作为 C语言合法整数的是 ( A) 10110B ( B) 386 ( C) 0Xffa ( D) x2a2 13 以下不能定义为用户 标识符的是 ( A) scanf ( B) Void ( C) _3com_ ( D) int 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.1fn“,a,c,

5、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 15 以下选项中非法的表达式是 ( A) 0a)|(m=a printf(“%d,%dn“,k,m); 程序运行后的输出结果是 ( A) 0,0 ( B) 0,1 ( C) 1,0 ( D) 1,1 17 有定义语句: int x, y;,若要通过 scanf(“%d,%d“,语句使变量 x得到数值 11,变量 y得到数值 12,下面四组输入形式中,错误的是 ( A) 11 12 ( B) 11, 12 ( C) 11,

6、12 ( D) 11,12 18 设有如下程序段: int x=2002, y=2003; printf(“%dn“,(x,y); 则以下叙述中正确的是 ( A)输出语句中格式说明符的个数少于输出项的个数,不能正确输出 ( B)运行时产生出错信息 ( C)输出值为 2002 ( D)输出值为 2003 19 设变量 x为 float型且已赋值,则以下语句中能将 x中的数值保留到小数点后两位,并将第三位四舍五入的是 ( 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/

7、100+0.5)*100.0; 20 有定义语句: int a=1,b=2,c=3,x;,则以下选项中各程序段执行后, x的值不为3的是 ( A) if (c a) x=1; else if (b a) x=2; else x=3; ( B) if (a 3) x=3; else if (b a) x=2; else x=1; ( C) if (a1;n-) s=s+1/n; printf(“%6.4fn“,s); 程序运行后输出结果错误,导致错误结果的程序行是 ( A) s=1.0; ( B) for(n=10;n1;n-) ( C) s=s+1/n; ( D) printf(“%6.4fn

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

9、) k=fun(10,12.5); ( C) fun(x,n); ( D) void fun(n,x); 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%cn“,c1,c2); 程序运行后的输出结果是 ( A) Ab ( B) aa ( C) Aa ( D) Bb 29 若程序中已包含头文件 stdio.h,以下选项中,正确运用指针 变量的程序段是 ( A) int *i=NULL; ( B) float *f=NULL;s

10、canf(“%d“,i); *f=10.5; ( C) char t=m, *c= ( D) long *L; 30 有以下程序 #include stdio.h main( ) printf(“%dn“,NULL); 程序运行后的输出结果是 ( A) 0 ( B) 1 ( C) -1 ( D) NULL没定义,出错 31 已定义 c为字符型变量,则下列语句中正确的是 ( A) c=97; ( B) c=“97“; ( C) c=97; ( D) c=“a“; 32 以下不能正确定义二维数组的选项是 ( A) int a22=1,2; ( B) int a 2=1,2,3,4; ( C) in

11、t a22=1,2,3; ( D) int a2 =1,2,3,4; 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; int blue; cl; ( D) struct int red; int green; int blue; cl; 34 以下能正确定义一维数组的选项 是 (

12、A) int num ; ( B) #define N 100 int numN; ( C) int num0100; ( D) int N=100; int numN; 35 下列选项中正确的语句组是 ( A) char s8; s=“Beijing“; ( B) char s8; s=“Beijing“; ( C) char *s; s=“Beijing“; ( D) char *s; s=“Beijing“; 36 已定义以下函数 fun(int *p) return *p; 该函数的返回值是 ( A)不确定的值 ( B)形参 p中存放的值 ( C)形参 p所指存储单元中的值 ( D)形

13、参 p的地址值 37 下列函数定义中,会出现编译错误的是 ( A) max(int x,int y,int *z) *z=xy ? x:y; ( B) int max(int x,y) int z; z=x y ? 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(x y?x:y); 38 有以下程序 #include stdio.h #define F(X,Y) (X)*(Y) main( ) int a=3, b=4; printf(“%dn“,

14、 F(a+, b+); 程序运行后的输出结果是 ( A) 12 ( B) 15 ( C) 16 ( D) 20 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(“%dn“, r); 程序运行后的输出结果是 ( A) 3 ( B) 6 ( C) 8 ( D) 12 40 若有定义: int *p3;,则以下叙述中正确的是 ( A)定义了一个基类型为 int的指针变量 p,该变量具有三个指针 ( B)定义了一

15、个指针数组 p,该数组含有三个元素,每个元素都是基类型为 int的指针 ( C)定义了一个名为 *p的整型数组,该数组含有三个 int类型元素 ( D)定义了一个可指向一维数组的指针变量 p,所指一维数组应具有三个 int类型元素 41 以下程序中函数 scmp的功能是返回形参指针 s1和 s2所指字符串中较小字符串的首地址 #include stdio.h #include string.h char *scmp(char *s1, char *s2) if(strcmp(s1,s2)0 ? p/10 : p%3); 57 以下程序运行后的输出结果是【 】。 main() char m; m

16、=B+32; printf(“%cn“,m); 58 以下程序运行后的输出结果是【 】。 main( ) int a=1,b=3,c=5; if (c=a+b) printf(“yesn“); else printf(“non“); 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 %dn“,m,n,k); 60 执行以下程序后,输出 #号的个数

17、是【 】。 #include main() int i,j; for(i=1; i,则输出结果是【 】 #include string.h move(char *str, int n) char temp; int i; temp=strn-1; for(i=n-1;i 0;i-) stri=stri-1; str0=temp; main( ) char s50; int n, i, z; scanf(“%d,%s“, z=strlen(s); for(i=1; i =n; i+) move(s, z); printf(“%sn“,s); 66 以下程序运行后的输出结果是【 】 fun(int

18、 x) if(x/2 0) fun(x/2); printf(“%d “,x); main( ) fun(6); 67 已有定义如下: struct node int data; struct node *next; *p; 以下语句调用 malloc函数,使指针 p指向一个具有 struct node类型的动态存储空间。请填空。 p = (struct node *)malloc(【 】 ); 68 以下程序的功能是将字符串 s中的数字字符放入 d数组中,最后输出 d中的字符串。例如,输入字符串: abc123edf456gh,执行程序后输出: 123456。请填空。 #include #i

19、nclude main() char s80, d80; int i,j; gets(s); for(i=j=0;si!=0;i+) if(【 】 ) dj=si; j+; dj=0; puts(d); 69 以下程序的功能是调用函数 fun计算: m=1-2+3-4+9 -10,并输出结果。请填空。 int fun( int n) int m=0,f=1,i; for(i=1; i =n; i+) m+=i*f; f=【 】 ; return m; main( ) printf(“m=%dn“,【 】 ); 2003 年 9月国家二级( C语言)笔试真题试卷答案与解析 1 【正确答案】 C

20、【试题解析】 在表示数据位数时,把 8位二进制数称为一个字节。 2 【正确答案】 A 【试题解析】 CD-ROM可用于存储数据,如文字、声音、图像等,属于存储媒体。 3 【正确答案】 B 【试题解析】 DOS 系统中,如果命令中使用了 * *,则表示主文件名任意,扩展名任意的文件,即所有文件。但如无特别限定,均指当前盘当前目录中的全部文件。 4 【正确答案】 A 【试题解析】 把非十进制数转换为十进制可采用按权展开求和的方法,此题为:1X162+oxl61+0x160,计算得到 256。 5 【正确答案】 D 【试题解析】 此题考查考生对几个常用术语的理解。汇编程序是把用汇编语言编写的程序翻译

21、成二进制目标程序;编辑程序是对源程序进行输入、修改的过程,解释程序逐语句执行,但 不生成目标程序。只有编译程序是把高级语言编写的源程序转换为目标程序。 6 【正确答案】 C 【试题解析】 FTP是文件传输协议的缩写,其他几个选项都与文件传输协议无关。 7 【正确答案】 B 【试题解析】 此题考查了 Windows 操作系统的基本知识,若文件夹前有 “+”,则表明该文件夹中包含子文件 夹。 8 【正确答案】 A 【试题解析】 在 “开始 ”菜单中右击某项子菜单,从快捷菜单中选择 “删除 ”命令即可删除某项子菜单,还可以通过 “开始 ”菜单的 “设置 ”命令向 “开始 ”菜单中添加项子菜 单。 9

22、 【正确答案】 C 【试题解析】 Windows 可进入系统自带的 DOS 方式。其中 QUTT 命令用于退出UCDOS 方式, WIN用于在纯 DOS 方式下进入 Windows, ESC用于中断当前程序的运行。 10 【正确答案】 D 【试题解析】 可执行文件和文本文件等都可能感染计算机病毒,而且计算机病毒不仅能通过软件复制的方式进行传播,还可以通过读写磁盘或网络等方式进行传播。 11 【正确答案】 A 【试题解析】 花括号既可以做函数的定界符,也可以表示复合语句。函数有用户自定函数和系 统函数两种,系统函数名称不能由用户命名。分号是语句间的分隔符,也是一条语句的终止符,是语句的一部分。

23、12 【正确答案】 C 【试题解析】 在 C语言中,整型常量分十进制、八进制、十六进制 3种,八进制、十六进制与十进制的区别是八进制以 “0”开头,基数为 0 7;十六进制以 0x开头,基数为 0 9及 a f。 13 【正确答案】 D 【试题解析】 int是 C语言中的一个关键字。关键字不能用做用户标识符, void是 C语言中的关键字,但 Void 却不是,因为 C语言中区分大小写。 14 【正确答案】 B 【试题解析】 本程序的执行顺序如下: (1)x=6 5, x值为 6 5; (2)c*=x,即c=c*x, c值为 65; (3)f =c,即 f=f c, f值为 1 538; (4

24、)a=f,因 a为整型变量,故只存储 f 值的整数部分 1;输出 f 值时,因限定其值域宽为 3,小数位为 1,故输出 1 5。 15 【正确答案】 D 【试题解析】 赋值语句中赋值符左边只能出现变量名的形式,而不允许出现表达式。 16 【正确答案】 C 【试题解析】 由于整个表达式中出现了 “”运算符,则先计算 “”前的表达式的值。若 非 0,则不再计算其后表达式的值,由于 ba为逻辑真 1, 1赋给 n, n为 1再赋给 k, k 值为 1,则 “”左边式子的值为 1,故不再计算其后的式子, m值不发生变化。 17 【正确答案】 A 【试题解析】 在输入函数中由于出现了非格式说明符 “,

25、”,则输人数据时,非格式说明符必须原样输入。 18 【正确答案】 D 【试题解析】 因为 (x, y)是一个逗号表达式,其值是最后一个式子的值,故本表达式值为 2003,然后输出表达式的值。 19 【正确答案】 C 【试题解析】 选项 A)中, x的值发生变化 ,近似为原先的 100倍,而选项 B),选项 D)均不能保证小数点后只保留两位小数。 20 【正确答案】 C 【试题解析】 选项 A), B)考查了多分支结构的用法,选项 A)中的程序段执行时, c a, b a条件均不成立,故执行 else后的语句, x值为 3;选项 B)中 a 3条件成立,执行 x=3;而选项 C), D)是单分支

26、结构的用法,选项 C)中程序段执行时, a1)的结果总为 0,而不是小数。 25 【正确答案】 A 【试题解析】 选项 A)中, ch 存储了字符反斜杠;选项 B)中存储了 ASCII码值是65对应的字符;选项 D)是单撇号括起 x后跟一到两位十六进制数,表示一个转义字符。 26 【正确答案】 D 【试题解析】 C语言规定,函数的形参要么为空,要么是变量。如果是变量则用以接收主函数传递 过来的数据。 27 【正确答案】 C 【试题解析】 选项 A)中的实参不能在调用时声明;选项 B)错误,因为无返回值的函数不能出现在表达式中;选项 D)错误,其调用格式不正确。 28 【正确答案】 A 【试题解

27、析】 本题考查了地址的调用。在子函数 fun()中, a, b 分别存储的是存放 “A”, “a,两个字符所在存储单元的地址。但在子函数中直接改变了指针变量a所指存储单元 (a=b,即 b 所指单元 )中的值,使其变为 “b”,故子函数执行结束时, c1 的值不变, c2的值改变。 29 【正确答案】 D 【试题解析】 选项 C)显然不对。选项 A), B), D)从语法上讲都是可以的,但内存中地址为 NULL,即地址 0的单元不能随意存放用户数据,因为这样可能会破坏其他程序。选项 D)中尽管用了, 0, (在内存中也为 0),但并未向该单元存放数据,故该项正确。 30 【正确答案】 A 【试

28、题解析】 因为在头文件 stdio h 中,已对 NULL 作了宏定义,其值为 0。 31 【正确答案】 C 【试题解析】 字符常量是用单撇号括起来的 个字符或一串字符,故选项 A)不正确。选项 B), D)均为字符串。而选项 C)是把 ASCII码值为 g7的字符赋给了变量 c。 32 【正确答案】 D 【试题解析】 C语言中明确规定,在定义二维数组时,后一个下标值不能省略,否则将无法判定数组中某一行的元素个数。 33 【正确答案】 B 【试题解析】 选项 A)是把结构体类型改名后定义为变量 cl。选项 C), D)则是在定义结构体类型时定义变量,而选项 B)不符合结构体类型定义的语法规则。

29、 34 【正确答案】 B 【试题解析】 定义一维数组时,其下标值必须为常量,故选项 A), C)和 D)均不符合语法规则,选项 B)是先定义了符号常量,后定义数组,这是允许的。 35 【正确答案】 D 【试题解析】 C语言不允许通过赋值语句给字符数组赋值,故选项 A), C)不正确,而 “”是在定义变量的同时对变量进行初始化时使用,在赋值时不能使用。 36 【正确答案】 C 【试题解析】 在表达式中出现 *p,表示引用指针变量所指存储单元的内容。 37 【正确答案】 B 【试题解析】 定义函数时,若需要声明形式参数时,则每个形式参数都必须单独声明类型。 38 【正确答案】 A 【试题解析】 本题考查了 带参数的宏定义。参数只是进行简单的替换而不是把其值求出后替换形式参数。本题中用 a+替换 X,用 b+替换 Y,再求 (a+)*(b+)的值。 39 【正确答案】 D 【试题解析】 此题考查了带返回值的函数的调用。 fun()函数的功能是求出两个数的最大数并返回主函数 r=fun(fun(x, y), 2*z)处。执行过程为先调用函数 fun(x,y)求得两数中的较大者,再进行自身的递归调用,此时函数中的两个参数为刚求得的数和 2*z(即 12)传递给子函数,找出两数中的大数。 40 【正确答案】 B

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