资源描述
#include "stdio.h"
void main()
{
char k='\xA0',l='\123';
printf("%d\t%d\n",k,l);
/*字符型数据转换成整型,低八位可以直接写,再看低八位的最高位是否为1,
是1的话,前面再加8个1,再减1,取反,就是所得结果。记住符号位不变。
是0的话,直接输出即可。
A0=1010 0000
1111 1111 1010 0000
-1
1111 1111 1001 1111
1000 0000 0110 0000=-96*/
}
#include "stdio.h"
void main()
{
int a=12,b=13,c=14;
printf("%d,%d,%d\n",!a,a&&b,b||c);
printf("%d,%d,%d\n",~a,a&b,b|c);
/*12=0000 1100只写了一个字节
~12=1111 0011
-1
1111 0010
1000 1101=-13*/
}
/* Note:Your choice is C IDE */
//大写字母和小写字母相互转换,其他字符照原样输出
#include "stdio.h"
void main(void)
{
char c,flag='y';
while(flag=='y')
{
printf("please put in anything:\n");
scanf("%c",&c);
getchar();//吸收掉回车符
if(c>='A'&&c<='Z')
c=c+('a'-'A');
else
{
if(c>='a'&&c<='z')
c=c-('a'-'A');
}
printf("%c %d\n",c,c);
printf("Do you want to continue:y/n:");
scanf("%c",&flag);
getchar();//吸收掉回车符
}
}
//输入三条边,求总和和平均值。
#include<stdio.h>
void main()
{
float a,b,c,aver,sum=0.0;
printf("Please input three numbers:\n");
scanf("%f%f%f",&a,&b,&c);
sum=a+b+c;
aver=sum/3;
printf("%f\t%f\n",sum,aver);
}
#include"stdio.h"
#include"math.h"
void main()
{
float a,b,c,d;
printf("请输入a,b,c的值:\n");
scanf("%f%f%f",&a,&b,&c);
if(a==0)
{
printf("answer=%.2f\n",-c/b);
return;
}
d=b*b-4*a*c;
if(d<0)
{
printf("NO ANSWER!!!\n");
}
if(d==0)
{
printf("answer=%.2f\n",-b/2/a);
}
if(d>0)
{
printf("answer1=%.2f\n",(-b+sqrt(d))/2/a);
printf("answer2=%.2f\n",(-b-sqrt(d))/2/a);
}
}
//海伦公式求面积
#include"stdio.h"
#include"math.h"
void main()
{
float a,b,c,p;
double s;
printf("please input three numbers:\n");
scanf("%f%f%f",&a,&b,&c);
p=(a+b+c)/2;
s=sqrt(p*(p-a)*(p-b)*(p-c));
printf("the area is %lf\n",s);
}
//输入两个数和一种运算符(+、-、*、/),计算其结果。
#include "stdio.h"
void main()
{
int a,b;
char c;
scanf("%d%1s%d",&a,&c,&b);//可以吸收掉无数干扰字符,如空格、回车等,只接受第一有效字符
printf("%d%c%d=%d\n",a,c,b,a+b);
}#include<stdio.h>
#include <string.h>
#include<math.h>
void main()
{
int p[11]={1,0,1,0,1,1,0,1,1,0};
int i;
double n=0;
//printf("%d\n",strlen(p));
for(i=0;i<10;i++)
{
n+=p[i]*pow(2,(9-i));
}
printf("%lf\n",n);
}
#include<stdio.h>
void main()
{
int a=12;
int b,c;
c=a+(b=6);
a+=a-=a*a;
printf("%d,%d,%d\n",a,b,c);
}
#include<stdio.h>
void main()
{
short a,b;
a=32767;
b=a+1;
printf("%d,%d\n",a,b);
}
short 类型在32位机上是16位的即范围为:-32768~32767当32767+1后最高位1故为负值,应为余下的补码刚好是2的15次方32768,所以为-32768了
32767就是
1111 1111 1111 1111
int 型占用两个字节的情况,其自增一次后变成了(在tc等编译器中,依照编译环境而定)
1000 0000 0000 0000
第一位为正负位,其计算结果为把所有位数全部变成相反的,然后加上一(此时第一个1变成了0,把它当作正数)也就是0111 1111 1111 1111
增加1为 1000 0000 0000 0000
结果就是-32768.
如果在VC中,int占用四个字节,所以结果为32768。
前缀自增(自减)操作是先自增,然后传递数值;
后缀自增(自减)操作是先传递数值,然后a的值增加 。0.
a=a*b; b=a/b;a=a/b;
a=a-b;b=a+b;a=b-a;
展开阅读全文