作业1:展开的思路,按要求分析以下代码。
要求不要放到编译器中运行,自己手动分析出每条输出语句的结果,分析出结果后,再在编译器中执行验证结果
void main()
int num,num2,num3;
num=1;
num2=2;
num3=3;
num=++num2+ ++num3;
printf("\In%d,%d,%d",num,num2,num3);//输出结果1 7,3,4
num=num2++ + num3++;
printf("\In%d,%d,%d",num,num2,num3);//输出结果2 7,4,5
num=++num2> num3++;
printf("\n%d,%d,%d",num,num2,num3);//输出结果3 0,5,6
num=num2 -- && -- num3;
printf("\n%d,%d,%d",num,num2,num3);//输出结果4 1,4,5
num = num2>num3 ? num2++ : num3++;
printf("\n%d,%d,%d",num,num2,num3);//输出结果5 5,4,6
}
作业二:使用switch实现简易计算器:例如,输入一个表达式:3+5,程序输出结果为8
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char a;
int b,c;
printf("请输入表达式:");
scanf("%d%c%d",&b,&a,&c);
switch(a){
case '+':
printf("%d\n",b+c);
break;
case '-':
printf("%d\n",b-c);
break;
case '*':
printf("%d\n",b*c);
break;
case '/':
printf("%f\n",(float)b/(float)c);
break;
}
return 0;
}
作业三:使用switch实现,要求输入一个日期,输出该日期是对应今年的第几天
例如输入:2023 1 20 输出结果:该日期是今年第20天
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int year,m,day;
int m1,m2,m3,m4,m5,m6,m7,m8,m9,m10,m11,m12;
int flat=1,a=0,sum=0;
m1=m3=m5=m7=m8=m10=m12=31,m2=28,m4=m6=m9=m11=30;
printf("请输入日期:");
scanf("%d.%d.%d",&year,&m,&day);
if(m>12||m<0){
flat=0;
printf("输入日期有误\n");
}
if(m==1||m==3||m==5||m==7||m==8||m==10||m==12){
if(day>31||day<0){
flat=0;
printf("输入日期有误\n");
}
}
if(m==4||m==6||m==9||m==11){
if(day>30||day<0){
flat=0;
printf("输入日期有误\n");
}
}
if(year%4==0&&year%100!=0||year%400==0){
m2+=1;
a=1;
}
if(m==2){
if(day>28+a||day<0){
flat=0;
printf("输入日期有误\n");
}
}
if(flat==1){
switch(m){
case 12:
sum+=m11;
case 11:
sum+=m10;
case 10:
sum+=m9;
case 9:
sum+=m8;
case 8:
sum+=m7;
case 7:
sum+=m6;
case 6:
sum+=m5;
case 5:
sum+=m4;
case 4:
sum+=m3;
case 3:
sum+=m2;
case 2:
sum+=m1;
case 1:
sum+=day;
}
}
printf("此日是该年的第%d天\n",sum);
return 0;
}
作业四:编写一个C程序,输入三个整数,判断并输出这三个数中的最大值。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a,b,c,max;
printf("请输入三个整数:");
scanf("%d%d%d",&a,&b,&c);
if(a>=b){
max=a;
}else{
max=b;
}
if(max<c){
max=c;
}
printf("max=%d\n",max);
return 0;
}
作业五:商场折扣计算器
某商场有一个折扣促销活动,根据顾客购买的商品总额,判断顾客可以享受的折扣。折扣规则如下:
1.如果顾客购买的商品总额
大于1000元,则:
。如果总额 大于2000元,则享受15%的折扣。
。否则,享受10%的折扣。
2. 如果顾客购买的商品总额
在500元到1000元之间,则享受5%的折扣。
3. 如果顾客购买的商品总额
小于500元,则不享受任何折扣。
此外,如果顾客的购买总额小于0或大于10000元,则提示“无效金额”。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
float money,a=0;
printf("请输入消费的金额:");
scanf("%f",&money);
if(money<0||money>10000){
printf("无效金额\n");
}else if(money>2000&&money<=10000){
a=money*0.15;
}else if(money>1000){
a=money*0.1;
}else if(money>500){
a=money*0.05;
}
money-=a;
printf("顾客共消费%.2f元\n",money);
return 0;
}
作业六:提示输入一个整数,判断该数是几位数
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int num,i=10,count=1;
printf("请输入一个整数:");
scanf("%d",&num);
while(num/i!=0){
i*=10;
count++;
}
printf("该数有%d位\n",count);
return 0;
}
ubuntu@ubuntu:
作业七:编写一个程序,要求用户输入一个整数n,然后使用while循环计算n!(即n的阶乘)。阶乘是一个正整数的所有小于等于它的正整数的积,并且输入的该数只能在1到20之间。
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int n;
printf("请输入一个位于1到20之间的整数:");
scanf("%d",&n);
int m=n;
while(m-1){
m--;
n*=m;
}
printf("该数的阶乘是%d\n",n);
return 0;
}
作业八:猜数字游戏
描述:设计一个猜数字游戏,程序随机生成一个1到100之间的数字,用户需要在指定的次数内猜对这个数字。如果用户猜对,
输出恭喜消息并结束游戏。如果用户猜错,提示数字是“大”还是“小”,并允许继续猜。用户最多只能猜10次。
要求:
· 使用while循环实现游戏的循环结构。
· 生成随机数,并限制用户的猜测次数。
· 提示用户数字大小,并且计算猜测次数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int x= 1, d = 100;
int number, guess, count = 0;
srand(time(0));
number = (rand() % (d - x + 1)) + x;
printf("我已经选择了一个 %d 到 %d 之间的数字。\n", x, d);
while (guess != number&&count<10){
printf("请输入你的猜测:");
scanf("%d", &guess);
count++;
if (guess > number) {
printf("大\n");
} else if (guess < number) {
printf("小\n");
} else {
printf("恭喜你!你猜对了!数字是 %d。\n", number);
printf("你猜了 %d 次。\n", count);
}
}
return 0;
}