练习一
使用switch实现银行系统,默认用户为A,密码为1234,余额2000
如果登录失败,则直接结束
如果登录成功,则显示银行页面
1.查询余额
2.取钱
3.存钱
如果是1,则打印余额
如果是2,则输入取钱金额,如果金额大于存款则输出余额不足,否则输出剩余金钱
如果是3,则输入存款金额,输出存款后的金额
#include <myhead.h>
#define USER 'A'
#define passwd 1234
int main(int argc, const char *argv[])
{
char user;
int pwd;
int remove;
int deposit;
int balance = 2000;
int c;
printf("欢迎使用华清银行ATM系统\n---------------------------\n请输入您的账户与密码:\n");
printf("账户 ");
user = getchar();
printf("密码 ");
scanf("%d", &pwd);
if(user == USER && pwd == passwd)
{
printf("--------------------------\n");
printf("登录成功\n");
while(1)
{
printf("请选择您需要办理的业务\n");
printf("-----------------------\n");
printf("1、查询余额\n2、取钱\n3、存钱\n4、退出\n");
scanf("%d", &c);
switch(c)
{
case 1:
printf("-----------------------\n");
printf("您的余额为 %d 元\n", balance);
printf("-----------------------\n");
break;
case 2:
printf("-----------------------\n");
printf("请输入您要取出的金额 ");
scanf("%d", &remove);
if(remove > balance)
{
printf("余额不足\n");
}
else
{
balance -= remove;
printf("取出成功,您的余额为 %d 元\n", balance);
}
printf("-----------------------\n");
break;
case 3:
printf("-----------------------\n");
printf("请输入您要存入的金额 ");
scanf("%d", &deposit);
balance += deposit;
printf("存入成功,您的余额为 %d 元\n", balance);
printf("-----------------------\n");
break;
case 4:return 0;
}
putchar(10);
}
}
else
{
printf("账户或密码错误,请重新输入\n");
return 0;
}
return 0;
}
练习二
输入一个日期,输出这是这一年的第几天?
eg:2024/3/2 则输出62天
scanf("%d/%d/%d",&a,&b,&c)
#include <myhead.h>
int main(int argc, const char *argv[])
{
int year,moth,day;
int tow = 0;
int sum = 0;
printf("请输入要判断的日期(中间用空格隔开):");
scanf("%d%d%d", &year, &moth, &day);
if( (year%4==0 && year%100!=0) || (year%400==0) )
{
tow = 29; //闰年2月29天
}else
{
tow = 28; //平年2月28天
}
switch(moth)
{
case 12: sum += 30;
case 11: sum += 31;
case 10: sum += 30;
case 9: sum += 31;
case 8: sum += 31;
case 7: sum += 30;
case 6: sum += 31;
case 5: sum += 30;
case 4: sum += 31;
case 3: sum += tow;
case 2: sum += 31;
case 1: sum += day;break;
default:
{
printf("您输入的月份有误!\n");
}
printf("该日期是今年的第%d天\n", sum);
return 0;
}
练习三
输入一个表达式,实现计算器+-*/%
例如:1+2,则输出3
5/2, 则输出2.5
#include <myhead.h>
int main(int argc, const char *argv[])
{
int a, b;
char c;
printf("Please input a formula ");
scanf("%d%c%d", &a, &c, &b);
switch(c)
{
case '+': printf("%d + %d = %d\n", a, b, a+b);
break;
case '-': printf("%d - %d = %d\n", a, b, a-b);
break;
case '*': printf("%d × %d = %d\n", a, b, a*b);
break;
case '/':
if(b == 0)
printf("error!\n");
else
printf("%d ÷ %d = %f\n", a, b, (float)a/b);
break;
case '%': printf("%d % %d = %d\n", a, b, a%b);
break;
default : printf("error!\n");break;
}
return 0;
}
练习四
下面代码执行后,a\b\c的结果是?
int a=5,b=7,c
c=a+++b
a = 6, b = 7, c = 12
练习五
代码如下
void main()
{
int c=9,d=0;
c=c++%5;
d=c;
printf("d=%d\n",d);
}
d=5
练习六
给定一个整数,判断它是否被3、5、7整除,并输出一下信息 (笔试)
1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)
2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开)
3. 只能被其中一个整数整除(输出这个除数)
4.不能被任何数整除,输出小写字母n
案例如下:
输入:105
输出:3 5 7
#include <myhead.h>
int main(int argc, const char *argv[])
{
int num;
printf("Input ");
scanf("%d", &num);
printf("Output ");
if(num%3 == 0)
printf("3 ");
if(num%5 == 0)
printf("5 ");
if(num%7 == 0)
printf("7 ");
putchar(10);
if(num%3!=0 && num%5!=0 && num%7!=0)
printf("n\n");
return 0;
}
练习七
b, c, d : 10, 12, 120
练习八
c=-75 a=181
d=6 e=5
练习九
0001 1011