c语言奥赛2008寒假作业2及答案
2008级C语言程序设计试卷_A带答案(2009.6)
天津工业大学200 8 ~200 9 学年第 2 学期
C 程序设计试卷(A)
学院班级学号姓名
注意事项:1、本试卷共13 页,满分为100 分,考试时间为110 分钟。
2、标准答题卡使用2B铅笔涂写;文字题答题时请使用蓝、黑钢笔或圆珠笔,
不得使用红颜色墨水笔。
二、阅读程序题答题处:(每空3分,共30分)
四、完善程序填空题答题处:(每空2分,共18分)
一、单项单选题:(每题 1 分,共40 分)
(说明:请将正确答案按照题干上【】内的序号涂写“标准答题卡”)
1.以下标识符中,能够作为变量名使用的是【1】。
A) n_1 B) char
C) x(2) D) 2_a
2.若有定义语句char ch='\072'; 则变量ch 【2】。
A) 定义错误B) 包含1个字符
C) 包含3个字符D) 包含4个字符
3.已知字母B的ASCII码值为66,则运行下面程序段后,输出结果是【3】。
char ch1; ch1='B'+'5'-'3'; printf("%d,%c",ch1,ch1);
A) D,D B) 68,D
C) D,68 D) 68,68
4.若有如下语句:
int x; float y;
scanf("k=%d,f=%f",&x,&y);
则能够正确的为变量x输入5、为变量y输入3.2的方法是【4】。
说明:备选答案中的<CR>表示回车符
A) 5 3.2 <CR> B) 5 <CR> 3.2 <CR>
C) k=5,f=3.2 <CR> D) x=5,y=3.2 <CR>
全国计算机等级考试二级C语言 2008年4月真题卷参考答案及解析
全国计算机等级考试二级C语言 2008年4月真题卷答案及解析
一、选择题
(1)C
解析:程序流程图是人们对解决问题的方法、思路或算法的一种描述。其中,图框表示各种操作的类型,图框中的文字和符号表示操作的内容,流程线表示操作的先后次序。带箭头的线段在数据流程图中表示数据流,而在程序流程图中表示控制流。在所给出的选项中,在图元之间用带有箭头的线段表示图元关系。在模块之间用带有箭头的线段表示调用关系。构成程序流程图的基本图符及其含义是:→或↓表示控制流,□表示加工步骤,◇表示逻辑条件。
(2)A
解析:结构化程序设计的原则包括:"自顶而下,逐步求精"的设计思想,"独立功能,单出口、单入口"的模块化设计等。多态性是面向对象程序语言的特征。
(3)B
解析:模块划分应遵循的准则包括模块之间的耦合和内聚。一般来说,要求模块之间的耦合尽可能地低,即模块尽可能独立,要求模块的内聚程度尽可能地高,即高内聚、低耦合的原则。
(4)B
解析:需求分析阶段的工作主要包括需求获取、需求分析、编写需求规格说明书和需求评审等四方面。产生的主要文档为软件需求规格说明书,它可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标软件系统的确认,又可以作为控制软件开发进程的依据。
(5)A
解析:算法具有6个特性。①有穷性:一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有限时间内完成,即运行时间是有限的。②确定性:算法中每一条指令必须有确切的含义,读者理解时不会产生歧义。③可行性:一个算法是可行的,即算法中描述的操作都是可以通过已经实现的基本运算执行有限次来实现。④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象的集合。⑤输出:一个算法有一个或多个输出。
08年省安徽水平考试二级C语言试题及参考答案
printf("%d",i);
A)9B)10C)18D)20
29.下列描述中不正确的是29。
A)字符数组中可以存放字符串
B)可以对字符数组进行整体输入、输出
C)可以对实型数组进行整体输入输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
30.下面能对字符数组正确赋给字符串的初始化操作语句是30。
{int i, j, s=0;
for(i=1; i<=4; i++)
for(j=1; j<=5-i; j++)
s=s+i*j;
printf("%d", s);
}
2.下面程序运行的结果。
main()
{int i, a=3, b=4, t;
for(i=1; i<=5; i++)
switch(i%5)
{case 0: b=3;
C)该程序连同其图标一起被隐藏
D)只删除了图标,对应的程序仍然存在
6.以下关于多媒体技术的叙述中,错误的是6。
A)多媒体技术将各种媒体以数字化的方式集成在一起
B)多媒体技术就是能用来观看DVD电影的技术
C)多媒体技术已经成为声、文、图等媒体信息在计算机系统中综合应用的代名词
2008C程序设计2
【程序2.2】写出下列程序的输出结果。
#include
void main()
{
char str[ ]="BeijingOlympic2008";
int i=1,j=0;
while(str[i]!='\0')
{
if(str[i]>str[j]) j=i;
i++;
}
printf("%c\n",str[j]);
str[j]=str[i];
puts(str);
}
y
BeijingOl
试题三(12分,每小题6分)
下列程序中都有三个错误,按题中的功能要求,纠正错误,并以附加行号“#XX”改为“......”的形式进行解答,把解答写在答卷纸的对应栏内,代码左边的#1、#2、...是附加的行号。
【程序3.1】本程序输入三个数,输出这三个数的和。
#1 void main( )
#2 { int i;
#3 float x[3],sum;
#4 printf("Enter tree numbers:\n");
#5 sum=0;
#6 for(i=0,i<3,i++)
#7 {
#8 scanf("%f",x[i]);
#9 sum+=x[i];
#10 }
#11 printf((“sum=%d\n”,sum);
#12 }
#6 改为for(i=0;i<3;i++)
#8 改为scanf(“%f”,&x[i]);
#11 改为printf((“sum=%f\n”,sum);
【程序3.1】从键盘输入任意10个整数,用冒泡法对其升序排列。例如,输入:1 3 2 4 5 7 6 8 10 9
输出:1 2 3 4 5 6 7 8 9 10
08年4月计算机等级考试二级c语言真题与答案
2008年4月二级C语言笔试真题及答案
(考试时间:120分钟,满分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
B C D
a 0 k1
R S
B C D
a 0 k1
b 1 n1
B C D
f 3 h2
a 0 k1
n 2 x1
有关系R和S通过运算得到关系T,则所使用的运算为
2008年9月全国计算机等级考试二级c语言笔试试题(含参考答案)-推荐下载
26、以下关于宏的叙述中正确的是
A)宏名必须用大写字母表示
B)宏定义必须位于源程序中所有语句之前
C)宏替换没有数据类型限制
D)宏调用比函数调用耗费时间
27、有以下程序
#include <stdio.h>
main()
{ int i,j;
}
for (i=3;i>=1;i--)
{for(j=1;j<=2;j++) printf(〞%d〞,i+j);
一、 选择题
2008 年 9 月全国计算机等级考试二级 C 笔试试卷
1、 一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后在依次出
栈,则元素出栈的顺序是
A)12345ABCDE B)EDCBA54321
C)ABCDE12345 D)54321EDCBA
2、下列叙述正确的是
C)a=10 b=30 c=10 D)a=50 b=30 c=50 21、若有以下定义语句:int m[]={5,4,3,2,1},i=4;,则下面对 m 数组元素的引用中错误的是
A)m[-i] B)m[2*2] C)m[m[0]] D)m[m[i]] 22、下面的函数调用语句中 func 函数的实参个数是
543
B) 4 3 2
C)2 D)1
34
2008-2009第二学期《C程序设计》试卷A(08级09.4,含答案)
一、选择题(每题1分,共20分)
1.设 int b=2;表达式b/(b*2)的值是()。
A. 0
B. 0.5
C. 0.500000
D. 0.00000
2.下列标识符中不合法的标识符的是()。
A. hot_do
B. cat1
C. _pri
D. 2ab
3.以下程序的输出结果是()。
void main()
{int k=17;
printf("%d,%o,%x \n",k,k,k);
}
A. 17,021,0x11
B. 17,17,17
C. 17,0x11,021
D. 17,21,11
4.设x、y、z和k都是int型变量,则执行表达式:x=(y=4,z=16,k=32)后,x的值为()。
A.4 B.16 C.32 D.52
5.下述程序段中,while循环执行次数是( )。
int k=0;
while(k=1) k++;
A. 无限次
B. 有语法错误,不能执行
C. 一次也不执行
D. 执行一次
6. 若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为()。
A. a < > 0
B. !a
C. a=0
D. a!=0
7.执行下述语句后,*(p+1)的值是( )。
char s[]= “ab”,*p;
p=s;
A.‘b’
B. O
C. 不定值
D. 非法引用
1
2
8.有以下语句:int b;char c[10];,则正确的输入语句是( )。
A. scanf("%d%s",&b,&c);
B. scanf("%d%s",&b,c);
C. scanf("%d%s",b,c);
D. scanf("%d%s",b,&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)0
2.设有定义:char *s=”\t\”Name\\Address\”\n”;,那么strlen(s)等于( ) (A)15 (B)16 (C) 17 (D) 18
3.若有语句#define f(x,y) x+y及int a=2,b=3;,则执行p rintf(“%d”,f(a,b)*f(a,b))后输出的值为( )
计算机语言B(C语言)2008春季学期A卷及参考答案
2008 春计算机语言B(C语言)A卷
一、选择题(每小题1分,共30分)
下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将你认为正确的选项填写在题干的括号内。
1.C语言源程序文件的扩展名是【】。
A..exe B..C C..obj D..cpp
2.以下叙述中,正确的是【】。
A.C程序中注释只能出现在程序的开始位置和语句的后面
B.C程序书写格式严格,要求一行内只能写一个语句
C.C程序书写格式自由,一个语句可以写在多行上
D.用C语言编写的程序只能放在一个源程序文件中
3.以下选项中可用作用户标示符的一组是【】。
A._2008,_main B.Date y-m-d
C.txt D.case _001
4.以下不符合C语言语法的字符常量是【】。
A.′C′ B.′\xDD′ C.′\012′ D.″p″
5.若以下选项中的变量已正确定义,则正确的赋值表达式是【】。
A.x=y==5; B.x=n%2.5; C.x+n=i; D.x=5=4+1; 6.以下叙述中,错误的是【】。
A.改变函数形参的值,不会改变对应实参的值
B.函数可以返回地址值
C.可以给指针变量赋一个整数作为地址值
D.当在程序的开头包含头文件stdio.h时,可以给指针变量赋NULL
7.若在定义语句:int a,b,c,*p=&c;之后,接着执行以下选项中的语句,则能正确执行的语句是【】。
A.scanf(″%d″,a,b,c); B.scanf(″%d%d%d″,a,b,c); C.scanf(″%d″,p); D.scanf(″%d″,&p);
NOIP2008提高组初赛(C语言)试题及答案
NOIP2008提高组初赛(C语言)试题及答案
第十四届(NOIP2008)信息学奥赛联赛提高组C语言初赛试题●●全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。
1.在以下各项中,(C)不是操作系统软件。
A.Solaris
B.Linux
C.Sybase
D.WindowsVista
E.Symbian2.微型计算机中,控制器的基本
功能是(A)。
A.控制机器各个部件协调工作
B.实现算术运算和逻辑运算
C.存储各种控制信息
D.获取外部
信息E.存放程序和数据3.设字符串S=”Olympic”,S的非空子串的数目是(B)。
A.29
B.28
C.16
D.17
E.74.完全二叉树共有2*N-1个结点,则它的叶节点数是(C)。
A.N-1
B.2*N
C.N
D.2N-1
E.N/25.将数组{8,23,4,16,77,-5,53,100}中的元素按从大到小的顺序
排列,每次可以交换任意两个元素,最少需要交换(B)次。
A.4
B.5
C.6
D.7
E.86.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序
列为b,d,c,f,e,a,则栈S的容量至少应该是(D)。
A.6
B.5
C.4
D.3
E.27.与十进制数28.5625相等的四进制数是()。
A.123.21
B.131.22
C.130.22
D.130.21
E.130.208.递归过程或函数调用时,处理参数和返回地
址,通常使用一种称为(E)的数据结构。
A.队列
B.多维数组
NOIP2008第十四届全国青少年信息学奥林匹克联赛初赛试题(含答案)汇总
2008第十四届全国青少年信息学奥林匹克联赛初赛试题(提高组 C 语言二小时完成)
●● 全部试题答案均要求写在答卷纸上,写在试卷纸上一律无效●●
一、单项选择题(共10题,每题1.5分,共计15分。每题有且仅有一个正确答案)。
1. 在以下各项中,()不是操作系统软件。
Symbian
2.微型计算机中,控制器的基本功能是()。
A. 控制机器各个部件协调工作
B. 实现算术运算和逻辑运算
C. 存储各种控制信息
D. 获取外部信息
3. 设字符串S=”Olympic”,S的非空子串的数目是()。
A. 29
B. 28
C. 16
D. 17
E. 7
4.完全二叉树共有2*N-1个结点,则它的叶节点数是()。
A. N-1
B. 2*N
C. N
D. 2N-1
E. N/2
5.将数组{8, 23, 4, 16, 77, -5, 53, 100}中的元素按从大到小的顺序排列,每次可以交换任意两个元素,最少需要交换()次。
A. 4
B. 5
C. 6
D. 7
E. 8
6.设栈S的初始状态为空,元素a,b,c,d,e,f依次入栈S,出栈的序列为b,d,c,f,e,a,则栈S的容量至少应该是()。
A. 6
B. 5
C. 4
D. 3
E. 2
7. 与十进制数28.5625相等的四进制数是()。
A. 123.21
B. 131.22
C. 130.22
D. 130.21
E. 130.20
8.递归过程或函数调用时,处理参数和返回地址,通常使用一种称为()的数据结构。
A. 队列
B. 多维数组
C. 线性表
D. 链表
E. 栈
1 A. Solaris B. Linux C. Sybase D. Windows Vista E. E. 存放程序和数据
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的关键字(键或码)为
2008年(春)二级C语言笔试
D. for(i=15;i>0;i-=2) k++;
28.已知A盘根目录下有文本文件“data.txt”且程序 中 已 有 声 明 “ FILE *fp;” , 若 程 序 需 要 先 从 “ data.txt” 文 件 中 读 出 数 据 , 修 改 后 再 写 入 “data.txt”文件中,则调用fopen函数的正确形式 C 是 (28) 。
15.以下程序通过给出的公式计算 的近似值,计算过程在 所加项的值小于10-10时终止。
1 111 1 311 1 3 5 11 6 2 2 3 2 2 4 5 2 2 4 6 7 2
3 5 7
#include <stdio.h> 1 1 1 1 1 3 1 1 1 3 5 1 1 main() 6 2 2 3 2 2 4 5 2 2 4 6 7 2 { double sum=0.5,t,t1,t2,t3; int odd=1, even=2 ; t=t1=t2=1.0; t3=0.5; while (t>1e-10) { t1= t1*odd/even ; (21) odd+=2; even+=2; t2=1.0/odd ; t3= t3*0.5*0.5 ; (22) t=t1*t2*t3; sum+=t; } sum*6 ); printf ("\nPI=%.8lf", (23) }
2008年4月国家二级(C语言)笔试真题试卷(题后含答案及解析)
2008年4月国家二级(C语言)笔试真题试卷(题后含答案及解析) 题型有:1. 选择题 2. 填空题
选择题(1-10、21-40每题2分,11-20每题1分,共70分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上。
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
解析:需求分析的最终结果是生成软件需要规格说明书,可以为用户、分析人员和设计人员之间的交流提供方便,可以直接支持目标确认,又可以作为控制软件开发进程的依据。
5.算法的有穷性是指()。
A.算法程序的运行时间是有限的
B.算法程序所处理的数据量是有限的
08试题二(新)
一ou
2008年安徽省安联杯信息学奥林匹克竞赛
AHOI 2008
第二试
比赛时间:2008年4月27日8:00至11:00
注意事项
1.务必看清题目,严格按照所要求的格式输入、输出。
2.在调试程序时请先使用题目中的示例数据,然后再自行设计多组测试数据进
行调试。
3.测试有严格的时间限制,请尽可能优化算法。
4.命名规则:
(1)每题都规定了该题的英文名称。
(2)程序文件和数据文件的主文件名都是该题的英文名字。
(3)程序文件扩展名采用语言环境的默认扩展名。
(4)数据文件都是文本文件,输入和输出文件的扩展名分别是.in和.out。
5.程序应从输入文件读取数据,并严格地按照规定的输出格式将结果输出到输
出文件中。输入数据文件和输出数据文件都与程序在同一个目录中,由于程序所在目录是不确定的,因此不允许在程序中含有盘符信息和任何形式的路径信息。
6.选手在竞赛结束时应在硬盘指定位置建立以参赛号命名的文件夹,并将所完
成各题的源程序文件拷贝到该文件夹中。
题目
1. 计算器(Calculator )
小可可在欢乐岛的快乐旅程还在继续,他想买一些纪念品带回去给同学们,于是来到了礼品部,在这里他发现了一个有趣的计算器,这个计算器是一种特殊的、支持变进制整数加减运算的计算器(所谓变进制,就是每一位的进制可以不同。例如,如果最低位是3进制,次低位是5进制,那么这种情况的42转化成十进制就是4*3+2 = 14)。店主看小可可对这个计算器非常感兴趣,于是他问小可可:“小朋友,如果我告诉你这个计算器最多可以支持N 位的变进制整数,且每一位的进制分别是1...n x x ,那么你知道它能表示的最大整数M 是多少吗?”,小可可想了想说到:“它所能表示的最大的整数M 是12(...)1n x x x ⨯⨯-。”店主非常高兴,说到:“你真是个聪明的孩子,如果我告诉你两个长度为N 的变进制整数A,B ,你按照我的要求来计算(A+B) mod (M+1)或(A-B) mod (M+1),答案还是用相同的变进制来表示,如果你算对了,那么我就把这个计算器送给你。”这下把小可可难住了,但是他非常想要这个计算器,聪明的你能够帮助小可可吗? 输入:第一行包含一个整数N (N<=100000),表示计算器所支持的变进制数的
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后再开方,如果开方后的结果满足如下条件,即是结果。
==============================================================
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
在给定的数组当中的函数----SUB2。 主函数:输入任意10个正整数给数组,调用SUB1对数组进行排序,从键盘输入一个正整数,调用SUB2 在数组中进行查找,找到后输出“OK”,没有找到则输出“NO FOUND!”。 13、编写一个程序,输入两个包含5个元素的数组,先将两个数组升序排列,然后将这两个数组合并 成一个升序数组。 14、耶稣有13个门徒,其中有一个就是出卖耶稣的叛徒,请用排除法找出这位叛徒:13人围坐一圈, 从第一个开始报号:1,2,3,1,2,3……,凡是报到“3”就退出圈子,最后留在圈内的人就是出卖 耶稣的叛徒,请找出它原来的序号。 15、编写一个程序,根据用户输入的不同边长,输出其菱形。例如,边长为3的菱形为:
1.题目:由M个数字构成一个圆,找出相邻的四个数,使其和为最大,输出最大值wenku.baidu.com 如:输入 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 {
{ printf("%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)
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)
5,6,4,3,9 9,3,4,6,5 11、编写子函数:(1)用冒泡法将一个数组排成升序的函数---SUB1;(2)在升序数组中插入一个 数,并且保持该数组仍为升序数组的函数---SUB2。 主函数:①输入任意10个正整数给数组;②调用SUB1对数组进行排序;③从键盘输入一个正整数, 调用SUB2将其插入该数组。 12、编写函数:(1)用选择法将数组排成降序的函数----SUB1;(2)用折半查找法查找某数是否
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; } //----------------------------------------------------------
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位数
包括该学号,则输出该结点内容后,并将其结点删去。 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; }
816 357 492 魔方阵中各数排列规律为: ① 将“1”放在第一行的中间一列; ② 从“2”开始直到n×n为止的各数依次按下列规则存放:每一个数存放的行比前一个数的行数减1, 列数同样加1; ③ 如果上一数的行数为1,则下一个数的行数为n(最下一行),如在3×3 方阵中,1在第1行,则2 应放在第3行第3列。 ④ 当上一个数的列数为n时,下一个数的列数应为1,行数减1。如2在第3行第3列,3应在第2行第1 列。 ⑤如果按上面规则确定的位置上已有数,或上一个数是第1行第n列时,则把下一个数放在上一个数 的下面。如按上面的规定,4应放在第1行第2列,但该位置已被1占据,所以4就放在3的下面。由于6 是第1行第3列(即最后一列),故7放在6下面。 > 20、找出一个二维数组中的“鞍点”,即该位置上的元素在该行中最大,在该列中最小(也可能没有“鞍 点”),打印出有关信息。 21、马克思在《数学手稿》中提出如下问题:有30个人(包括男人、女人和小孩)在一家饭店吃饭 共花50先令,其中每个男人花3先令,每个女人花2先令, 每个小孩花1先令,问男人、女人、小孩各有多少人? 22、定义一个结构体变量(包括年、月、日),计算该日在本年中为第几天?(注意考虑闰年问题), 要求写一个函数days,实现上面的计算。由主函数将年月日传递给days函数,计算后将日子传递回 主函数输出。 23、建立一个链表,每个结点包括:学号、姓名、性别、年龄,输入一个学号,如果链表中的结点
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. 题目: 给出一个不多于5位的正整数(不大于32767),求 (1) 这个数有几位? (2) 打印每一位数? (3) 逆序输出。
参考程序: #include <stdio.h> #include <stdlib.h>
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; }