===========================================================================
4.1任务1:打印数字(时间:25分钟)
===========================================================================
/*编程求一个四位自然数ABCD,它乘以A后变成DCBA。
* 使用while,do-while,for循环完成此任务,*/
#include <stdio.h>
int main(){
int ABCD = 0;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
for(ABCD = 1000; ABCD < 10000; ABCD++)
{
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A ))
{
printf("The Number is %d \n",ABCD);
}
}
return 0;
}
#include <stdio.h>
int main(){
int ABCD = 1000;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
while( ABCD < 10000){
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A ))
{
printf("The Number is %d \n",ABCD);
}
ABCD++;
}
return 0;
}
#include <stdio.h>
int main(){
int ABCD = 1000;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
do{
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A )){
printf("The Number is %d \n",ABCD);
}
ABCD++;
}while(ABCD < 10000)
return 0;
}
===========================================================================
4.2任务2:查找数字(时间:25分钟)
===========================================================================
/*编写一个程序,从键盘上接收一个整数,并且从1-100之间找到能被它整除的整数,并输出找到的整数。*/
#include <stdio.h>
int main(){
int a,b=1;
while(b<100){
scanf("%d",&a);
if((a%b)==0){
printf("%d",b);
b=b/a;
}
}
return 0;
}
===========================================================================
4.3任务3:模拟银行输入密码操作(时间:30分钟)
===========================================================================
/* 模拟XX银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;
如果输入正确,可以直接输出“密码输入正确,请选择其他操作.”即可,然后程序结束。
如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.”。
*/
#include <stdio.h>
int main()
{
int i;
int pw=123456;
setvbuf(stdout,NULL,_IONBF,0);
printf("请输入密码:\n");
scanf("%d",&pw);
for(i=1;i<3;i++){
if(pw!=123456){
printf("输入的密码错误\n");
break;
}else{
printf("密码输入正确!");
}
if(i>3){
printf("你以连续3次输入错误,则将用户帐号进行冻结,要求用户明天再输入。");
break;
}
}
return 0;
}
===========================================================================
4.4任务4:打印图形(时间:15分钟)
===========================================================================
/*使用循环语句实现下面的图形:
*****
****
***
**
*/
#include <stdio.h>
int main(){
/*int m;
int i,j;
setvbuf(stdout,NULL,_IONBF,0);
printf("请输入一个数字:\n");
scanf("%d",&m);
for(i=m;i>=1;i--){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}*/
const int m=5;
int i,j;
for(i=m;i>=1;i--){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
}
===========================================================================
5.1 作业1 打印图形(时间:30分钟)
===========================================================================
/*使用循环语句输出一个以*号组成的菱形。要求行数从键盘接收。*/
#include <stdio.h>
int main(){
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");
}
}
===========================================================================
5.2 作业2 打印图形(时间:30分钟)
===========================================================================
/*编写一个程序,它能够读入一个正方形的边长,
然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。
例如,程序读入的边长是5,那么它应输出边长为5的空心正方形。*/
#include <stdio.h>
int main(){
int n=0,i=0,j=0;
setvbuf(stdout,NULL,_IONBF,0);
printf("输入一个一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf(" \n");
for(j=0;j<n;j++){
if(i==0||i==n-1){
printf("* ");
}
else if(j==0||j==n-1){
printf("* ");}
else{
printf(" ");}
}
}
return 0;
}
===========================================================================
5.3 作业3 进制转换(时间:25分钟)
===========================================================================
/*设计一个程序,该程序能将一个十进制整数
,输出将其转化为二进制数以后有多少个1.*/
#include <stdio.h>
int main(){
int n=0,i=0;
setvbuf(stdout,NULL,_IONBF,0);
printf("输入一个十进制整数将其转化为二进制数以后有多少个1?\n");
scanf("%d",&n);
do{
printf("%d",n%2);
if(n%2==1) { ++i;}
n=(int)n/2;
if(n==1){
printf("%d",1);
++i;
}
}while(n/2!=0);
printf("\n%d",i);
return 0;
}
===========================================================================
5.4 作业4 (时间:25分钟)
===========================================================================
/*有一条长阶梯,若每步跨2阶最后剩下1阶;
若每步跨3阶最后剩下2阶;若每步跨5阶最后剩下4阶;
若每步跨6阶最后剩下5阶;只有每步跨7阶,
最后才正好1阶不剩。编程计算这条阶梯共有多少阶?*/
//用for实现
#include <stdio.h>
int main(){
int n=0;
for(n=0;n<1000;n++){
if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)){
printf("%d\n",n);
}
}
return 0;
}
//用while实现
#include <stdio.h>
int main(){
int n=0;
while(n<1000){
if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)){
printf("%d\n",n);
}
n++;
}
return 0;
}
4.1任务1:打印数字(时间:25分钟)
===========================================================================
/*编程求一个四位自然数ABCD,它乘以A后变成DCBA。
* 使用while,do-while,for循环完成此任务,*/
#include <stdio.h>
int main(){
int ABCD = 0;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
for(ABCD = 1000; ABCD < 10000; ABCD++)
{
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A ))
{
printf("The Number is %d \n",ABCD);
}
}
return 0;
}
#include <stdio.h>
int main(){
int ABCD = 1000;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
while( ABCD < 10000){
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A ))
{
printf("The Number is %d \n",ABCD);
}
ABCD++;
}
return 0;
}
#include <stdio.h>
int main(){
int ABCD = 1000;
int DCBA = 0;
int A = 1;
int B = 0;
int C = 0;
int D = 0;
setvbuf(stdout,NULL,_IONBF,0);
do{
A =(int)(ABCD / 1000);
B = (int)((ABCD / 100) - (A * 10));
C = (int)((ABCD / 10) - (A * 100) - (B * 10));
D = (int)(ABCD%10);
DCBA = D * 1000 + C * 100 + B * 10 + A;
if ( DCBA == ( ABCD * A )){
printf("The Number is %d \n",ABCD);
}
ABCD++;
}while(ABCD < 10000)
return 0;
}
===========================================================================
4.2任务2:查找数字(时间:25分钟)
===========================================================================
/*编写一个程序,从键盘上接收一个整数,并且从1-100之间找到能被它整除的整数,并输出找到的整数。*/
#include <stdio.h>
int main(){
int a,b=1;
while(b<100){
scanf("%d",&a);
if((a%b)==0){
printf("%d",b);
b=b/a;
}
}
return 0;
}
===========================================================================
4.3任务3:模拟银行输入密码操作(时间:30分钟)
===========================================================================
/* 模拟XX银行输入密码的操作,在程序开始时提示用户输入密码,如果密码输入不正确(可以事先自己随意确定一个密码,如果输入不是这个密码,就认为是错误的),则要求用户重新进行输入;
如果输入正确,可以直接输出“密码输入正确,请选择其他操作.”即可,然后程序结束。
如果用户连续三次输入错误,程序也将结束,可以提示用户“密码输入有误超过3次,您的帐户已经被冻结,请明天再输入.”。
*/
#include <stdio.h>
int main()
{
int i;
int pw=123456;
setvbuf(stdout,NULL,_IONBF,0);
printf("请输入密码:\n");
scanf("%d",&pw);
for(i=1;i<3;i++){
if(pw!=123456){
printf("输入的密码错误\n");
break;
}else{
printf("密码输入正确!");
}
if(i>3){
printf("你以连续3次输入错误,则将用户帐号进行冻结,要求用户明天再输入。");
break;
}
}
return 0;
}
===========================================================================
4.4任务4:打印图形(时间:15分钟)
===========================================================================
/*使用循环语句实现下面的图形:
*****
****
***
**
*/
#include <stdio.h>
int main(){
/*int m;
int i,j;
setvbuf(stdout,NULL,_IONBF,0);
printf("请输入一个数字:\n");
scanf("%d",&m);
for(i=m;i>=1;i--){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}*/
const int m=5;
int i,j;
for(i=m;i>=1;i--){
for(j=1;j<=i;j++){
printf("*");
}
printf("\n");
}
}
===========================================================================
5.1 作业1 打印图形(时间:30分钟)
===========================================================================
/*使用循环语句输出一个以*号组成的菱形。要求行数从键盘接收。*/
#include <stdio.h>
int main(){
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");
}
}
===========================================================================
5.2 作业2 打印图形(时间:30分钟)
===========================================================================
/*编写一个程序,它能够读入一个正方形的边长,
然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形。
例如,程序读入的边长是5,那么它应输出边长为5的空心正方形。*/
#include <stdio.h>
int main(){
int n=0,i=0,j=0;
setvbuf(stdout,NULL,_IONBF,0);
printf("输入一个一个正方形的边长,然后输出一个由星号和空格组成的边长为刚刚读入的边长的空心正方形\n");
scanf("%d",&n);
for(i=0;i<n;i++){
printf(" \n");
for(j=0;j<n;j++){
if(i==0||i==n-1){
printf("* ");
}
else if(j==0||j==n-1){
printf("* ");}
else{
printf(" ");}
}
}
return 0;
}
===========================================================================
5.3 作业3 进制转换(时间:25分钟)
===========================================================================
/*设计一个程序,该程序能将一个十进制整数
,输出将其转化为二进制数以后有多少个1.*/
#include <stdio.h>
int main(){
int n=0,i=0;
setvbuf(stdout,NULL,_IONBF,0);
printf("输入一个十进制整数将其转化为二进制数以后有多少个1?\n");
scanf("%d",&n);
do{
printf("%d",n%2);
if(n%2==1) { ++i;}
n=(int)n/2;
if(n==1){
printf("%d",1);
++i;
}
}while(n/2!=0);
printf("\n%d",i);
return 0;
}
===========================================================================
5.4 作业4 (时间:25分钟)
===========================================================================
/*有一条长阶梯,若每步跨2阶最后剩下1阶;
若每步跨3阶最后剩下2阶;若每步跨5阶最后剩下4阶;
若每步跨6阶最后剩下5阶;只有每步跨7阶,
最后才正好1阶不剩。编程计算这条阶梯共有多少阶?*/
//用for实现
#include <stdio.h>
int main(){
int n=0;
for(n=0;n<1000;n++){
if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)){
printf("%d\n",n);
}
}
return 0;
}
//用while实现
#include <stdio.h>
int main(){
int n=0;
while(n<1000){
if((n%2==1)&&(n%3==2)&&(n%5==4)&&(n%6==5)&&(n%7==0)){
printf("%d\n",n);
}
n++;
}
return 0;
}