C语言控制结构 练习题

选择结构练习

1. if单分支语句练习

从终端中输入学生分数,判断学生分数等级,(要求只用if单分支语句)

2. if双分支语句练习

判断年份是闰年还是平年,

闰年是能被4整除不能被100整除或者能被400整除的年份

3.多分支结构练习

1)输入月份, 判断该月是属于哪个季节

//2 3 4 春季

//5 6 7 夏季

//8 9 10 秋季

//11 12 1冬季

2)用多分支结构判断学生成绩情况

4. if语句的嵌套练习

男生女生对不同口味的巧克力选择, 判断其恋爱性格

(1)酒心巧克力 (2)扇贝巧克力 (3)果仁巧克力

男生: 1) 您是一个恋爱高手, 很会讨女孩子喜欢

2)您是一个胆小的人, 总是担心自己不够好

3)您对女孩子一心一意, 但是她总是感觉不到

4)您输入了一个错误选项


女生: 1)在恋爱中, 您往往处于劣势

2)您是一个浪漫的人, 恋爱中能够很好的调节气氛

3)您是一个女强人, 恋爱中总是忽略对方的感受

4)您输入了一个错误选项


5. 复杂分支嵌套

如果一个大学生的月消费在1-500元之间为低消费, 501-1000元之间为中等消费,1000元以上为高消费, 0元表示零消费, 0元以下为负消费用程序实现

6. switch练习

1)输入月份判断季节

2)模拟四则运算



1表达式(立方)编写程序,计算该数的立方

2表达式(取值操作)输入4个数,若第一个数第二个数相等,第三个数和第四个数的和与第一个数和第二个数的和相等,输出1,否则输出0

3流程控制(数值比较1定义两个整型变量x,y,从键盘初始化变量值,判断两个变量的大小,将较大的值赋给变量max,max输出,注意输入使用scanf输入


4流程控制(数值比较2定义三个整型变量x,y,z,从键盘初始化变量值,判断三个变量的大小,将较大的值赋给变量max,将max输出,注意输入使用scanf输入


5流程控制(月份天数判断)输入一个月数,然后输出对应月份有多少天(不考虑闰年),将天数输出,注意输入使用scanf输入

\

比如:

\

\输入 6 输出为30

\

\输入 2 输出为28

\

6流程控制(闰年问题)输入一个年份,判断该年份是平年还是闰年:

7流程控制(绝对值)输入两个整数,打印两数之差的绝对值。

8流程控制(水仙花数)输入一个3位数,判断该数是否是水仙花数(即该数的值等于该数各位数字的立方和)


9表达式(整数判断)输入一个数字, 判断这个数是否是正数(是,输出YES,不是输出NO)

10表达式(判断3的倍数)输入一个数字, 判断这个数是否是3的倍数,如果是,输出YES,如果不是输出NO

11表达式(判断是否是偶数)输入一个数, 判断是否是偶数,如果是偶数,输出YES,如果是奇数.输出NO

12表达式(判断成绩是否及格)输入一个成绩, 判断是否及格, 及格输出YES,不及格输出NO(及格分在60分以上,需要加入输入检测)

\


13表达式(判断年龄是否正确)输入年龄, 然后检测输入的年龄是否在有效的范围, 如果是则输出YES,如果不在这个范围输出NO (0-150)之内?

14表达式(判断空气是否被污染)北京的空气污染程度可以使用空气污染指数来表示,一般0100之内说明空气质量优良,而大于100说明空气有污染,输入一个数, 表示空气污染指数,然后检测是否污染, 如果被污染,输出YES,如果没有污染,输出NO

\


15表达试(检测是否是80)输入一个人的年份, 检测这个是否是80,如果是输出YES,如果不是输出NO(1980-1989)

\


16表达式(判断是否缴纳个人所得税)个人所得税的缴纳最低标准为3500,输入一个人每月的薪资, 检测这个人是否需要缴纳个人所得税,如果是,输出YES,如果不是输出NO

17表达式(判断平年或闰年)输入一个年份, 判断是是否为闰年,如果是闰年输出YES,如果不是,输出NO

\


\

: 闰年就是第二个月有29天的那一年,能被4整除但是不能被100整除的是闰年,或者能被400整除的也是闰年

18表达式(判断点是否则某个区域之内)有一个矩形的坐标是(0,10), (10,10), (10,0), (0,0),请问如何判断一个点(x,y)是否处于这个四边形之内,如果是输出YES, 如果不是输出NO

19选择和判断(计算绝对值)输入一个数, 输出该数的绝对值, 即输出一个正数,直接输出该数,如果输入负数, 输出负数的相反数

20选择和判断(输出两数之差的绝对值)输入两个数, 输出两数之差的绝对值

21选择和判断(判断两数的关系)输入两个数, 判断第一个数是否大于第二个数, 如果是,输出YES,如果不是,输出NO

22选择和判断(找到两个数中的最大值)输入两个数, 输出最大的数

23选择和判断(判断水仙花数)判断一个三位数是否是水仙花数,如果是,输出YES,如果不是,输出NO\

\

说明: 水仙花就是一个数的每个数字的立方和等于它本身的数,例如 153就是一个水仙花数 1*1*1+5*5*5+3*3*3=153

24选择和判断(分数转化器)西方国家常使用ABCDE五级制表示一个人的成绩,输入ABCDE中的一个值,输出对应的分数范围\\ (考察switch)


说明:

\

如果输入A, 输出90-100

\

如果输入B, 输出80-89

\

如果输入C, 输出70-79

\

如果输入D, 输出60-69

\

如果输入E, 输出0-59

\

如果输入其他的字符,输出ERROR

25选择和判断(ABCDE转为对应的分数)输入一个成绩, 输出该成绩对应的ABCDE中的级别\(使用else-if结构)


说明:

\

输入90-100中的数,输出A

\

输入80-89中的数,输出B

\

输入70-79中的数,输出C

\

输入60-69中的数,输出D

\

输入0-59中的数,输出E

\

输入其他数,输出ERROR

26选择和判断(计算数学表达式的值)数学表达式求值

\

\\ x<0\\ y=x*x, 输出y的值

\

\\ 0=\y=2x+1, 输出y的值

\

\\ x>=5\\ y=3x-12, 输出y的值

27选择和判断(判断是否是5位数)输入一个数, 判断这个数是否是5位数,如果这个数大于9999且小于100000,那么肯定是个5位数,如果是输出YES,如果不是,输出NO

28选择和判断(判断一个数的某一位)输入一个数, 判断从低位开始的第三位是否是3, 例如123的第三位就是1,不是3,如果是输出YES,如果不是输出NO

29选择和判断(计算下一秒的时间)输入一个时间, 输出时间的下一秒

\


\

例如输入的是10 20 59, 表示是102059,下一秒就是10210

30选择和判断(按顺序输出三个数)输入三个数, 按从小到大的顺序输出

31选择和判断(大小写转换)输入一个字符, 如果字符是大写字母, 转化为小写字母输出,如果是小写字母, 转化为大写字母输出,否则直接输出该字符

32选择和判断(判断第几天)输入一个日期年月日, 计算这一天是一年中的第几天(考虑闰年)

33IP地址判断时候合法问题输入一个IP地址,判断时候ip地址合法

ip地址由40-255组成中间使用 . 隔开

合法的ip地址是:

21.45.34.112

是合法的


第一位不能为全0

0.45.34.112

是不合法的

每一位不能超过255


34 编写程序输入月份和日期,给出对应的星座。下面是星座计算表:(****

321日~420 白羊

421日~520 金牛

521日~620 双子

621日~722 巨蟹

723日~822 狮子

823日~922 处女

923日~1022 天秤

1023日~1122天蝎

1123日~1222人马

1223日~120摩羯

121日~220 宝瓶

221日~320 双鱼

/*

35.

输入一个日期(2013 1 1输出这一天是这一年的第几天;(输出:这是2013年的第1)

提示:

***************

闰年:可以整除4并且不能整除100;或者可以整除400;闰年2月有29天;平年28天;

1 3 5 7 8 10 12 31

4 6 9 11 30

*/


循环练习


1.循环(输出n个整数)输入一个整数n, 输出从1nn个数

2. 循环(计算阶乘)输入一个数为n, 计算这个数的阶乘, 例如一个数为5,5的阶乘为 1*2*3*4*5=120

3.循环(计算某个数的位数)输入一个正整数, 计算这个正整数的位数

4. 循环(逆序输出某个数)整数逆序输出, 例如输入一个整数12345,输出5 4 3 2 1

5. 循环(统计字符个数)输入多个字符, 以回车符结束, 统计输入的字母个数

6.循环(计算10个数的平均值)输入10个数,计算这十个数的平均值

###7.循环(判断素数/质数)输入一个数, 判断这个数是否为素数,如果是素数输出YES,如果不是输出NO

素数/质数就是除了1和它本身之外不能被其他数整除的数,2开始的素数有 2,3,5,7,11,13等等


8.循环(二进制输出整数)从键盘输入一个数, 使用二进制形式输出该数, 例如输入4,输出二进制形式为100,输入10,输出的二进制形式为1010


###//9流程控制(数值序列2输出数字序列2/13/25/38/513/821/13...,输出个数由键盘输入。注意输入使用scanf输入

\

比如:


输入 3输出为


2/1

3/2

5/3


输入 4 输出为

2/1

3/2

5/3

8/5

\

\


###10.流程控制(数值序列3输出数字序列 123581321...,输出个数由键盘输入。注意输入使用scanf输入

\

比如:

\

输入 3输出为


1

2

3


输入 4 输出为

1

2

3

5


###//求最大公约数


###11.(输出两分数和)输入两个分数,输出两分数之和(要求约分)


输入 3/5 7/8


输出:

59/40


输入:2/8 5/12


输出:


2/3


###12. 流程控制(for求阶乘的和 )输入n(int类型),打印1+2+3+4+5+。。。+n!的值

比如:


输入:2

输出:

3


输入:3


输出:

9


13. 打印九九乘法表

###14. 将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

15. 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数

************************************************


16.循环(输出矩阵)输入一个整数n, 输出nn列每个字符为*的矩阵

17.循环(输出图案)打印以下图案, 该图案的行数由输入的数n来控制

A

AA

AAA

18.流程控制(数值序列1输出数字序列,a,aa,aaa,aaaa.....输出个数与显示数字由键盘输入。每个数以整数形式输出。注意输入使用scanf输入

\

比如:

输入 5 2输出为

2

22

222

2222

22222

\ 输入 4 3输出为

3

33

333

3333

19.流程控制(for循环)输入一个大写字母,如F

输入:F


输出:


A

ABA

ABCBA

ABCDCBA

ABCDEDCBA

ABCDEFEDCBA


###20.流程控制(for循环)输入一个大写字母,如 F,输出

输入:F

输出:

F

EFE

DEFED

CDEFEDC

BCDEFEDCB

ABCDEFEDCBA

###21.流程控制(for循环)输入一个大写字符,如F


比如:

输入:F

输出:

FEDCBA

EDCBAB

DCBABC

CBABCD

BABCDE

ABCDEF


22.使用嵌套循环产生下列图案:

*

**

***

****

*****


*

***

*****

*******


F

FE

FED

FEDC

FDECB

FDECBA

###输入一个大写字符,如F

比如:

输入:F

输出:

FEDCBA

EDCBAB

DCBABC

CBABCD

BABCDE

ABCDEF


输入 B

输出:

BA

AB

###输入一个大写字母,如F

比如:

输入:F

输出:

A

ABA

ABCBA

ABCDCBA

ABCDEDCBA

ABCDEFEDCBA


输入:C

输出:

A

ABA

ABCBA

编程题:

第一题:输入若干个字符,它的终止符是’#’,计算输入的字符中字母’a’出现的次数(包括大小写)。

  1. 在屏幕上输出 10 行内容,每行的内容都是“*”。
  2. 在屏幕上输出 10 行内容,每行的内容都是“*****”。
  3. 在屏幕上输出 10 行内容,每行的内容都不一样,第1 行一个星号,第 2 2 个星号,
    依此类推第 10 10 个星号。
  4. 在屏幕上输出 10 行内容,每行的内容都是“1”。
  5. 在屏幕上输出 10 行内容,每行的内容都不一样,第1 行输出“1”,第

2 行输出“2”,依此类推第10 行输出“10”。

6. 在屏幕上输出以下内容:

A
AB

ABC

ABCD

ABCDE

ABCDEF

7. 在屏幕上输出以下内容:

12345

1234

123

12

1

  1. 计算 10 99 相加后的值并输出。
  2. 计算从 1 加到 100 的值并输出。
  3. 计算 10 的阶乘(1x2x3x4x5x6x7x8x9x10)。
  4. 计算220次方。
  5. 计算从 1 1000 以内所有奇数的合并输出。
  6. 计算从 1 1000 以内所有能被 3 或者 17 整除的数的合并输出。
  7. 计算从 1 1000 以内所有能同时被 3,57 整除的数的合并输出。
  8. 计算 1 100 以内能被 7 或者3 整除但不能同时被这两者整除的数的个数。
  9. 计算 1 100 以内能被 7 整除但不是偶数的数的个数。
  10. 计算从 1 100 之间临近两个整数的合并依次输出。比如第一次输出 3(1+2),第二
    次输出 5(2+3),最后依次输出199(100+99)
  11. 计算从 1 加到 100 中途的所有数值的合,比如第一次输出 1,第二次输出 1+2 的合,
    3 次输出 1+2+3 的合,最后一次输出 1 100 所有数相加之后的合。
  1. //19.一球从 100 米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第
    10
    次落地时,共经过多少米?
  2. 20.将某个 8 位的整数所有位的数值加在一起并输出。
  3. 21.给定一个 5 位的整数,将该数按照10 进制位逆置,例如给定 12345 变成 54321,12320
    变成 2321
  4. 22.输入一个数a,s=a+aa+aaa+aaaa+aa...a 的值,其中 a 是一个数字(1-9之间)计算的数据的个数
    5。例如2+22+222+
    2222+22222
  5. //实例代码

    #include

    //goto

    //无条件跳转语句

    //通常跟if语句配合使用

    //goto跳转,只能在当前函数内跳转


    //int main(int argc, const char * argv[])

    //{

    // int n;

    // scanf("%d",&n);

    //number:

    // printf("hello world\n");

    //

    // if (n<10) {

    // n++;

    // goto number;

    // }

    //

    // return 0;

    //}


    //1~100的和

    //int main(int argc, const char *argv[])

    //{

    // int i=1,sum=0;

    //number:

    // sum+=i;

    // i++;

    // if (i<=100) {

    //

    // goto number;

    // }

    //

    // printf("sum = %d\n", sum);

    // return 0;

    //}



    //void print(void)//错误写法

    //{

    //

    //number:

    // printf("hello world\n");

    //}

    //

    //

    //int main(int argc, const char *argv[])

    //{

    // int i;

    // scanf("%d",&i);

    // if (i<10) {

    //

    // goto number;

    // }

    // return 0;

    //}


    //while(条件表达式)

    //{

    //循环体语句列表;

    //}

    //判断表达式是否成立,表达式为真,则执行循环语句体,直到表达式为假,退出循环


    //int main(int argc, const char *argv[])

    //{

    // int i;

    // scanf("%d",&i);

    // while (i<10) {

    // printf("hello world\n");

    // i++;

    // }

    // return 0;

    //}


    //int main(int argc, const char *argv[])

    //{

    // int i=1,sum=0;

    //

    // while (i<=100)

    // {

    // sum+=i;

    // i++;

    // }

    // printf("i==%d\n",i);

    // printf("sum=%d\n",sum);

    //

    // return 0;

    //}


    //统计输入字符个数

    //ahangxueming\n


    //int main(int argc, const char *argv[])

    //{

    // char ch;

    // int count=0;

    // while (scanf("%c",&ch),ch!='\n') {

    // count++;

    // }

    // printf("count = %d", count);

    // printf("%c",ch);

    // return 0;

    //}


    //int main(int argc, const char *argv[])

    //{

    // int count=0;

    // while (getchar()!='\n') {

    // count++;

    // }

    // printf("count = %d\n",count);

    //

    // return 0;

    //}



    //23输出Y a输出N

    //int main(int argc,const char *argv[])

    //{

    // int num;

    // int ret;

    // ret = scanf("%d",&num);

    // if (ret) {

    // printf("Y\n");

    // }

    // else

    // {

    // printf("N\n");

    // }

    // return 0;

    //}



    //do

    //{

    // 循环体语句列表;

    //

    //}while(条件表达式);

    //先执行循环语句体,再判断表达式是否成立,表达式成立,则继续执行循环语句体,直到表达式不成立,退出循环

    //1-100以内的奇数的和(do while)

    //int main(int argc,const char *argv[])

    //{

    // int i=1,sum=0;

    // do{

    // if (i%2)

    // {

    // sum+=i;

    // }

    // i++;

    // }while (i<100);

    //

    // printf("sum = %d\n", sum);

    //

    // return 0;

    //}


    //for (初始化表达式;条件表达式;自增自减表达式) {

    // 循环语句体;

    //}



    //1~100的和

    //int main(int argc,const char *argv[])

    //{

    // int i;

    // int sum=0;

    // for (i=0; i<=100; i++)

    // {

    // sum+=i;

    // }

    // printf("%d\n", sum);

    //

    // return 0;

    //}


    //判断一个数是否为素数

    //素数只能被1和本身整除的数

    //2 3 5 7


    //int main(int argc,const char *argv[])

    //{

    // int n;

    // scanf("%d", &n);

    // if (n<2) {

    // printf("输入错误\n");

    // return -1;

    // }

    // int i;

    // for (i=2; i

    // {

    // if (n%i==0)

    // {

    // break;//break只能跳出一层循环

    // }

    // }

    // if (i==n) {

    // printf("YES\n");

    // }

    // else

    // {

    // printf("NO\n");

    // }

    // return 0;

    //}


    //打印1~100内所有的奇数

    //int main(int argc, const char *argv[])

    //{

    // int i;

    // for (i=1; i<=100; i++) {

    // if (i%2) {

    // printf("%d ", i);

    // }

    // }

    // putchar('\n');//输出一个字符

    //

    // return 0;

    //}


    //输入一个整数,求他的各位数字之和.:178,数字之和为1+7+8 = 16


    //int main(int argc,const char *argv[])

    //{

    // int num;

    // int sum=0;

    // scanf("%d", &num);

    //

    // for (; num!=0; )

    // {

    // sum+=num%10;

    // num/=10;

    // }

    // printf("sum = %d\n", sum);

    // return 0;

    //}



    //for( ; ; ;)


    //int main(int argc,const char *argv[])

    //{

    // int i=0;

    // for (; ; )

    // {

    // if (i<10)

    // {

    // printf("hello world\n");

    // }

    // else

    // {

    // break;

    // }

    // i++;

    // }

    // return 0;

    //}


    //break, continue

    //continue :结束当次循环,继续执行下一次循环

    //break:跳出当前对应的整个循环,但是只能跳出一层循环

    //int main(int argc,const char *argv[])

    //{

    // for (int i=0; i<10; i++)

    // {

    // if (i==5) {

    // continue;

    // //break;

    // }

    // printf("i = %d ",i);

    // printf("hello world\n");

    // }

    // putchar('\n');

    //

    // return 0;

    //}


    //for(;;)

    //{

    // for(;;)

    // {

    // for(;;)

    // {

    //

    // }

    // }

    // for(;;)

    // {

    // for(;;)

    // }

    // while()

    // {

    // for(;;)

    // {

    //

    // }

    // }

    //}


    //*********

    //*********

    //*********

    //*********


    //int main(int argc,const char *argv[])

    //{

    // int i,j;

    // for (i=0; i<4; i++) {

    // for (j=0; j<9; j++) {

    // printf("*");

    // }

    // putchar('\n');

    // }

    // return 0;

    //}

    //10.输出下列4*5的数字矩阵

    //1 2 34 5

    //2 4 68 10

    //3 6 912 15

    //4 8 1216 20


    //int main(int argc,const char *argv[])

    //{

    // int i, j;

    // for (i=1; i<=4; i++) {

    // for (j=1; j<=5; j++) {

    // printf("%4d",i*j);

    // }

    // printf("\n");

    // }

    // return 0;

    //}

    //1*1=1

    //1*2=2 2*2=4

    //1*3=3 2*3=6 3*3=9

    //1*4=4 2*4=8 3*4=12 4*4=16

    //1*5=5 2*5=10 3*5=15 4*5=20 5*5=25

    //1*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=36

    //1*7=7 2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=49

    //1*8=8 2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=64

    //1*9=9 2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72


    //int main(int argc, const char *argv[])

    //{

    // int i, j;

    // for (i=1; i<=9; i++) {

    // for (j=1; j<=i; j++) {

    // printf("%d*%d=%2d ",j,i,j*i);

    // }

    // printf("\n");

    // }

    // return 0;

    //}


    //1~100内所有的素数



    //int main(int argc,const char *argv[])

    //{

    // int i,j;

    // for (i=1; i<=100; i++) {

    // //判断i是否为素数

    // for (j=2; j

    // if (!(i%j)) {

    // break;

    // }

    // }

    // if (j!=i) {

    // continue;

    // }

    // printf("%d ",i);

    // }

    // printf("\n");

    //

    // return 0;

    //}


    //多重循环练习

    //字母金字塔

    //输入:F

    //\

    //输出:

    // F

    // EFE

    // DEFED

    // CDEFEDC

    // BCDEFEDCB

    //ABCDEFEDCBA


    intmain(intargc,constchar*argv[])

    {

    charch;

    scanf("%c",&ch);

    inti,j;

    for(i=0; i'A'+1; i++) {

    for(j=ch-'A'-i; j>0; j--)

    {

    printf(" ");

    }

    for(j=i; j>=0; j--) {

    printf("%c",ch-j);

    }

    for(j=0; j

    printf("%c", ch-1-j);

    }

    printf("\n");

    }


    return0;

    }


    //9流程控制(数值序列2输出数字序列2/13/25/38/513/821/13...,输出个数由键盘输入。注意输入使用scanf输入

    //\

    //比如:

    //

    //输入3输出为

    //

    //2/1

    //3/2

    //5/3

    //

    //输入4输出为

    //2/1

    //3/2

    //5/3

    //8/5

    //int a=1,b=1;

    //a=2,b=1

    //a=3,b=2

    //

    //int main(int argc, const char * argv[])

    //{

    // int n;

    // int a=1,b=1;

    // scanf("%d", &n);

    //

    // for (int i=0; i

    // printf("%d/%d ",a+b,a);

    // int temp;

    // temp = a;

    // a=a+b;

    // b=temp;

    // }

    // putchar('\n');

    // return 0;

    //}


    //a=3 b=5

    //a=5 b=3;


    //temp = a;

    //a=b;

    //b=temp;


    //不借助第三个变量交换两个变量的值

    //int main(int argc, const char *argv[])

    //{

    // int a=3, b=5;

    //

    // a=a+b;//a=8;

    // b=a-b;//b=3;

    // a=a-b;//a=5;

    // printf("a=%d b=%d\n",a, b);

    // return 0;

    //}


    //10.流程控制(数值序列3输出数字序列123581321...,输出个数由键盘输入。注意输入使用scanf输入

    //\

    //比如:

    //\

    //输入3输出为

    //

    //1

    //2

    //3

    //

    //输入4输出为

    //1

    //2

    //3

    //5

    // a=1,b=0 1

    // a=1,b=1 2

    // a=2,b=1 3

    // a=3,b=2 5

    // a=5,b=3 8


    //int main(int argc,const char *argv[])

    //{

    // int a=1,b=0;

    // int n;

    // scanf("%d",&n);

    //

    // for (int i=0; i

    // printf("%d ", a+b);

    // int temp;

    // temp = a;

    // a=a+b;

    // b=temp;

    // }

    // putchar('\n');

    // return 0;

    //}


    //12. 流程控制(for求阶乘的和输入n(int类型),打印1+2+3+4+5+。。。+n!的值

    //比如:

    //

    //输入:2

    //输出:

    //3

    //

    //输入:3

    //

    //输出:

    //9

    //6! = 6*5! = 6*5*4!;


    //temp =1

    //temp =2!=2*temp

    //temp =3!=3*temp

    //temp =4!=4*temp


    //int main(int argc,const char *argv[])

    //{

    // int Sn=0;

    // int n;

    // int temp=1;

    // scanf("%d",&n);

    //

    // for (int i=1; i<=n; i++)

    // {

    // temp=i*temp;

    // Sn+=temp;

    // }

    // printf("Sn = %d\n", Sn);

    //

    // return 0;

    //}


    //19.流程控制(for循环)输入一个大写字母,如F

    //\

    //比如:

    //\

    //输入:F

    //\

    //输出:

    //

    // A

    // ABA

    // ABCBA

    // ABCDCBA

    // ABCDEDCBA

    //ABCDEFEDCBA


    //int main(int argc,const char *argv[])

    //{

    // char ch;

    // scanf("%c", &ch);

    //

    // for (int i=0; i < ch-'A'+1; i++) {

    // for (int j = ch-'A'-i; j>0; j--) {

    // printf(" ");

    // }

    // for (int j=0; j<=i; j++) {

    // printf("%c",'A'+j);

    // }

    // for (int j=i; j>0; j--) {

    // printf("%c",'A'+j-1);

    // }

    // printf("\n");

    // }

    //

    //

    // return 0;

    //}


    //###20.流程控制(for循环)输入一个大写字母,如F,输出

    //\

    //比如:

    //\

    //输入:F

    //\

    //输出:

    // F

    // EFE

    // DEFED

    // CDEFEDC

    // BCDEFEDCB

    //ABCDEFEDCBA


    //int main(int argc,const char *argv[])

    //{

    // char ch;

    // scanf("%c", &ch);

    //

    // for (int i=0; i

    // {

    // for (int j=0; j

    // {

    // printf(" ");

    // }

    // for (int j=i; j>=0; j--) {

    // printf("%c",ch-j);

    // }

    // for (int j=0; j

    // printf("%c",ch-1-j);

    // }

    // printf("\n");

    // }

    // return 0;

    //}

    //21.流程控制(for循环)输入一个大写字符,如F

    //\

    //比如:

    //

    //输入:F

    //

    //输出:

    //

    //FEDCBA

    // EDCBAB

    // DCBABC

    // CBABCD

    // BABCDE

    // ABCDEF


    //int main(int argc, const char *argv[])

    //{

    // char ch;

    // scanf("%c",&ch);

    //

    // for (int i=0; i

    // for (int j=i; j>0; j--) {

    // printf(" ");

    // }

    // for (int j=i; j

    // printf("%c", ch-j);

    // }

    // for (int j=0; j

    // printf("%c",'A'+1+j);

    // }

    // printf("\n");

    // }

    // return 0;

    //}



    //输入一个大写字母,如F

    //比如:

    //输入:F

    //输出:

    //A

    //ABA

    //ABCBA

    //ABCDCBA

    //ABCDEDCBA

    //ABCDEFEDCBA

    //

    //输入:C

    //输出:

    //A

    //ABA

    //ABCBA


    //int main(int argc,const char *argv[])

    //{

    // char ch;

    // scanf("%c",&ch);

    // for (int i=0; i

    // for (int j=0; j<=i; j++) {

    // printf("%c", 'A'+j);

    // }

    // for (int j=i; j>0; j--) {

    // printf("%c",'A'+j-1);

    // }

    // printf("\n");

    // }

    // return 0;

    //}


    //输入年月日,判断是一年中的第多少天1.31 2.9


    //int main(int argc,const char *argv[])

    //{

    // int year, month, day;

    // int totalday=0;

    // scanf("%d%d%d",&year, &month,&day);

    // for (int i=1; i

    // int temp;

    // switch (i) {

    // case 1:

    // case 3:

    // case 5:

    // case 7:

    // case 8:

    // case 10:

    // case 12:

    // temp=31;

    // break;

    // case 4:

    // case 6:

    // case 9:

    // case 11:

    // temp=30;

    // break;

    // case 2:

    // if ((year%4==0&&year%100!=0)|| (year%400==0)) {

    // temp=29;

    // }

    // else

    // temp=28;

    // break;

    // default:

    // break;

    // }

    // totalday+=temp;

    // }

    // totalday+=day;

    // printf("%d\n", totalday);

    // return 0;

    //}


    //用辗转相除法求最大公约数

    //

    // 15 5

    //

    //a b

    //319 377 --- 319

    //a b

    //377 319 --- 58

    //a b

    //319 58 --- 29

    //a b

    //58 29 --- 0

    //a b

    //29 0


    // 300 480 300

    // 480 300 180

    // 300 180 120

    // 180 120 60

    // 120 60 0

    // 60 0



    //int main(int argc, const char *argv[])

    //{

    // int a, b;

    // scanf("%d%d",&a,&b);

    // while (b!=0) {

    // int temp;

    // temp = a%b;

    // a=b;

    // b=temp;

    // }

    // printf("最大公约数%d\n",a);

    //

    // return 0;

    //}


    //19.一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第

    //10次落地时,共经过多少米?


    //int main(int argc, const char *argv[])

    //{

    // float Sn=100;

    // float s=100;

    // for (int i=1; i<4; i++) {

    // Sn+=s;

    // s/=2;

    // }

    // printf("%.2f\n",Sn);

    // return 0;

    //}


    //倒序输出两个大写字母之间的字母序列。注意输入使用scanf输入

    //比如:

    //输入U Y

    //输出为

    //Y

    //X

    //W

    //V

    //U

    //输入V X输出为

    //X

    //W

    //V

    //#include

    //#include

    //

    //int main(int argc,const char *argv[])

    //{

    // char ch1,ch2;

    // scanf("%c %c",&ch1,&ch2);

    // for (int i=0; i< abs(ch1-ch2)+1; i++) {

    // if (ch1>ch2) {

    // printf("%c ",ch1-i);

    // }

    // else

    // {

    // printf("%c ",ch2-i);

    // }

    // }

    // printf("\n");

    //

    // return 0;

    //}


    //将一个正整数分解质因数。例如:输入90,打印出90=2*3*3*5

    //10 = 2*5

    //

    // 10 2 --- 0

    // 5 2 ----

    // 5 3 ----

    // 5 4 ---

    // 5 5 == 0


    //90 2 ---- 0

    //45 2 ----

    //45 3 ---- 0

    //15 3 --- 0

    //5 3 ---

    //5 4 ---

    //5 5 --- 0

    //1

    //int main(int argc, const char *argv[])

    //{

    // int n;

    // scanf("%d",&n);

    //

    // printf("%d=",n);

    // for (int i=2; n!=1; i++)

    // {

    // //加一个判断是否质数的条件

    // if (n%i==0)

    // {

    // n==i?printf("%d",i):printf("%d*",i);

    // n/=i;

    // i--;

    // }

    // }

    // printf("\n");

    // return 0;

    //}



    //21.给定一个5位的整数,将该数按照10进制位逆置,例如给定12345变成//54321,12320

    //变成2321


    //int main(int argc,const char *argv[])

    //{

    // int num;

    // scanf("%d",&num);

    // if (num<10000 || num >99999)

    // {

    // return -1;

    // }

    // while (num%10==0)

    // {

    // num/=10;

    // }

    // while (num)

    // {

    // int temp = num%10;

    // printf("%d",temp);

    // num/=10;

    // }

    // printf("\n");

    // return 0;

    //}

    //输入一个自然数n,统计n!末尾有多少个0?

    //5! 1 120 5*4*3*2*1

    //10! 2 2*5*9*8*7*6*5*4*3*2*1

    //15! 5 10 15 3

    //25! 5 10 15 20 25 6


    /*int main(int argc,const char *argv[])

    {

    int n;

    int count=0;

    scanf("%d", &n );

    for (int i=n/5; i>0; )

    {

    // int temp=i;

    // while (!(temp%5))

    // {

    // count++;

    // temp/=5;

    // }

    count+=i;

    i/=5;

    }

    printf("%d\n", count);

    return 0;

    }

    */


    //编写程序,找到1000以内的所有完数”,所谓完数是指一个数是其所有因子之和: 6 = 1+2+3; 6 28 496


    //int main(int argc, const char *argv[])

    //{

    // for (int i=1; i<=1000; i++) {

    // int sum=0;

    // for (int j=1; j

    // if (i%j==0) {

    // sum+=j;

    // }

    // }

    // if (sum==i) {

    // printf("%d ",i);

    // }

    // }

    // printf("\n");

    // return 0;

    //}





你可能感兴趣的:(C语言控制结构 练习题)