Auto commit

This commit is contained in:
smallkun 2025-03-13 16:46:35 +08:00
parent d198c8044c
commit cd6b19e43c
6 changed files with 2478 additions and 105 deletions

View File

@ -1,9 +1,9 @@
### C语言-1
### C语言-1
```c
/*------------------------------------------------------------------------------
1【程序设计】下列给定程序中fun函数的功能是分别统计字符串中大写字母和小写字母的个数。
例如给字符串s输入AAaaBBbb123CCcccd则应输出upper6lower8。
1【程序设计】下列给定程序中fun函数的功能是分别统计字符串中大写字母和小写字母的个数。
例如给字符串s输入AAaaBBbb123CCcccd则应输出upper6lower8。
------------------------------------------------------------------------------*/
#include <stdio.h>
void fun ( char *s, int *a, int *b)
@ -36,15 +36,15 @@ main( )
### C语言-2
### C语言-2
```c
/*------------------------------------------------------------------------
题目函数fun的功能将字符串str中第k个字符开始的n个字符逆序重排
例如输入1,5 输出54321abcde
输入3,6 输出12cba543de
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
题目函数fun的功能将字符串str中第k个字符开始的n个字符逆序重排
例如输入1,5 输出54321abcde
输入3,6 输出12cba543de
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
----------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
@ -70,7 +70,7 @@ int main( )
{ fun(str,k,n);
puts(str); }
else
printf("所输入的k,n值不合适\n");
printf("所输入的k,n值不合适\n");
return 0;
}
@ -80,11 +80,11 @@ int main( )
### C语言-3
### C语言-3
```c
/*------------------------------------------------------------------
功能:编程统计一个字符串中的字母、数字、空格和其它字符的个数。
功能:编程统计一个字符串中的字母、数字、空格和其它字符的个数。
---------------------------------------------------------------------*/
#include <stdio.h>
void fun(char s[],int b[])
@ -126,18 +126,18 @@ main ()
### C语言-4
### C语言-4
```c
/*------------------------------------------------------------------------
程序功能:从键盘输入三个整数,比较三个数并显示相应信息,具体如下:
1如果三个数都相等显示"***"
2如果三个数中只有某两个数相等显示"@@"
3如果三个数互不相等则显示"&"。
(输出要换行)
程序功能:从键盘输入三个整数,比较三个数并显示相应信息,具体如下:
1如果三个数都相等显示"***"
2如果三个数中只有某两个数相等显示"@@"
3如果三个数互不相等则显示"&"。
(输出要换行)
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间删除【?】填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间删除【?】填入若干语句。不要删除标志否则不得分。
----------------------------------------------------------------------*/
#include<stdio.h>
int main()
@ -174,17 +174,17 @@ CREATE TABLE t_hotel_manager(
hid INT NOT NULL,
mname VARCHAR(10) NOT NULL,
mage INT NOT NULL,
mgender ENUM('男', '女', '未知'),
mgender ENUM('男', '女', '未知'),
telephone VARCHAR(11)
);
#2
#使用MODIFY添加主键字段为自动增长
#使用MODIFY添加主键字段为自动增长
ALTER TABLE t_hotel_manager MODIFY mid INT AUTO_INCREMENT;
#设置自增起始值
#设置自增起始值
ALTER TABLE t_hotel_manager AUTO_INCREMENT = 1000;
#3
INSERT INTO t_hotel_manager()
VALUES(DEFAULT, 10001, '王璐', 32, '女', NULL);
VALUES(DEFAULT, 10001, '王璐', 32, '女', NULL);
#4
CREATE TABLE t_hotel_bak AS
SELECT *
@ -192,7 +192,7 @@ FROM t_hotel;
#5
UPDATE t_client c
SET c.integral = c.integral + 100
WHERE c.cname LIKE '姚%';
WHERE c.cname LIKE '姚%';
#6 tj11
SELECT c.cname, SUM(r.price)
FROM t_booking b, t_client c, t_room r
@ -204,10 +204,10 @@ LIMIT 9, 1;
#7 tj12
SELECT h.hname, r.price
FROM t_hotel h, t_room r
WHERE h.hid = r.hid AND r.rname = '大床房' AND r.price = (
WHERE h.hid = r.hid AND r.rname = '大床房' AND r.price = (
SELECT MAX(price)
FROM t_room
WHERE rname = '大床房'
WHERE rname = '大床房'
);
#8 tj13
@ -217,7 +217,7 @@ LEFT JOIN t_booking b ON r.rid = b.rid
INNER JOIN t_hotel h ON r.hid = h.hid
WHERE b.bid IS NULL;
#9 视图
#9 视图
CREATE VIEW v_tongji AS
SELECT h.hname, SUM(r.price)
FROM t_hotel h, t_booking b, t_room r
@ -230,20 +230,20 @@ GROUP BY h.hid;
### MySQL-2
```sql
#1添加主键
#1添加主键
ALTER TABLE tb_student ADD PRIMARY KEY(student_id);
#2设置默认值
ALTER TABLE tb_student ALTER gender SET DEFAULT '男';
#2设置默认值
ALTER TABLE tb_student ALTER gender SET DEFAULT '男';
#3 插入记录
#3 插入记录
INSERT INTO tb_student()
VALUES(10025, '张三', DEFAULT, '2012-10-01', 1001);
VALUES(10025, '张三', DEFAULT, '2012-10-01', 1001);
#4 更新记录
#4 更新记录
UPDATE tb_teacher t
SET t.teacher_age = 36
WHERE t.teacher_name = '王老师';
WHERE t.teacher_name = '王老师';
#5 tj11
SELECT MAX(t.teacher_age)
@ -254,7 +254,7 @@ SELECT c.class_name, s.student_name, s.gender
FROM tb_teacher t, tb_student s, tb_class C
where s.class_id = c.class_id AND c.teacher_id = t.teacher_id;
#7 视图
#7 视图
CREATE VIEW v_teacher AS
SELECT c.class_name, t.teacher_name, COUNT(*)
FROM tb_teacher t, tb_student s, tb_class C
@ -269,11 +269,11 @@ BEFORE UPDATE ON tb_teacher
FOR EACH ROW
BEGIN
IF NEW.teacher_age < 30 THEN
SET NEW.age = '青年';
SET NEW.age = '青年';
ELSEIF NEW.teacher_age < 50 THEN
SET NEW.age = '中年';
SET NEW.age = '中年';
ELSE
SET NEW.age = '老年';
SET NEW.age = '老年';
END IF;
END $$
DELIMITER ;

View File

@ -1,17 +1,17 @@
### C语言-1
### C语言-1
```c
/*---------------------------------------------------------
【程序设计】程序将由数字字符组成的字符串转换为10进制实数
例如将"123.4567"转换为123.45670。
【程序设计】程序将由数字字符组成的字符串转换为10进制实数
例如将"123.4567"转换为123.45670。
输出如下:
输出如下:
123.45670
0.12345
4567.00000
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。不要删除标志否则不得分。
---------------------------------------------------------*/
#include<stdio.h>
#include<ctype.h>
@ -49,14 +49,14 @@ int main()
```
### C语言-2
### C语言-2
```c
/*
-------------------------------------------------------
【程序填空】
【程序填空】
---------------------------------------------------------
打印以下图案:
打印以下图案:
*****
*****
*****
@ -90,13 +90,13 @@ void main()
```
### C语言-3
### C语言-3
```c
/*-------------------------------------------------------
功能:功能:输入三角形的三边长,判断能否构成三角形,若能,利用海伦公式计
算该三角形的面积计算结果保留3位小数。
l=(a+b+c)/2s=sqrt(l*(l-a)*(l-b)*(l-c))
功能:功能:输入三角形的三边长,判断能否构成三角形,若能,利用海伦公式计
算该三角形的面积计算结果保留3位小数。
l=(a+b+c)/2s=sqrt(l*(l-a)*(l-b)*(l-c))
--------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
@ -105,7 +105,7 @@ main()
float a,b,c,s,l;
scanf("%f,%f,%f",&a , &b , &c);
if(a+b<c||a+c<b||b+c<a)
printf("该3个数据不能构成三角形\n");
printf("该3个数据不能构成三角形\n");
else
{
/**********Program**********/
@ -114,18 +114,18 @@ main()
/********** End **********/
printf("该三角形的面积为%.3f\n",s);
printf("该三角形的面积为%.3f\n",s);
}
}
```
### C语言-4
### C语言-4
```c
/*-------------------------------------------------------
编写程序,打印以下图形:
编写程序,打印以下图形:
*
***
@ -160,12 +160,12 @@ main()
```
### C语言-5
### C语言-5
```c
/*-----------------------------------------------------------
功能从键盘为一维整型数组输入10个整数调用函数找出其中
最小的数并输出。
功能从键盘为一维整型数组输入10个整数调用函数找出其中
最小的数并输出。
-----------------------------------------------------------*/
#include <stdio.h>
#include<stdlib.h>
@ -195,18 +195,18 @@ main()
```
### C语言-6
### C语言-6
```c
/*------------------------------------------------------------------------------
【程序设计】编写函数rtrim用来删除字符串尾部的空格首部和中间的空格不删除。例如字符串为" A BC DEF "
删除后的结果是" A BC DEF"。要求函数形参采用指针变量。
测试输入: A BC DEF
测试输出: A BC DEF
说明测试输入中A前有4个空格F后有5个空格
【程序设计】编写函数rtrim用来删除字符串尾部的空格首部和中间的空格不删除。例如字符串为" A BC DEF "
删除后的结果是" A BC DEF"。要求函数形参采用指针变量。
测试输入: A BC DEF
测试输出: A BC DEF
说明测试输入中A前有4个空格F后有5个空格
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include <stdio.h>
#include <string.h>
@ -225,11 +225,11 @@ void rtrim(char *p)
while(*p != '\0'){
p++;
}
p--;//定位到结束符前的位置
while(*p==' '){//如果当前指针位置是空格则指针向前移
p--;//定位到结束符前的位置
while(*p==' '){//如果当前指针位置是空格则指针向前移
p--;
}
p++;//移动当前位置后一个空格位
p++;//移动当前位置后一个空格位
*p='\0';
@ -238,17 +238,17 @@ void rtrim(char *p)
```
### C语言-7
### C语言-7
```c
/*------------------------------------------------------------------------------
【程序设计】输入字符串不包含空格将字符串按字符从小到大排序然后输出字符串中除去ASCII码值能被3整除的字符。
输入输出如下:
【程序设计】输入字符串不包含空格将字符串按字符从小到大排序然后输出字符串中除去ASCII码值能被3整除的字符。
输入输出如下:
hello world
处理后的字符串为: dehw
处理后的字符串为: dehw
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h>
#include <string.h>
@ -267,7 +267,7 @@ void main()
t=str[j];str[j]=str[j+1];str[j+1]=t;
}
}
printf("处理后的字符串为:");
printf("处理后的字符串为:");
/**********Program**********/
j=0;
for(i=0;i<strlen(str);i++){
@ -285,14 +285,14 @@ void main()
}
```
### C语言-8
### C语言-8
```c
/*------------------------------------------------------------------------------
【程序设计】该程序实现的功能是求一个整数各位数字之和。使用while实现
【程序设计】该程序实现的功能是求一个整数各位数字之和。使用while实现
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h>
@ -314,27 +314,27 @@ int main()
int n,sum;
scanf("%d",&n);
sum=getsum(n);
printf("结果是%d\n",sum);
printf("结果是%d\n",sum);
}
```
### C语言-9
### C语言-9
```c
/*------------------------------------------------------------------------------
【程序设计】有两个降序排列的集合A和BA中无重复元素B中也无重复元素
求集合B-A的差集这些元素属于集合B但不属于集合A存放于数组c中并输出。
输入输出如下:
请输入3个整数
【程序设计】有两个降序排列的集合A和BA中无重复元素B中也无重复元素
求集合B-A的差集这些元素属于集合B但不属于集合A存放于数组c中并输出。
输入输出如下:
请输入3个整数
3 2 1
请输入5个整数
请输入5个整数
9 6 5 3 2
结果为:
结果为:
9 6 5
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容否则不得分。
仅在Program-End之间填入若干语句。不要删除标志否则不得分。
------------------------------------------------------------------------------*/
#include<stdio.h>
@ -342,11 +342,11 @@ void main()
{
int a[3],b[5],c[5];
int t=0,i,j=0;
printf("请输入3个整数\n");
printf("请输入3个整数\n");
for(i=0;i<3;i++){
scanf("%d",&a[i]);
}
printf("请输入5个整数\n");
printf("请输入5个整数\n");
for(i=0;i<5;i++){
scanf("%d",&b[i]);
}
@ -366,28 +366,28 @@ void main()
while(j<5){
c[t++]=b[j++];
}
printf("结果为:\n");
printf("结果为:\n");
for(i=0;i<t;i++){
printf("%d ",c[i]);
}
}
```
### C语言-10
### C语言-10
```c
/*----------------------------------------------------------------------
【程序设计】
【程序设计】
------------------------------------------------------------------------
随机输入一字符串不包含空格长度不超过100删除字符串中的数字字符后输出。
例输入I will be 17 years old soon, and I will graduate from high school in June 2025
输出:
去掉数字后的字符串为I will be years old soon, and I will graduate from high school in June
随机输入一字符串不包含空格长度不超过100删除字符串中的数字字符后输出。
例输入I will be 17 years old soon, and I will graduate from high school in June 2025
输出:
去掉数字后的字符串为I will be years old soon, and I will graduate from high school in June
------------------------------------------------------------------------
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End之外的内容否则不得分。
注意部分源程序给出如下。请勿改动主函数main或其它函数中给出的内容仅在
Program-End之间填入若干语句。
不要删除标志否则不得分。
不要修改或删除Program-End之外的内容否则不得分。
----------------------------------------------------------------------*/
#include<stdio.h>
#include <string.h>
@ -406,7 +406,7 @@ void main()
}
/********** End **********/
b[j]='\0';
printf("去掉数字后的字符串为:");
printf("去掉数字后的字符串为:");
puts(b);
}
```

View File

@ -0,0 +1,588 @@
### C语言-1
```c
/*
-------------------------------------------------------
【程序填空】
---------------------------------------------------------
打印以下图案:
*****
*****
*****
*****
*****
*/
#include<stdio.h>
void main()
{
int i =0 , j =0 , k=0;
/**********Program**********/
for(i=0;i<5;i++){
for(j=0;j<i;j++){
printf(" ");
}
for(k=0;k<5;k++){
printf("*");
}
printf("\n");
}
/********** End **********/
printf("\n");
}
```
### C语言-2
```c
/*-------------------------------------------------------
功能:编写程序,求两个非零整数之和。
-------------------------------------------------------*/
#include"stdio.h"
main()
{
int x,y,z=0;
scanf ("%d%d", &x,&y);
/**********Program**********/
if(x!=0 && y!=0){
z = x+y;
/********** End **********/
printf("z=%d\n", z);
}
else
printf("两个数中至少有一个数为零值\n");
}
```
### C语言-3
```c
/*------------------------------------------------------------------------
【程序设计】请编写函数sum,其功能是用While循环语句求1到n之间包括n)能
被3整除的所有整数之和,并将结果返回给主函数。n值由主函数传入
运行程序后若输入10则输出为18
----------------------------------------------------------------------*/
#include "stdio.h"
long sum(int n)
{
/**********Program**********/
int i, s=0;
for(i=1;i<=n;i++){
if(i%3==0){
s+=i;
}
}
return s;
/********** End **********/
}
void main()
{
int x;
long f;
scanf("%d",&x);
f=sum(x);
printf("%ld\n",f);
}
```
### C语言-4
```c
/*-------------------------------------------------------
功能:设计程序打印出如下图案(菱形)
*
***
*****
*******
*****
***
*
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,k;
/**********Program**********/
for(i=-3;i<=3;i++){
for(j=0;j<(i<0?-i:i);j++){
printf(" ");
}
for(k=0;k<7-j*2;k++){
printf("*");
}
printf("\n");
}
/********** End **********/
}
```
### C语言-5
```c
/*------------------------------------------------------
题目从键盘输入一个整数n,求2 至 n-1内所有能被n整除的数。
例如输入10 输出 2 5
输入99 输出 3 9 11 33
--------------------------------------------------------*/
#include "stdio.h"
int main ( )
{
int n,i;
printf("input a number:");
scanf ("%d", &n);
/**********Program**********/
for(i=2;i<n;i++)
if(n%i==0)
/********** End **********/
printf ("%d\n",i);
}
```
### C语言-6
```c
/*-------------------------------------------------------
【程序填空】 2、有一箱苹果100—200之间如果分成4个苹果一组的若干组则多2个苹果若分成7个苹果一组则多3个苹果 若分成9个苹果一组则多5个苹果编程实现求苹果的个数。
--------------------------------------------------------*/
# include <stdio.h>
main ()
{
int i;
for(i=100;i<200;i++)
/**********Program**********/
if(i%4==2 && i%7==3 && i%9==5)
/********** End **********/
printf ("%d",i);
}
```
### C语言-7
```c
/*-------------------------------------------------------
【程序填空】---------------------------------------------------------
功能计算武汉城区出租车收费的程序当里程在3公里以内含3公里时收费12元超过3公里在0和1之间均计1公里的部分每公里收费2元。
备注使用switch来实现
--------------------------------------------------------*/
#include<stdio.h>
main(){
int m,n;
scanf("%d",&m);
/**********Program**********/
n=0;
switch(m){
default: n+=(m-3)*2;
case 1:
case 2:
case 3:n+=12;
}
/********** End **********/
printf("本次收费为:%d",n);
}
```
### C语言-8
```c
/*-------------------------------------------------------
功能从键盘输入2个整数相加再输入答案如果正确显示"right",否则显示"error"。
--------------------------------------------------------*/
#include "stdio.h"
main( )
{
int a,b,c;
printf("please input a and b:\n");
scanf("%d,%d",&a , &b);
printf("please input the answer:\n");
scanf("%d",&c);
/**********Program**********/
if(a+b==c)
/********** End **********/
printf("right\n");
else
printf("error\n");
}
```
### C语言-9
```c
/*-------------------------------------------------------
功能:功能:输入三角形的三边长,判断能否构成三角形,若能,利用海伦公式计
算该三角形的面积计算结果保留3位小数。
l=(a+b+c)/2s=sqrt(l*(l-a)*(l-b)*(l-c))
--------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
float a,b,c,s,l;
scanf("%f,%f,%f",&a , &b , &c);
if(a+b<c||a+c<b||b+c<a)
printf("该3个数据不能构成三角形\n");
else
{
/**********Program**********/
l=(a+b+c)/2;
s=sqrt(l*(l-a)*(l-b)*(l-c));
/********** End **********/
printf("该三角形的面积为%.3f\n",s);
}
}
```
### C语言-10
```c
/*------------------------------------------------------------------------
【程序设计】功能使用for循环输出Fibonacci数列的前15项要求每行输出5项。
Fibonacci数列1,1,2,3,5,8,13...........
----------------------------------------------------------------------*/
#include <stdio.h>
main()
{
int fib[15],i;
fib[0]=1;fib[1]=1;
/**********Program**********/
for(i=2;i<15;i++){
fib[i]=fib[i-1]+fib[i-2];
}
/********** End **********/
for(i=0;i<15;i++)
{
printf("%d\t",fib[i] );
if ( i%5==4 ) printf("\n");
}
}
```
### C语言-11
```c
/*-------------------------------------------------------
1. 判断101-200之间有多少个素数并输出所有素数。判断素数的方法IsPrime用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。 --------------------------------------------------------*/
#include <stdio.h>
#include<math.h>
int IsPrime (int n)
{
int i=2;
for(i=2;i<=sqrt(n);i++)
/**********Program**********/
if(n%i==0){
return 0;
}
/********** End **********/
return 1;
}
int main( )
{
int i ;
for(i=100;i<=200;i++ )
{
if ( IsPrime( i) )
{
printf("% d",i);
}
}
return 0;
}
```
### C语言-12
```c
/*-------------------------------------------------------
功能输出100到1000之间的各位数字之和能被15整除的所有数输出时每10个一行。
输出每个数占5个字符
159 168 177 186 195 249 258 267 276 285
294 339 348 357 366 375 384 393 429 438
447 456 465 474 483 492 519 528 537 546
555 564 573 582 591 609 618 627 636 645
654 663 672 681 690 708 717 726 735 744
753 762 771 780 807 816 825 834 843 852
861 870 906 915 924 933 942 951 960
-------------------------------------------------------*/
#include<stdio.h>
main()
{
int m,n,k,i=0;
for(m=100;m<=1000;m++)
{
k=0;
n=m;
/**********Program**********/
while(n){
k+=n%10;
n/=10;
}
if(k%15==0){
i++;
printf("%5d", m);
if(i%10==0){
printf("\n");
}
}
/********** End **********/
}
}
```
### C语言-13
```c
/*-------------------------------------------------------
题目: 打印以下图案:
*********
*******
*****
***
*
--------------------------------------------------------*/
#include<stdio.h>
void main()
{
int i,j,k;
for( i=0 ; i<5; i++ )
{
printf("\n");
/**********Program**********/
for(j=0;j<i*2;j++){
printf(" ");
}
for(k=0;k<9-j;k++){
printf("*");
}
/********** End **********/
}
printf("\n");
}
```
### C语言-14
```c
/*-------------------------------------------------------
1. 编写程序,打印以下图案:
*****
***
*
--------------------------------------------------------*/
#include<stdio.h>
void main()
{
int i,j,k;
/**********Program**********/
for(i=0;i<3;i++){
for(j=0;j<i;j++){
printf(" ");
}
for(k=0;k<5-j*2;k++){
printf("*");
}
printf("\n");
}
/********** End **********/
printf("\n");
}
```
### C语言-15
```c
/*-------------------------------------------------------
功能:不用第三个变量,实现两个数的对调操作。
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b;
scanf("%d%d",&a , &b );
printf("a=%d,b=%d\n",a,b);
/**********Program**********/
a = a+b;
b = a-b;
a = a-b;
/********** End **********/
printf("a=%d,b=%d\n", a,b);
}
```
### C语言-16
```c
/*-------------------------------------------------------
题目请将123-321之间偶数累加输出最终结果。
--------------------------------------------------------*/
#include <stdio.h>
int main()
{
int i;
long sum = 0;
for(i = 123; i <= 321; i++ )
{
/**********Program**********/
if(i%2==0){
sum += i;
}
/********** End **********/
}
printf ("总和为 : %ld.\n",sum);
return 0;
}
```
### C语言-17
```c
/*-------------------------------------------------------
题目把123321之间的可以被7整除的数输出。使用for循环
--------------------------------------------------------*/
#include <stdio.h>
void main()
{
int a=0;
/**********Program**********/
for(a=123;a<=321;a++){
if(a%7==0){
/********** End **********/
printf("%d\n",a);
}
}
}
```
### C语言-18
```c
/*-------------------------------------------------------
功能:依次输入十个整数,找出其平方最大的一个数并打印出来。
--------------------------------------------------------*/
#include <stdio.h>
void main()
{
int i;
float x,y,z=0;
printf("\n请输入10个数");
for(i=1;i<=10;i++)
{
/**********Program**********/
scanf("%f", &x);
if(x*x > z){
z = x*x;
y = x;
}
/********** End **********/
}
printf("平方最大的一个数是:%f\n",y);
}
```
### C语言-19
```c
/*-------------------------------------------------------
功能从键盘输入一位整数i计算其各位数字之和。比如输入整数
31421则打印结果为11。使用while循环
--------------------------------------------------------*/
#include<stdio.h>
main()
{
int i,sum=0,a;
scanf("%d",&i);
/**********Program**********/
while(i){
sum += i%10;
i/=10;
}
/********** End **********/
printf("%d\n",sum);
}
```
### C语言-20
```c
/*-------------------------------------------------------
功能编写程序使用Switch ),给出年月日,计算出该日是该年的第几天。判断是否为
闰年的条件是:能被 4 整除但是不能被100整除或者能被四百整除。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int year,month,day,days=0,i,d;
printf("请输入年-月-日:");
scanf("%d-%d-%d",&year,&month,&day);
for(i=1;i<month;i++)
{
/**********Program**********/
switch(i){
case 1:
case 3:
case 5:
case 7:
case 8:
case 10: days+=31;break;
case 2: days+=(28 + (year%4==0&&year%100!=0 || year%400==0?1:0));break;
default: days+=30;
}
/********** End **********/
}
printf("%d-%d-%d是该年第%d天\n",year,month,day,days + day);
}
```

View File

@ -0,0 +1,549 @@
### C语言-1
```c
/*-------------------------------------------------------
编程计算s=1×2×3×……×n n由键盘输入使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,n,p;
p=1;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
for(i=2;i<=n;i++){
p*=i;
}
/********** End **********/
printf("1*2*...*%d = %d\n",n,p);
}
```
### C语言-2
```c
/*-------------------------------------------------------
编程计算π的近似值直到最后一项的绝对值小于10-5为止要求保留小数点后10位: 使用while
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,f;
double t,s;
f=1;
s=0;
i=1;
t=1.0;
/**********Program**********/
while(fabs(t/i)>1e-5){
s+=t/i*f;//计算该项的值
f*=-1;//翻转符号
i+=2;
}
/********** End **********/
s=s*4;
printf("圆周率的近似值为:%.10f\n",s);
}
```
### C语言-3
```c
/*-------------------------------------------------------
编程计算π的近似值直到最后一项的绝对值小于10-5为止使用while:
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
#define N 1e-5
main()
{
int i,f;
double t,s;
f=1;
s=0;
i=1;
t=1.0;
/**********Program**********/
while(fabs(t/i)>N){
s+=t/i*f;//计算该项的值
f*=-1;//翻转符号
i+=2;
}
/********** End **********/
s=s*4 ;
printf("圆周率的近似值为:%f\n",s);
}
```
### C语言-4
```c
/*-------------------------------------------------------
功能编程实现求1-10包含1不包含10之间的所有数的乘积并输出。使用while
--------------------------------------------------------*/
#include <stdio.h>
main( )
{
int i=1, sum=1;
/**********Program**********/
while(i<10){
sum*=i;
i++;
}
/********** End **********/
printf("the sum of odd is :%d\n",sum);
}
```
### C语言-5
```c
/*-------------------------------------------------------
功能:从键盘上输入若干个学生的成绩,统计并输出最高成绩和最
低成绩当输入负数时结束输入。使用while循环
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int x,max,min;
printf("please input x:\n");
scanf("%d",&x);
max=x;
min=x;
/**********Program**********/
while(x > 0){
if(x > max){
max = x;
}
if(x < min){
min = x;
}
scanf("%d", &x);
}
/********** End **********/
printf("max=%d,min=%d\n",max,min);
}
```
### C语言-6
```c
/*-------------------------------------------------------
编程计算使用for计算s=1+2+3+……+n n由键盘输入
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,n,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
for(i=1;i<=n;i++){
sum+=i;
}
/********** End **********/
printf("1+2+...+%d = %d\n",n,sum);
}
```
### C语言-7
```c
/*-------------------------------------------------------
功能编写比较a、b两个数的大小且把大者赋给max小者赋给min。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int a,b,min,max;
printf("输入两个数给a,b:");
scanf("%d,%d",&a,&b);
/**********Program**********/
if (a > b) {
max = a;
min = b;
} else {
max = b;
min = a;
}
/********** End **********/
printf("min=%d,max=%d\n",min,max);
}
```
### C语言-8
```c
/*-------------------------------------------------------
功能输入三个整数x,y,z请把这三个数由小到大输出。
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int x,y,z,t;
scanf("%d%d%d",&x , &y , &z);
/**********Program**********/
if (x > y) {
t = x;
x = y;
y = t;
}
if (y > z) {
t = y;
y = z;
z = t;
}
if (x > y) {
t = x;
x = y;
y = t;
}
/********** End **********/
printf("small to big: %d %d %d\n",x,y,z);
}
```
### C语言-9
```c
/*-------------------------------------------------------
功能从键盘输入整数n,输出n以内所有奇数的和。(使用for循环
--------------------------------------------------------*/
#include<stdio.h>
void main()
{
int n,i,s;
s=0;
scanf("%d",&n);
/**********Program**********/
for(i=1;i<=n;i++){
if(i%2==1){
s+=i;
}
}
/********** End **********/
printf("s=%d\n",s);
}
```
### C语言-10
```c
/*-------------------------------------------------------
编程计算s=1!+3!+5!+…n! n由键盘输入,使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,n;
long p,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
p = 1;
for ( i = 1;i <= n; i++ ) {
p *= i;
if ( i%2 == 1 ) {
sum += p;
}
}
/********** End **********/
printf("1!+3!+...+%d!= %d\n",n,sum);
}
```
### C语言-11
```c
/*-------------------------------------------------------
编程计算求e近似值
用while语句求直到最后一项值小于10-5为止。
e=0+1+1/1+1/1/2+1/1/2/3...
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
double t,e;
i=1;
t=1.0;
e=0;
/**********Program**********/
e = 2;
i = 2;
while(t/i > 1e-5){
e += t/i;
t /= i++;
}
/********** End **********/
printf("e=%f\n",e);
}
```
### C语言-12
```c
/*-------------------------------------------------------
编程计算求e近似值 用for语句求前50项之和。
e=0+1+1/1+1/1/2+1/1/2/3...
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
double t,e;
t=1.0;
e=0;
for(i=1;i<=50;i++)
{
/**********Program**********/
e += t;
t /= i;
/********** End **********/
}
printf("前50项之和为%f\n",e);
}
```
### C语言-13
```c
/*-------------------------------------------------------
功能输入一个圆半径r当r>0时计算并输出圆的面积(area)和周长(circumference),否则,输出提示信息。
--------------------------------------------------------*/
#include <stdio.h>
#define PI 3.14
main()
{
float r,s,l;
printf("please input r:\n");
scanf("%f",&r);
if (r>=0)
{
/**********Program**********/
s = PI * r*r;
l = 2*PI*r;
/********** End **********/
printf("the area is %f\n",s);
printf("the circumference is %f\n",l);
}
else
printf("input error!\n");
}
```
### C语言-14
```c
/*-------------------------------------------------------
功能编写程序输入三位数100-999然后按数字逆序输出。输入456↙输出654
--------------------------------------------------------*/
#include <stdio.h>
void main()
{
int n,ge,shi,bai;
printf("请输入一个三位正整数:");
scanf("%d",&n);
if((n<100)||(n>999))
printf("输入数据有误!\n");
else
{
/**********Program**********/
ge = n % 10;
shi = n % 100 / 10;
bai = n / 100;
/********** End **********/
printf("此数的逆序输出结果为:%d%d%d\n",ge,shi,bai);
}
}
```
### C语言-15
```c
/*-------------------------------------------------------
编程计算s=1!+2!+3!+…n! n由键盘输入使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,n;
long p,sum;
sum=0;
printf("请输入一个正整数n:");
scanf("%d",&n);
/**********Program**********/
p = 1;
for( i = 1;i <= n; i++ ){
p *= i;
sum += p;
}
/********** End **********/
printf("1!+2!+...+%d!= %d\n",n,sum);
}
```
### C语言-16
```c
/*-------------------------------------------------------
编程计算s=1-3+5-7+……-99使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,f,sum;
f=1;
sum=0;
/**********Program**********/
for(i=1;i<=99;i++){
if(i%2==1){
sum += i*f;
f*=-1;
}
}
/********** End **********/
printf("1-3+5-7+...-99 = %d\n",sum);
}
```
### C语言-17
```c
/*-------------------------------------------------------
功能编写一个简单计算器程序输入格式为a op b。其中 a和b是
参加运算的两个数op 为运算符,它的取值只能是+、-、*、/。
例:(注意输出格式)
输入3+4
输出3.000000+4.000000=7.000000
--------------------------------------------------------*/
#include<stdio.h>
main()
{
float a,b;
char op;
printf("Please enter a,b and op:");
scanf("%f,%c,%f",&a,&op,&b);
switch(op)
{
/**********Program**********/
case '+':printf("%f+%f=%f\n", a, b, a+b);break;
case '-':printf("%f-%f=%f\n", a, b, a-b);break;
case '*':printf("%f*%f=%f\n", a, b, a*b);break;
/********** End **********/
case '/':if(b!=0)
printf("%f/%f=%f\n",a,b,a/b);
else
printf("error!\n");break;
default:printf("error!\n");break;
}
}
```
### C语言-18
```c
/*-------------------------------------------------------
功能:编写程序,把三个整数中最大的打印出来。
--------------------------------------------------------*/
#include"stdio.h"
main()
{
int a,b,c,m;
scanf("%d,%d,%d", &a,&b,&c);
/**********Program**********/
m = a;
if( b > m ){
m = b;
}
if ( c > m ) {
m = c;
}
/********** End **********/
printf ("m=%d\n",m);
}
```
### C语言-19
```c
/*-------------------------------------------------------
功能使用for循环打印出如下图案菱形
*
***
*****
*******
*****
***
*
--------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,k;
/**********Program**********/
for(i=-3;i<=3;i++){
for(j=0;j<(i<0?-i:i);j++){
printf(" ");
}
for(k=0;k<7-j*2;k++){
printf("*");
}
printf("\n");
}
/********** End **********/
}
```
### C语言-20
```c
/*-------------------------------------------------------
功能找出n个数中最大的数和最小的数并将它们的值输出出来。
--------------------------------------------------------*/
#include<stdio.h>
int main()
{
int a,n,i,min,max;
scanf("%d",&n);
scanf("%d",&a);
min=a;
max=a;
for(i=1;i<n;i++)
{
/**********Program**********/
scanf("%d", &a);
if(a > max){
max = a;
}
if(a < min){
min = a;
}
/********** End **********/
}
printf("The maximum number is %d.\n",max);
printf("The minimum number is %d.\n",min);
}
```

View File

@ -0,0 +1,657 @@
### C语言-1
```c
/*-------------------------------------------------------
任意输入一个日期,计算这一天是这一年中的第几天(考虑闰年和平年)。
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int y,m,d,s,f;
s=0;
printf("请输入一个日期YYYY-MM-DD");
scanf("%d-%d-%d",&y,&m,&d);
if(y%4==0&&y%100!=0||y%400==0)
f=1;
else
f=0;
switch(m-1)
{
/**********Program**********/
case 11: s+=30;
case 10: s+=31;
case 9: s+=30;
case 8: s+=31;
case 7: s+=31;
case 6: s+=30;
case 5: s+=31;
case 4: s+=30;
case 3: s+=31;
case 2: s+=f+28;
case 1: s+=31;
/********** End **********/
}
s=s+d ;
printf("%d-%d-%d是这一年中的第%d天\n",y,m,d,s);
}
```
### C语言-2
```c
/*-------------------------------------------------------
编程求s=a+aa+aaa+aaaa+aa…a的值。其中a为一个数字3+33+333+3333+33333要求a以及所加数字个数n由键盘输入,示例中a=3,n=5。使用for
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,n,s,i,t;
s=t=0;
printf("请输入数字a:");
scanf("%d",&a);
printf("请输入求和的项数n:");
scanf("%d",&n);
/**********Program**********/
t = a;
for(i=0;i<n;i++){
s += t;
t*=10;
t+=a;
}
/********** End **********/
printf("s=%d\n",s);
}
```
### C语言-3
```c
/*-------------------------------------------------------
从键盘输入一个十进制整数将其转换为二进制后反序再转成新的十进制后输出。11→1011→1101→13使用while循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,s,t;
s=0;
printf("请输入一个整数:");
scanf("%d",&n);
/**********Program**********/
//1011 从最末尾开始 依次除出
//加入s之前将前加入的数*1
while(n){
s += s + n%2;
n /= 2;
}
/********** End **********/
printf("%d\n",s);
}
```
### C语言-4
```c
/*-------------------------------------------------------
编程判断m是否素数,m由键盘输入。(使用for
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int m,i,k;
printf("请输入一个正整数 :");
scanf("%d",&m);
k=sqrt(m);
/**********Program**********/
for(i=2;i<=k;i++){
if(m % i == 0){
break;
}
}
/********** End **********/
if(i>k)
printf("%d是素数\n",m);
else
printf("%d不是素数\n",m);
}
```
### C语言-5
```c
/*-------------------------------------------------------
编程判断m是否素数,m由键盘输入。(使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int m,i;
printf("请输入一个正整数 :");
scanf("%d",&m);
/**********Program**********/
for(i=2;i<m;i++){
if(m%i==0){
break;
}
}
/********** End **********/
if(i==m)
printf("%d是素数\n",m);
else
printf("%d不是素数\n",m);
}
```
### C语言-6
```c
/*-------------------------------------------------------
使用for循环输出99乘法表要求格式如图所示: (注:乘积占四个字符)
1x1=1
2x1=2 2x2=4
3x1=3 3x2=6 3x3=9
4x1=4 4x2=8 4x3=12 4x4=16
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j;
/**********Program**********/
for(i=1;i<10;i++){
for(j=1;j<=i;j++){
printf("%dx%d=%-4d", i, j, i*j);
}
printf("\n");
}
/********** End **********/
}
```
### C语言-7
```c
/*-------------------------------------------------------
从键盘输入5个整数输出其最大值、最小值、平均值。(注使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,s,max,min,i;
double avg;
scanf("%d",&n);
s=max=min=n;
for(i=2;i<=5;i++)
{
scanf("%d",&n);
/**********Program**********/
if(n > max){
max = n;
}
if(n < min){
min = n;
}
s+=n;
/********** End **********/
}
avg=s/5.0;
printf("max=%d,min=%d,avg=%f\n",max,min,avg);
}
```
### C语言-8
```c
/*-------------------------------------------------------
编写程序输出从公元2000年至3000年所有闰年的年号每输出10个年号换一行。
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int year,count;
count=0;
for(year=2000;year<=3000;year++)
{
if(year%4==0&&year%100!=0 || year%400==0) {
printf("%-6d",year);
/**********Program**********/
count++;
if(count%10==0){
printf("\n");
}
}
/********** End **********/
}
}
```
### C语言-9
```c
/*-------------------------------------------------------
输入一个年月日要求输出这一天是该年的第几天。例如2000年3月2日是该年的第62天
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i, year,month,day,days;
days=0;
printf("请输入一年日期格式为yyyy-mm-dd");
scanf("%d-%d-%d",&year,&month,&day);
for(i=1;i<month;i++)
{
switch(i)
{
/**********Program**********/
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:days+=31;break;
case 2: days+=28;days += (year%4==0&&year%100!=0||year%400==0)?1:0;break;
default:
days+=30;
/********** End **********/ }
}
days=days+day;
printf("%d-%d-%d是这一年中的第%d天\n",year,month,day,days);
}
```
### C语言-10
```c
/*-------------------------------------------------------
求前100个素数输出时每个数占5个字符宽度10个一行,并输出其平均值。
结果:
2 3 5 7 11 13 17 19 23 29
31 37 41 43 47 53 59 61 67 71
73 79 83 89 97 101 103 107 109 113
127 131 137 139 149 151 157 163 167 173
179 181 191 193 197 199 211 223 227 229
233 239 241 251 257 263 269 271 277 281
283 293 307 311 313 317 331 337 347 349
353 359 367 373 379 383 389 397 401 409
419 421 431 433 439 443 449 457 461 463
467 479 487 491 499 503 509 521 523 541
average=241.330000
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j,k,m,sum;
double avg;
k=0;
sum=0;
for(i=2;k<100;i++)
{
m=sqrt(i);
/**********Program**********/
for(j=2;j<=m;j++){
if(i%j==0){
break;
}
}
if(j>m){
printf("%5d", i);
k++;
sum+=i;
if(k%10==0){
printf("\n");
}
}
/********** End **********/
}
avg=sum/100.0;
printf("\naverage=%f\n",avg);
}
```
### C语言-11
```c
/*-------------------------------------------------------
求100到200间的所有素数输出时每个数占5个字符宽度10个一行。要求在奇数中找素数。
结果:
101 103 107 109 113 127 131 137 139 149
151 157 163 167 173 179 181 191 193 197
199
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j,k,m;
k=0;
for(i=101;i<200;i+=2 )
{
m=sqrt(i);
/**********Program**********/
for(j=2;j<=m;j++){
if(i%j==0){
break;
}
}
if(j > m){
printf("%5d", i);
k++;
if(k%10==0){
printf("\n");
}
}
/********** End **********/
}
}
```
### C语言-12
```c
/*-------------------------------------------------------
使用for循环输出99乘法表要求格式如图所示: (注:乘积占四个字符)
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x1=4 4x2=8 4x3=12 4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x1=6 6x2=12 6x3=18 6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54
7x1=7 7x2=14 7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63
8x1=8 8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j;
/**********Program**********/
for(i=1;i<10;i++){
for(j=1;j<10;j++){
printf("%dx%d=%-4d", i, j, i*j);
}
printf("\n");
}
/********** End **********/
}
```
### C语言-13
```c
/*-------------------------------------------------------
编写程序打印一个n行的菱形n由键盘输入
输入5
输出:
*
***
*****
***
*
-----------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j,k,n;
printf("请输入一个奇数(行数)n:");
scanf("%d",&n);
for(i=-n/2; i<=n/2;i++)
{
/**********Program**********/
for(j=0;j<abs(i);j++){
printf(" ");
}
for(k=0;k<n-j*2;k++){
printf("*");
}
printf("\n");
/********** End **********/
}
}
```
### C语言-14
```c
/*-------------------------------------------------------
编程输出500以内的“水仙花数”。“水仙花数”是一个三位数其各位数字立方和等于该数本身15313+53+33使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b,c,i;
/**********Program**********/
for(i=100;i<500;i++){
a = i%10;
b = i%100/10;
c = i/100;
if(a*a*a + b*b*b + c*c*c == i)
/********** End **********/
printf("%d\n",i);
}
}
```
### C语言-15
```c
/*-------------------------------------------------------
斐波那契数列的前几项是1、1、2、3、5、8、13、21……编程输出该数列直到某项的值大于10000为止每行输出4个。
结果:
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b,c,i;
a=b=1;
printf("%d\t%d\t",a,b);
for(i=3;;i++)
{
c=a+b;
if(c>10000)
break;
printf("%d\t",c);
/**********Program**********/
if(i%4==0){
printf("\n");
}
a = b;
b = c;
}
/********** End **********/
}
```
### C语言-16
```c
/*-------------------------------------------------------
斐波那契数列的前几项是1、1、2、3、5、8、13、21……编程输出该数列的前20项每行输出4个。
结果:
1 1 2 3
5 8 13 21
34 55 89 144
233 377 610 987
1597 2584 4181 6765
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b,c,i;
a=b=1;
printf("%d\t%d\t",a,b);
for(i=3;i<=20;i++)
{
c=a+b;
printf("%d\t",c);
/**********Program**********/
if(i%4==0){
printf("\n");
}
a = b;
b = c;
/********** End **********/
}
}
```
### C语言-17
```c
/*-------------------------------------------------------
使用for循环输出99乘法表要求格式如图所示:(注:格式 %dx%d=%-4d)
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x1=2 2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16
3x1=3 3x2=6 3x3=9 3x4=12 3x5=15 3x6=18 3x7=21
4x1=4 4x2=8 4x3=12 4x4=16 4x5=20 4x6=24
5x1=5 5x2=10 5x3=15 5x4=20 5x5=25
6x1=6 6x2=12 6x3=18 6x4=24
7x1=7 7x2=14 7x3=21
8x1=8 8x2=16
9x1=9
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j;
/**********Program**********/
for(i = 1;i<10;i++){
for(j=1;j<=10-i;j++){
printf("%dx%d=%-4d", i, j, i*j);
}
printf("\n");
}
/********** End **********/
}
```
### C语言-18
```c
/*-------------------------------------------------------
使用for循环输出99乘法表要求格式如图所示:
1x9=9
2x8=16 2x9=18
3x7=21 3x8=24 3x9=27
4x6=24 4x7=28 4x8=32 4x9=36
5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x4=24 6x5=30 6x6=36 6x7=42 6x8=48 6x9=54
7x3=21 7x4=28 7x5=35 7x6=42 7x7=49 7x8=56 7x9=63
8x2=16 8x3=24 8x4=32 8x5=40 8x6=48 8x7=56 8x8=64 8x9=72
9x1=9 9x2=18 9x3=27 9x4=36 9x5=45 9x6=54 9x7=63 9x8=72 9x9=81
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<10-i;j++)
{
printf("\t");
}
/**********Program**********/
for(j=10-i;j<10;j++){
printf("%dx%d=%-4d", i, j, i*j);
}
printf("\n");
}
/********** End **********/
}
```
### C语言-19
```c
/*-------------------------------------------------------
使用for循环输出99乘法表要求格式如图所示:
1x1=1 1x2=2 1x3=3 1x4=4 1x5=5 1x6=6 1x7=7 1x8=8 1x9=9
2x2=4 2x3=6 2x4=8 2x5=10 2x6=12 2x7=14 2x8=16 2x9=18
3x3=9 3x4=12 3x5=15 3x6=18 3x7=21 3x8=24 3x9=27
4x4=16 4x5=20 4x6=24 4x7=28 4x8=32 4x9=36
5x5=25 5x6=30 5x7=35 5x8=40 5x9=45
6x6=36 6x7=42 6x8=48 6x9=54
7x7=49 7x8=56 7x9=63
8x8=64 8x9=72
9x9=81
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j;
for(i=1;i<=9;i++)
{
for(j=1;j<i;j++)
{
printf("\t");
}
/**********Program**********/
for(j=i;j<10;j++){
printf("%dx%d=%-4d", i, j, i*j);
}
printf("\n");
}
/********** End **********/
}
```
### C语言-20
```c
/*-------------------------------------------------------
请编写输出以下图案的程序。(注意需要使用math库abs)
1
123
12345
1234567
12345
123
1
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j;
for(i=-3;i<=3;i++)
{
/**********Program**********/
for(j=0;j<7-abs(i)*2;j++){
printf("%d", j+1);
}
printf("\n");
/********** End **********/
}
}
```

View File

@ -0,0 +1,579 @@
### C语言-1
```c
/*-------------------------------------------------------
输入三角形三边长,判断能否构成三角形,如能构成则输出其面积,不能则给出错误提示。
(海伦公式):
一个三角形边长分别为a、b、c面积S可由一下公式求得
S=√p(p-a)(p-b)(p-c)
公式里p为半周长周长的一半P=(a+b+c)/2
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
/**********Program**********/
double S(int a, int b, int c){
return (a+b+c)/2;
}
double AREA(double t, int a, int b, int c){
return sqrt(t*(t-a)*(t-b)*(t-c));
}
/********** End **********/
main()
{
int a,b,c;
double t,area;
printf("请输入三个正整数,表示三角形的三个边长:");
scanf("%d%d%d",&a,&b,&c);
if(a+b>c&&a+c>b&&b+c>a)
{
t=S(a,b,c);
area=AREA(t,a,b,c);
printf("三角形的面积是:%f\n",area);
}
else
printf("不能构成三角形\n");
}
```
### C语言-2
```c
/*-------------------------------------------------------
将一张100元钞票换成等值的10元5元2元和1元的小钞每次换成40张小钞要求每一种小钞都要有编程求出所有可能的换法总数输出并输出各换法的组合。(注使用for循环
结果:
10元钞票有1张5元钞票有5张2元钞票有31张1元钞票有3张
10元钞票有1张5元钞票有6张2元钞票有27张1元钞票有6张
10元钞票有1张5元钞票有7张2元钞票有23张1元钞票有9张
总共有34种换法
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b,c,d,s;
s=0;
/**********Program**********/
for(a=1;a<10;a++){
for(b=1;b<20;b++){
for(c=1;c<50;c++){
for(d=1;d<100;d++){
if(a*10+b*5+c*2+d == 100 && a+b+c+d==40){
s++;
/********** End **********/
printf("10元钞票有%d张5元钞票有%d张2元钞票有%d张1元钞票有%d张\n",a,b,c,d);
}
}
}
}
}
printf("\n总共有%d种换法\n",s);
}
```
### C语言-3
```c
/*-------------------------------------------------------
编程将一个正整数分解成质因数使用while循环
例如:
输入 90
输出 90=2*3*3*5
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,i;
printf("请输入一个正整数:");
scanf("%d",&n);
printf("%d=",n);
i=2;
/**********Program**********/
while(n > i){
if(n%i==0){
printf("%d*", i);
n/=i;
}else{
i++;
}
}
/********** End **********/
printf("%d\n",n);
}
```
### C语言-4
```c
/*-------------------------------------------------------
韩信点兵韩信带1500名士兵打仗战死四五百人站3人一排多出2人站5人一排多出4人站7人一排多出6人。编程计算还有多少士兵 (注使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
/**********Program**********/
for(i=1000;i<1100;i++){
if(i%3==2 && i%5==4 && i%7==6)
/********** End **********/
printf("还有%d名士兵\n",i);
}
}
```
### C语言-5
```c
/*-------------------------------------------------------
百马百担有一百匹马驮一百担货大马驮3担中马驮2担两只小马驮1担每匹马都要驮货编程计算大马dm)、中马(zm)、小马(xm)各有多少匹。 使用for循环
结果:
大马有2匹中马有30匹,小马有68匹
大马有5匹中马有25匹,小马有70匹
大马有8匹中马有20匹,小马有72匹
大马有11匹中马有15匹,小马有74匹
大马有14匹中马有10匹,小马有76匹
大马有17匹中马有5匹,小马有78匹
-------------------------------------------------------*/
#include <stdio.h>
void main() {
int dm,zm,xm;
/**********Program**********/
for(dm=1;dm<66;dm++){
for(zm=1;zm<100;zm++){
for(xm=2;xm<200;xm+=2){
if(dm*3+zm*2+xm/2 == 100 && dm+zm+xm==100)
/********** End **********/
printf("大马有%d匹中马有%d匹,小马有%d匹\n",dm,zm,xm);
}
}
}
}
```
### C语言-6
```c
/*-------------------------------------------------------
鸡兔同笼《孙子算经》中记载“今有雉兔同笼上有三十五头下有九十四足问雉兔各几何编程计算鸡和兔子各有多少只。使用for循环
结果:
鸡有23只,兔有12只
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int j,t;
/**********Program**********/
for(j=1;j<35;j++){
for(t=1;t<35;t++){
if(j*2+t*4==94 && j+t == 35)
/********** End **********/
printf("鸡有%d只,兔有%d只\n",j,t);
}
}
}
```
### C语言-7
```c
/*-------------------------------------------------------
编程输出1000以内的完数所谓完数是指一个数的所有因子包含1但不包含其本身之和等于这个数本身。28=1+2+4+7+14
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,j,s;
for(i=2;i<=1000;i++)
{
s=0;
/**********Program**********/
for(j=1;j<i;j++){
if(i%j==0){
s+=j;
}
}
/********** End **********/
if(s==i)
printf("%d\n",i);
}
}
```
### C语言-8
```c
/*-------------------------------------------------------
编程求所有能被3且能被5且能被7整除的三位数并输出每个数字占5字符宽度5个一行
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,k;
k=0;
for(i=100;i<=999;i++)
{
/**********Program**********/
if(i%3 ==0 && i%5==0 && i%7==0){
/********** End **********/
printf("%5d",i);
k++;
if(k%5==0)
printf("\n");
}
}
}
```
### C语言-9
```c
/*-------------------------------------------------------
输入一个整数,判断是否为回文数(所谓回文数就是左右对称的数)
使用while循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,t,s;
s=0;
scanf("%d",&n);
t=n;
/**********Program**********/
while(n){
s*=10;
s+=n%10;
n/=10;
}
/********** End **********/
if( t==s )
printf("yes\n");
else
printf("no\n");
}
```
### C语言-10
```c
/*-------------------------------------------------------
百钱买百鸡,《算经》一书中记载
“鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一,百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?”
要求每一种鸡都要有编程输出公鸡gj、母鸡mj、小鸡xj各有多少只。
结果:(注使用for循环
公鸡有4只母鸡有18只小鸡有78只
公鸡有8只母鸡有11只小鸡有81只
公鸡有12只母鸡有4只小鸡有84只
-------------------------------------------------------*/
#include <stdio.h>
void main()
{
int gj,mj,xj;
/**********Program**********/
for(gj=1;gj<20;gj++){
for(mj=1;mj<34;mj++){
for(xj=3;xj<300;xj+=3){
if(gj+mj+xj==100 && gj*5+mj*3+xj/3 == 100)
/********** End **********/
printf("公鸡有%d只母鸡有%d只小鸡有%d只\n",gj,mj,xj);
}
}
}
}
```
### C语言-11
```c
/*-------------------------------------------------------
《孙子算经》中有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?” (注使用while循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
i=1;
/**********Program**********/
while(1){
if(i%3==2&&i%5==3&&i%7==2)
/********** End **********/
{
printf("%d\n",i);
break;
}
i++;
}
}
```
### C语言-12
```c
/*-------------------------------------------------------
61.【程序功能】猴子吃桃,猴子第一天摘下若干个桃子, 吃了总数的一半,还不过瘾,又多吃了一个。第二天又将剩下的桃子吃掉一半,又多吃了一个。以后每天都这样吃。到第十天时, 发现只有一个桃子了。编程求第一天摘了多少个桃子。(注使用for循环
-------------------------------------------------------*/
#include <stdio.h>
void main() {
int i,t;
t=1;
/**********Program**********/
for(i=0;i<9;i++){
t=(t+1)*2;
}
/********** End **********/
printf("第一天共摘了%d只桃\n",t);
}
```
### C语言-13
```c
/*-------------------------------------------------------
编写函数sum)计算1+2+3+…+n的和n由键盘输入。
-------------------------------------------------------*/
#include <stdio.h>
int sum(int n);
main()
{
int n,s;
printf("请输入一个整数n:");
scanf("%d",&n);
s=sum(n);
printf("1+2+...+%d=%d\n",n,s);
}
/**********Program**********/
int sum(int n){
int s = 0, i;
for(i=1;i<=n;i++){
s += i;
}
return s;
}
/********** End **********/
```
### C语言-14
```c
/*-------------------------------------------------------
编程用“碾转相除法”求两个整数的最大公约数,两个整数由键盘输入。(注使用while循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int m,n,t;
printf("请输入两个整数:");
scanf("%d%d",&m,&n);
t=m%n;
/**********Program**********/
while(t){
m = n;
n = t;
t = m%n;
}
/********** End **********/
printf("最大公约数是:%d\n",n);
}
```
### C语言-15
```c
/*-------------------------------------------------------
一个正整数加上100后是完全平方数加上268后还是一个完全平方数编程求出这样的数并输出在10000以内求
结果:
21
261
1581
-------------------------------------------------------*/
#include <stdio.h>
#include <math.h>
main()
{
int i,j,k;
for(i=1;i<=10000;i++)
{
/**********Program**********/
if(pow((int)sqrt(i+100), 2) == i+100 && pow((int)sqrt(i+268), 2) == i+268){
/********** End **********/
printf("%d\n",i);
}
}
}
```
### C语言-16
```c
/*-------------------------------------------------------
输入一个整数输出该数所有因子1和它本身除外之和。例如6的因子有2和3则输出5
(注使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int n,i,s;
printf("请输入一个整数n");
scanf("%d",&n);
s=0;
/**********Program**********/
for(i=2;i<n;i++){
if(n%i==0){
s+=i;
}
}
/********** End **********/
printf("s=%d\n",s);
}
```
### C语言-17
```c
/*-------------------------------------------------------
编程求100以内的所有奇数之和以及偶数之和。使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,odd,even;
odd=even=0;
/**********Program**********/
for(i=1;i<=100;i++){
if(i%2){
odd+=i;
}else{
even+=i;
}
}
/********** End **********/
printf("奇数之和为:%d,偶数之和为:%d\n",odd,even);
}
```
### C语言-18
```c
/*-------------------------------------------------------
输出100-1000以内所有的回文数一行10个。(注每个数占5个字符
101 111 121 131 141 151 161 171 181 191
202 212 222 232 242 252 262 272 282 292
303 313 323 333 343 353 363 373 383 393
404 414 424 434 444 454 464 474 484 494
505 515 525 535 545 555 565 575 585 595
606 616 626 636 646 656 666 676 686 696
707 717 727 737 747 757 767 777 787 797
808 818 828 838 848 858 868 878 888 898
909 919 929 939 949 959 969 979 989 999
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i,s,t,k;
k=0;
/**********Program**********/
for(i=100;i<1000;i++){
s = 0;
t = i;
while(t){
s*=10;
s+=t%10;
t/=10;
}
if(s == i){
printf("%5d", i);
k++;
if(k%10==0){
printf("\n");
}
}
}
/********** End **********/
}
```
### C语言-19
```c
/*-------------------------------------------------------
编程求用1234四个数字可以组成多少个无重复数字的四位数并输出这些四位数。使用for循环
结果:
1234
1243
1324
可以组成24个无重复数字的四位数
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int a,b,c,d,count;
count=0;
/**********Program**********/
for(a=1;a<5;a++)
for(b=1;b<5;b++)
for(c=1;c<5;c++)
for(d=1;d<5;d++)
if(a!=b && a!=c && a!=d && b!=c && b!=d && c!=d){
printf("%d%d%d%d\n", a, b, c, d);
count++;
}
/********** End **********/
printf("可以组成%d个无重复数字的四位数\n",count);
}
```
### C语言-20
```c
/*-------------------------------------------------------
一小球从100米落下每次弹跳原来一半高求第10次落地时经过的距离及第10次弹跳的高度。
使用for循环
-------------------------------------------------------*/
#include <stdio.h>
main()
{
int i;
double h,s;
s=100;
h=50;
/**********Program**********/
for(i=0;i<9;i++){
s+=h*2;
h/=2;
}
/********** End **********/
printf("第10次落地时经过的距离为%f米第10次弹跳的高度为%f米\n",s,h);
}
```