1.
/*1.使用switch实现银行系统,默认用户为A,密码为1234,余额2000 如果登录失败,则直接结束 如果登录成功,则显示银行页面 1.查询余额 2.取钱 3.存钱 如果是1,则打印余额 如果是2,则输入取钱金额,如果金额大于存款则输出余额不足,否则输出剩余金钱 如果是3,则输入存款金额,输出存款后的金*/ int main(int argc, const char *argv[]) { char user=0; int passwd=0; float balance=2000; float qu_money=0; float cun_money=0; printf("请输入用户及密码:"); scanf("%*c%c %d",&user,&passwd); if('A'==user && 1234==passwd) { printf("1.查询余额\n"); printf("2.取钱\n"); printf("3.存钱\n"); int num=0; printf("请选择服务:"); scanf("%d",&num); switch(num) { case 1:printf("余额:%.3f\n",balance);break; case 2:printf("输入取钱金额:\n");\ scanf("%f",&qu_money);\ if(qu_money>balance) printf("余额不足\n"); else printf("%.3f\n",balance-qu_money);\ break; case 3:printf("输入存款金额:\n");\ scanf("%f",&cun_money);\ printf("%.3f\n",balance+cun_money);\ break; } } else { printf("登录失败\n"); exit(0); } return 0; }
2. 输入一个日期,输出这是这一年的第几天?
#include <stdio.h> int main() { int year=0, month=0, day=0; int dayNumber=0; printf("请输入日期(格式:年/月/日): "); scanf("%d/%d/%d", &year, &month, &day); // 根据月份计算天数 switch (month) { case 12: dayNumber = 30; // 十一月 case 11: dayNumber += 31; // 十月 case 10: dayNumber += 30; // 九月 case 9: dayNumber += 31; // 八月 case 8: dayNumber += 31; // 七月 case 7: dayNumber += 30; // 六月 case 6: dayNumber += 31; // 五月 case 5: dayNumber += 30; // 四月 case 4: dayNumber += 31; // 三月 case 3: // 二月 if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { dayNumber += 29; // 闰年 } else { dayNumber += 28; // 非闰年 } case 2: dayNumber += 31; // 一月 default: break; } // 加上当月天数 dayNumber += day; printf("这是这一年的第 %d 天。\n", dayNumber); return 0; }
3、输入一个表达式,实现计算器+-*/%
例如:1+2,则输出3
5/2, 则输出2.5
1 #include <stdio.h> 2 #include <stdlib.h> 3 /*输入一个表达式,实现计算器+- * /% 4 5 例如:1+2,则输出3 6 7 5/2, 则输出2.5*/ 8 int main() { 9 char operation; 10 double num1, num2; 11 12 printf("请输入一个表达式(例如 1+2): "); 13 scanf("%lf %c %lf", &num1, &operation, &num2); 14 15 switch(operation) { 16 case '+': 17 printf("结果: %.2lf\n", num1 + num2); 18 break; 19 case '-': 20 printf("结果: %.2lf\n", num1 - num2); 21 break; 22 case '*': 23 printf("结果: %.2lf\n", num1 * num2); 24 break; 25 case '/': 26 if(num2 != 0.0) { // 检查分母是否为零 27 printf("结果: %.2lf\n", num1 / num2); 28 } else { 29 printf("除数不能为0。\n"); 30 } 31 break; 32 case '%': 33 if((int)num2 != 0) { // 检查模数是否为零 34 printf("结果: %.0d\n", (int)num1 % (int)num2); 35 } else { 36 printf("模数不能为0。\n"); 37 } 38 break; 39 default: 40 printf("无效的操作符。\n"); 41 } 42 43 return 0; 44 } ~ ~ ~
4. 下面代码执行后,a\b\c的结果是?
int a=5,b=7,c
c=a+++b
这段代码在C语言中会产生未定义行为,因为表达式
a++ + b
没有明确的顺序点
5.
代码如下
void main()
{
int c=9,d=0;
c=c++%5;
d=c;
printf("d=%d\n",d);
}
d=4
6.
.给定一个整数,判断它是否被3、5、7整除,并输出一下信息 (笔试)
1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格)
2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开)
3. 只能被其中一个整数整除(输出这个除数)
4.不能被任何数整除,输出小写字母n
案例如下:
输入:105
输出:3 5 7
1 #include <stdio.h> 2 3 /*.给定一个整数,判断它是否被3、5、7整除,并输出一下信息 (笔试) 4 1.能同时被3,5,7整除(直接输出3 5 7,每个数字之间一个空格) 5 2.只能内其中两个整数整除(输出两个数,小的在前,大的在后,例如3 5 或者 3 7 或者5 7,中间使用空格隔开) 6 3. 只能被其中一个整数整除(输出这个除数) 7 4.不能被任何数整除,输出小写字母n 8 案例如下: 9 输入:105 0 输出:3 5 7*/ 1 2 int main() { 3 int num; 4 scanf("%d", &num); 5 6 int count = 0; 7 if (num % 3 == 0) { 8 printf("3 "); 9 count++; 0 } 1 if (num % 5 == 0) { 2 printf("5 "); 3 count++; 4 } 5 if (num % 7 == 0) { 6 printf("7 "); 7 count++; 8 } 9 0 1 return 0; 2 }
7.
b=10,c=12,d=120
8.
c=-75 a=181
d=5;
e=(++d)++;
增量操作数需要左值
9.设有以下语句:int a=3,b=6,c;c=a^b<<2;则c的二进制值是______。
a = 0b011 // 3的二进制表示 b = 0b110 // 6的二进制表示 a ^ b = 0b101 // 异或结果 (a ^ b) << 2 = 0b10100 // 将异或结果左移2位
c=0b10100