1. C语言中有一个赋值表达式,是其他多数高级语言中没有的。
2. C语言的输入与输出操作是由函数来完成的,它不提供输入输出语句。
3. C语言中有一个共用体,其变量所点内存长度是其最长成员变量的长度。
4. static char a[]="Language"; char *p=&a[8];
5. void main()
{
int a[6]={12,4,17,24,27,16};
int b[6]={27,13,4,25,23,16};
for (int i=0;i<6;i++)
{ for (int j=0;j<6;j++)
if (a[i]==b[j])
break;
if (j<6) printf("%d",a[i]);
}
}输出为4 27 16
6.C语言中static用法介绍
1、声明了static的变量称为静态变量,根据作用域的不同又分为静态局部变量与静态全局变量。其中静态局部变量是在函数内声明的static变量,静态全局变量是在函数外声明的static变量。虽然作用域不同,但是都是在编译期间分配内存,使用静态存储的方式(其值存放在静态存储区),在程序整个执行期间都是存在的。它们之间的区别是:
a、静态局部变量的作用域仅限于其所在的函数,在函数外无法对该变量进行访问。此外,该变量的值在该函数退出时依然存在,并且下次调用该函数时使用的是上次保存的值;
b、静态全局变量的作用域仅限于其所在的文件模块,在其它文件模块中无法访问该变量。
2、声明了static的函数又称为静态函数或内部函数,其作用与静态全局变量差不多:其作用域仅限于其所在的文件模块,在其它文件模块中无法调用该函数(相对于其它文件块是不可见的);
3、全局变量没有使用static关键字也是静态存储(其值存放在静态存储区),也是在编译时分配内存,并且其值在整个程序执行其间都是存在的。它与使用static关键字的静态全局变量唯一的不同在于作用域:它对其它文件模块是可见的,而静态全局变量只对其所在的文件模块可见。
a、静态局部变量的作用域仅限于其所在的函数,在函数外无法对该变量进行访问。此外,该变量的值在该函数退出时依然存在,并且下次调用该函数时使用的是上次保存的值;
b、静态全局变量的作用域仅限于其所在的文件模块,在其它文件模块中无法访问该变量。
2、声明了static的函数又称为静态函数或内部函数,其作用与静态全局变量差不多:其作用域仅限于其所在的文件模块,在其它文件模块中无法调用该函数(相对于其它文件块是不可见的);
3、全局变量没有使用static关键字也是静态存储(其值存放在静态存储区),也是在编译时分配内存,并且其值在整个程序执行其间都是存在的。它与使用static关键字的静态全局变量唯一的不同在于作用域:它对其它文件模块是可见的,而静态全局变量只对其所在的文件模块可见。
fun (int i)
{ static int s=3;
s+=i;
return (s);}
void main()
{ int a=2,b=1,s;
s=fun(a); s=fun(b);
printf("%d/n",s);}
输出6
7.int a,b;
scanf("%d,%d",&a,&b);这两句是错误的,应该为int a,b;
scanf("%d%d",&a,&b);//注意&不能省
8.将一个十进制整数n转变为二进制数。
char c=getchar(); (或scanf″%c″,&c);)
#include <stdio.h>
void main( )
{
int i=0,j,n,num[20];
scanf("%d",&n);
while(n!=0)
{
num[i++]=n%2;
n=n/2;
}
for(j=i-1;j>=0;j--)printf("%d",num [j]);
}
9. printf("%3d",j);意思是j 占3个字符的位置
10. int a=2;
int b=a>1&&--a>1;
printf("%d,%d",a,b);输出1 0
11. char c='a';
printf("%c,%c",c,97);输出为a,a
12. char c[10]="abcdef";
char b[10]="ABC";
printf("%d",strlen(strcpy(c,b)));
printf("%d",strlen(c));输出为33
13. int (*p)( );的含义是( )p是一个指向函数的指针变量,该函数的返回值是一个整型数据
14.共用体的一维数组输入值班,将这些值输出到二维数组中。
#include <stdio.h>
#include <string.h>
void main( )
{
union data
{
int a[10];
int b[2][5];
};
union data ab;
int i,j;
for(i=0;i<10;i++)
scanf("%d",&ab.a[i]); /*第二空*/
for(i=0;i<2;i++)
for(j=0;j<5;j++)
printf("%5d",ab.b[i][j]);
}