C语言基础练习题及代码3

时间:2021-12-10 12:19:16

1、编程求一个四位自然数ABCD,它乘以A后变成DCBA。
/*
 * work.c
 *
 *  Created on: 2013-3-6
 *      Author: wangyunhe
 */
#include <stdio.h>
int main(){
 int abcd=0,dcba=0;
 int a=1,b=0,c=0,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;
   dcba=a*1000+c*100+b*10+a;
  if(abcd*a==dcba){
   printf("abcd=%d\n",abcd);
  }
 }
 return 0;
}

--------------------------------------------------------
2、编写一个程序,从键盘上接收一个整数,并且从1-100之间找到能被它整除的整数,并输出找到的整数。

#include <stdio.h>
int main(){
 int num;
 int a;
 printf("请输入一个之间的数字:\n");
 fflush(stdout);
 scanf("%d",&num);
 for(a=1;a<=100;a++){
  if(num%a == 0){
   printf("%d是%d的被除数\n",a,num);
  }
 }
 return 0;
}


while循环:
/*
 * work.c
 *
 *  Created on: 2013-3-6
 *      Author: wangyunhe
 */
#include <stdio.h>
int main(){
 int num;
 int a=1;
 printf("请输入一个之间的数字:\n");
 fflush(stdout);
 scanf("%d",&num);
 while(a<100){
  a++;
  if(num%a == 0){
   printf("%d是%d的被除数\n",a,num);
   }

  }

 return 0;
}

------------------------------------------------------
3、模拟XX银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;如果输入正确,可以直接输出“密码输入正确,请选择其他操作.”即可,然后程序结束。如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.”。

/*
 * work.c
 *
 *  Created on: 2013-3-6
 *      Author: wangyunhe
 */
#include <stdio.h>
int main(){
// 定义一个累加变量i 和 密码 pass
 int pass,i=0;
// 输入密码
 printf("请输入您的密码:\n");
 fflush(stdout);
 scanf("%d",&pass);
// 判断正确否,并循环输入且不能超过三次
 while(i<3){
  i++;

  if(pass == 23456){
   printf("请选择您要进行的操作。");
   break;
  }
//  若密码错误,提示重新输入和剩余次数,并循环输入
  else{
   printf("密码错误,请重新输入您的密码,您还有%d次机会\n",3-i);
   fflush(stdout);
   scanf("%d",&pass);
  }
//  如果第三次输入错误,则冻结
  if(3-i<=1){
      printf("您已经连续三次输入密码错误,账号已经冻结,请及时到营业厅解冻。");
      break;
     }
 }
 return 0;
}

-----------------------------------------------------------
4、使用循环语句实现下面的图形:
*****
****
***
**
*

/*
 * Printf.c
 *
 *  Created on: 2013-3-1
 *      Author: wangyunhe
 */


#include <stdio.h>
int main(){
 int i;
// 控制行
 for(i=5;i>=1;i--){
  int j=0;
  for(j=1;j<=i;j++){
   printf("*");
  }
  printf("\n");
 }
 return 0;
}
-----------------------------------------------------
5、使用循环语句输出一个以*号组成的菱形。要求行数从键盘接收。
#include<stdio.h>
int main(){
 int num,i,j,k;
 printf("请输入行数(奇数):\n");
 fflush(stdout);
 scanf("%d",&num);
 for(i=1;i<=(num+1)/2;i++) //先打印上边的(num+1)/2行
  {
  for(j=1;j<=(num+1)/2-i;j++) //控制要打印的空格数量
   printf(" ");
  for(k=1;k<=2*i-1;k++) //控制要打印的星号数
   printf("*");
   printf("\n");
  }
 for(i=(num-1)/2;i>=1;i--) //先打印上边的(num-1)/2行
  {
  for(j=1;j<=(num+1)/2-i;j++) //控制要打印的空格数量
   printf(" ");
  for(k=1;k<=2*i-1;k++) //控制要打印的星号数
   printf("*");
  printf("\n");
  }
 return 0;
}


---------------------------------------------------
6、编写一个程序,它能够读入一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。例如,程序读入的边长是5,那么它应输出边长为5的空心正方形。
/*
 * Square.c
 *
 *  Created on: 2013-3-6
 *      Author: wangyunhe
 */
#include <stdio.h>
int main()
{
 int number;
 int i,j;
   printf("输入正方形的边长:\n");
   fflush(stdout);
   scanf("%d",&number);
 for (i=1; i<=number; i++)
 {
  if (i==1 || i==number)
  {
   for(j=1; j<=number; j++)
    printf("*");
  }
  else
  {
   printf("*");

   for(j=2;j<=number-1;j++)
    printf(" ");
   printf("*");

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

}