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