思维导图:
1、假设int a=0x12345678,char b=(char)a,请写代码判断大端或小端存储?
>>如果 b = 0x78 则是小端存储
2、输入用户名和密码,如果用户名和密码正确则登录成功,否则失败,默认用户名为A,密码是1234
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
char USER;
int PASSWD;
printf("请输入用户名:");
scanf("%c",&USER);
if(USER=='A')
{
printf("请输入密码:");
scanf("%d",&PASSWD);
if(PASSWD==1234)
{
printf("登录成功\n");
}
else
{
printf("密码错误\n");
}
}
else
{
printf("用户名不存在\n");
}
return 0;
}
ubuntu@ubuntu:~/wei/7.3$ ./a.out
请输入用户名:a
用户名不存在
ubuntu@ubuntu:~/wei/7.3$ ./a.out
请输入用户名:A
请输入密码:1234
登录成功
ubuntu@ubuntu:~/wei/7.3$ ./a.out
请输入用户名:A
请输入密码:123
密码错误
3、输入三角形的三条边
如果不满足任意两边之和大于第三边,任意两边之差小于第三边,则输出不是三角形
如果满足条件,则判断是什么三角形
如果三条边相等,则等边三角形
如果任意两条相等,则等腰三角形
如果满足勾股定理,则直角三角形
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
int a,b,c;
printf("please enter 3 number:");
scanf("%d%d%d",&a,&b,&c);
if(!(a+b>c&&a+c>b&&b+c>a&&abs(a-b)<c&&abs(a-c)<b&&abs(b-c)<a))
{
printf("不是三角形\n");
}
else if(a==b&&b==c)
{
printf("是全等三角形\n");
}
else if((a==b&&b!=c)||(a==c&&c!=b)||(b==c&&c!=a))
{
printf("是等腰三角形\n");
}
else if(a*a+b*b==c*c||a*a+c*c==b*b||b*b+c*c==a*a)
{
printf("是直角三角形\n");
}
else
return 0;
}
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter 3 number:3 3 3
是全等三角形
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter 3 number:3 4 5
是直角三角形
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter 3 number:3 3 4
是等腰三角形
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter 3 number:1 6 2
不是三角形
4、写出float x与“零值”作比较的if语句
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main(int argc, const char *argv[])
{
float x;
printf("please enter a number:");
scanf("%f",&x);
if(x>=-0.0000001&&x<=0.0000001)
printf("x=0\n");
else
printf("x!=0\n");
return 0;
}
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter a number:0.00000001
x=0
ubuntu@ubuntu:~/wei/7.3$ ./a.out
please enter a number:-0.0000002
x!=0
5、代码如下
void main()
{
int c=9,d=0;
c=c++%5; //先运算c%5,后c再自增--->c=4
d=c; //d=c=4
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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
int num;
printf("请输入一个整数:");
scanf("%d",&num);
int D3 = (num%3 == 0);
int D5 = (num%5 == 0);
int D7 = (num%7 == 0);
if (D3 && D5 && D7)
{
printf("3 5 7\n");
}
else if (D3 && D5)
{
printf("3 5\n");
}
else if (D3 && D7)
{
printf("3 7\n");
}
else if (D5 && D7)
{
printf("5 7\n");
}
else if (D3)
{
printf("3\n");
}
else if (D5)
{
printf("5\n");
}
else if (D7)
{
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++;//b---10,a---11
c=++a;//c---12,a---12
d=10*a++;//d---120,a---13
printf("b,c,d:%d,%d,%d",b,c,d);//a=13,b=10,c=12,d=120
return 0;
}
8、输出结果
#include<stdio.h>
void main()
{
int a=180;
char c;
c=(char)++a;
/*(char)181-->0000 0000 1011 0101-->1011 0101补
1011 0100反
1100 1011原--->c=-75
*/
printf("c=%d a=%d\n",c,a);//c=-75,a=181
char d=4;
short e;
e=(++d)++;//++d=4+1=5-->e=5,d=6
printf("d=%d e=%d\n",d,e);//d=6,e=5
}