C语言编程练习作业2

1.使用switch实现银行系统,默认用户为A,密码为1234,余额为2000;如果登录失败,则直接结束;如果登录成功,则显示银行页面:1.查询余额  2.取钱  3.存钱 ;如果是1,则打印余额;如果是2,则输入取钱金额,如果金额大于存款则输出余额不足,否则输出剩余金钱;如果是3,则输入存款金额,输出存款后的金额。

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	char user=0;
	int password=0;
	int balance=2000;
	int temp=0;
	int withdraw=0;
	int deposit=0;
	printf("请输入用户名和密码:");
	scanf("%c%d",&user,&password);
	switch(user=='A' && password==1234)
	{
		case 0:printf("用户登录失败!\n");break;
		case 1:printf("用户登录成功\n1.查询余额\n2.取钱\n3.存钱\n");
			   printf("请输入您的操作:");
			   scanf("%d",&temp);
			   break;
	}
	switch(temp)
	{
		case 1:printf("余额为:%d\n",balance);break;
		case 2:printf("请输入取钱金额:");
			   scanf("%d",&withdraw);
			   if(0<withdraw && 2000>withdraw){
				   printf("剩余金额:%d\n",balance-withdraw);
			   }else if(withdraw>2000){
					printf("余额不足\n");
			   }else{
					printf("您输入的取钱金额不合法!\n");
			   }
			   break;
		case 3:printf("请输入存钱金额:");
			   scanf("%d",&deposit);
			   printf("存入后余额为:%d\n",deposit+balance);
			   break;
		default:printf("您的操作有误,请重新选择\n");break;  

	}
	return 0;
}

2.输入一个日期,输出这是这一年的第几天

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
    //输入一个日期,输出这是这一年的第几天
    int year=0;
    int month=0;
    int day=0;
    int num=0;
    printf("请输入日期:");                                                                        
    scanf("%d/%d/%d",&year,&month,&day);
    if(1<=month && 12>=month){
   	 switch(month)//使用case击穿,使每个月的天数都可以相加
   	 {                                                                            
        case 12:num+=30;
        case 11:num+=31;
        case 10:num+=30;
        case 9:num+=31;
        case 8:num+=31;
        case 7:num+=30;
        case 6:num+=31;
        case 5:num+=30;
        case 4:num+=31;
        case 3:if(year%4==0 && year%100!=0 || year%400==0){
                    num+=29;
                   }else{
                    num+=28;
                   }
        case 2:num+=31;
        case 1:num+=day;break;
    	}
    }else{
    printf("输入的月份有误\n");
    }
    printf("%d/%d/%d是这一年的第%d天\n",year,month,day,num);
    return 0;
}

3.输入一个表达式,实现计算器+-*/%

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	//输入一个表达式,实现计算器+-*/%
	double a=0;
	double b=0;
	char operator=0;
	printf("请输入表达式:");
	scanf("%lf%c%lf",&a,&operator,&b);
	switch(operator)
	{
		case '+':printf("%lf\n",a+b);break;
		case '-':printf("%lf\n",a-b);break;
		case '*':printf("%.2lf\n",a*b);break;
		case '/':printf("%.1lf\n",a/b);break;
		case '%':printf("%d\n",(int)a%(int)b);break;
		default:printf("请输入正确的表达式!\n");break;
	}
	return 0;
}

4.下面代码执行后,a\b\c的结果是?

int a=5,b=7,c;
c=a+++b;

因为自增自减运算符属于单目运算符,优先级要高于’+‘算术运算符,所以表达式是a++ + b,a,b,c结果是6,7,12

5.代码如下:

void main()
{
    int c=9,d=0;
    c=c++%5;
    d=c;
    printf("d=%d\n",d);
}

先执行优先级最高的自增运算符c++(c=c+1),然后执行c%5=4,再把c=c+1的值赋值c,最后把c%5的值赋给c,所以d=4

6.给定一个整数,判断它是否被3、5、7整除,并输出以下信息。
        1)能同时被3,5,7整除(直接输出357,每个数字之间一个空格)
        2)只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如35 或者37 或者57,中间使用空格隔开)
        3)只能被其中一个整数整除(输出这个除数)
        4)不能被任何数整除,输出小写字母n
        案例如下:
        输入:105
        输出:3 5 7

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
	int i=0;
	printf("输入:");
	scanf("%d",&i);
	if(i%105==0){
		printf("输出:3 5 7\n");
	}else if(i%15==0){
		printf("输出:3 5\n");
	}else if(i%21==0){
		printf("输出:3 7\n");
	}else if(i%35==0){
		printf("输出:5 7\n");
	}else if(i%3==0){
		printf("输出:3\n");
	}else if(i%5==0){
		printf("输出:5\n");
	}else if(i%7==0){
		printf("输出:7\n");
	}else{
		printf("n\n");
	}
	return 0;
}

7.请写出下列代码的输出内容

#include<stdio.h>
int main(void)
{
	int a, b, c, d;
	a=10;b=a++;c=++a;
	d=10*a++;
	printf("b,c,d:%d,%d,%d",b,c,d);
	return 0;
}

b,c,d的值分别为10,12,120

8.写出代码输出内容

void main()
{
	int a=180;
	char c;
	c=(char)++a;
	printf("c=%d a=%d\n",c,a);
	char d=4;
	short e;
	e=(++d)++;
	printf("d=%d e=%d\n",d,e);
}

c=-75,a=181,d=6,e=5

9.设有以下语句:int a=3.b=6,c;c=a^b<<2; 则c的二进制值是

左移的优先级高于按位异或,所以b的二进制值先左移,然后再与a的二进制值进行按位异或运算,所以c的二进制值为0000 0000 0000 0000 0000 0000 0001 1011

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值