C语言经典例题30道

合集下载

完整版C语言100个经典题目

完整版C语言100个经典题目

完整版C语言100个经典题目在学习和掌握C语言编程技巧的过程中,解决各种经典题目是非常重要的。

下面是一份C语言的100个经典题目,帮助你提高编程能力和理解C语言的核心概念。

1. 编写一个程序,输出"Hello, World!"。

2. 编写一个程序,从键盘输入两个整数,然后输出它们的和。

3. 编写一个程序,从键盘输入两个整数,然后交换它们的值。

4. 编写一个程序,输出1到100之间所有的奇数。

5. 编写一个程序,输出1到100之间所有能被3整除的数。

6. 编写一个程序,判断一个年份是否为闰年。

7. 编写一个程序,将一个字符串逆序输出。

8. 编写一个程序,求出一个整数的阶乘。

9. 编写一个程序,判断一个数是否为素数。

10. 编写一个程序,输入一个字符串,然后统计其中的字母、数字和空格的个数。

11. 编写一个程序,将一个字符串转换为大写字母。

12. 编写一个程序,从键盘输入一个字符串,然后去除其中的重复字符。

13. 编写一个程序,将一个字符串按照指定分隔符进行拆分,并输出拆分后的结果。

14. 编写一个程序,将一个字符串中的所有单词首字母大写。

15. 编写一个程序,找出一个整数数组中的最大值。

16. 编写一个程序,找出一个整数数组中的最小值。

17. 编写一个程序,计算一个整数数组中所有元素的平均值。

18. 编写一个程序,对一个整数数组进行冒泡排序。

19. 编写一个程序,对一个整数数组进行选择排序。

20. 编写一个程序,对一个整数数组进行插入排序。

21. 编写一个程序,对一个整数数组进行快速排序。

22. 编写一个程序,计算斐波那契数列的第n个数字。

23. 编写一个程序,计算一个整数的平方根。

24. 编写一个程序,判断一个字符串是否为回文字符串。

25. 编写一个程序,输入一个正整数n,然后输出n行杨辉三角。

26. 编写一个程序,将一个二维整数数组进行转置。

27. 编写一个程序,将一个二维整数数组进行矩阵乘法运算。

C语言编程题经典40题(附解答)

C语言编程题经典40题(附解答)
字符串
字符串在C语言中通常表示为字符数组。可以通过字符数组来存储和操作字符串。字符串的常用函数 包括strcpy()、strcat()、strlen()等。
03
进阶题目
函数与递归
总结词
理解函数定义、参数传递、递归调用等概念,掌握函数的使用方法。
题目1
编写一个函数,判断一个整数是否为素数。
题目2
编写一个函数,计算斐波那契数列的第n项。
培养逻辑思维
C语言强调结构化和严谨 的编程风格,学习C语言 有助于培养逻辑思维和问 题解决能力。
为什么选择这40道题目
经典题目
精选的40道题目均来自经典的C语言题目库,具有较高的代表性和难 度。
覆盖面广
题目涵盖了C语言的主要知识点,包括数据类型、控制结构、函数、 指针等,有助于全面提升编程能力。
难度适中
实现二叉树的基本操作(创建、插 入、删除、遍历)
题目12
实现堆排序算法
04
THANKS
感谢观看
01
02
文件打开
使用fopen()函数打开文件,并返回一 个FILE类型的指针。
03
文件读取
使用fscanf()、fgets()等函数从文件中 读取数据。
文件关闭
使用fclose()函数关闭文件。
05
04
文件写入
使用fprintf()、fputs()等函数将数据写 入文件。
动态内存分配
总结词
动态内存分配允许程序员在运行时根 据需要分配或释放内存,提高了程序 的灵活性和可扩展性。
数组与字符串
01
理解数组的概念和使用方法
02
掌握字符串的存储和操作
03
熟悉数组和字符串的常用函数

40个C语言的基础编程题

40个C语言的基础编程题

{ sn=sn+2*hn;/*第 n 次落地时共经过的米数*/ hn=hn/2; /*第 n 次反跳高度*/ printf("the total of road is %f\n",sn); printf("the tenth is %f meter\n",hn);} }
再加上 168 又是一个完全平方数, 请问该数是多少? 1.程序分析:在 10 万以内判断,先将该数加上 100 后再开方,再将该数加上 268 后再开方,如果开方后 的结果满足如下条件,即是结果。请看具体分析: 2.程序源代码: #include "math.h" main() { long int i,x,y,z; for (i=1;i<100000;i++) { x=sqrt(i+100); 果*/ y=sqrt(i+268); 结果*/ if(x*x==i+100&&y*y==i+268)/*如果一个数的 平方根的平方等于该数,这说明此数是完全平方数*/ printf("\n%ld\n",i); }} ======================================== 【程序 12】 题目:输入三个整数 x,y,z,请把这三个数由小到大 输出。 1.程序分析:我们想办法把最小的数放到 x 上,先将 x 与 y 进行比较, 如果 x>y 则将 x 与 y 的值进行交换, 然后再用 x 与 z 进行比较, 如果 x>z 则将 x 与 z 的值 进行交换,这样能使 x 最小。 2.程序源代码: main() {int x,y,z,t; /*以下为三重循环*/ scanf("%d%d%d",&x,&y,&z); if (x>y) {t=x;x=y;y=t;} /*交换 x,y 的值*/ /*确保 i、j、 if(x>z) {t=z;z=x;x=t;}/*交换 x,z 的值*/ if(y>z) {t=y;y=z;z=t;}/*交换 z,y 的值*/ printf("small to big: %d %d %d\n",x,y,z);} ======================================== 【程序 13】 题目:用*号输出字母 C 的图案。 /*y 为再加上 168 后开方后的 /*x 为加上 100 后开方后的结

C语言常用例题

C语言常用例题
4、编写程序建立一个整型数组,数组元素依次是1,2,3,4,5,6,7,8,9;通过对自定义函数inv的调用,使数组元素依次是9,8,7,6,5,4,3,2,1。参考答案:
#include<stdio.h>
void inv(int a[],int n)
{
int k,j=n-1,temp;
for(k=0;k<j;k++,j--)
if(b<a[m][n])
{ b=a[m][n]; c=m;d=n; }
printf("a[%d][%d]=%.2f",c,d,b);
}
3、自定义一个max函数,用于比较两个数的大小;从键盘输入两个数a、b,利用max函数求出两个数中大的,并在屏幕上输出。参考答案:
#include<stdio.h>
{ int k;
float multi=1;
for(k=1;k<=n;k++) multi=multi*k;
return multi;
}
void main()
{ int j,n;
float s=1;
scanf("%d",&n);
for(j=2;j<=n;j++) s=s+1/fact(j);
printf("%f\n",s);
j=0;
k=0;
l=0;
while((c=ch1[j])!='\0')
{if(c=='A'||c=='a'||c=='E'||c=='e'||c=='O'||c=='o'||c=='I'||c=='i'||c=='u'||c=='U')

C语言经典例题

C语言经典例题

C语言经典例题第一部分:选择题(40分,20小题/套)概述1、下面关于C语言的叙述中,正确的是()A. 每行只能写一条语句B. 程序中必须包含有输入语句C. main函数必须位于文件的开头D. 每条语句最后必须有一个分号2、下面关于C语言的叙述中,错误的是()A. 若一条语句较长,也可分写在下一行上B. 构成C语言源程序的基本单位是表达式C. C语言源程序中大、小写字母是有区别的D. 一个C语言源程序可由一个或多个函数组成3、关于C语言数据类型的叙述,正确的是()A. 枚举类型不是基本类型B. 数组不是构造类型C. 变量必须先定义后使用D. 不允许使用空类型4、C程序中main函数的位置()A. 必须在最开始B. 必须在系统库函数后面C. 可以在自定义函数后面D. 必须在最后5、C语言的函数体由()括起来A. ( )B. { }C. [ ]D. /* */6、关于C语言的叙述中,不正确的是()A. C程序可由一个或多个函数组成B. C程序必须包含一个main()函数C. C程序的基本组成单位是函数D. 注释说明只能位于一条语句的后面7、一个程序的执行是从()A. 本程序的第一个函数开始,到最后一个函数结束B. 本程序的main函数开始,到main函数结束C. 本程序的main函数开始,到最后一个函数结束D. 本程序的第一个函数开始,到main函数结束8、结构化程序设计的三种基本结构是()A. 函数结构、分支结构、判断结构B. 函数结构、嵌套结构、平行结构C. 顺序结构、分支结构、循环结构D. 分支结构、循环结构、嵌套结构9、调试程序是指对程序进行()A. 编辑B. 编译C. 查错和排错D. 连接10、C语言中,复合语句的构成是将一系列语句置于()A. begin与end之间B. 一对圆括号“()”之间C. 一对花括号“{ }”之间D. 一对方括号“[ ]”之间11、构成C语言源程序的基本单位是()A. 语句B. 过程C. 表达式D. 函数语法基础12、在C语言中,正确的用户标识符是()A. 3fB. _forC. structD. _f.513、C语言的基本数据类型包括()A. 整型、实型、字符型B. 整型、实型、字符型、逻辑型C. 整型、字符型、逻辑型D. 整型、实型、逻辑型14、以下()是正确的常量A. E-5B. 1E5.1C. …a12‟D. 32766L15、以下()是正确的变量名A. a.beeB. –p11C. intD. p_1116、以下()是正确的字符常量A. “c”B. …//”C. …W‟D. “\32a”17、以下()是不正确的字符串常量A. …abc‟B. “12‟12”C. “0”D. “ “18、C语言的整型数据在内存中的存储形式是()A. 原码B. 反码C. 补码D. ASCII码19、以下()是正确的浮点数A. e3B. .62C. 2e4.5D. 12320、下列不属于C语言关键字的是()A. continueB. integerC. staticD. signed21、C语言的字符型数据在内存中的存储形式是()A. 原码B. 补码C. 反码D. ASCII22、在C语言中,变量所分配的内存空间大小是()A. 由变量的类型决定B. 由用户自己决定C. 任意的D. 均为两个字节23、若有定义:int a=2;则正确的赋值表达式是()A. a-=(a*3)B. double(-1)C. a*3D. a*4=324、语句x=(a=3,b=++a);运行后,x、a、b的值依次为()A. 3,3,4B. 4,4,3C. 4,4,4D. 3,4,325、语句a=(3/4)+3%2;运行后,a的值为()A. 0B. 1C. 2D. 326、以下四项中,符合C语言语法的语句是()A. int a+b=c;B. int a=12:b=12:c=12;C. int a=12,b=12,c=12;D. int a,b=12,float c=2127、若有定义:int x,a;则语句x=(a=3,a+1);运行后,x、a的值依次为()A. 3,3B. 4,4C. 4,3D. 3,428、若变量已正确定义并赋值,符合C语言语法的表达式是()A. a=8+b+c,a++B. a=3aC. int(12.3%4)D. a=a+1=c+b29、若有定义:int a,b;double x;则以下不符合C语言语法的表达式是()A. x%(-3)B. a+=-1C. a=b=2D. x=a+b30、若有定义:int x=2,y=3;float i;则以下符合C语言语法的表达式是()A. x=x*3=2B. x=(y==1)C. i=float(x)D. i%(-3)31、若有定义:int x;则语句x=(2*3)+6%5;运行后,x的值是()A. 8B. 7C. 6D. 532、下面关于C语言变量的叙述中,错误的是()A. 可以用const关键字定义变量B. 在C程序中,SUM和sum是不同的变量C. 变量名必须由字母或下划线组成D. 变量的类型确定了变量的取值范围33、若有定义:int x=5,y=6;则表达式x=(y= =6)的值为()A. 5B. 1C. 6D. 034、下面叙述正确的是()A. 2/3与2.0/3.0等价B. (int)2.0/3与2/3等价C. ++5与6等价D. …A‟与”A”等价35、下面叙述中,错误的是()A. C语言基本的算术运算符不包含模运算符”%”B. 算术运算符的优先级高于关系运算符C. 自加和自减运算符的结合方向是”自右向左”D. C语言规定在表达式求值时,按其中运算符的优先级先高后低的次序进行36、下面叙述正确的是()A. 强制类型转换运算的优先级高于算术运算B. 若a和b是整型变量,(a+b)++是合法的C. …A‟*‟B‟是不合法的D. “A”+”B”是合法的37、若有定义:int i=1,j=5;则表达式(++j)*(i--)的值为()A. 1B. 0C. 6D. 738、设整型变量a为5,使b不为2的表达式是()A. b=(++a)/3B. b=6-(--a)C. b=a%2D. b=a/239、若有定义:int a=1,b=2,c=3;则语句++a||++b&&++c;运行后b的值为()A. 1B. 0C. 2D. 340、若有定义:int i,j;则表达式(i=2,j=5,i++,i+j++)的值是()A. 7B. 8C. 9D. 1041、若有定义:int a,b;则表达式(a=2,b=5,a*2,b++,a+b)的值是()A. 7B. 8C. 9D. 1042、若有定义:int i=2,j=5;则表达式(i+1,j+1,(++i+(j--))的值为()A. 8B. 6C. 7D. 543、若已定义:int i=3,k;则语句k=(i--)+(i--);运行后k的值为()A. 4B. 5C. 6D. 744、C语言的运算符按运算对象的个数可以分为()A. 单目运算符一种B. 单目和双目运算符C. 单目、双目和三目运算符D. 单目、双目、三目和四目运算符45、若已定义:float m;拟从键盘输入135.78这一数据给变量m,则应选用的语句是()A. scanf(“%5.2f”,&m);B. scanf(“%3.2f”,&m);C. scanf(“6.2f”,&m);D. scanf(“%6f”,&m);46、已知double a;使用scanf()函数输入一个数值给变量a,正确的函数调用是()A. scanf(“%l d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);47、已知char a;使用scanf()函数输入一个字符给变量a,不正确的函数调用是()A. scanf(“%d”,&a);B. scanf(“%l f”,&a);C. scanf(“%c”,&a);D. scanf(“%u”,&a);48、putchar()函数的功能是向终端输出()A. 多个字符B. 一个字符C. 一个实型变量值D. 一个整型变量表达式49、以下程序段运行后的输出结果是()int k=11;printf(“k=%d,k=%o,k=%x\n”,k,k,k);A. k=11,k=13,k=cB. k=11,k=12,k=13C. k=11,k=13,k=bD. k=11,k=13,k=a50、若有定义:int x=1234,y=123,z=12;则语句printf(“%4d+%3d+%2d”,x,y,z);运行后的输出结果为()A. 123412312B. 12341234123412341231231231212C. 1234+1234+1234D. 1234+123+1251、已有如下定义和输入语句,int a;char c1,c2;scanf(“%d%c%c”,&a,&c1,&c2);若要求a、c1、c2的值分别为10、A和B,正确的数据输入是()A. 10ABB. 10 A BC. 10A BD. 10 AB52、以下程序段的运行结果是()int a=0,b=0,c=0;if(a&&++b)c++;printf(“%d,%d\n”,b,c);A. 0,0B. 1,2C. 2,2D. 1,053、以下程序的运行结果是()void main(){int a=65;c har c=‟A‟;p rintf(“%x,%d”,b,c);}A. 65,aB. 41,aC. 65,65D. 41,6554、若已定义:int a=5;float b=63.72;以下语句中能输出正确值的是()A. printf(“%d%d”,a,b);B. printf(“%d%2f”,a,b);C. printf(“%2f%2f”,a,b);D. printf(“%2f%d”,a,b);55、运行以下程序段时编译出错,其原因是()char c1='8',c2='2008';printf("%c,%d\n",c1,c2);A. c2是字符变量,只能赋以字符常量,不能赋以字符串常量B. 字符串要用“2008“表示,而‘2008’不是字符串表示C. ‘2008’只能赋值给字符数组D. 字符变量不能用%d格式输出56、若已定义:int a=3,b=15,c;则语句c=a>b;运行后c的值为()A. 1B. 0C. tD. f57、在C语言中,判定逻辑值为“真“的最正确的叙述是()A. 1B. 非0的数C. 大于0的数D. 非0的整数58、若已定义:int a=-36,b=-30,c;则语句c=a<b;运行后c的值为()A. 1B. tC. 0D. f59、能正确表示数学关系式800>=y>=500的C语言表达式为()A. (y<=800)&&(y>=500)B. (y<=800)AND(y>=500)C. 800>=y>=500D. (y<=800)&(y>=500)60、若有定义:int x=3,y=4;则表达式!x||y的值为()A. 1B. 0C. 3D. 461、若有定义:int i=7,j=8;则表达式i>=j||i<j的值为()A. 1B. 变量i的值C. 0D. 变量j的值62、若希望当a的值为奇数时,表达式的值为“真”,a的值为偶数时,表达式的值为”假”。

C语言上级经典练习50题

C语言上级经典练习50题

上机练习题1.输入一个不超过五位的正整数,输出其逆数。

例如输入12345,输出应为54321。

2.计算1+2+3…+n的值,n是从键盘输入的自然数。

3.从终端(键盘)读入20个数据到数组中,统计其中正数的个数,并计算这些正数之和。

4.从终端(键盘)将5个整数输入到数组a中,然后将a逆序复制到数组b中,并输出b中各元素的值。

5.要将五张100元的大钞票,换成等值的50元,20元,10元,5元一张的小钞票,每种面值至少1张,编程输出所有可能的换法,程序应适当考虑减少重复次数。

完成6.求n以内(不包括n)同时能被3和7整除的所有自然数之和的平方根s,n从键盘输入。

例如若n为1000时,函数值应为:s=。

7.一辆卡车违反交通规则,撞人后逃跑。

现场有三人目击事件,但都没有记住车号,只记下车号的一些特征。

甲说:牌照的前两位数字是相同的;乙说:牌照的后两位数字是相同的,但与前两位不同;丙是数学家,他说:四位的车号刚好是一个整数的平方。

请根据以上线索找出车号。

8.输入1~10之间的一个数字,输出它对应的英文单词。

9.个位数为6且能被3整除但不能被5整除的三位自然数共有多少个,分别是哪些10.用自然语言描述程序逻辑如下,试写程序。

①设置环境;②定义变量i、j、s,以及用于放置结果的变量sum,并令sum初值为0;③i=1;④如果i≤100,则转⑤,否则转⑧;⑤令s=0,求前i个自然数之和,并放于变量s之中;⑥sum=sum+s;⑦i增加1,转④;⑧输出和sum,结束。

11.用自然语言描述的程序逻辑为:①设置环境;②定义变量i、flag和password,并令flag=0,i=0;③用户回答口令,将其赋于password变量;④口令正确如果是,则flag=1,转⑥。

否则转⑤;⑤回答三次口令了吗如果没有,计数器加1后(i++),转③,否则转⑥;⑥根据flag之值输出相应信息。

12.用自然语言描述的程序逻辑如下:①设置环境;②定义变量digit、x、y分别表示原始数的个位、原始数数和逆数;③输入原始正整数x;④从x中分解出个位数字digit;⑤合并个位digit至逆数y中;⑥原始数x缩小10倍:x=x/10;⑦如果x非零,则转④;⑧输出逆数y,结束13.输入某三角形的三个边的长度,判断出这是个什么三角形(等腰、等边、任意,或不能构成)。

c语言练习题带答案)-绝对经典题目不看后悔

c语言练习题带答案)-绝对经典题目不看后悔

1单选题1.(A)是构成C语言程序的基本单位。

A、函数B、过程C、子程序D、子例程2.C语言程序从C开始执行。

A) 程序中第一条可执行语句B) 程序中第一个函数C) 程序中的main函数D) 包含文件中的第一个函数3、以下说法中正确的是(C)。

A、C语言程序总是从第一个定义的函数开始执行B、在C语言程序中,要调用的函数必须在main( )函数中定义C、C语言程序总是从main( )函数开始执行D、C语言程序中的main( )函数必须放在程序的开始部分4.下列关于C语言的说法错误的是(B)。

A) C程序的工作过程是编辑、编译、连接、运行B) C语言不区分大小写。

C) C程序的三种基本结构是顺序、选择、循环D) C程序从main函数开始执行5.下列正确的标识符是(C)。

A.-a1B.a[i]C.a2_iD.int t5~8题为相同类型题考点:标识符的命名规则(1)只能由字母、数字、下划线构成(2)数字不能作为标识符的开头(3)关键字不能作为标识符选项A中的“-” ,选项B中“[”与“]”不满足(1);选项D中的int为关键字,不满足(3)6.下列C语言用户标识符中合法的是(B)。

A)3ax B)x C)case D)-e2 E)union选项A中的标识符以数字开头不满足(2);选项C,E均为为关键字,不满足(3);选项D中的“-”不满足(1);7.下列四组选项中,正确的C语言标识符是(C)。

A)%x B)a+b C)a123 D)123选项A中的“%” ,选项B中“+”不满足(1);选项D中的标识符以数字开头不满足(2)8、下列四组字符串中都可以用作C语言程序中的标识符的是(A)。

A、print _3d db8 aBcB、I\am one_half start$it 3paiC、str_1 Cpp pow whileD、Pxq My->book line# His.age选项B中的“\”,”$” ,选项D中“>”,”#”,”.”,”-”不满足(1);选项C中的while为关键字,不满足(3)9.C语言中的简单数据类型包括(D)。

c语言经典题目

c语言经典题目

c语言经典题目C语言经典题目-数学问题_c语言经典数学问题编程例题-CSDN 博客1、一个整数x的全部因子(包括1,不包括x本身)之和等于y;并且正数y的全部因子(包括1,不包括y本身)之和等于x,则将整数x和y称为亲密数,求3000以内的全部的亲密数#include <stdio.h>int getDivisorSum(int n) { // 计算n的所有因子之和int sum = 0;for (int i = 1; i <= n / 2; i++) {if (n % i == 0) {sum += i;}}return sum;}int main() {for (int i = 1; i <= 3000; i++) {int y = getDivisorSum(i); // 计算i的因子和 if (getDivisorSum(y) == i && i < y && y <= 3000) { // 判断i和y是否为亲密数printf("(%d, %d)\n", i, y); // 输出亲密数 }}return 0;}2、c语言:判断1-200之间的素数#include <stdio.h>#include <stdbool.h>bool isPrime(int n) { // 判断n是否为素数的函数 if (n <= 1) {return false;}for (int i = 2; i * i <= n; i++) {if (n % i == 0) {return false;}}return true;}int main() {for (int i = 1; i <= 200; i++) {if (isPrime(i)) { // 判断i是否为素数 printf("%d ", i); // 输出素数}}printf("\n");return 0;}3、求最大公约数和最小公倍数//辗转相除法#include <stdio.h>int main(){int a = 0;int b = 0;scanf("%d %d", &a, &b);int z = a * b;//求最大公约数:int c = 0;while (a % b != 0){c = a % b;a = b;b = c;}printf("最大公约数为:%d\n", b);//求最小公倍数:int min = z / b;printf("最小公倍数:%d\n", min);return 0;}4、进制转换进制转换是人们利用符号来计数的方法。

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

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

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

2.程序源代码:main(){int i,j,k;printf("\n");for(i=1;i<5;i++) /*以下为三重循环*/for(j=1;j<5;j++)for (k=1;k<5;k++){if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/printf("%d,%d,%d\n",i,j,k);} }==============================================================【程序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.程序分析:请利用数轴来分界,定位。

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

2.程序源代码:main(){long int i;int bonus1,bonus2,bonus4,bonus6,bonus10,bonus;scanf("%ld",&i);bonus1=100000*0.1;bonus2=bonus1+100000*0.75;bonus4=bonus2+200000*0.5;bonus6=bonus4+200000*0.3;bonus10=bonus6+400000*0.15;if(i<=100000)bonus=i*0.1;else if(i<=200000)bonus=bonus1+(i-100000)*0.075;else if(i<=400000)bonus=bonus2+(i-200000)*0.05;else if(i<=600000)bonus=bonus4+(i-400000)*0.03;else if(i<=1000000)bonus=bonus6+(i-600000)*0.015;elsebonus=bonus10+(i-1000000)*0.01;printf("bonus=%d",bonus); }==============================================================【程序3】题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

请看具体分析:2.程序源代码:#include "math.h"main(){long int i,x,y,z;for (i=1;i<100000;i++){ x=sqrt(i+100); /*x为加上100后开方后的结果*/y=sqrt(i+268); /*y为再加上168后开方后的结果*/if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/printf("\n%ld\n",i);} }==============================================================【程序4】题目:输入某年某月某日,判断这一天是这一年的第几天?1.程序分析:以3月5日为例,应该先把前两个月的加起来,然后再加上5天即本年的第几天,特殊情况,闰年且输入月份大于3时需考虑多加一天。

2.程序源代码:main(){int day,month,year,sum,leap;printf("\nplease input year,month,day\n");scanf("%d,%d,%d",&year,&month,&day);switch(month)/*先计算某月以前月份的总天数*/{ case 1:sum=0;break;case 2:sum=31;break;case 3:sum=59;break;case 4:sum=90;break;case 5:sum=120;break;case 6:sum=151;break;case 7:sum=181;break;case 8:sum=212;break;case 9:sum=243;break;case 10:sum=273;break;case 11:sum=304;break;case 12:sum=334;break;default:printf("data error");break; }sum=sum+day; /*再加上某天的天数*/if(year%400==0||(year%4==0&&year%100!=0))/*判断是不是闰年*/leap=1;elseleap=0;if(leap==1&&month>2)/*如果是闰年且月份大于2,总天数应该加一天*/sum++;printf("It is the %dth day.",sum);}==============================================================【程序5】题目:输入三个整数x,y,z,请把这三个数由小到大输出。

1.程序分析:我们想办法把最小的数放到x上,先将x与y进行比较,如果x>y则将x与y 的值进行交换,然后再用x与z进行比较,如果x>z则将x与z的值进行交换,这样能使x 最小。

2.程序源代码:main(){int x,y,z,t;scanf("%d%d%d",&x,&y,&z);if (x>y){t=x;x=y;y=t;} /*交换x,y的值*/if(x>z){t=z;z=x;x=t;}/*交换x,z的值*/if(y>z){t=y;y=z;z=t;}/*交换z,y的值*/printf("small to big: %d %d %d\n",x,y,z); }==============================================================【程序6】题目:用*号输出字母C的图案。

1.程序分析:可先用'*'号在纸上写出字母C,再分行输出。

2.程序源代码:#include "stdio.h"main(){ printf("Hello C-world!\n");printf(" ****\n");printf(" *\n");printf(" * \n");printf(" ****\n"); }==============================================================【程序7】题目:输出特殊图案,请在c环境中运行,看一看,Very Beautiful!1.程序分析:字符共有256个。

不同字符,图形不一样。

2.程序源代码:#include "stdio.h"main(){ char a=176,b=219;printf("%c%c%c%c%c\n",b,a,a,a,b);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",a,a,b,a,a);printf("%c%c%c%c%c\n",a,b,a,b,a);printf("%c%c%c%c%c\n",b,a,a,a,b);}==============================================================【程序8】题目:输出9*9口诀。

1.程序分析:分行与列考虑,共9行9列,i控制行,j控制列。

2.程序源代码:#include "stdio.h"main(){int i,j,result;printf("\n");for (i=1;i<10;i++){ for(j=1;j<10;j++){result=i*j;printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/}printf("\n");/*每一行后换行*/}}==============================================================【程序9】题目:要求输出国际象棋棋盘。

1.程序分析:用i控制行,j来控制列,根据i+j的和的变化来控制输出黑方格,还是白方格。

2.程序源代码:#include "stdio.h"main(){ int i,j;for(i=0;i<8;i++){for(j=0;j<8;j++)if((i+j)%2==0)printf("%c%c",219,219);elseprintf(" ");printf("\n"); } }==============================================================【程序10】题目:打印楼梯,同时在楼梯上方打印两个笑脸。

1.程序分析:用i控制行,j来控制列,j根据i的变化来控制输出黑方格的个数。

2.程序源代码:#include "stdio.h"main(){ int i,j;printf("\1\1\n");/*输出两个笑脸*/for(i=1;i<11;i++){ for(j=1;j<=i;j++)printf("%c%c",219,219);printf("\n");} }【程序11】题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?1.程序分析:兔子的规律为数列1,1,2,3,5,8,13,21....2.程序源代码:main(){ long f1,f2;int i;f1=f2=1;for(i=1;i<=20;i++){ printf("%12ld %12ld",f1,f2);if(i%2==0) printf("\n");/*控制输出,每行四个*/f1=f1+f2; /*前两个月加起来赋值给第三个月*/f2=f1+f2; /*前两个月加起来赋值给第三个月*/} }==============================================================【程序12】题目:判断101-200之间有多少个素数,并输出所有素数。

相关文档
最新文档