C语言考试

C语言考试,第1张

C语言考试 总结(题) 1. 一个C语言的执行是从本程序的main函数开始,到main函数结束,但需要注意的是,也是有特殊情况的,若是代码中出现了exit函数,则直接结束程序 2. while(!x)的含义

!x,就是非x,非0就是真,非其他数字就是假。就是当x为0才成立.

void main()
{
    int x=3;
do
{
printf("%3d",x-=2);
}while(!(--x));

int i=3;
if(i%3)
{
 printf("1");	
}
else
{
	printf("0");	
}
//输出0,当0的时候为假
}

1 -2,第一遍while(!0),成立,继续执行。第二遍while(!-3),不成立,跳出循环

3. 优先级题
 int a=5,b=6,c=7,d=8,m=2,n=2;
 (m=a < b)&&(n=cd);
 printf("%d",n);
 输出0
   int a=5,b=6,c=7,d=8,m=2,n=2;
 (m=a > b)&&(n=c>d);
 printf("%d",n);
 输出2
 考点:优先级,>比=高
       &&,左边假,右边不执行
4. 结合性,数值比较
printf("%d", 3 
5. 强制类型转换 

把表达式的运算结果强制转换成类型说明符所表示的类型,只是转换了结果,变量的类型并不转换

运算符的 *** 作数
  1. 单目运算符:只有一个 *** 作数,例如:
    逻辑非运算符【!】、按位取反运算符【~】、自增自减运算符【++ --】、负号运算符【-】、类型转换运算符【(类型)】、指针运算符和取地址运算符【*和&】、长度运算符【sizeof】这些是单目运算符

  2. 双目运算符:有两个 *** 作数,例如:
    ,+,-,*,/,=,==

  3. 三目运算符:需要三个 *** 作数,例如:
    ?:

语法 scanf
nt main()
{
int a,b,c;
printf(“input three data:n”);//使用 scanf 之前先用 printf 提示输入。
scanf("%d%d%d",&a,&b,&c); // scanf 的“输入参数”中,前面的取地址符&记住
printf("%d,%d,%d/n",a,b,c);
return 0;
}
运行时按如下方式输入三个值:
3□4□5↙(输入a,b,c的值)
3,4,5 (printf输出的a,b,c的值)
printf
printf("%.2fn",3.141592);
3.14
printf("%.3fn",3.141592);
3.142
数据类型 变量
  1. 一个有名字的,具有特定属性的一个存储单元,用来存放数据,可以改变。先定义(声明)后使用。
  2. a(3)a:变量名(不可变),3:变量值(可变),():存储单元:不能变
  3. 变量名实际上是以一个名字代表的一个存储地址,编译时,系统给每一给变量名分配对应的内存地址。
  4. 从变量中取值,实际上是通过变量名找到相应的内存地址,从该存储单元中读取数据。。。间接访问:通过地址访问(指针),直接访问:从变量中取值
标识符,就是一个对象的名字(变量,函数) 常量
  1. 在那些定义中是一个常量:
    1、字符常量:就是输入的字符,比如’c’就是常量,是不能改变的
    2、const定义的常量:const int a = 10;
    3、枚举定义的常量:enum sex{ grade, cls, num };此时当中的grade、cls、num都是常量
    4、宏可以定义一个常量#define max_size = 400

  2. 程序运行过程中,不能被改变的值就是常量
    1)整形常量,整数
    2)实型常量,十进制小数形式,数字和小数点组成。指数形式(1.2e3=1.2*10^3)(e或者E之前必须有数字)
    3)字符常量,普通字符,单引号括起来的一个字符,存储过程中不是存储字符,而是存储其代码。转义字符,以开头的字符序列
    4)字符串常量,用双引号把若干个字符括起来,“123”,“fsfd”
    5)符号常量,用#define PI 3.14 末行没有分号,经过以上处理,文件中从此行开始,PI都是3.14。符号常量不占用内存,只是一个临时符号,预编译之后就不存在了

字符型数据********,与字符串数据进行比较
  1. char c=‘a’; 单引号,字符不能超过四个,最好是一个字符
  2. putchar(c)
putchar('s');输出s
putchar(66);输出B
char ch;
ch = getchar(); 
putchar(ch); 
输入qqq,输出q,getchar函数只能接受一个字符
数组

C语言中不可以对数组整体引用。

二维数组
  1. 与java相反,可以不写前面的下标,但必须写后面的。
  2. 每一行的列必须相同
字符数组 定义
char a[7]="dfsfwfd";
   char b[7]={"dfsfwfd"};
   char c[7]={'d','f','s','f','w','f','d'};
   printf("%cn",c[6]);
特点
  1. 用双撇号括起来的部分就是字符串常量,如“abc”,"Hello!"都是字符串常量。
  2. 字符串常量"abc"在内存中占用4个字节(而不是3个字节),编译系统会在字符串最后自动加上一个’’作为字符串结束标志。但’’并不是字符串的一部分,它只作为字符串的结束标志。 字符串常量通常要用字符数组来存放。
  3. '’是结束字符串
if…else…,没有循环的特点
  1. 可以是关系表达式,逻辑表达式,算术表达式
    C语言规定else总是与其前面最近的尚未配对的if语句组成配对关系。
循环 break

只能用于循环语句和switch语句

continue
  1. 提前结束本次循环,接着执行下次循环
函数 函数处理字符串 puts(字符数组)
  1. 作用:将一个字符串(以’’结束的字符序列)输出。


可以包含转义字符,但是’’还是结束,后面的字符串不输出

  1. 只能输出一个字符串
gets(字符数组)
  1. 输入一个字符串到字符数组,并且得到一个函数值,该函数值是字符数组的起始地址
  2. hello,不是五个字符,是六个
  3. 只能输入一个字符串
strcat(字符数组1,字符数组2)–字符串连接函数
  1. 字符串2接到字符串1后面,
  2. 连接前两个字符串的后面都有’’,连接时将字符串1后面的’’取消
strcpy(字符数组1,字符数组2)和strncpy
  1. 字符数组1必须写成数组名的形式(str1),字符数组2可以是字符数组名,也可以是一个字符串常量,strcpy(str1,“china”);
  2. strncpy(str1,str2,2)是将str2中最前面的两个字符复制到str1中,取代str1中原有的字符的最前面两个字符,但是复制的字符个数n不应该多于str1中原有的字符(不包括’’)
strcmp(字符串1,字符串2)
  1. 两个字符串从左到右逐个字符相比,根据ASCII码值大小比较,直到出现不同的字符或遇到’’为止。
  2. 比较的结果由函数值带回,相等返回0,1>2返回正整数,1<2返回负整数
strlen(字符数组)
  1. 测试字符串长度(不包括‘’)
  2. char str1[20]="hello",str2[]="world"; printf("%d",strlen(str1));,输出5
strlwr(字符串)

大写转换为小写

strupr(字符串)

小写转换为大写

函数的声明与定义的区别
  1. C语言编译系统是由上往下编译的. 一般被调函数放在主调函数后面的话,前面就该有声明。正如变量必须先声明后使用一样,函数也必须在被调用之前先声明,否则无法调用!函数的声明可以与定义分离,要注意的是一个函数只能被定义一次,但可以声明多次。

  2. 函数声明由函数返回类型、函数名和形参列表组成。形参列表必须包括形参类型,但是不必对形参命名。这三个元素被称为函数原型,函数原型描述了函数的接口。定义函数的程序员提供函数原型,使用函数的程序员就只需要对函数原型编辑即可。
    【返回类型】 函数名(参数1类型 参数1,参数2类型 参数2,……);
    函数声明中的形参名往往被忽略,如果声明中提供了形参的名字,也只是用作辅助文档。另外要注意函数声明是一个语句,后面不可漏分号!

  3. 声明与定义的区别:
    函数的声明与函数的定义形式上十分相似,但是二者有着本质上的不同。声明是不开辟内存的,仅仅告诉编译器,要声明的部分存在,要预留一点空间。定义则需要开辟内存。
    1)函数的定义
    函数的定义是一个完整的函数单元:
    包含函数类型、函数名、形参及形参类型、函数体等(首部?)
    在程序中,函数的定义只能有一次
    函数首部与花括号间不加分号
    2)函数的声明
    函数声明只是对编译系统的一个说明:
    函数声明是对定义的函数的返回值的类型说明,以通知系统在本函数中所调用的函数是什么类型。
    不包含函数体(或形参)
    调用几次该函数就应在各个主调函数中做相应声明
    函数声明是一个说明语句,必须以分号结束

 // 只是做个函数声明,并不用实现
 int sum(int a, int b);
int main()
{
     int c = sum(1, 4);
    return 0;
} 
 // 函数的定义(实现)
int sum(int a, int b) {
     return a + b;
 }

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5651519.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存