while循环语句 do-while循环语句 for语句嵌套循环语句辅助控制语句

4.1任务1:打印数字(时间:25分钟)
4.1.1 任务描述
编程求一个四位自然数ABCD,它乘以A后变成DCBA。
4.1.2 任务目的
逐渐建立使用循环进行编程的思路:寻找规律;写出循环体中需要重复操作的部分,其中包括改变修改变量值的语句;确定循环判断条件;完善循环结构,定义循环变量;完善整体程序,添加输入输出操作。
掌握while,do-while,for循环的语句结构和执行流程。
复习面向过程编程的编程思路。
4.1.3 任务要求
分别使用while,do-while,for循环完成此任务,
添加适当的注释信息。
给出人性化的输入输出提示信息。
4.1.4 难点提示
注意循环体中语句的顺序,先进行相关条件判断再进行其它操作。
注意循环语句中的循环判断条件应为逻辑或关系表达式。
注意在循环体中应有使循环结束的设置,即有改变循环变量的值的操作。
4.2任务2:查找数字(时间:25分钟)
4.2.1 任务描述
编写一个程序,从键盘上接收一个整数,并且从1-100之间找到能被它整除的整数,并输出找到的整数。
4.2.2 任务目的
复习关系和逻辑表达式的使用。
掌握如何使用while、do-while、for循环完成上面要求。
建立使用循环完成面向过程编程的思路。
4.2.3 任务要求
要求分别使用while和for循环完成此任务。
使用关系、逻辑运算符与if语句结合使用完成查找判断。
4.2.4 难点提示
  注意: 能被整除的意思是:除以从键盘上接收的整数,判断余数是否为0。
4.3任务3:模拟银行输入密码操作(时间:30分钟)
4.3.1 任务描述
  模拟XX银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;如果输入正确,可以直接输出“密码输入正确,请选择其他操作.”即可,然后程序结束。如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.”。
4.3.2 任务目的
掌握在循环中使用if语句实现具体功能。
掌握break语句和continue语句在循环中的使用。
4.3.3 任务要求
用户输入正确,则输出“密码输入正确,请选择其他操作.”即可
用户输出错误,则提示用户重新输入。
如果用户连续3次输入错误,则将用户帐号进行冻结,要求用户明天再输入。
4.3.4 难点提示
  提示:可以通过循环的判断条件限定用户的输入次数,如果循环正常结束,说明用户已经连续输入错误三次,则应提示用户帐号已经被冻结。在循环中可以通过设置标志位的方式标识循环是正常结束,还是由于输入正确后而跳出循环。然后再在循环体后面判断标志位来进行判断输出是输入正确还是帐户冻结。
4.4任务4:打印图形(时间:15分钟)
4.4.1 任务描述
使用循环语句实现下面的图形:
*****
****
***
**
*

4.4.2 任务目的
理解二重循环的意义,以及循环的流程。
理解如何使用二重循环完成程序实现。
4.4.3 任务要求
先完成此图形,然后修改程序,使程序可以根据用户输入的数据进行打印,例如:上图是用户输入5时打印的结果。
4.4.4 难点提示
  提示:最外层循环确定的是行数,而内层循环则确定每行有多少个”*”。且内层循环的取值或判断条件一般都取决于最外层循环变化。
  
五、课后作业
5.1 作业1 打印图形(时间:30分钟)
5.1.1 作业任务
使用循环语句输出一个以*号组成的菱形。要求行数从键盘接收。
5.1.2 任务要求
(1)在输出数据前,应给出用户提示信息。
(2)程序在编写时,注意程序的格式,例如:缩紧、空行、空格的使用。
(3)编程原则:程序应保证结清晰,容易理解,并添加适当的注释说明信息。
5.1.3 难点提示
内层循环和外层循环格子要完成的任务。
5.2 作业2 打印图形(时间:30分钟)
5.2.1 作业任务
编写一个程序,它能够读入一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。例如,程序读入的边长是5,那么它应输出边长为5的空心正方形。
5.2.2任务要求
  同作业1
5.2.3 难点提示
同作业1。



5.3 作业3 进制转换(时间:25分钟)
5.3.1 作业任务
  设计一个程序,该程序能将一个十进制整数,输出将其转化为二进制数以后有多少个1.例如3转化为二进制是11,有两个1,就输出2;5转化为二进制是101,也输出2.
5.3.2任务要求
1.要求用户从键盘接收该十进制数。
  2.程序在编写时,注意程序的格式,例如:缩紧、空行、空格的使用。
  3.编程原则:程序应保证结清晰,容易理解,并添加适当的注释说明信息
5.3.3难点提示
十进制转换为二进制的方法:
以45为例
47/2=23 余数1
23/2=11 余数1
11/2=5 余数1
5/2=2 余数1
2/2=1 余数0
1/2=0 余数1
得到的余数最底层的作为最高位,最顶层的作为最低位 得到的二进制数是:101111.

5.4 作业4 (时间:25分钟)
5.4.1 作业任务
有一条长阶梯,若每步跨2阶最后剩下1阶;若每步跨3阶最后剩下2阶;若每步跨5阶最后剩下4阶;若每步跨6阶最后剩下5阶;只有每步跨7阶,最后才正好1阶不剩。编程计算这条阶梯共有多少阶?
5.4.2 任务要求
分别用for循环和while循环编写程序。
5.4.3 难点提示
阶梯数目为n则:(n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)

 

答案:

 

#include <stdio.h>

int main()
{

    /*4.1.1
     * 方法一
 int ABCD = 0;
    int DCBA = 0;
    int A = 0;
    int B = 0;
    int C = 0;
    int D = 0;

    for(ABCD = 1000; ABCD < 10000; ABCD++)
    {
        A = ABCD / 1000;
        B = ABCD / 100 - A * 10;
        C = ABCD / 10 - A * 100 - B * 10;
        D = ABCD - A * 1000 - B * 100 - C * 10;

        printf("ABCD=%d\n",ABCD);

        DCBA = D * 1000 + C * 100 + B * 10 + A;

        if ( ( ABCD * A ) == DCBA)
        {
            printf("The Number is %d\n",ABCD);
        }
    }

    return 0;
    *
    */

    /*
     * 方法二

 int ABCD = 0;
    int DCBA = 0;
    int A = 0;
    int B = 0;
    int C = 0;
    int D = 0;

    while(ABCD<10000){
      ABCD++;
       A=ABCD/1000;
       B=(ABCD-A*1000)/100;
       C=(ABCD-A*1000-B*100)/10;
       D=ABCD%10;
       //倒叙
       DCBA=D*1000+C*100+B*10+A;

      if((ABCD*a)==DCBA){
      printf("四位自然数ABCD,它乘以A后变成DCBA:%d\n",ABCD);}
     }

     return 0;
     *
     */

    /*
     * 方法三

 int ABCD = 0;
    int DCBA = 0;
    int A = 0;
    int B = 0;
    int C = 0;
    int D = 0;

       do{
      ABCD++;
      //分别得出个十百千位
      A=ABCD/1000;
      B=(ABCD-A*1000)/100;
      C=(ABCD-A*1000-B*100)/10;
      D=ABCD%10;
      //倒叙
      DCBA=D*1000+C*100+B*10+A;

       if((ABCD*A)==DCBA){
       printf("四位自然数ABCD,它乘以A后变成DCBA:%d\n",ABCD);}
      }while(ABCD<10000);
         return 0;
     *
     */
 /* 4.2.1
  *
 int a=0,b=0;
 printf("请输入一个整数:");
 fflush(stdout);
 scanf("%d",&a);

    while( b<=100){
  b++;
  if(a%b==0){
  printf("能被%d整除的数是%d\n",a,b);
  }
 }
 return 0;
*/

 /*
  * 方法二
 int a=0,b=0;
 printf("请输入一个整数:");
 fflush(stdout);
 scanf("%d",&a);

 for(b=0;b<=100;b++){
  if(a%b==0){
   printf("能被%d整除的数是%d\n",a,b);
  }
 }

 return 0;
  *
  */
/*
 *4.3.1

 int a=123,b=0,n=1;

  while(n<=3){
   n++;
   printf("请输入密码:");
   fflush(stdout);
   scanf("%d",&b);
   if(b==a){
     printf("密码输入成功");
     }
   if(b==a)break;
   if(n>3){
    printf("密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.");
    break;
   }
   if(b!=a){
    printf("密码输入有误");
    continue;
   }

  }
  return 0;
 *
 */

/*
 * 4.4.1
  int i=0,j=0;
  fflush(stdout);


  for(i=0;i<=5;i++){

   for(j=i;j<=5;j++){

    printf("*");

   }
   printf("\n");
  }
  return 0;
 *
 */

/*
 * 5.1.1
 int i,j,n;
  scanf("%d",&n);
  for(i=0;i<n;i++){
   j = n+i;
   while(j--){
    printf("%s",j>2*i?" ":"*");
   }
   printf("\n");
  }
  for(i=n-1;i>0;i--){
   for(j=0;j<n+i-1;j++){
    printf("%s",j<n-i?" ":"*");
   }
   printf("\n");

  }
  return 0;
 *
 */

  /*
   * 5.2.1
     int i,j,a;
  printf("输入一个正方形的边长:\n");
  fflush(stdout);
  scanf("%d",&a);
  for(i=1;i<=a;i++)printf("*");
  printf("\n");
  for(i=1;i<=a-2;i++)
  {
  printf("*");
  for(j=1;j<=a-2;j++)printf(" ");
  printf("*\n");
  }
  for(i=1;i<=a;i++)printf("*");
  printf("\n");

  return 0;

   *
   */


 /*
  * 5.3.1
     int x,count=0;
  printf("请输入一个整数:\n");
  fflush(stdout);
  scanf("%d",&x);
  while(x){
   x=x&(x-1);
   count++;
  }
  printf("一共有%d个",count);
  *
  */

 /*
  * 5.4.1
  int n=1;
   while(!((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0))){
    ++n;
   }
   printf("这条阶梯共有 %d 阶。",n);

  return 0;
  
  *
  */

}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值