0
点赞
收藏
分享

微信扫一扫

C语言语法基础

四月天2021 2024-11-02 阅读 16

变量

short-16bit int-32bit long-64bit float-32bit(不可靠) double-64bit char-8bit

占内存大小该变量的所属类型

1bit 1/0 1B=1字节=8bit=8比特

#include<stdio.h>
#include<stdlib.h>
int main(){
short x1 = 112;
	int x2 = 12;//000000000000000000000000001100
	long x3 = 33L;
	float x4 = 23.34F;
	double x5 = 234.345;
	//char的底层存储的就是编码值 
	char x6 = 'w';//119
	char x7 = '3'; //字符-字符符号-符号-几何图形
	char x8 = '#'; //编码35  00100011
	printf("%c %d\n",x6,x6);
	printf("%c %d\n",x7,x7);
	printf("%c %d\n",x8,x8);
	printf("%f\n",x4);
	printf("%f\n",x5);
 return 0;
 }

函数

设函数f(x) = 3x-4,x属于z

设整数 k1 = f(4)

设整数 k2= f(k1 - 2)

设整数 k3 = f(f(2) - k1) + f(k1-k2)

设函数 g(x,y),其中x,y均属于z,g(x,y) = {f(x)-y, x>=0

f(x+y) - x, x

设整数 m1 = g(k1,k2)

设整数 m2 = g(f(k1)-9,f(k2)-20)

设整数 m3 = g(f(k3)-g(3,m2),f(m1))

设函数 w(x,y) 其中,x属于z,y属于R,w(x,y) = 3x+2.5y

设实数 w1 = w(k1,3.5F)

w2 = w(f(k2),w(f(k1),w1))

#include<stdio.h>
#include<stdlib.h>
int f(int x){
	return 3*x-4;
}
int g(int x,int y){
	if(x>=0){
		return f(x)-y;
	}else{
		return f(x+y) - x;
	}
}
double w(int x,double y){
	return 3*x+2.5*y;
}
F(int x){
	if(x<3){
		return 1;
	}else{
		return F(x-1)+F(x-2);
	}
}
int main(){
	int x=2;
	int y = 2 *x-7;
	int k1 = f(4) ;
	int k2= f(k1 - 2);
	int k3 = f(f(k2) - k1) + f(k1-k2); 
	printf("%d %d %d",k1,k2,k3);
	printf("%d",y);
	int m1 = g(k1,k2);
	int m2 = g(f(k1)-9,f(k2)-20);
	int m3 = g(f(k3)-g(3,m2),f(m1));
	printf("%d %d %d",m1,m2,m3);
	
	double w1 = w(k1,3.5);
	double w2 = w(f(k2),w(f(k1),w1));
	printf("%lf,%lf",w1,w2);
 //递归调用
	int num = F(6);
	printf("%d",num);
	
	
	return 0;
} 

吃空格!(字符的输入)

#include<stdio.h>
#include<stdlib.h>
int main(){
	int a ;
	float b;
	char c;
	scanf("%d",&a);
	scanf("%f",&b);
	scanf("%c",&c);
	
	printf("a=%d\n",a); 
	printf("b=%f\n",b); 
	//回车和空格也属于字符 
	printf("c=%c\n",c); 
	return 0;
}

scanf("%d",&a);
scanf("%f",&b);
scanf("%c%c",&c,&c);

指针

#include<stdio.h>
#include<stdlib.h>
int main(){
        int a ;
	a=10;
        int b;
	b = 18;
        int c;
	c=a;
	c=b;
	
int* k1;
	k1 = &a;
	
int* k2;
	k2=&b;
	
int* k3;
	k3 = k1;
	k3 = k2;
	 
	return 0;
} 
/*
 
*/

k2=999;//擅自改变到指定指向,非法操作,但不报错 在比赛ACM,CSP,含量高的比赛--Dev_c++

指针在这四个方向(单个数据,代表数组,结构体指针,传参指针)语法有差异,不一致

在计算机中,一块区域的地址用第一个数据的地址代指

int arr[5] = {1,2,3,4,5};
int arr2[7]={1,1,1,2,3,4,9};

//arr2 = arr;//java/C#可以这么写
int m1 = arr[0];
k2=arr;//不需要 m1 = *k2[4] 
	
m1=k2[4];

举报

相关推荐

0 条评论