一、顺序编程
1.编程,要求用户以整数方式输入秒数(使用long或long long变量存储),然后以天、小时、分钟和秒的方式显示这段时间。
2.设计一个加密算法:用a代替z, 用b代替y, 用c代替x, ……,用z代替a。现要求输入一个字符,对其进行加密输出。
二、分支编程
3.从键盘输入年月日,判断输入的日期是否正确(要判断大小月,判断闰年)。如:
输入: 2018 13 32,输出:不正确
输入: 2018 2 29,输出:不正确
4. 公司要在电话线上传输数据,但担心电话被窃听。所有数据用四位整数传输,他们要求编写一个程序,将数据进行加密,使数据传输更安全。程序读取四位整数并加密如下:
将每个位换成该位与7的和并用10求模。然后交换第一位与第三位,交换第二位与第四位,并打印加密后的整数。再编写一个程序读取加密的四位敷,并解密成原先的四位数。
第一题 显示时间
要求用户以整数方式输入秒数(使用long或long long变量存储),然后以天、小时、分钟和秒的方式显示这段时间。
#include <stdio.h>
void main()
{
long int t,d,h,m,s;
printf("please enter seconds:\n");
scanf("%lld",&t);
d=t/(24*3600);
h=(t-d*(24*3600))/3600;
m=(t-d*24*3600-h*3600)/60;
s=t%60;
printf("%ld天 %ld时%ld分%ld秒",d,h,m,s);
}
第二题 加密算法
设计一个加密算法:用a代替z, 用b代替y, 用c代替x, ……,用z代替a。现要求输入一个字符,对其进行加密输出。
#include <stdio.h>
void main()
{
char al;
scanf("%c",&al);
if(al>='a' && al<='z')
printf("%c",'z'-al+'a');
return 0;
}
第三题 判断日期
从键盘输入年月日,判断输入的日期是否正确(要判断大小月,判断闰年)。如:
输入: 2018 13 32,输出:不正确
输入: 2018 2 29,输出:不正确
#include <stdio.h>
int judgeyear(int n)
{
if((n%4==0 && n%100!=0)||(n%400==0))
return 1;
else
return 0;
}
int main()
{
int flag=0;
int a[][2]={{1,31},{2,28},{3,31},{4,30},{5,31},{6,30},{7,31},{8,31},{9,30},{10,31},{11,30},{12,31}};
// printf("请输入年 月 日,");
int year,month,day;
while(scanf("%d %d %d",&year,&month,&day)!=EOF)
{
if(judgeyear(year)==0)
{
if(month>=1 && month <=12)
{
if(day<=a[month-1][1])
flag=1;
}
}
else if(judgeyear(year))
{
if(month!=2 && month>=1 &&month <=12)
{
if(day<=a[month-1][1])
flag=1;
}
else if(month==2)
{
if(day<=29)
flag=1;
}
}
if(flag==1)
printf("正确");
else
printf("不正确");
}
}
第四题 电话加密&解密
公司要在电话线上传输数据,但担心电话被窃听。所有数据用四位整数传输,他们要求编写一个程序,将数据进行加密,使数据传输更安全。程序读取四位整数并加密如下:
将每个位换成该位与7的和并用10求模。然后交换第一位与第三位,交换第二位与第四位,并打印加密后的整数。再编写一个程序读取加密的四位敷,并解密成原先的四位数。
#include <stdio.h>
int coder(int a)
{
a=(a+7)%10;
return a;
}
int decoder(int b)
{
if(b<7)
b=(b+10)-7;
else
b=b-7;
return b;
}
int main()
{
int num;
int m,n,j,k;
int code=0,decode=0;
while(scanf("%d",&num)!=EOF)
{
m=num%10;
n=(num/10)%10;
j=(num/100)%10;
k=num/1000;
m=coder(m);
n=coder(n);
j=coder(j);
k=coder(k);
code=n*1000+m*100+k*10+j;
if(n==0)
{
printf("加密输出:0%d\n",code);
}
else
printf("加密输出:%d\n",code);
m=decoder(m);
n=decoder(n);
j=decoder(j);
k=decoder(k);
decode=k*1000+j*100+n*10+m;
printf("解密输出:%d\n",decode);
}
}