2004年4月全国计算机等级考试二级C语言笔试试卷(附参考答案)

合集下载

全国计算机等级考试二级C语言笔试试题及答案

全国计算机等级考试二级C语言笔试试题及答案
常将有日思无日,莫待无时思有时。——《增广贤文》
老当益壮,宁移白首之心;穷且益坚,不坠青云之志。——唐·王勃
D) 4 (31) 有如下类定义:
class XX( int xx; public: XX(): xx(0) {cout<<' A';} XX( int n):xx ( n) {tout<<' B';} }; Class YY:public XX( Int yy; public: YY(): yy ( 0) (cout+yy;} YY ( int n ): XX (n+1 ), yy(n) (cout<<yy;} YY ( int m, int n):XX (m), yy (n) (cout<<yy;} }; 下列选项中,输出结果为 A0 的语句是 A) YY y1 (0,0); B) YY y2(1); C) YYy3(0); D) YYy4; (32) 有如下程序: #include<iostream> Using namespace std; class A( public: virtual void f () (cout+1;} void g () (cout<<2;} }; class B:public A( public: virtual void f () (cout<<3;} void g()(ecut<<4;} }; void show (A &a)(a.f();a.g( ) ; } int main()( B b; show(b); return 0; } 运行时的输出结果是 A) 12 B) 34 C) 14 D) 32 (33) 有如下程序: #include<iostream> using namespace std; class Pair( int m; int n; public: Pair ( int i, int j ): m(i), n(j) (} boot operator > ( pair p ) const;//须在类体外给出定义 ); int main () { Pair Al(3,4),p2(4,3); p3(4,5); Cout<< (pl>p2) << (P2>P1) << (p2>p3) << (p3>p2); return 0; } 运算符函数。operator〉的功能是比较两个 Pair 对象的大小,当左边对象大时,返回 true,否则 返 回 false。比较规则是首先比较两对象的 m 成员,m 大者为大;当 m 相等时比较 n, n 大者为大。程序输 出 0101, 下列对运算符重载函数的正确定义是 A ) bool Pair::operator> ( Pair p ) const {if (m!=p.m) return m>p.m; return n>p.n;}

全国计算机等级考试二级C笔试试卷(含参考答案)

全国计算机等级考试二级C笔试试卷(含参考答案)

全国计算机等级考试二级C笔试试卷(含参考答案)以下各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)以下表达中正确的选项是A)程序设计就是编制程序 B)程序的测试必须由程序员自己去完成C)程序经调试改错后还应进展再测试 D)程序经调试改错后不必进展再测试(2)以下数据构造中,能用二分法进展查找的是A)顺序存储的有序线性表 B)线性链表C)二叉链表 D)有序线性链表(3)以下关于栈的描述正确的选项是A)在栈中只能插入元素而不能删除元素B)在栈中只能删除元素而不能插入元素C)栈是特殊的线性表,只能在一端插入或删除元素D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素(4)以下表达中正确的选项是A)一个逻辑数据构造只能有一种存储构造B)数据的逻辑构造属于线性构造,存储构造属于非线性构造C)一个逻辑数据构造可以有多种存储构造,且各种存储构造不影响数据处理的效率D)一个逻辑数据构造可以有多种存储构造,且各种存储构造影响数据处理的效率(5)以下描述中正确的选项是A)软件工程只是解决软件工程的管理问题B)软件工程主要解决软件产品的生产率问题C)软件工程的主要思想是强调在软件开发过程中需要应用工程化原那么D)软件工程只是解决软件开发中的技术问题(6)在软件设计中,不属于过程设计工具的是A)PDL(过程设计语言) B)PAD图 C)N-S图 D)DFD图(7)以下表达中正确的选项是A)软件交付使用后还需要进展维护B)软件一旦交付使用就不需要再进展维护C)软件交付使用后其生命周期就完毕D)软件维护是指修复程序中被破坏的指令(8)数据库设计的根本目标是要解决A)数据共享问题 B)数据平安问题C)大量数据存储问题 D)简化数据维护(9)设有如下关系表:R S TA B C A B C A B C1 123 1 3 1 1 22 23 2 2 33 1 3那么以下操作中正确的选项是A)T=R∩S B)T=R∪S C)T=R×S D)T=R/S(10)数据库系统的核心是A)数据模型 B)数据库管理系统 C)数据库 D)数据库管理员(11)以下表达中错误的选项是A)用户所定义的标识符允许使用关键字B)用户所定义的标识符应尽量做到“见名知意”C)用户所定义的标识符必须以字母或下划线开头D)用户定义的标识符中,大、小写字母代表不同标识(12)以下表达中错误的选项是A)C语句必须以分号完毕B)复合语句在语法上被看作一条语句C)空语句出现在任何位置都不会影响程序运行D)赋值表达式末尾加分号就构成赋值语句(13)以下表达中正确的选项是A)调用printf函数时,必须要有输出项B)使用putchar函数时,必须在之前包含头文件stdio.hC)在中,整数可以以十二进制、八进制或十六进制的形式输出D)调用getchar函数读入字符时,可以从键盘上输入字符所对应的ASCII码(14)以下关于函数的表达中正确的选项是A)每个函数都可以被其它函数调用(包括main函数)B)每个函数都可以被单独编译C)每个函数都可以单独运行D)在一个函数内部可以定义另一个函数(15)假设有语句:char *line[5];,以下表达中正确的选项是A)定义line是一个数组,每个数组元素是一个基类型为char 的指针变量B)定义line是一个指针变量,该变量可以指向一个长度为5的字符型数组C)定义line是一个指针数组,语句中的*号称为间址运算符D)定义line是一个指向字符型函数的指针(16)有以下程序段typedef struct NODE{ int num; struct NODE *next;} OLD;以下表达中正确的选项是A)以上的说明形式非法 B)NODE是一个构造体类型C)OLD是一个构造体类型 D)OLD是一个构造体变量(17)以下表达中错误的选项是A)C语言中对二进制文件的访问速度比文本文件快B)C语言中,随机文件以二进制代码形式存储数据C)语句 FILE fp; 定义了一个名为fp的文件指针D)C语言中的文本文件以ASCII码形式存储数据(18)当把以下四个表达式用作if语句的控制表达式时,有一个选项与其它三个选项含义不同,这个选项是A)k%2 B)k%2==1 C)(k%2)!=0 D)!k%2==1(19)以下不能正确计算代数式值的C语言表达式是A)1/3*sin(1/2)*sin(1/2) B)sin(0.5)*sin(0.5)/3C)pow(sin(0.5),2)/3 D)1/3.0*pow(sin(1.0/2),2)(20)以下能正确定义且赋初值的语句是A)int n1=n2=10; B)char c=32;C)float f=f+1.1; D)double x=12.3E2.5;(21)以下程序的功能是:给r输入数据后计算半径为r的圆面积s。

2004年4月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)

2004年4月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)

2004年4月国家二级(VISUALFOXPRO)笔试真题试卷(题后含答案及解析)题型有:1. 选择题 2. 填空题选择题(每小题2分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。

1.数据库(DB) 、数据库系统(DBS)、数据库管理系统(DBMS)三者之间的关系是A.DBS包括DB和DBMSB.DBMS包括DB和DBSC.DB包括DBS和DBMSD.DBS就是DB,也就是DBMS正确答案:A解析:本题是对数据库理论中几个基本概念的考查。

数据库系统由五个部分组成:数据(DB) 、数据库管理系统(DBMS)、硬件系统、数据库管理员和用户。

因此可知,DBS包括DB和DBMS,故选项A为正确答案。

2.在Visual FoxPro中“表”是指A.报表B.关系C.表格D.表单正确答案:B解析:本题是对Visual FoxPro基本概念的考查,考查“表”的概念。

在Visual FoxPro中,用表这个概念来表示数据库理论中的关系,数据库中的数据就是由表的集合构成的,因此正确答案为选项B。

3.数据库系统与文件系统的最主要区别是A.数据库系统复杂,而文件系统简单B.文件系统不能解决数据冗余和数据独立性问题,而数据库系统可以解决C.文件系统只能管理程序文件,而数据库系统能够管理各种类型的文件D.文件系统管理的数据量较少,而数据库系统可以管理庞大的数据量正确答案:B解析:本题考查数据库系统和文件系统的区别。

数据库系统和文件系统有一定的区别,其中最主要的区别就是数据库系统能够解决数据冗余和数据独立性问题,这是数据库系统优于文件系统的本质特性,因此可以得出答案为B。

4.在当前表单的LABELl控件中显示系统时间的语句是A.BEL1.CAPTION=TIME( )B.BEL1.V ALUE=TIME( )C.BEL1.TEXT=TIME( )D.BEL1.CONTROL=TIME( )正确答案:A解析:本题考查表单的标签控件的使用。

全国计算机等级考试二级C语言公共基础知识(附例题)

全国计算机等级考试二级C语言公共基础知识(附例题)

第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。

详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1。

1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。

计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。

1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。

2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构.在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。

(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。

描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等.一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成.考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念.1。

算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。

同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。

这表明使用绝对的时间单位衡量算法的效率是不合适的.撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3(含答案)

全国计算机等级考试二级C语言程序设计真题精选3一、单项选择题1.下列关于C语言文件的叙述中正确的是()。

A.文件由一系列数据依次排列组成,只能构成二进制文件B.文件由结构序列组成,可以构成二进制文件或文本文件C.文件由数据序列组成,可以构成二进制文件或文本文件√D.文件由字符序列组成,其类型只能是文本文件解析:C语言将文件看作是一个字符(字节)的序列,即由一个一个字符(字节)数据顺序组成。

根据数据的组成形式,可将文件分为两种:①ASCII文件,又称文本(text)文件,它的每一个字节可放一个ASCII码,代表一个字符;②二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。

所以C文件就是一个字节流或一个二进制流。

2.有以下程序:#includ<stdio.h>main()inm=1,n=2,*p=&m,*q=&n,*r; r=p,p=q;q=r; printf("%d,%d,%d,%",m,n,*p,*q);}程序运行后的输出结果是()。

A.1,2,1,2B.1,2.2,1 √C.2,1,2,1D.2,1.1,2解析:本题定义了两个整型变量,然后用两个指针分别指向这两个整型变量,接着对指针进行交换,那么原来指向第一个整数的指针将指向第二个整数,原来指向第二个整数的指针将指向第一个整数。

3.有以下程序:#includ<stdio.h>#include<string.h>strucAina;chab[10];doublc;};strucf (struct);main()struca={1001,"ZhangDa",1098.0}; a=f(a);printf ("%d,%s,%6.1",a.a,a.b,a.c);}strucf(struct)t.a=1002;strcpy(t.b,"ChangRong");t.c=1202.0;returt;}程序运行后的输出结果是()。

全国计算机等级考试二级C语言真题2004年4月

全国计算机等级考试二级C语言真题2004年4月

全国计算机等级考试二级C语言真题2004年4月(总分:69.00,做题时间:90分钟)一、{{B}} 选择题{{/B}}(总题数:50,分数:50.00)1.1MB等于( )(分数:1.00)A.1000字节B.1024字节C.1000×1000字节D.1024×1024字节√解析:[解析]在计算机的二进制表示中:1KB=210B=1024B1MB=220B=1024 X1024B2.与十六进制数200等值得十进制数为( )(分数:1.00)A.256B.512 √C.1024D.2048解析:[解析]计算方法为:对于16进制数200末位有两位是零,因此是162,最高位是2,所以应为162=512。

3.所谓“裸机”是指( )(分数:1.00)A.单片机B.单板机C.不装备任何软件的计算机√D.只装备操作系统的计算机解析:[解析]裸机是指不装备任何软件的计算机,装备了操作系统的计算机不属于裸机。

4.能将高级语言编写的源程序转换为目标程序的是( )(分数:1.00)A.链接程序B.解释程序C.编译程序√D.编辑程序解析:[解析]编译程序是将高级语言编写的程序转换成目标程序。

5.在64为计算机中,一个字长所占字节数为( )(分数:1.00)A.64B.8 √C.4D.1解析:[解析]在64位计算机中,一个字节占4位,一个字长占8个字节。

6.在Windows环境下,当一个应用程序窗口被最小化后,该应用程序( )(分数:1.00)A.继续在后台运行√B.继续在前台运行C.终止运行D.暂停运行解析:[解析]在Windows操作系统下,一个应用程序窗口最小化后,该程序继续在后台运行,只有关闭该窗口时,才终止运行。

7.在Windows环境下,能实现窗口移动的操作是( )(分数:1.00)A.用鼠标拖动窗口中的任何部位B.用鼠标拖动窗口的边框C.用鼠标拖动窗口的控制按钮D.用鼠标拖动窗口的标题栏。

全国计算机等级考试二级C语言笔试试题

全国计算机等级考试二级C语言笔试试题

全国计算机等级考试二级C语言笔试试题全国计算机等级考试二级C语言笔试试题计算机二级考试是全国计算机等级考试(National Computer Rank Examination,简称NCRE)四个等级中的一个等级,考核计算机基础知识和使用一种高级计算机语言编写程序以及上机调试的基本技能。

那么全国计算机等级考试二级C语言会怎么考?以下仅供参考!一、选择题(1-30 每小题1 分,31-45 每小题2 分,共60 分)下列各题A),B),C),D)四个选项,只有一个选项是正确的,请将正确的选项在答题卡相应位置上涂黑。

答在试卷上不得分。

(1) 二进制数101110 转换为等值的八进制数是()。

A.45B.56C.67D.78(2) CPU 是由()组成的。

A.内存储器和控制器B.控制器和运算器C.内存储器和运算器D.内存储器、控制器和运算器(3) DOS 是为IBM PC 系列微型计算机及其兼容机所配置的()磁盘操作系统。

A.多用户多任务B.单用户单任务C.分时D.分布式(4) 启动MS-DOS 操作系统后,()已驻留内存。

A.B.C.D.CCCC.EXE(5) 设驱动器B 中软盘上的目录结构如下图所示。

设当前目录为F2,则把A 盘根目录下的PROG.BAS 文件复制到B 盘F3 子目录中的命令是()。

A.COPY PROG.BAS B:B.COPY A:PROG.BAS B:C.COPY A:PROG.BAS B:F3D.COPY A:PROG.BAS B:F3(6) 下面四组DOS 命令中,意义完全相同的一组是()。

A.COPY 和DISKCOPYB.COMP 和DISKCOMPC.DEL 和RDD.RENAME 和REN(7) 防止软盘感染病毒的有效方法是()。

A.不要把软盘和有毒软盘放在一起B.在写保护缺口上贴上胶条C.保持机房清洁D.定期对软盘格式化(8) 双面高密度5 英寸软磁盘的容量是()。

全国计算机等级考试二级C语言公共基础知识(附例题)

全国计算机等级考试二级C语言公共基础知识(附例题)

第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。

详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。

计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法.1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。

2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。

在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。

(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构.描述算法的工具通常有传统流程图、N—S结构化流程图、算法描述语言等。

一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。

考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。

1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。

同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。

这表明使用绝对的时间单位衡量算法的效率是不合适的。

撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。

全国计算机等级考试二级C语言笔试试题及答案

全国计算机等级考试二级C语言笔试试题及答案

C.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量弱D.模块的内聚程度要尽量低,且各模块间的耦合程度要尽量强(8)下列描述中正确的是______。

A.程序就是软件B.软件开发不受计算机系统的限制C.软件既是逻辑实体,又是物理实体D.软件是程序、数据与相关文档的集合(9)数据独立性是数据库技术的重要特点之一,所谓数据独立性是指______。

A.数据与程序独立存放B.不同的数据被存放在不同的文件中C.不同的数据只能被对应的应用程序所使用D.以上三种说法都不对(10)用树形结构表示实体之间联系的模型是______。

A.关系模型B.网状模型C.层次模型D.以上三个都是(11)算法具有五个特性,以下选项中不属于算法特性的是______。

A.有穷性B.简洁性C.可行性D.确定性(12)以下选项中可作为C语言合法常量的是______。

A.-80.B.-080C.-8e1.0D.-80.0e(13)以下叙述中正确的是______。

A.用C程序实现的算法必须要有输入和输出操作B.用C程序实现的算法可以没有输出但必须要输入C.用C程序实现的算法可以没有输入但必须要有输出D.用C程序实现的算法可以既没有输入也没有输出(14)以下不能定义为用户标识符的是______。

A.MainB._0C._intD.sizeof(15)以下选项中不能作为合法常量的是______。

A.1.234e04B.1.234e0.4C.1.234e+4D.1.234e0(16)数字字符0的ASCII值为48,若有以下程序main(){ char a='1',b='2 ';printf("%c,",b++);printf("%d\n",b-a);}程序运行后的输出结果是______。

A.3,2B.50,2C.2,2D.2,50(17)有以下程序main(){ int m=12,n=34;printf("%d%d",m++,++n);printf("%d%d\n",n++,++m);}程序运行后的输出结果是______。

2004年4月全国计算机等级考试二级VB语言笔试试题及答案

2004年4月全国计算机等级考试二级VB语言笔试试题及答案

2004年4月全国计算机等级考试二级VB语言笔试试题及答案一、选择题(1) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()Move 500,500End Sub程序运行后,单击命令按钮,执行的操作为A) 命令按钮移动到距窗体左边界、上边界各500的位置B) 窗体移动到距屏幕左边界、上边界各500的位置C) 命令按钮向左、上方向各移动500D) 窗体向左、上方向各移动500(2) 在窗体上有若干控件,其中有一个名称为Text1的文本框。

影响Text1的Tab顺序的属性是A) TabStop B)Enabled C) Visible D)TabIndex(3) 以下定义数组或给数组元素赋值的语句中,正确的是A) Dim a as Varient B) Dim a(10)as Integera=Array(1,2,3,4,5) a=Array(1,2,3,4,5)C) Dim a%(10)D) Dim a(3),b(3)as integera(1)="ABCDE" a(0)=0a(1)=1a(2)=2b=a(4) 在窗体上画一个名称为List1的列表框,为了对列表框中的每个项目都能进行处理,应使用的循环语句为A) For i=0 To List1.ListCount-1……NextB) For i=0 To ListCount-1……Next C) For i=1 To List1.listCount ……NextD) For i=1 To ListCount ……Next(5) 以下Case语句中错误的是A) Case 0 To 10 B) Case Is>10C) Case Is>10 And Is<50 D) Case 3,5,Is>10(6) 以下关于图片框控件的说法中,错误的是A) 可以通过Print方法在图片框中输出文本B) 清空图片框控件中图形的方法之一是加载一个空图形C) 图片框控件可以作为容器使用D) 用Stretch属性可以自动调整图片框中图形的大小(7) 执行语句s=Len(Mid("VisualBasic",1,6))后,s的值是A) Visual B) Basic C) 6 D) 11(8) 以下叙述中错误的是A) 下拉式菜单和弹出式菜单都用菜单编辑器建立B) 在多窗体程序中,每个窗体都可以建立自己的菜单系统C) 除分隔线外,所有菜单项都能接收Click事件D) 如果把一个菜单项的Enabled属性设置为False,则该菜单项不可见(9) 在窗体上画一个命令按钮,其名称为Command1,然后编写如下事件过程:Private Sub Command1_Click()a = 12345Print Format$(a, "000.00")End Sub程序运行后,单击命令按钮,窗体上显示的是A) 123.45 B) 12345.00 C) 12345 D)00123.45(10) 以下叙述中错误的是A) 一个工程可以包括多种类型的文件B) Visual Basic应用程序既能以编译方式执行,也能以解释方式执行C) 程序运行后,在内存中只能驻留一个窗体D) 对于事件驱动型应用程序,每次运行时的执行顺序可以不一样(11) 以下关于函数过程的叙述中,正确的是A) 函数过程形参的类型与函数返回值的类型没有关系B) 在函数过程中,过程的返回值可以有多个C) 当数组作为函数过程的参数时,既能以传值方式传递,也能以传址方式传递D) 如果不指明函数过程参数的类型,则该参数没有数据类型(12) 以下关于变量作用域的叙述中,正确的是A) 窗体中凡被声明为Private的变量只能在某个指定的过程中使用B) 全局变量必须在标准模块中声明C) 模块级变量只能用Private关键字声明D) Static类型变量的作用域是它所在的窗体或模块文件(13) 确定一个控件在窗体上的位置的属性是A) Width和Height B) Width或HeightC) Top和Left D) Top或Left(14) 在窗体上画一个名称为Text1的文本框和一个名称为Command1的命令按钮,然后编写如下事件过程Private Sub Command1_Click()Text1.Text = "Visual"Me.Text1 = "Basic"Text1 = "Program"End Sub程序运行后,如果单击命令按钮,则在文本框中显示的是A) Visual B) Basic C) Program D) 出错(15) 以下关系表达式中,其值为False的是A) "ABC">"AbC"B) "the"<>"they"C) "VISUAL"=UCase("Visual") D) "Integer">"Int"(16) 语句Print 5/4*6\5 Mod 2的输出结果是A) 0 B) 1 C) 2 D) 3(17) 在窗体上画一个文本框、一个标签和一个命令按钮,其名称分别为Text1、Label1和Command1,然后编写如下两个事件过程:Private Sub Command1_Click()strText = InputBox("请输入")Text1.Text = strTextEnd SubPrivate Sub Text1_Change()Label1.Caption = Right(Trim(Text1.Text), 3)End Sub程序运行后,单击命令按钮,如果在输入对话框中输入abcdef,则在标签中显示的内容是A)空 B) abcdef C) abc D) def(18) 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:Private Sub Command1_Click()x = -5If Sgn(x) Theny = Sgn(x ^ 2)Elsey = Sgn(x)End IfPrint yEnd Sub程序运行后,单击命令按钮,窗体上显示的是A) -5 B) 25 C) 1 D) -1(19) 一个工程中含有窗体Form1、Form2和标准模块Model1,如果在Form1中有语句Pubilc X As Integer,在Model1中有语句Pubilc Y As Integer,则以下叙述中正确的是A) 变量X、Y的作用域相同 B) Y的作用域是Model1C) 在Form1中可以直接使用X D) 在Form2中可以直接使用X和Y(20) 在窗体上画一个名称为Drive1的驱动器列表框,一个名称为Dir1的目录列表框。

2004年4月全国计算机等级考试二级C笔试试卷含答案

2004年4月全国计算机等级考试二级C笔试试卷含答案

2004年4月全国计算机等级考试二级C笔试试卷含答案2004年4月全国计算机等级考试二级C语言笔试试卷(附参考答案)一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 1MB等于A) 1000字节 B) 1024字节C) 1000×1000字节 D)1024×1024字节(2) 与十六进制数200等值的十进制数为A) 256 B) 512 C) 1024 D) 2048(3) 所谓“裸机”是指A) 单片机B) 单板机C) 不装备任何软件的计算机 D) 只装备操作系统的计算机(4) 能将高级语言编写的源程序转换成目标程序的是A) 链接程序 B) 解释程序 C)编译程序 D) 编辑程序(5) 在64位计算机中,一个字长所占的字节数为A) 64 B) 8 C) 4 D) 1(6) 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序A) 继续在后台运行 B) 继续在前台运行C) 终止运行 D) 暂停运行(7) 在Windows环境下,能实现窗口移动的操作是A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框C) 用鼠标拖动窗口的控制按钮D) 用鼠标拖动窗口的标题栏(8) 在Windows环境下,PrintScreen键的作用是A) 打印当前窗口的内容 B) 打印屏幕内容C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板(9) Internet的通信协议是A) TCP/IP B) BBS C) WWW D) FTP(10) 下列叙述中正确的是A) 计算机病毒只感染可执行文件B) 计算机病毒只感染文本文件C) 计算机病毒只能通过软件复制的方式进行传播D) 计算机病毒可以通过网络或读写磁盘等方式进行传播(11) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入 B) 有零个或多个输出C) 有穷性 D) 可行性(12) 以下叙述中正确的是A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译(13) 以下符合C语言语法的实型常量是A) 1.2E0.5 B) 3.14.159EC) .5E-3 D) E15(14) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) intenclude -max REAL k_2sin turbo 3COM _001(15) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3 B) 1+2=x2 C)x3=0x12 D) x4=1+2=3;(16) 设有以下定义int a=0;double b=1.25;char c=’A’;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;(17) 设有定义:floata=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是A) (a+B) *h/2 B) (1/2)*(a+B)*hC) (a+B) *h*1/2 D) h/2*(a+B)(18) 有以下程序main( ){int x=102,y=012;printf(“%2d,%2d\n”,x,y);}执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D)02,10(19) 以下4个选项中,不能看作一条语句的是A) {;} B) a=0,b=0,c=0; C)if(a>0); D) if(b==0) m=1;n=2;(20) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A) scanf(“%d”,pA) ; B)scanf(“%d”,A) ;C) scanf(“%d”,&pA) ; D)scanf(“%d”,*p A) ;(21) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是A) if((a>B) &&(b>C) ) k=1; B)if((a>B) ||(b>C) ) k=1else k=0;C) if(a<=B) k=0; D) if(a>B)k=1;else if(b<=C) k=1; elseif(b>C) k=1;else k=0;(22) 有以下程序main( ){ char k; int I;for(i=1;i<3;i++){ scanf(“%c”,&k);switch(k){ case ‘0’:printf(“another\n”);case ‘1’:printf(“number\n”);}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A) another B) another C) another D) numbernumber number number number another number(23) 有以下程序main( ){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1; printf(“%d,%d,%d\n”,x,y,z );}程序执行后的输出结果是A) 3,2,0 B) 3,2,-1 C) 4,3,-1D) 5,-2,-5(24) 有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1; printf(“%d\n”,s);}程序执行后的输出结果是A) 自然数1~9的累加和 B) 自然数1~10的累加和C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和(25) 有以下程序main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf(“n=%d\n”,n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=4(26) 若程序中定义了以下函数double myadd(double a,doubleB){ return (a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A) double myadd(double a,B) ;B) doublemyadd(double,double);C) double myadd(doubleb,double A) ;D) double myadd(doublex,double y);(27) 有以下程序char fun(char x , char y){ if(xreturn y;}main( ){ inta=’9’,b=’8’,c=’7’;printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));}程序的执行结果是A) 函数调用出错 B)8 C)9 D)7(28) 设有定义:intn=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是A) p=1; B) *q=2; C) q=p; D)*p=5;(29) 有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是A) 1,2,3 B) 3,1,2 C) 1,3,2 D)2,3,1(30) 有以下程序段inta[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A) 5 B) 6 C) 8 D) 9(31) 31、有以下程序main( ){ chara[]=”abcdefg”,b[10]=”abcdefg”;printf(“%d %d\n”,sizeof(A) ,sizeof(B) );}执行后输出结果是A) 7 7 B) 8 8 C) 8 10 D) 10 10(32) 有以下程序void swap1(int c[]){ int t;t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t;t=c0;c0=c1;c1=t;}main( ){ int a[2]={3,5},b[2]={3,5}; swap1(A) ; swap2(b[0],b[1]); printf(“%d %d %d %d\n”,a[ 0],a[1],b[0],b[1]);}其输出结果是A) 5 3 5 3 B) 5 3 3 5 C) 3 53 5 D) 3 5 5 3(33) 有以下程序void sum(int *A){ a[0]=a[1];}main( ){ intaa[10]={1,2,3,4,5,6,7,8,9,1 0},i;for(i=2;i>=0;i--) &nbsp; sum(&aa);printf(“%d\n”,aa[0]);}执行后的输出结果是A) 4 B) 3 C) 2 D) 1(34) 34、有以下程序int f(int b[][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[j];}return s;}main( ){ inta[4][4]={{1,2,3,4},{0,2,4,5 },{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(A) );}执行后的输出结果是A) 12 B) 11 C) 18 D) 16(35) 有以下定义#includechar a[10],*b=a;不能给数组a输入字符串的语句是A) gets(A) B) gets(a[0]) C)gets(&a[0]); D) gets(B) ;(36) 有以下程序main( ){ char*p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是A) 2 B) 3 C) 4 D) 5(37) 有以下程序int a=2;int f(int *A){return (*A) ++;}main( ){ int s=0;{ int a=5;s+=f(&A) ;}s+=f(&A) ;printf(“%d\n”,s);}执行后输出结果是A) 10 B) 9 C) 7 D) 8(38) 有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf(“%d\n”,i);}执行后输出结果是A) 28 B) 22 C) 16 D) 4(39) 设有以下语句typedef struct S{ int g; char h;} T;则下面叙述中正确的是A) 可用S定义结构体变量 B)可以用T定义结构体变量C)S是struct类型的变量 D)T是struct S类型的变量(40) 有以下程序struc STU{ char name[10];int num;};void f1(struct STU C){ struct STUb={“LiSiGuo”,2042};c=b;}void f2(struct STU *C){ struct STUb={“SunDan”,2044};*c=b;}main( ){ struct STUa={“YangSan”,2041},b={“WangYin”,2043};f1(A) ;f2(&B) ;printf(“%d %d\n”,a.num,b.num);}执行后的输出结果是A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043(41) 有以下程序main( ){ unsigned char a,b;a=4|3;b=4&3;printf(“%d %d\n”,a,b(;}执行后输出结果是A) 7 0 B) 0 7 C) 1 1 D) 43 0(42) 下面程序的功能是输出以下形式的金字塔图案是:****************main( ){ int i,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++)printf(“ “);for(j=1;j<=_______;j++) printf(“*”);printf(“\n”);}}在下划线处应填入的是A) i B) 2*i-1 C) 2*i+1 D) i+2(43) 有以下程序void sort(int a[],int n) { int i,j,t;for(i=0;ifor(j=i+2;jif(a}main(){ intaa[10]={1,2,3,4,5,6,7,8,9,1 0},i;sort(aa,10);for(i=0;i<10;i++)printf(“%d”,aa);printf(“\n”);}其输出结果是A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2, (44) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;C) char s[10];s=”abcdefg”;D) chars[10];strcpy(s,”abcdefg”);(45) 有以下程序#includemain(int argc ,char *argv[ ]) { int i,len=0;for(i=1;iprintf(“5d\n”,len);} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出结果是A) 14 B) 12 C) 8 D) 6(46) 有以下程序void f(int a[],int i,int j){ int t;if(i<J){ t=a; a=a[j];a[j]=t;f(a,i+1,j-1);}}main( ){ int i,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++)printf(“%d,”,aa);printf(“\n”);}执行后输出结果是A) 5,4,3,2,1, B) 5,2,3,4,1, C)1,2,3,4,5, D) 1,2,3,4,5,(47) 有以下程序struct STU{ char name[10];int num;int Score;};main( ){ struct STUs[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},{“wangYin”,20043,680},{“SunDan”,20044,550},{“Penghua”,20045,537}},*p[5],*t;int i,j;for(i=0;i<5;i++) p=&s;for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p->Score>p[j]->Score){ t=p;p=p[j];p[j]=t;}printf(“5d %d\n”,s[1].Score,p[1]->Score);}执行后输出结果是A) 550 550 B) 680 680 C) 580550 D) 580 680(48) 有以下程序#includestruct NODE{int num;struct NODE *next;};main( ){ struct NODE *p,*q,*r;int sum=0;p=(struct NODE*)malloc(sizeof(structNODE));q=(struct NODE*)malloc(sizeof(structNODE));r=(struct NODE*)malloc(sizeof(structNODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf(“%d\n”,sum);}执行后的输出结果是A) 3 B) 4 C) 5 D) 6(49) 有以下程序#includemain( ){ FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i<4;i++)fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n);printf(“%d %d\n”,k,n);fclose(fp);}执行后输出结果是A) 1 2 B) 123 0 C) 1 23 D) 0 0(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SE EK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#includemain( ){ FILE *fp; inti,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb"); for(i=0;i<4;i++)fwrite(&a,sizeof(int),1,fp); fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SE EK_END) ;fread(&b,sizeof(int),1,fp); /*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B) ;}执行后输出结果是A) 2 B) 1 C) 4 D) 3二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分. (1) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】。

2004年4月计算机等级考试二级C笔试试卷(含参考答案)

2004年4月计算机等级考试二级C笔试试卷(含参考答案)

2004年4月计算机等级考试二级C笔试试卷(含参考答案)2004年4月二级C笔试试卷二级笔试试卷基础知识和C语言程序设计一、选择题((1)~(40)每题1分,(41)~(50)每题2分,共60分)1、1MB等于()A)1000字节B)1024字节C)1000╳1000字节D)1024╳1024字节2、与十六进制数200等值得十进制数为()A)256 B)512 C)1024 D)20483、所谓"裸机"是指()A)单片机B)单板机C)不装备任何软件的计算机D)只装备操作系统的计算机4、能将高级语言编写的源程序转换为目标程序的是()A)链接程序B)解释程序C)编译程序D)编辑程序5、在64为计算机中,一个字长所占字节数为()A)64 B)8 C)4 D)16、在Windows环境下,当一个应用程序窗口被最小化后,该应用程序()A)继续在后台运行B)继续在前台运行C)终止运行D)暂停运行7、在Windows环境下,能实现窗口移动的操作是()A)用鼠标拖动窗口中的任何部位B)用鼠标拖动窗口的边框C)用鼠标拖动窗口的控制按钮D)用鼠标拖动窗口的标题栏。

8、在Windows环境下,PrintScreen键的作用是()A)打印当前窗口的内容B)打印屏幕内容C)复制屏幕到剪贴板D)复制当前窗口到剪贴板9、Internet的通信协议是()A)TCP/IP B)BBS C)WWW D)FTP10、下列叙述中正确的是()A)计算机病毒只感染可执行文件B)计算机病毒只感染文本文件C)计算机病毒只能通过软件复制的方式进行传播D)计算机病毒可以通过网络或读写磁盘方式进行传播11、一个算法应该具有"确定性"等5个特性,下面对另外4个特性的描述中错误的是A)有零个或多个输入B)有零个或多个输出C)有穷性D)可行性12、以下叙述中正确的是()A)C语言的源程序不必通过编译就可以直接运行B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令C)C源程序经编译形成的二进制代码可以直接运行D)C语言中的函数不可以单独进行编译13、以下符合C语言语法的实型常量是()A)1.2E0.5 B)3.14.159E C).5E-3 D)E1514、以下4组用户定义标识符中,全部合法的一组是()A)_main B)If C)txt D)intenclude -max REAL k_2sin turbo 3COM _00115、若以下选项中的变量已正确定义,则正确的赋值语句是()A)x1=26.8%3 B)1+2=x2 C)x3=0x12 D)x4=1+2=3;16、设有以下定义int a=0;double b=1.25;char c='A';#define d 2则下面语句中错误的是()A)a++; B)b++ C)c++; D)d++;17、设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是()A)(a+b)*h/2 B)(1/2)*(a+b)*h C)(a+b)*h*1/2 D)h/2*(a+b)18、有以下程序main( ){int x=102,y=012;printf("%2d,%2d\n",x,y);} 执行后输出结果是()A)10,01 B002,12 C)102,10 D)02,1019、以下4个选项中,不能看作一条语句的是()A){;} B)a=0,b=0,c=0; C)if(a>0); D)if(b==0) m=1;n=2;20、设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是()A)scanf("%d",pa); B)scanf("%d",a);C)scanf("%d",&pa); D)scanf("%d",*pa);21、以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是()A)if((a>b)&&(b>c)) k=1; B) if((a>b)||(b>c)) k=1else k=0;C)if(a<=b) k=0; D)if(a>b) k=1;else if(b<=c) k=1; else if(b>c) k=1;else k=0;22、有以下程序main( ){ char k; int I;for(i=1;i<3;i++){ scanf("%c",&k);switch(k){ case '0': printf("another\n");case '1': printf("number\n");}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是()A) another B)another C)another D)numbernumber number number numberanother number23、有以下程序main( ){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf("%d,%d,%d\n",x,y,z);} 程序执行后的输出结果是()A)3,2,0 B)3,2,-1 C)4,3,-1 D)5,-2,-524、有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2) s+=i+1;printf("%d\n",s);} 程序执行后的输出结果是()A)自然数1~9的累加和B)自然数1~10的累加和C)自然数1~9中的奇数之和D)自然数1~10中的偶数之和25、有以下程序main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf("n=%d\n",n);} 程序执行后的输出结果是()A)n=5 B)n=2 C)n=3 D) n=426、若程序中定义了以下函数double myadd(double a,double b){ return (a+b);}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是()A)double myadd(double a,b); B)double myadd(double,double);C)double myadd(double b,double a); D)double myadd(double x,double y);27、有以下程序char fun(char x , char y){ if(xreturn y;}main( ){ int a='9',b='8',c='7';printf("%c\n",fun(fun(a,b),fun(b,c)));} 程序的执行结果是()A)函数调用出错B)8 C)9 D)728、设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是()A)p=1; B)*q=2; C)q=p; D)*p=5;29、有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf("%d,%d,%d\n",x,y,z);} 执行后输出结果是()A)1,2,3 B)3,1,2 C)1,3,2 D)2,3,130、有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是()A)5 B)6 C)8 D)931、有以下程序main( ){ char a[]="abcdefg",b[10]="abcdefg";printf("%d %d\n",sizeof(a),sizeof(b));} 执行后输出结果是()A)7 7 B)8 8 C)8 10 D)10 1032、有以下程序void swap1(int c[]){ int t;t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t;t=c0;c0=c1;c1=t;}main( ){ int a[2]={3,5},b[2]={3,5};swap1(a); swap2(b[0],b[1]);printf("%d %d %d %d\n",a[0],a[1],b[0],b[1]);} 其输出结果是()A)5 3 5 3 B) 5 3 3 5 C)3 5 3 5 D)3 5 5 333、有以下程序void sum(int *a){ a[0]=a[1];}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--) sum(&aa[i]);printf("%d\n",aa[0]);} 执行后的输出结果是()A)4 B)3 C)2 D)134、有以下程序int f(int b[][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[i][j];}return s;}main( ){ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf("%d\n",f(a));} 执行后的输出结果是()A)12 B)11 C)18 D)1635、有以下定义#includechar a[10],*b=a;不能给数组a输入字符串的语句是()A)gets(a) B)gets(a[0]) C)gets(&a[0]); D)gets(b);36、有以下程序main( ){ char *p[10]={"abc","aabdfg","dcdbe","abbd","cd"}; printf("%d\n",strlen(p[4]));} 执行后输出结果是()A)2 B)3 C)4 D)537、有以下程序int a=2;int f(int *a){return (*a)++;}main( ){ int s=0;{ int a=5;s+=f(&a);}s+=f(&a);printf("%d\n",s);} 执行后输出结果是()A)10 B)9 C)7 D)838、有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf("%d\n",i);} 执行后输出结果是()A)28 B)22 C)16 D)439、设有以下语句typedef struct S{ int g; char h;} T;则下面叙述中正确的是()A)可用S定义结构体变量B)可以用T定义结构体变量C)S是struct类型的变量D)T是struct S类型的变量40、有以下程序struc STU{char name[10];int num;};void f1(struct STU c){ struct STU b={"LiSiGuo",2042};c=b;}void f2(struct STU *c){ struct STU b={"SunDan",2044};*c=b;}main( ){ struct STU a={"YangSan",2041},b={"WangYin",2043};f1(a);f2(&b);printf("%d %d\n",a.num,b.num);} 执行后的输出结果是()A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043 41、有以下程序main( ){ unsigned char a,b;a=4|3;b=4&3;printf("%d %d\n",a,b(;} 执行后输出结果是()A) 7 0 B)0 7 C)1 1 D)43 042、下面程序的功能是输出以下形式的金字塔图案是:****************main( ){ int i,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++) printf(" ");for(j=1;j<=_______;j++) printf("*");printf("\n");}} 在下划线处应填入的是()A)i B)2*i-1 C)2*i+1 D)i+243、有以下程序void sort(int a[],int n){ int i,j,t;for(i=0;ifor(j=i+2;jif(a[i]}main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sort(aa,10);for(i=0;i<10;i++) printf("%d",aa[i]);printf("\n");} 其输出结果是()A)1,2,3,4,5,6,7,8,9,10, B)10,9,8,7,6,5,4,3,2,1,C)9,2,7,4,5,6,3,8,1,10, D)1,10,3,8,5,6,7,4,9,2,44、以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是()A) char s[10]="abcdefg"; B) char t[]="abcdefg",*s=t;C) char s[10];s="abcdefg"; D) char s[10];strcpy(s,"abcdefg");45、有以下程序#includemain(int argc ,char *argv[ ]){ int i,len=0;for(i=1;iprintf("5d\n",len);} 经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行ex abcd efg h3 k44执行后输出结果是()A)14 B)12 C)8 D)646、有以下程序void f(int a[],int i,int j){ int t;if(i{ t=a[i]; a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main( ){ int i,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++) printf("%d,",aa[i]); printf("\n");} 执行后输出结果是()A)5,4,3,2,1, B)5,2,3,4,1, C)1,2,3,4,5, D)1,2,3,4,5,47、有以下程序struct STU{ char name[10];int num;int Score;};main( ){ struct STU s[5]={{"YangSan",20041,703},{"LiSiGuo",20042,580}, {"wangYin",20043,680},{"SunDan",20044,550}, {"Penghua",20045,537}},*p[5],*t;int i,j;for(i=0;i<5;i++) p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){ t=p[i];p[i]=p[j];p[j]=t;}printf("5d %d\n",s[1].Score,p[1]->Score);} 执行后输出结果是()A)550 550 B)680 680 C)580 550 D)580 68048、有以下程序#includestruct NODE{int num;struct NODE *next;};main( ){ struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE));q=(struct NODE *)malloc(sizeof(struct NODE));r=(struct NODE *)malloc(sizeof(struct NODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf("%d\n",sum);} 执行后的输出结果是A)3 B)4 C)5 D)649、有以下程序#includemain( ){ FILE *fp; int i,k=0,n=0;fp=fopen("d1.dat","w");for(i=1;i<4;i++) fprintf(fp,"%d",i);fclose(fp);fp=fopen("d1.dat","r");fscanf(fp,"%d%d",&k,&n); printf("%d %d\n",k,n);fclose(fp);} 执行后输出结果是()A)1 2 B)123 0 C)1 23 D) 0 050、有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END);语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#includemain( ){ FILE *fp; int i,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SEEK_END);fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",b);} 执行后输出结果是()A)2 B)1 C) 4 D)3二、填空题(每空2分,共40分)1、E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】。

计算机二级C语言笔试400题及答案

计算机二级C语言笔试400题及答案

1、C语言程序的基本单位是____ A) 程序行 B) 语句 C) 函数 D) 字符、C、12、C语言程序的三种基本结构是____ A、顺序结构,选择结构,循环结构 B、递归结构,循环结构,转移结构 C、嵌套结构,递归结构,顺序结构 D、循环结构,转移结构,顺序结构、A、13、C语言规定,程序中各函数之间 A) 既允许直接递归调用也允许间接递归调用 B) 不允许直接递归调用也不允许间接递归调用 C) 允许直接递归调用不允许间接递归调用 D) 不允许直接递归调用允许间接递归调用、A、14、C语言中可处理的文件类型是( ) A) 文本文件和数据文件 B)文本文件和二进制文件 C) 数据文件和二进制文件 D)数据代码文件、B、15、C语言可执行程序的开始执行点是( ) A) 程序中第一条可执行语句 B) 程序中第一个函数 C) 程序中的main函数 D) 包含文件中的第一个函数、C、16、C语言提供的合法的数据类型关键字是 A)double B) short C) integerD) char、B、17、C语言中,运算对象必须是整型数的运算符是 A) % B) \ C) %和\ D) * *、A、18、C语言中函数返回值的类型是由( )决定。

A) return语句中的表达式类型 B) 调用函数的主调函数类型 C) 调用函数时临时 D) 定义函数时所指定的函数类型、D、19、C语言中数组名作为参数传递给函数,作为实在参数的数组名被处理为_____。

A、该数组的长度。

B、该数组的元素个数。

C、该数组中各元素的值。

D、该数组的首地址。

、D、110、C语言中数组下标的下限是________。

A、1 B、0 C、视具体情况 D、无固定下限、B、111、C语言中提供的合法关键字是____ A、swith B、cher C、case D、default、D、112、C语言中文件的存取方式是________。

全国计算机等级考试二级C语言公共基础知识(附例题)

全国计算机等级考试二级C语言公共基础知识(附例题)

第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。

详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。

计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。

1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。

2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。

在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。

(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。

描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。

一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。

考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。

1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。

同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。

这表明使用绝对的时间单位衡量算法的效率是不合适的。

撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。

历年全国计算机等级考试二级C语言笔试选择真题及答案

历年全国计算机等级考试二级C语言笔试选择真题及答案

⼀、下列各题A、B、C、D四个选项中,只有⼀个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列叙述中正确的是A.栈是“先进先出”的线性表B.队列是“先进先出”的线性表C.循环队列是⾮线性结构D.有序性表既可以采⽤顺序存储结构,也可以采⽤链式存储结构(2)⽀持⼦程序调⽤的数据结构是A.栈B.树C.队列D.⼆叉树(3)某⼆叉树有5个度为2的结点,则该⼆叉树中的叶⼦结点数是A.10B.8C.6D.4(4)下列排序⽅法中,最坏情况下⽐较次数最少的是A.冒泡排序B.简单选择排序C.直接插⼊排序D.堆排序(5)软件按功能可以分为:应⽤软件、系统软件和⽀撑软件(或⼯具软件)。

下⾯属于应⽤软件的是A.编译软件B.操作系统C.教务管理系统D.汇编程序(6)下⾯叙述中错误的是A.软件测试的⽬的是发现错误并改正错误B.对被调试的程序进⾏“错误定位”是程序调试的必要步骤C.程序调试通常也称为DebugD.软件测试应严格执⾏测试计划,排除测试的随意性(7)耦合性和内聚性是对模块独⽴性度量的两个标准。

下列叙述中正确的是A.提⾼耦合性降低内聚性有利于提⾼模块的独⽴性B.降低耦合性提⾼内聚性有利于提⾼模块的独⽴性C.耦合性是指⼀个模块内部各个元素间彼此结合的紧密程度D.内聚性是指模块间互相连接的紧密程度(8)数据库应⽤系统中的核⼼问题是A.数据库设计B.数据库系统设计C.数据库维护D.数据库管理员培训(9)有两个关系R,S如下:RABCa32b01c21SABa3b0c2由关系R通过运算得到关系S,则所使⽤的运算为A.选择B.投影C.插⼊D.连接(10)将E-R图转换为关系模式时,实体和联系都可以表⽰为A.属性B.键C.关系D.域(11)以下选项中合法的标识符是A.1-1B.1—1C.-11D.1--(12)若函数中有定义语句:int k;,则A.系统将⾃动给k赋初值0B.这时k中值⽆定义C.系统将⾃动给k赋初值-1D.这时k中⽆任何值(13)以下选项中,能⽤作数据常量的是A.0115B.0118C.1.5e1.5D.115L(14)设有定义:int x=2;,以下表达式中,值不为6的是A.x*=x+1B.x++,2*xC.x*=(1+x)D.2*x,x+=2(15)程序段:int x=12;double y=3.141593; printf(“%d%8.6f”,x,y);的输出结果是A.123.141593B.123.141593C.12,3.141593D.123.141593(16)若有定义语句:double x,y,*px,*py,执⾏了px=&x, py=&y;之后,正确的输⼊语句是A.scanf(“%f%f”,x,y);B.scanf(“%f%f”,&x,&y);C.scanf(“%lf%le”,px,py);D.scanf(“%lf%lf”,x,y);(17)以下是if语句的基本形式:if(表达式)语句其中“表达式”A.必须是逻辑表达式B.必须是关系表达式C.必须是逻辑表达式或关系表达式D.可以是任意合法的表达式(18)有以下程序#includemain(){int x;scanf(“%d”,&x);if(x<=3); elseif(x!=10)printf(“%d\n”,x);}程序运⾏时,输⼊的值在哪个范围才会有输出结果A.不等于10的整数B.⼤于3且不等于10的整数C.⼤于3或等于10的整数D.⼩于3的整数(19)有以下程序#includeMain(){int a=1,b=2,c=3,d=0;if(a= =1 &&b++= =2)if(b!=2 || c--!=3)printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;else printf(“%d,%d,%d\n”,a,b,C.;}程序运⾏后的输出结果是A.1,2,3B.1,3,2C.1,3,3D.3,2,1(20)以下程序中的变量已正确定义for(i=0;i<4;i++,i++for(k=1;k<3;k++);printf(*”);程序段的输出结果是A.********B.****C.**D.*(21)有以下程序#includemain(){char*s=(“ABC.;do{printf(“%d”,*s%10);s++;}while(*s);}注意,字母A的ASCII码值为65。

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计含答案

全国计算机等级考试二级笔试样卷C语言程序设计【打印】【字体:大中小】【关闭】一、选择题((1)~(10)、(21)~(40)每题2分,(11)~(20)每题2分,共70分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1)下列选项中不符合良好程序设计风格的是A)源程序要文档化B)数据说明的次序要规化C)避免滥用goto语句 D)模块设计要保证高耦合、高聚(2)从工程管理角度,软件设计一般分为两步完成,它们是A)概要设计与详细设计B)数据设计与接口设计C)软件结构设计与数据设计D)过程设计与数据设计(3)下列选项中不属于软件生命周期开发阶段任务的是A)软件测试B)概要设计C)软件维护D)详细设计(4)在数据库系统中,用户所见的数据模式为A)概念模式B)外模式C)模式D)物理模式(5)数据库设计的四个阶段是:需求分析、概念设计、逻辑设计和A)编码设计B)测试阶段C)运行阶段D)物理设计(6)设有如下三个关系表R S T下列操作中正确的是A)T=R∩S B)T=R∪SC)T=R×S D)T=R/S(7)下列叙述中正确的是A)一个算法的空间复杂度大,则其时间复杂度也必定大B)一个算法的空间复杂度大,则其时间复杂度必定小C)一个算法的时间复杂度大,则其空间复杂度必定小D)上述三种说法都不对(8)在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为A)63 B)64 C)6 D)7(9)数据库技术的根本目标是要解决数据的A)存储问题B)共享问题C)安全问题D)保护问题(10)对下列二叉树进行中序遍历的结果是A)ACBDFEG B)ACBDFGE C)ABDCGEF D)FCADBEG(11)下列叙述中错误的是A)一个C语言程序只能实现一种算法B)C程序可以由多个程序文件组成C)C程序可以由一个或多个函数组成D)一个C函数可以单独作为一个C程序文件存在(12)下列叙述中正确的是A)每个C程序文件中都必须要有一个main()函数B)在C程序中main()函数的位置是固定的C)C程序中所有函数之间都可以相互调用,与函数所在位置无关D)在C程序的函数中不能定义另一个函数(13)下列定义变量的语句中错误的是A)int _int; B)double int_; C)char For; D)float US$; (14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是A)++x,y=x-- B)x+1=y C)x=x+10=x+y D)double(x)/10(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是A)只能是整数0或1 B)只能是整数0或非0整数C)可以是结构体类型的数据D)可以是任意合法的表达式(16)若有定义int x,y; 并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++) :(y++)中的条件表达式(x-y) 等价的是A)(x-y>0) B)(x-y<0) C)(x-y<0||x-y>0) D)(x-y==0)(17)有以下程序main(){ int x, y, z;x=y=1;z=x++,y++,++y;printf("%d,%d,%d\n",x,y,z);}程序运行后的输出结果是A)2,3,3 B)2,3,2 C)2,3,1 D)2,2,1(18)设有定义:int a; float b; 执行scanf("%2d%f",&a,&b); 语句时,若从键盘输入876 543.0<回车>,a和b的值分别是A)876和543.000000 B)87和6.000000 C)87和543.000000 D)76和543.000000(19)有以下程序main(){ int a=0, b=0;a=10; /* 给a赋值b=20; 给b赋值*/printf("a+b=%d\n",a+b); /* 输出计算结果*/}程序运行后的输出结果是A)a+b=10 B)a+b=30 C)30 D)出错(20)在嵌套使用if语句时,C语言规定else总是A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对(21)下列叙述中正确的是A)break语句只能用于switch语句B)在switch语句中必须使用defaultC)break语句必须与switch语句中的case配对使用D)在switch语句中,不一定使用break语句(22)有以下程序main(){ int k=5;while(--k) printf("%d",k -= 3);printf("\n");}执行后的输出结果是A)1 B)2 C)4 D)死循环(23)有以下程序main(){ int i;for(i=1; i<=40; i++){ if(i++%5==0)if(++i%8==0) printf("%d ",i);}printf("\n");}执行后的输出结果是A)5 B)24 C)32 D)40(24)以下选项中,值为1的表达式是A)1 –'0' B)1 - '\0' C)'1' -0 D)'\0' - '0'(25)有以下程序fun(int x, int y){ return (x+y); }main(){ int a=1, b=2, c=3, sum;sum=fun((a++,b++,a+b),c++);printf("%d\n",sum);}执行后的输出结果是A)6 B)7 C)8 D)9(26)有以下程序main(){ char s[]="abcde";s+=2;printf("%d\n",s[0]);}执行后的结果是A)输出字符a的ASCII码B)输出字符c的ASCII码C)输出字符c D)程序出错(27)有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;main(){ int j=1, m=1, k;k=fun(j,m); printf("%d,",k);k=fun(j,m); printf("%d\n",k);}执行后的输出结果是A)5, 5 B)5, 11 C)11, 11 D)11, 5(28)有以下程序fun(int x){ int p;if(x==0||x==1) return(3);p=x-fun(x-2);return p;main(){ printf("%d\n",fun(7)); }执行后的输出结果是A)7 B)3 C)2 D)0(29)在16位编译系统上,若有定义int a[]={10,20,30}, *p=&a;,当执行p++;后,下列说法错误的是A)p向高地址移了一个字节B)p向高地址移了一个存储单元C)p向高地址移了两个字节D)p与a+1等价(30)有以下程序main(){ int a=1, b=3, c=5;int *p1=&a, *p2=&b, *p=&c;*p =*p1*(*p2);printf("%d\n",c);}执行后的输出结果是A)1 B)2 C)3 D)4(31)若有定义:int w[3][5]; ,则以下不能正确表示该数组元素的表达式是A)*(*w+3) B)*(w+1)[4] C)*(*(w+1)) D)*(&w[0][0]+1)(32)若有以下函数首部int fun(double x[10], int *n)则下面针对此函数的函数声明语句中正确的是A)int fun(double x, int *n); B)int fun(double , int );C)int fun(double *x, int n); D)int fun(double *, int *);(33)有以下程序void change(int k[ ]){ k[0]=k[5]; }main(){ int x[10]={1,2,3,4,5,6,7,8,9,10},n=0;while( n<=4 ) { change( &x[n]) ; n++; }for(n=0; n<5; n++) printf("%d ",x[n]);printf("\n");}程序运行后输出的结果是A)6 7 8 9 10 B)1 3 5 7 9 C)1 2 3 4 5 D)6 2 3 4 5(34)有以下程序main(){ int x[3][2]={0}, i;for(i=0; i<3; i++) scanf("%d",x[i]);printf("%3d%3d%3d\n",x[0][0],x[0][1],x[1][0]);}若运行时输入:2 4 6<回车>,则输出结果为A)2 0 0 B)2 0 4 C)2 4 0 D)2 4 6(35)有以下程序int add( int a,int b){ return (a+b); }main(){ int k, (*f)(), a=5,b=10;f=add;…}则以下函数调用语句错误的是A)k=(*f)(a,b); B)k=add(a,b);C)k= *f(a,b); D)k=f(a,b);(36)有以下程序#includemain( int argc, char *argv[ ]){ int i=1,n=0;while (iprintf("%d\n",n);}该程序生成的可执行文件名为:proc.exe。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2004年4月全国计算机等级考试二级C语言笔试试卷(附参考答案)发布:www.east 发布时间: 2004-5-31 阅览次数: 1398841版权声明:任何单位和个人未经东方教育网授权,不得复制、转载、结集、出版。

否则后果自负。

2004年4月全国计算机等级考试二级C语言笔试试卷(附参考答案)一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

(1) 1MB等于A) 1000字节 B) 1024字节C) 1000×1000字节 D) 1024×1024字节(2) 与十六进制数200等值的十进制数为A) 256 B) 512 C) 1024 D) 2048(3) 所谓“裸机”是指A) 单片机 B) 单板机C) 不装备任何软件的计算机 D) 只装备操作系统的计算机(4) 能将高级语言编写的源程序转换成目标程序的是A) 链接程序 B) 解释程序 C) 编译程序 D) 编辑程序(5) 在64位计算机中,一个字长所占的字节数为A) 64 B) 8 C) 4 D) 1(6) 在Windows环境下,当一个应用程序窗口被最小化后,该应用程序A) 继续在后台运行 B) 继续在前台运行C) 终止运行 D) 暂停运行(7) 在Windows环境下,能实现窗口移动的操作是A) 用鼠标拖动窗口中的任何部位 B) 用鼠标拖动窗口的边框C) 用鼠标拖动窗口的控制按钮 D) 用鼠标拖动窗口的标题栏(8) 在Windows环境下,PrintScreen键的作用是A) 打印当前窗口的内容 B) 打印屏幕内容C) 复制屏幕到剪贴板 D) 复制当前窗口到剪贴板(9) Internet的通信协议是A) TCP/IP B) BBS C) WWW D) FTP(10) 下列叙述中正确的是A) 计算机病毒只感染可执行文件B) 计算机病毒只感染文本文件C) 计算机病毒只能通过软件复制的方式进行传播D) 计算机病毒可以通过网络或读写磁盘等方式进行传播(11) 一个算法应该具有“确定性”等5个特性,下面对另外4个特性的描述中错误的是A) 有零个或多个输入 B) 有零个或多个输出C) 有穷性 D) 可行性(12) 以下叙述中正确的是A) C语言的源程序不必通过编译就可以直接运行B) C语言中的每条可执行语句最终都将被转换成二进制的机器指令C) C源程序经编译形成的二进制代码可以直接运行D) C语言中的函数不可以单独进行编译东方教育网提供 (13) 以下符合C语言语法的实型常量是A) 1.2E0.5 B) 3.14.159E C) .5E-3 D) E15(14) 以下4组用户定义标识符中,全部合法的一组是A) _main B) If C) txt D) intenclude -max REAL k_2sin turbo 3COM _001(15) 若以下选项中的变量已正确定义,则正确的赋值语句是A) x1=26.8%3 B) 1+2=x2 C) x3=0x12 D) x4=1+2=3;(16) 设有以下定义int a=0;doub l e b=1.25;char c=‟A‟;#define d 2则下面语句中错误的是A) a++; B) b++ C) c++; D) d++;(17) 设有定义:float a=2,b=4,h=3;,以下C语言表达式与代数式计算结果不相符的是A) (a+B) *h/2 B) (1/2)*(a+B) *hC) (a+B) *h*1/2 D) h/2*(a+B)(18) 有以下程序main( ){int x=102,y=012;printf(“%2d,%2d\n”,x,y);}执行后输出结果是A) 10,01 B) 02,12 C) 102,10 D) 02,10(19) 以下4个选项中,不能看作一条语句的是A) {;} B) a=0,b=0,c=0; C) if(a>0); D) if(b==0) m=1;n=2;(20) 设有定义:int a,*pa=&a;以下scanf语句中能正确为变量a读入数据的是A) scanf(“%d”,pA) ; B) scanf(“%d”,A) ;C) scanf(“%d”,&pA) ; D) scanf(“%d”,*pA) ;(21) 以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是A) if((a>B) &&(b>C) ) k=1; B) if((a>B) ||(b>C) ) k=1else k=0;C) if(a<=B) k=0; D) if(a>B) k=1;else if(b<=C) k=1; else if(b>C) k=1;else k=0;(22) 有以下程序ma i n( ){ char k; int I;for(i=1;i<3;i++){ scanf(“%c”,&k);switch(k){ case …0‟: printf(“another\n”);case …1‟: printf(“number\n”);}}}程序运行时,从键盘输入:01<回车>,程序执行后的输出结果是A) another B) another C) another D) numbernumber number number numberanother number(23) 有以下程序main( ){ int x=0,y=5,z=3;while(z-->0&&++x<5) y=y-1;printf(“%d,%d,%d\n”,x,y,z);}程序执行后的输出结果是A) 3,2,0 B) 3,2,-1 C) 4,3,-1 D) 5,-2,-5(24) 有以下程序main( ){ int i,s=0;for(i=1;i<10;i+=2)s+=i+1;printf(“%d\n”,s);}程序执行后的输出结果是A) 自然数1~9的累加和 B) 自然数1~10的累加和C) 自然数1~9中的奇数之和 D) 自然数1~10中的偶数之和(25) 有以下程序东方教育网提供 main( ){ int i,n=0;for(i=2;i<5;i++){ do{ if(i%3) continue;n++;} while(!i);n++;}printf(“n=%d\n”,n);}程序执行后的输出结果是A) n=5 B) n=2 C) n=3 D) n=4(26) 若程序中定义了以下函数double myadd(double a,double B){ return (a+B) ;}并将其放在调用语句之后,则在调用之前应该对该函数进行说明,以下选项中错误的说明是A) double myadd(double a,B) ;B) double myad d(double,double);C) double myadd(double b,double A) ;D) double myadd(double x,double y);(27) 有以下程序char fun(char x , char y){ if(xreturn y;}main( ){ int a=‟9‟,b=‟8‟,c=‟7‟;printf(“%c\n”,fun(fun(a,B) ,fun(b,C) ));}程序的执行结果是A) 函数调用出错 B)8 C)9 D)7(28) 设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是A) p=1; B) *q=2; C) q=p; D) *p=5;(29) 有以下程序void f(int v , int w){ int t;t=v;v=w;w=t;}main( ){ int x=1,y=3,z=2;if(x>y) f(x,y);else if(y>z) f(y,z);else f(x,z);printf(“%d,%d,%d\n”,x,y,z);}执行后输出结果是A) 1,2,3 B) 3,1,2 C) 1,3,2 D) 2,3,1(30) 有以下程序段int a[10]={1,2,3,4,5,6,7,8,9,10},*p=&a[3],b;b=p[5];b中的值是A) 5 B) 6 C) 8 D) 9(31) 31、有以下程序main( ){ char a[]=”abcdefg”,b[10]=”ab c defg”;printf(“%d %d\n”,sizeof(A) ,sizeof(B) );}执行后输出结果是A) 7 7 B) 8 8 C) 8 10 D) 10 10(32) 有以下程序void swap1(int c[]){ int t;t=c[0];c[0]=c[1];c[1]=t;}void swap2(int c0,int c1){ int t;t=c0;c0=c1;c1=t;}main( ){ i nt a[2]={3,5},b[2]={3,5};swap1(A) ; swap2(b[0],b[1]);printf(“%d %d %d %d\n”,a[0],a[1],b[0],b[1]);}其输出结果是A) 5 3 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 3 5 5 3(33) 有以下程序void sum(int *A){ a[0]=a[1];}main( ){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;for(i=2;i>=0;i--) &nbsp; sum(&aa[i]);printf(“%d\n”,aa[0]);}执行后的输出结果是A) 4 B) 3 C) 2 D) 1(34) 34、有以下程序int f(int b[][4]){ int i,j,s=0;for(j=0;j<4;j++){ i=j;if(i>2) i=3-j;s+=b[i][j];}return s;}main( ){ int a[4][4]={{1,2,3,4},{0,2,4,5},{3,6,9,12},{3,2,1,0}}; printf(“%d\n”,f(A) );}执行后的输出结果是A) 12 B) 11 C) 18 D) 16(35) 有以下定义#includechar a[10],*b=a;不能给数组a输入字符串的语句是A) gets(A) B) gets(a[0]) C) gets(&a[0]); D) gets(B) ;(36) 有以下程序main( ){ char *p[10]={“abc”,”aabdfg”,”dcdbe”,”abbd”,”cd”};printf(“%d\n”,strlen(p[4]));}执行后输出结果是A) 2 B) 3 C) 4 D) 5(37) 有以下程序int a=2;int f(int *A){return (*A) ++;}main( ){ int s=0;{ int a=5;s+=f(&A) ;}s+=f(&A) ;printf(“%d\n”,s);}执行后输出结果是A) 10 B) 9 C) 7 D) 8(38) 有以下程序#define f(x) x*xmain( ){ int i;i=f(4+4)/f(2+2);printf(“%d\n”,i);}执行后输出结果是A) 28 B) 22 C) 16 D) 4(39) 设有以下语句typedef struct S{ int g; ch a r h;} T;则下面叙述中正确的是A) 可用S定义结构体变量 B)可以用T定义结构体变量 C)S是struct类型的变量 D)T是struct S类型的变量 (40) 有以下程序struc STU{ char name[10];int num;};void f1(struct STU C){ struct STU b={“LiSiGuo”,2042};c=b;}void f2(struct STU *C){ stru c t STU b={“SunDan”,2044};*c=b;}main( ){ struct STU a={“YangSan”,2041},b={“WangYin”,2043}; f1(A) ;f2(&B) ;printf(“%d %d\n”,a.num,b.num);}执行后的输出结果是A)2041 2044 B)2041 2043 C)2042 2044 D)2042 2043 (41) 有以下程序main( ){ unsigne d char a,b;a=4|3;b=4&3;printf(“%d %d\n”,a,b(;}执行后输出结果是A) 7 0 B) 0 7 C) 1 1 D) 43 0(42) 下面程序的功能是输出以下形式的金字塔图案是: ****************main( ){ int i,j;for(i=1;i<=4;i++){ for(j=1;j<=4-i;j++) printf(“ “);for(j=1;j<=_______;j++) printf(“*”);printf(“\n”);}}在下划线处应填入的是A) i B) 2*i-1 C) 2*i+1 D) i+2(43) 有以下程序void sort(int a[],int n){ int i,j,t;for(i=0;ifor(j=i+2;jif(a[i] }main(){ int aa[10]={1,2,3,4,5,6,7,8,9,10},i;sor t(aa,10);for(i=0;i<10;i++) printf(“%d”,aa[i]);printf(“\n”);}其输出结果是A) 1,2,3,4,5,6,7,8,9,10, B) 10,9,8,7,6,5,4,3,2,1,C) 9,2,7,4,5,6,3,8,1,10, D) 1,10,3,8,5,6,7,4,9,2,(44) 以下程序段中,不能正确赋字符串(编译时系统会提示错误)的是A) char s[10]=”abcdefg”; B) char t[]=”abcdefg”,*s=t;C) char s[10];s=”abcdefg”; D) char s[10];strcpy(s,”abcdefg”);(45) 有以下程序#includemain(int argc ,char *argv[ ]){ int i,len=0;for(i=1;i printf(“5d\n”,len);}经编译链接后生成的可执行文件是ex.exe,若运行时输入以下带参数的命令行 ex abcd efg h3 k44执行后输出结果是A) 14 B) 12 C) 8 D) 6(46) 有以下程序void f(int a[],int i,int j){ int t;if(i<J){ t=a[i]; a[i]=a[j];a[j]=t;f(a,i+1,j-1);}}main( ){ int i,aa[5]={1,2,3,4,5};f(aa,0,4);for(i=0;i<5;i++) printf(“%d,”,aa[i]); p r intf(“\n”);}执行后输出结果是A) 5,4,3,2,1, B) 5,2,3,4,1, C) 1,2,3,4,5, D) 1,2,3,4,5,(47) 有以下程序struct STU{ char name[10];int num;int Score;};main( ){ struct STU s[5]={{“YangSan”,20041,703},{“LiSiGuo”,20042,580},{“wangYin”,20043,680},{“SunDan”,20044,550},{“Penghua”,20045,537}},*p[5],*t;int i,j;for(i=0;i<5;i++) p[i]=&s[i];for(i=0;i<4;i++)for(j=i+1;j<5;j++)if(p[i]->Score>p[j]->Score){ t=p[i];p[i]=p[j];p[j]=t;}printf(“5d %d\n”,s[1].Score,p[1]->Score);}执行后输出结果是A) 550 550 B) 680 680 C) 580 550 D) 580 680(48) 有以下程序#includestruct NODE{int num;struct NODE *next;};main( ){ struct NODE *p,*q,*r;int sum=0;p=(struct NODE *)malloc(sizeof(struct NODE));q=(struct NODE *)malloc(sizeof(struct NODE));r=(struct NODE *)malloc(sizeof(struct NODE));p->num=1;q->num=2;r->num=3;p->next=q;q->next=r;r->next=NULL;sum+=q->next->num;sum+=p->num;printf(“%d\n”,sum);}执行后的输出结果是A) 3 B) 4 C) 5 D) 6(49) 有以下程序#inc l udemain( ){ FILE *fp; int i,k=0,n=0;fp=fopen(“d1.dat”,”w”);for(i=1;i<4;i++) fprintf(fp,”%d”,i);fclose(fp);fp=fopen(“d1.dat”,”r”);fscanf(fp,”%d%d”,&k,&n); printf(“%d %d\n”,k,n);fclose(fp);}执行后输出结果是A) 1 2 B) 123 0 C) 1 23 D) 0 0(50) 有以下程序(提示:程序中fseek(fp,-2L*sizeof(int),SEEK_END) ;语句的作用是使位置指针从文件尾向前移2*sizeof(int)字节)#includemain( ){ FILE *fp; int i,a[4]={1,2,3,4},b;fp=fopen("data.dat","wb");for(i=0;i<4;i++) fwrite(&a[i],sizeof(int),1,fp);fclose(fp);fp=fopen("data.dat","rb");fseek(fp,-2L*sizeof(int).SEEK_END) ;fread(&b,sizeof(int),1,fp);/*从文件中读取sizeof(int)字节的数据到变量b中*/fclose(fp);printf("%d\n",B) ;}执行后输出结果是A) 2 B) 1 C) 4 D) 3二、填空题(每空2分,共40分)请将每一个空的正确答案写在答题卡【1】至【20】序号的横线上, 答在试卷上不得分.(1) E-mail地址由用户名和域名两部分组成,这两部分的分隔符为【1】。

相关文档
最新文档