c语言奥赛2008寒假作业2及答案

合集下载

2008年9月计算机等级考试二级C语言模拟试卷及其答案

2008年9月计算机等级考试二级C语言模拟试卷及其答案

年 月计算机等级考试二级 语言模拟试卷及其答案
转贴于:计算机二级考试 考试大
全国计算机等级考试二级C语言模拟试卷答案
一、选择题
评析:算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。

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

评析:数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构。

《电力拖动控制线路与技能训练》试卷( )。

全国计算机二级C语言真题2008年04月

全国计算机二级C语言真题2008年04月

二级C语言真题2008年04月
一、选择题
1. 程序流程图中带有箭头的线段表示的是( )。

A.图元关系
B.数据流
C.控制流
D.调用关系
答案:C
[解答] 程序流程图是一种传统的、应用广泛的软件过程设计工具,通常也称为程序框图。

其中,用带箭头的线段表示控制流,用矩形表示加工步骤,用菱形表示逻辑条件,
2. 结构化程序设计的基本原则不包括( )。

A.多态性
B.自顶向下
C.模块化
D.逐步求精
答案:A
[解答] 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。

3. 软件设计中模块划分应遵循的准则是( )。

A.低内聚低耦合
B.高内聚低耦合
C.低内聚高耦合
D.高内聚高耦合
答案:B
[解答] 耦合性和内聚性是模块独立性的两个定性标准,各模块的内聚性越强,则耦合性越弱。

软件设计应该遵循高内聚低耦合。

4. 在软件开发中,需求分析阶段产生的主要文档是( )。

A.可行性分析报告
B.软件需求规格说明书
C.概要设计说明书
D.集成设计计划
答案:B
[解答] 需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标确认,又可以作为控制软件开发进程的依据。

全国计算机等级考试二级教程——C语言程序设计(2008年版)高等教育出版社【第三章参考答案】

全国计算机等级考试二级教程——C语言程序设计(2008年版)高等教育出版社【第三章参考答案】

一、选择题3.1 C 3.2 C 3.3 D 3.4 C 3.5 D3.6 B 3.7 C 3.8 D 3.9 A 3.10 B二、填空题3.11 (1)-200,2500(2)i=-200,j=2500(3)i=-200j=25003.12 [1]12 [2]0 [3]03.13 一条语句;3.14 分号3.15 、[1] 100<CR>15.81<CR>1.89234<CR>[2] 100 15.81 1.89234<CR> /*注意各数之间要有空格号*/[3] 100 <CR>15.81 1.89234<CR>三(1)、改错题3.16、正确程序如下#include"stdio.h"void main(){double a,b,c,s,v;printf("input a,b,c:");scanf("%lf%lf%lf",&a,&b,&c); /*注意双精度输入必须用lf,单精度用f*/printf("a=%f,b=%f,c=%f\n",a,b,c);s=a*b;v=s*c;printf("s=%f,v=%f\n",s,v);}三(2)、编程题3.17、#include"stdio.h"void main(){int a=560,b=60,c,d;c=a/b;d=a%b;printf("560分钟=%d小时%d分钟",c,d);}3.18、#include"stdio.h"void main(){int a,b,c,d;printf("Input two numbers:");scanf("%d%d",&a,&b);c=a/b;d=a%b;printf("c=%d,d=%d\n",c,d);}3.19、#include"stdio.h"void main(){double a,b,c,ave;printf("Enter three numbers:");scanf("%lf%lf%lf",&a,&b,&c);ave=(a+b+c)/3;printf("(1)ave=%f\n",ave);ave=(int)(ave*10+0.5)/10.0;printf("(2)ave=%f\n",ave);}3.20、#include"stdio.h"void main(){int a,b,c,m,n,t;printf("Enter three numbers:");scanf("%d%d%d",&a,&b,&c);printf("a=%d,b=%d,c=%d\n",a,b,c);m=a;n=b;t=c;b=m;c=n;a=t;printf("a=%d,b=%d,c=%d",a,b,c); }她含着笑,切着冰屑悉索的萝卜,她含着笑,用手掏着猪吃的麦糟,她含着笑,扇着炖肉的炉子的火,她含着笑,背了团箕到广场上去晒好那些大豆和小麦,大堰河,为了生活,在她流尽了她的乳液之后,她就用抱过我的两臂,劳动了。

C语言程序设计2007~2008学年第二学期期末考试试卷(A)

C语言程序设计2007~2008学年第二学期期末考试试卷(A)
时,其数组下标的数据类型允许是

整型常量整型表达式 整型常量或整型表达式任何类型的表达式

若二维数组有列,则在前的元素个数为

、 以下叙述中不正确的是。
在中,函数中的自动变量可以赋初值,每调用一次,赋一次初值 在中,在调用函数时,实参和对应形参在类型上只需赋值兼容 在中,外部变量的隐含类别是自动存储类别 在中,函数形参可以说明为变量
、 以下程序运行后输出结果是 () () ()
大厦白蚁预防工程承包合同合同签订版
、 以下程序运行后输出结果是 ❖❖
、 以下程序运行后输出结果是
四、 程序设计题共分
得分 评阅人
某班级学生进行百米跑测试,规定成绩在秒以内(含秒)为优秀,在 秒以上至秒为达标,在秒以上为不达标,编一程序,从键盘上输入每个 人的成绩,以作为输入变量,并以小于的任何数作为终止标志,分别用变量 和统计出成绩为优秀、达标和不达标的人数。
、 以下正确的函数原型语句是。
、 循环体至少被执行一次的语句为。
循环循环循环 任一种循环
、 在下面循环语句中内层循环体语句的执行总次数为。
、 函数调用不可以。
出现在一个表达式中 出现在执行语句中 作为一个函数的实参 作为一个函数的形参
大厦白蚁预防工程承包合同合同签订版
、 将两个字符串连接起来组成一个字符串时,选用函数。
大厦白蚁预防工程承包合同合同签订版
试卷编号:卷
课程编号:课程名称:语言程序设计考试形式: 闭卷
适用班级:全校非计算机专业姓名:学号: 班级:
学院:专业: 考试日期:、、
题号 一 二 三 四 五 六 七 八 九 十 总分 累分人
题分 得分
签 名
考生注意事项:、本试卷共页,请查看试卷中是否有缺页或破损。如有立 即举手报告以便更换。

全国计算机等级考试二级C语言 2008年4月真题卷参考答案及解析

全国计算机等级考试二级C语言 2008年4月真题卷参考答案及解析

全国计算机等级考试二级C语言 2008年4月真题卷答案及解析一、选择题(1)C解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。

其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。

带箭头的线段在数据流程图中表示数据流,而在程序流程图中表示控制流。

在所给出的选项中,在图元之间用带有箭头的线段表示图元关系。

在模块之间用带有箭头的线段表示调用关系。

构成程序流程图的基本图符及其含义是:→或↓表示控制流,□表示加工步骤,◇表示逻辑条件。

(2)A解析:结构化程序设计的原则包括:"自顶而下,逐步求精"的设计思想,"独立功能,单出口、单入口"的模块化设计等。

多态性是面向对象程序语言的特征。

(3)B解析:模块划分应遵循的准则包括模块之间的耦合和内聚。

一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。

(4)B解析:需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。

产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。

(5)A解析:算法具有6个特性。

①有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。

②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。

③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。

④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。

⑤输出:一个算法有一个或多个输出。

(6)D解析:在最坏情况下,快速排序、冒泡排序和直接插入排序需要的比较次数都是n(n-1)/2,堆排序需要比较的次数为nlog2n。

计算机等级 C语言二级(2008年09月)真题及答案

计算机等级 C语言二级(2008年09月)真题及答案

2008年9月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)注意:解答中所提到的教材是新视野教育培训使用的教材《全国计算机等级考试--二级教程》,此教材是由新视野教学组编写,中国地质大学出版社出版。

详情可联系长沙新视野0731--1)栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E依次放入栈,然后再依次出栈,则元素的顺序是:A) 12345ABCDE B) EDCBA54321C) ABCDE12345 D) 54321EDCBA答案:B详细解答:该知识点是考查了栈的先进后出,是我们公共基础的重点考点,在公共基础的10页纸上多次强调。

栈和队列是每年必考的题目。

此题与对应教材第三分册81页14题。

2)下列叙述中正确的是A)循环队列有对头和对尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况C)在循环队列中,只需要队列头指针就能够反映队列中元素的动态变化情况D)循环队列中的元素的个数是有队头和队尾指针共同决定的。

答案:D详细解答:该知识点是考查了循环队列的知识点,队列是线性结构。

处理队列的话我们是有两个指针的,一个是头指针,一个是尾指针。

此题与对应教材第三分册81页10题。

(类似)3) 在长度为n的有序线性表中进行二分查找,最坏的情况下需要比较的次数是A)O(n) B)O(n2) C)O(log2n) D)O(nlog2n)答案:C详细解答:该知识点是考查了二分查找。

二分查找:对于长度为n的线性表,在最坏情况进行log2n次。

此题与对应教材第三分册83页32题。

4)下列叙述中正确的是A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的。

B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构。

C)顺序存储结构能存储有序表,链式存储结构不能存储有序表。

D)链式存储结构比顺序存储结构节省空间。

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案

2008年9月全国计算机二级笔试C语言程序设计真题及答案2008年9月全国计算机二级笔试C语言程序设计真题及答案一、选择题((1)~(10)、(21)~(40)每题2 分,(11)~(20)每题1 分,70 分)下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项填涂在答题卡相应位置上,答在试卷上不得分。

(1)一个栈的初始状态为空。

现将元素1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是()。

A)12345ABCDE B)EDCBA54321 C)ABCDE12345 D)54321EDCBA(2)下列叙述中正确的是()。

A)循环队列有队头和队尾两个指针,因此,循环队列是非线性结构B)在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况C)在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D)循环队列中元素的个数是由队头指针和队尾指针共同决定(3)在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是()。

A)O(n) B)O(n2) C)O(log2n) D)O(n log2n)(4)下列叙述中正确的是()。

A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C)顺序存储结构能存储有序表,链式存储结构不能存储有序表D)链式存储结构比顺序存储结构节省存储空间(5)数据流图中带有箭头的线段表示的是()。

A)控制流 B)事件驱动 C)模块调用 D)数据流(6)在软件开发中,需求分析阶段可以使用的工具是()。

A)N-S 图 B)DFD 图 C)PAD 图 D)程序流程图(7)在面向对象方法中,不属于“对象”基本特点的是()。

A)一致性 B)分类性 C)多态性 D)标识唯一性(8)一间宿舍可住多个学生,则实体宿舍和学生之间的联系是()。

A)一对一 B)一对多 C)多对一 D)多对多(9)在数据管理技术发展的三个阶段中,数据共享最好的是()。

2008年9月全国计算机等级考试二级c语言笔试试题(含参考答案)-推荐下载

2008年9月全国计算机等级考试二级c语言笔试试题(含参考答案)-推荐下载

} 程序运行的结果是
A) 331 B)41 29、有以下程序
#include <stdio.h>
main()
{ int i=5;
do
{ if(i%3==1)
if(i%5==2)
{ printf(〞%d〞,i); break;}
i++;
} while(i!=0);
printf(〞\n〞); }程序运行的结果是
A)O(n) B) O(n2) C)O(log2n) D)O(log2n)
4、下列叙述中正确的是
A)顺序结构存储的存储一定是连续的,链式存储结构的存储空间不一定是连续的
B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构
C)顺序存储结构能存储有序表,链式存储结构不能存储有序表
D)链式存储结构比顺序存储结构节省存储空间
A) 7 B) 8 C) 9 D) 10 25、以下叙述中错误的是
A)用户自定义的函数中可以没有 return 语句
B)用户自定义的函数中可以有多个 return 语句,以便可以调用一次返回多个函数值
C)用户自定义的函数中若没有 return 语句,则应当定义函数为 void 类型
D)函数的 return 语句中可以没有表达式
S
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,系电通,力1根保过据护管生高线产中0不工资仅艺料可高试以中卷解资配决料置吊试技顶卷术层要是配求指置,机不对组规电在范气进高设行中备继资进电料行保试空护卷载高问与中题带资2负料2,荷试而下卷且高总可中体保资配障料置各试时类卷,管调需路控要习试在题验最到;大位对限。设度在备内管进来路行确敷调保设整机过使组程其高1在中正资,常料要工试加况卷强下安看与全22过,22度并22工且22作尽22下可护都能1关可地于以缩管正小路常故高工障中作高资;中料对资试于料卷继试连电卷接保破管护坏口进范处行围理整,高核或中对者资定对料值某试,些卷审异弯核常扁与高度校中固对资定图料盒纸试位,卷置编工.写况保复进护杂行层设自防备动腐与处跨装理接置,地高尤线中其弯资要曲料避半试免径卷错标调误高试高等方中,案资要,料求编试技5写、卷术重电保交要气护底设设装。备备置管4高调、动线中试电作敷资高气,设料中课并技3试资件且、术卷料中拒管试试调绝路包验卷试动敷含方技作设线案术,技槽以来术、及避管系免架统不等启必多动要项方高方案中式;资,对料为整试解套卷决启突高动然中过停语程机文中。电高因气中此课资,件料电中试力管卷高壁电中薄气资、设料接备试口进卷不行保严调护等试装问工置题作调,并试合且技理进术利行,用过要管关求线运电敷行力设高保技中护术资装。料置线试做缆卷到敷技准设术确原指灵则导活:。。在对对分于于线调差盒试动处过保,程护当中装不高置同中高电资中压料资回试料路卷试交技卷叉术调时问试,题技应,术采作是用为指金调发属试电隔人机板员一进,变行需压隔要器开在组处事在理前发;掌生同握内一图部线纸故槽资障内料时,、,强设需电备要回制进路造行须厂外同家部时出电切具源断高高习中中题资资电料料源试试,卷卷线试切缆验除敷报从设告而完与采毕相用,关高要技中进术资行资料检料试查,卷和并主检且要测了保处解护理现装。场置设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

C 作业及参考答案08级1 7章部分答案

C  作业及参考答案08级1 7章部分答案
第一、二章
1. 请编写程序输入三角形的三条边,判别它们能否形成三角形,若能,则判断是等边、 等腰、还是一般三角形。程序可多次判别,程序结束的条件自行定义。
【解答】未加入循环
#include <iostream.h> void main() { float a, b, c ;
cout << "a, b, c = " ; cin >> a >> b >> c ; if ( a+b > c && b+c > a && c+a > b ) { if ( a == b && b == c )
2. 编一程序显示如下图案,注意行数可由用户确定:
* *** ***** ******* *********
【解答】
#include <iostream.h> void main() { int i,j,k;
for( i=1; i<=5; i++ ) { for( k=1; k<=5-i; k++ ) cout << " ";
【解答】
#include <iostream.h> #include <string.h> #include <stdlib.h> class Book { public:
void setBook(char*,float,int); void borrow(); void restore(); void display();
//输入一行字符 //建立新结点 //插入表头

2008第2次C语言等级考试

2008第2次C语言等级考试

2008第2次C语言等级考试全国高等学校非计算机专业计算机等级考试二级C语言笔试试题(A卷)考试时间:2008年11月15日上午9:00——11:00考生必读:1.考生应严格遵守考场规则。

考生拿到试卷后应首先将自己的所在学校名称、考场地点、性命、准考证号填涂在答题纸和答题卡规定的位置上。

2. 考生得到监考人员指令后方可作答。

3.考生在答题前务必认真阅读题目要求,按要求作答。

客观题的答案(选择题和判断题)必须用2B铅笔填涂在答题卡的相应位置上;主观题的答案必须用蓝、黑色钢笔或圆珠笔填写在答题纸的相应位置上;且必须注明试卷类型(A 卷或B卷)。

否则答案无效。

4.注意字迹清楚,保持卷面整洁。

5. 考试时间为120分钟。

考试结束时,把试题册、答题卡、答题纸放在桌上,不得带走。

等监考人员收齐点清后,考生才可离开考场。

◆本试卷版权所有,任何单位或个人不得复制、出版和存留,违者必究◆重庆市教育委员会2008年11月二级C语言笔试试卷(A)(共100分)注意事项:1.一题答案填涂在答题卡上2.二、三、四、五题答案做在答题纸上一.单项选择题。

(每小题1分,共20分)1.假设有int x=11;,则表达式(x++*1/3)的值是( )(A) 3 (B)12 (C)11 (D)02.设有定义:char *s=”\t\”Name\\Address\”\n”;,那么strlen(s)等于( ) (A)15 (B)16 (C) 17 (D) 183.若有语句#define f(x,y) x+y及int a=2,b=3;,则执行p rintf(“%d”,f(a,b)*f(a,b))后输出的值为( )(A)36 (B)25 (C) 11 (D) 134.对于基类型相同的两个指针变量之间,不可进行的运算是( )(A)== (B)= (C) + (D) -5. 若程序中需要表示关系x≥y≥z,应使用C语言表达式为()(A)(x>=y)&&(y>=z) (B)(x>=y) AND (y>=z)(C)(x>=y>=z) (D) (x>=y)&(y>=z)6. 若有C语句int k=5;float x=1.2;,则表达式(int)(x+k) 的值是( )(A)5 (B)6.2 (C) 7 (D) 67. 设有定义:int x,*p;,能使指针变量p指向变量x的语句是()(A)*p=&x (B)p=&x (C)*p=x; (D) p=*&x8. 在执行语句if((x=y=2)>=x&&(x=5)) y*=x;后变量x,y的值应分别为()(A)2、2 (B)5、2 (C)5、10 (D) 执行时报错9. 以下程序的输出结果为()#includevoid main(){ int x,n;for(n=10,x=0;n=0;x++,n--);printf(〞%d\n〞,x);}(A)程序无限循环无输出(B)10 (C)1 (D)010. 下面程序的输出结果为()#includevoid main(){ int x=1,y=1,z;z=1||++x&&y--printf(〞\n%d,%d,%d〞,x,y,z);}(A)1,1,1(B)2,0,1 (C) 2,1,1 (D)2,0,0 11. 下面程序执行后输出为()#includevoid main(){ enum weekday{sun,mon=3,tue,wed,thu}; enum weekday day;day=wed;printf(〞%d\n〞,day);}(A)5(B)6 (C) 4 (D) 编译时出错12. 下面程序执行后输出为()#includevoid main(){ int a;printf(〞%d\n〞,(a=3*5,a*4,a+5));}(A)65(B)20 (C) 15 (D) 1013. 以下程序的输出结果是()。

2008年4月全国计算级等级考试二级C语言真题(含答案)

2008年4月全国计算级等级考试二级C语言真题(含答案)

2008年4月全国计算机等级考试二级笔试试卷C语言程序设计(考试时间90分钟,满分100分)一、选择题(共70分)下列各题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)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是A)快速排序B)冒泡排序C)直接插入排序D)堆排序(7)下列关于栈的叙述正确的是A)栈按“先进先出”组织数据B)栈按“先进后出”组织数据C)只能在栈底插入数据D)不能删除数据(8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C]A)需求分析阶段B)概念设计阶段C)逻辑设计阶段D)物理设计阶段(9)有三个关系R、S和T如下:有关系R和S通过运算得到关系T,则所使用的运算为A)并B)自然连接C)笛卡尔积D)交(10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为A)课号,成绩B)学号,成绩C)学号,课号D) 学号,姓名,成绩(11)以下叙述中正确的是A)C程序中的注释只能出现在程序的开始位置和语句的后面B)C程序书写格式严格,要求一行内只能写一个语句C)C程序书写格式自由,一个语句可以写在多行上D)用C语言编写的程序只能放在一个程序文件中(12)以下选项中不合法的标识符是A)print B)FOR C)&a D)_00(13)以下选项中不属于字符常量的是A)'C' B)"C" C)'\xCC0' D)'\072'(14)设变量已正确定义并赋值,以下正确的表达式是A)x=y*5=x+z B)int(15.8%5)C)x=y+z+5,++y D)x=25%5.0(15)以下定义语句中正确的是A)int a=b=0 ; B)char A=65+1,b='b';C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1;(16)有以下程序段char ch; int k;ch='a'; k=12;printf("%c,%d,",ch,ch,k); printf("k=%d\n",k);已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是A)因变量类型与格式描述符的类型不匹配输出无定值B)输出项与格式描述符个数不符,输出为零值或不定值C)a,97,12k=12 D)a,97,k=12(17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写字母的表达式是A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z')C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)(18)当变量c的值不为2、4、6时,值也为“真”的表达式是A)(c==2)‖(c==4)‖(c==6) B)(c>=2&&c<=6)‖(c!=3)‖(c!=5)C)(c>=2&&c<=6)&&!(c%2) D)(c>=2&&c<=6)&&(c%2!=1)(19)若变量已正确定义,有以下程序段int a=3,b=5,c=7;if(a>b) a=b; c=a;if(c!=a) c=b;printf("%d,%d,%d\n",a,b,c);其输出结果是A)程序段有语法错B)3,5,3 C)3,5,5 D)3,5,7(20)有以下程序#include <stdio.h>main(){ int x=1,y=0,a=0,b=0;switch(x){ case 1:switch(y)培恩IT教育{ case 0: a++; break;case 1: b++; break;}case 2: a++; b++; break;case 3: a++; b++;}printf(“a=%d,b=%d\n”,a,b);}程序的运行结果是A)a=1,b=0 B)a=2,b=2C)a=1,b=1 D)a=2,b=1(21)有以下程序#include <stdio.h>main(){ int x=8;for( ; x>0; x--){ if(x%3) {printf(“%d,”,x--); continue;}printf(“%d,”,--x);}}程序的运行结果是A)7,4,2 B)8,7,5,2C)9,7,6,4 D)8,5,4,2(22)以下不构成无限循环的语句或者语句组是A)n=0; B)n=0;do{++n;}while(n<=0); while(1){n++;}C)n=10; D)for(n=0,i=1; ;i++) n+=i;while(n);{n--;}(23)有以下程序#include <stdio.h>main(){ int a[ ]={1,2,3,4},y,*p=&a[3];--p; y=*p; printf(“y=%d\n”,y);}程序的运行结果是A)y=0 B)y=1 C)y=2 D)y=3(24)以下错误的定义语句是A)int x[][3]={{0},{1},{1,2,3}};B)int x[4][3]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};C)int x[4][]={{1,2,3},{1,2,3},{1,2,3},{1,2,3}};D)int x[][3]={1,2,3,4};(25)设有如下程序段char s[20]= “Bejing”,*p;p=s;则执行p=s;语句后,以下叙述正确的是A)可以用*p表示s[0]B)s数组中元素的个数和p所指字符串长度相等C)s和p都是指针变量D)数组s中的内容和指针变量p中的内容相等(26)若有定义:int a[2][3];,以下选项中对a数组元素正确引用的是A)a[2][!1] B)a[2][3] C)a[0][3] D)a[1>2][ !1](27)有定义语句:char s[10];,若要从终端给s输入5个字符,错误的输入语句是A)gets(&s[0]); B)scanf(“%s”,s+1);C)gets(s); D)scanf(“%s”,s[1]);(28)以下叙述中错误的是A)在程序中凡是以“#”开始的语句行都是预处理命令行B)预处理命令行的最后不能以分号表示结束C)#define MAX是合法的宏定义命令行D)C程序对预处理命令行的处理是在程序执行的过程中进行的(29)以下结构体类型说明和变量定义中正确的是A)typedef struct B)struct REC;{int n; char c;}REC; {int n; char c;};REC t1,t2; REC t1,t2;C)typedef struct REC ; D)struct{int n=0; char c=’A’;}t1,t2; {int n;char c;}REC t1,t2;(30)以下叙述中错误的是A)gets函数用于从终端读入字符串B)getchar函数用于从磁盘文件读入字符C)fputs函数用于把字符串输出到文件D)fwrite函数用于以二进制形式输出数据到文件(31)有以下程序#include <stdio.h>main(){ int s[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++) c[s[i]]++;for(i=1;i<5;i++) printf(“%d”,c[i]);printf(“\n”);}程序的运行结果是A)1 2 3 4 B)2 3 4 4 C)4 3 3 2 D )1 1 2 3(32)有以下程序#include <stdio.h>void fun(int *s,int nl,int n2){ int i,j,t;i=nl; j=n2;while(i<j) {t=s[i];s[i]=s[j];s[j]=t;i++;j--;}}main()培恩IT教育{ int a[10]={1,2,3,4,5,6,7,8,9,0},k;fun(a,0,3); fun(a,4,9); fun(a,0,9);for(k=0;k<10;k++)printf(“%d”,a[k]); printf(“\n”);}程序运行的结果是A) B)C) D)(33)有以下程序#include <stdio.h>#include <string.h>void fun(char *s[ ],int n){ char *t; int i,j;for(i=0;i<n-1;i++)for(j=i+1;j<n;j++)if(strlen(s[i])>strlen(s[j])) {t=s[i];s[i]=s[j];s[j]=t;}}main(){char *ss[]={“bcc”,”bbcc”,”xy”,”aaaacc”,”aabcc”};f un(ss,5); printf(“%s,%s\n”,ss[0],ss[4]);}程序的运行结果是A)xy,aaaacc B)aaaacc,xy C)bcc,aabcc D)aabcc,bcc(34)有以下程序#include <stdio.h>int f(int x){int y;if(x==0||x==1) return (3);y=x*x-f(x-2);return y;}main(){int z;z=f(3); printf(“%d\n”,z);}程序的运行结果是A)0 B)9 C)6 D)8(35) 有以下程序#include <stdio.h>void fun(char *a,char *b){while(*a==’*’) a++;while(*b=*a) {b++;a++;}}main(){char *s=”****a*b****”,t[80];fun(s,t); puts(t);}程序的运行结果是A)*****a*b B) a*b C) a*b**** D) ab(36) 有以程序#include <stdio.h>#include <string.h>typedef struct { char name[9]; char sex; float score[2]; } STU;void f( STU a){ STU b={“Zhao” ,’m’,85.0,90.0} ; int i;strcpy(,);a.sex=b.sex;for(i=0;i<2;i++) a.score[i]=b.score[i];}main(){ STU c={“Qian”,’p’,95.0,92.0};f(c); printf(“%s,%c,%2.0f,%2.0f\n”,,c.sex,c.score[0],c.score[1]);}程序的运行结果是A)Qian,f,95,92 B) Qian,m,85,90C) Zhao,f,95,92 D) Zhao,m,85,90(37) 有以下程序#include <stdio.h>main(){FILE *fp; int a[10]={1,2,3},i,n;fp=fopen(“dl.dat”,”w”);for(i=0;i<3;i++) fprintf(fp,”%d”,a[i]);fprintf(fp,”\n”);fclose(fp);fp=fopen(“dl.dat”,”r”);fscanf(fp,”%d”,&n);fclose(fp);printf(“%d\n”,n);}程序的运行结果是A)12300 B) 123 C) 1 D) 321(38)变量a中的数据用二进制表示的形式是,变量b中的数据用二进制表示的形式是。

2008年4月-7月计算机二级C语言试题及答案

2008年4月-7月计算机二级C语言试题及答案
2008年4月全国计算机等级考试二级笔试试卷 C语言程序设计
(考试时间90分钟,满分100分) 一、 选择题(共70分) 下列各题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)对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是 A)快速排序 B)冒泡排序 C)直接插入排序 D)堆排序 (7)下列关于栈的叙述正确的是 A)栈按“先进先出”组织数据 B)栈按“先进后出”组织数据 C)只能在栈底插入数据 D)不能删除数据 (8)在数据库设计中,将E-R图转换成关系数据模型的过程属于[C] A)需求分析阶段 B)概念设计阶段 C)逻辑设计阶段 D)物理设计阶段 (9)有三个关系R、S和T如下: T BCD a 0 k1 RS BCD a 0 k1 b 1 n1 BCD f 3 h2
a 0 k1 n 2 x1
有关系R和S通过运算得到关系T,则所使用的运算为 A)并 B)自然连接 C)笛卡尔积 D)交 (10)设有表示学生选课的三张表,学生S(学号,姓名,性别,年龄,身份证号),课程 C(课号,课名),选课SC(学号,课号,成绩),则表SC的关键字(键或码)为 A)课号,成绩 B)学号,成绩 C)学号,课号 D) 学号,姓名,成绩 (11)以下叙述中正确的是 A)C程序中的注释只能出现在程序的开始位置和语句的后面 B)C程序书写格式严格,要求一行内只能写一个语句 C)C程序书写格式自由,一个语句可以写在多行上 D)用C语言编写的程序只能放在一个程序文件中 (12)以下选项中不合法的标识符是 A)print B)FOR C)&a D)_00 (13)以下选项中不属于字符常量的是 A)'C' B)"C" C)'\xCC0' D)'\072' (14)设变量已正确定义并赋值,以下正确的表达式是 A)x=y*5=x+z B)int(15.8%5) C)x=y+z+5,++y D)x=25%5.0 (15)以下定义语句中正确的是 A)int a=b=0 ; B)char A=65+1,b='b'; C)float a=1,*b=&a,*c=&b ; D)double a=0.0,b=1.1; (16)有以下程序段 char ch; int k; ch='a'; k=12; printf("%c,%d,",ch,ch,k); printf("k=%d\n",k); 已知字符a的ASCll十进制代码为97,则执行上述程序段后输出结果是 A)因变量类型与格式描述符的类型不匹配输出无定值 B)输出项与格式描述符个数不符,输出为零值或不定值 C)a,97,12k=12 D)a,97,k=12 (17)已知字母A的ASCⅡ代码值为65,若变量kk为char型,以下不能正确判断出kk中的值为大写 字母的表达式是 A)kk>='A'&&kk<='Z' B)!(kk>='A'‖kk<='Z') C)(kk+32)>='a'&&(kk+32)<='z' D)isalpha(kk)&&(kk<91)

200809二级c真题详解

200809二级c真题详解

200809二级c真题详解一、选择题(1)B【解析】栈的特点是先进后出,所以全部入栈后再全部出栈所得的序列顺序必然与入栈序列的顺序相反。

(2)D【解析】循环队列是线性表的一种,所以选项A)错误。

循环队列的入队和出队需要队尾指针和队头共同指针完成,所以选项B)和C)错误。

(3)C【解析】二分查找法也称为折半查找法。

它的基本思想是:将n个元素分成个数大致相同的两半,取a[n/2]与欲查找的x作比较,如果x=a[n/2],则找到x,算法终止;如果x<a[n/2],则只要在数组a的左半部继续搜索x(这里假设数组元素呈升序排列);如果x>a[n/2],则只要在数组a的右半部继续搜索x。

每次余下n/(2i)个元素待比较,当最后剩下一个时,即n/(2i)=1。

故,n=2i; 所以i=log2n。

(4)A【解析】顺序存储方式是把逻辑上相邻的结点存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。

其优点是占用最少的存储空间。

所以选项D)错误。

顺序存储结构可以存储如二叉树这样的非线性结构,所以选项B)错误。

链式存储结构也可以存储线性表,所以选项C)错误。

(5)D【解析】在数据流图中,矩形表示数据的外部实体,圆角的矩形表示变换数据的处理逻辑,双横线表示数据的存储,箭头表示数据流。

(6)B【解析】数据流图简称DFD图,采用图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程,是结构化系统分析方法的主要表达工具及用于表示软件模型的一种图示方法。

所以DFD图可以用于需求分析阶段。

(7)A【解析】对象是面向对象方法中最基本的概念,它的基本特点有:标识惟一性、分类性、多态性、封装性、模块独立性。

故本题答案为A)。

(8)B【解析】一个实体宿舍可以对应多个学生,而一个学生只能对应一个宿舍,所以宿舍和学生之间是一对多关系。

(9)C【解析】人工管理阶段:计算机出现的初期,主要用于科学计算,没有大容量的存储设备。

c语言奥赛2008寒假作业

c语言奥赛2008寒假作业

【程序1】题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。

组成所有的排列后再去掉不满足条件的排列。

==============================================================【程序2】题目:企业发放的奖金根据利润提成。

利润(I)低于或等于10万元时,奖金可提10%;利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数?1.程序分析:请利用数轴来分界,定位。

注意定义时需把奖金定义成长整型。

==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

==============================================================【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

==============================================================【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
printf("input number between 1 and 50:"); scanf("%d",&m); }while(m>50 || m<0); do { m--; printf("input a number:"); scanf("%d",&a[i++]); }while(m>0); m=i; for(i=0;i<m;i++) { s=a[i%m]+a[(i+1)%m]+a[(i+2)%m]+a[(i+3)%m]; if(max<s) {max=s;k=i;} } printf("%d+%d+%d+%d=%d",a[k%m],a[(k+1)%m],a[(k+2)%m],a[(k+3)%m],max); system("PAUSE"); return 1; }
int main() {
int n,num; int i=0,a[5]; do {
printf("input number(<32767):"); scanf("%d",&num); }while(num<0); do { a[i++]=num%10; num/=10; }while(num!=0); n=i; printf("Len=%d\n",n); for(i=n-1;i>=0;i--) printf("%d",a[i]); printf("\n"); for(i=0;i<n;i++) printf("%d",a[i]); system("PAUSE"); return 1; } //----------------------------------------------------------
16、按如下图形打印杨辉三角形的前10行。其特点是两个腰上的数都为1,其它位置上的每一个数是 它上一行相邻两个整数之和。
17、某班有5个学生,三门课。分别编写3个函数实现以下要求: (1) 求各门课的平均分; (2) 找出有两门以上不及格的学生,并输出其学号和不及格课程的成绩; (3) 找出三门课平均成绩在85-90分的学生,并输出其学号和姓名 主程序输入5个学生的成绩,然后调用上述函数输出结果。 18、编写一人个求X的Y次幂的递归函数,X为double型,y为int型,要求从主函数输入x,y的值,调 用函数求其幂。 19、打印魔方阵。 所谓魔方阵是指这样的的方阵: 它的每一行、每一列和对角线之和均相等。 输入n,要求打印由自然数1到n2的自然数构成的魔方阵(n为奇数)。 例如,当n=3时,魔方阵为:
1、编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中 的其后三个字母代替该字母,若为其它字符时不变: 2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。 3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量, 要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。 4、随机产生20个[10,50]的正整数存放到数组中,并求数组中的所有元素最大值、最小值、平均值 及各元素之和。 5、编程在一个已知的字符串中查找最长单词,假定字符串中只含字母和空格,空格用来分隔不同单 词。 6、模拟n个人参加选举的过程,并输出选举结果:假设候选人有四人,分别用A、B、C、D表示,当 选某候选人时直接输入其编号(编号由计算机随机产生),若输入的不是A、B、C、D则视为无效票, 选举结束后按得票数从高到低输出候选人编号和所得票数。 7、任何一个自然数m的立方均可写成m个连续奇数之和。例如:
2、编程实现将任意的十进制整数转换成R进制数(R在2-16之间)。 #include<stdio.h> #include<conio.h> void main() { int n,R,i=0,a[16]={0}; char str[16]="0123456789ABCDEF"; clrscr(); printf("please input an integer number:\n"); scanf("%d",&n); printf("please input R:\n"); scanf("%d",&R); if(n<0)
1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19 编程实现:输入一自然数n,求组成n3的n个连续奇数。 8、已知abc+cba=1333,其中a,b,c均为一位数,编程求出满足条件的a,b,c所有组合。 9、编制一个完成两个数的四则运算程序。如:用户输入34+56则输出结果90.00。要求运算结果保留 两位小数,用户输入时一次将两个数和操作符输入。 10、输入一个五位以内的正整数,(1)判断它是一个几位数;(2)请按序输出其各位数字;(3) 逆序输出其各位数字。 如输入:56439,输出:5位数
//----------------------------------------------------------------------------2. 题目: 给出一个不多于5位的正整数(不大于32767),求 (1) 这个数有几位? (2) 打印每一位数? (3) 逆序输出。
参考程序: #include <stdio.h> #include &l%c",’-’); n=-n; } while(n!=0) { a[i++]=n%R; n=n/R; } while(i-->0) printf("%c",str[a[i]]); getche(); }
3、从键盘输入一指定金额(以元为单位,如345.78),然后显示支付该金额的各种面额人民币数量, 要求显示100元、50元、10元、5元、2元、1元、1角、5分、1分各多少张。 #include <stdio.h> main() { int a1,a2,a3,a4,a5,a6,a7,a8,a9; float f; a1=a2=a3=a4=a5=a6=a7=a8=a9=0; printf("please input a float number:"); scanf("%f",&f); while(f>100.0) { f=f-100.0; a1++; } while(f>50.0) { f=f-50.0; a2++; } while(f>10.0) { f=f-10.0; a3++; } while(f>5.0) { f=f-5.0; a4++; } while(f>1.0) { f=f-1.0; a5++; } while(f>0.5) { f=f-0.5; a6++; } while(f>0.1)
1.题目:由M个数字构成一个圆,找出相邻的四个数,使其和为最大,输出最大值。 如:输入 10 3 2 5 11 7 9 输出:11+7+9+10=37
参考程序 #include <stdio.h> #include <stdlib.h>
int main() {
int m,a[50],i=0,max=0,s,k=0; do {
在给定的数组当中的函数----SUB2。 主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2 在数组中进行查找,找到后输出“OK”,没有找到则输出“NO FOUND!”。 13、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排列,然后将这两个数组合并 成一个升序数组。 14、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈, 从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖 耶稣的叛徒,请找出它原来的序号。 15、编写一个程序,根据用户输入的不同边长,输出其菱形。例如,边长为3的菱形为:
5,6,4,3,9 9,3,4,6,5 11、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个 数,并且保持该数组仍为升序数组的函数---SUB2。 主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数, 调用SUB2将其插入该数组。 12、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否
包括该学号,则输出该结点内容后,并将其结点删去。 24、给定一个日期,求出该日为星期几(已知2002-3-28为星期四)。 25、用递归法将一个整数n转换成字符串(例如输入4679,应输出字符串“4679”),n为不确定数, 可以是位数不超过5,且数值在-32768~32767之间和任意整数。 26、有一个字符串,包括n个字符。写一个函数,将此字符串从第m个字符开始的全部字符复制成另 一个字符串。要求在主函数输入字符串及m值并输出复制结果。 27、在主函数中输入6个字符串,用另一个函数对他们按从小到大的顺序,然后在主函数中输出这6 个已经排好序的字符串。要求使用指针数组进行处理。 28、编写一个函数实现对两个字符串的比较。不用使用C语言提供的标准函数strcmp。要求在主函数 中输入两个字符串,并输出比较的结果(相等的结果为0,不等时结果为第一个不相等字符的ASCII 差值)。 29、有一个unsigned long型整数,先要分别将其前2个字节和后2个字节用为两个unsigned int型整 数输出(设一个int型数据占2个字节),试编写一函数partition实现上述要求。要求在主函数输入 该long型整数,在函数partition中输出结果。 30、编一程序,能把从终端读入的一个字符中的小写字母全部转换成大写字母,然后输出到一个磁 盘文件“test”中保存(用字符!表示输入字符串的结束)。 31、有五个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人多少岁?他说比第3 个人大2岁。问第3个人多少岁?他说比第3个人大2岁。问第2个人多少岁?他说比第1个人大2岁。最 后问第1个人多少岁?他说是10岁。请问第5个人多大?(这是一个递归问题) --------------------------------参考答案: 1、编程实现对键盘输入的英文名句子进行加密。用加密方法为,当内容为英文字母时其在26字母中 的其后三个字母代替该字母,若为其它字符时不变: #include <stdio.h> main() {char c; printf("please input a string:"); while((c=getchar())!=’\n’) { if(c>=’A’&&c<=’W’||c>=’a’&&c<=’w’) c=c+3; else if(c>=’X’&&c<=’Z’||c>=’x’&&c<=’z’) c=(c+3)-26; printf("%c",c); } printf("\n"); return 0; }
相关文档
最新文档