半期复习二

一.C语言中的%u输入输出格式 说明符 ,表示按unsigned int格式输入或输出数据。unsigned int 表示无符号整数

无符号整数(unsigned integer),计算机术语,计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。 无符号整数包括0和正数。无符号整数(unsigned integer),计算机术语,计算机里的数是用二进制表示的,最左边的这一位一般用来表示这个数是正数还是负数,这样的话这个数就是有符号整数。 无符号整数包括0和正数

二. minlen

三. #define N 5

四. if (isPrime[i]) 

第一种情况:

假设s数组里面的值是bool类型的,那么就是true或者false,即可直接用于if语句中。

第二种情况:

存在类型转换的问题,即从其他类型转变为bool值,例如假设s数组里面的值是int类型,那么非0即为正。

c语言表示假的情况

(1)使用0表示假

(2)使用NULL表示假

(3)'\0'

(4)0.0表示假

五.C语言提供的三种预处理功能:宏定义、文件包含、条件编译.

指令          用途
#         空指令,无任何效果
#include  包含一个源代码文件
#define   定义宏
#undef    取消已定义的宏
#if       如果给定条件为真,则编译下面代码
#ifdef    如果宏已经定义,则编译下面代码
#ifndef   如果宏没有定义,则编译下面代码
#elif     如果前#if条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif    结束一个#if……#else条件编译块
#error    停止编译并显示错误信息

六. a||b&&c

这个表达式涉及到两个不同的知识点,操作数的求值顺序和运算符的优先级。

1.操作数的求值顺序。大多数双目运算符两侧操作数的求值顺序,C标准是没有做规定的,例如a+b,先求a的值还是先求b的值,标准交给编译器自行决定。但对于||和&&运算符,标准有明确规定, a||b和a&&b,一定是先求左侧a的值,如果a的值就能决定||和&&的结果,那么将不会再求b的值。这个特性叫做短路运算。因此表达式a || b && c,求值顺序一定是先求a,再求b,最后求c,当中如果任何一个操作数的值可以决定表达式的最终结果,那么将停止接下来的求值。

2.运算符优先级。运算符优先级解决的是一个操作数左右两侧均有运算符时,操作数先跟哪个运算符结合的问题。例如a+b*c,由于*的优先级高于+,可以知道b会先跟*号结合,而不是先跟+号结合,因此表达式相当于a+(b*c)而不是(a+b)*c。在表达式a || b && c中,&&的优先级高于||,因此可以知道这个表达式相当于a || (b && c),即a或(b与c)的结果,而不是(a || b) && c,即(a或b)与c的结果。

七.上表中可以总结出如下规律:

  1. 结合方向只有三个是从右往左,其余都是从左往右。
  2. 所有双目运算符中只有赋值运算符的结合方向是从右往左。
  3. 另外两个从右往左结合的运算符也很好记,因为它们很特殊:一个是单目运算符,一个是三目运算符。
  4. C语言中有且只有一个三目运算符。
  5. 逗号运算符的优先级最低,要记住。
  6. 此外要记住,对于优先级:算术运算符 > 关系运算符 > 逻辑运算符 > 赋值运算符。逻辑运算符中“逻辑非 !”除外。
  7. 八C语言的\t的意思是 :水平制表符。相当于按了键盘上的TAB按键,通常宽度相当于8个空格的位置,但有些软件允许设置tab的宽度。在双引号或定界符表示的字符串中有效,在单引号表示的字符串中无效。
  8. 它的作用是将光标移到最接近8的倍数的位置,使得后面的输入从此开始。换句话说,如果所有的数据都紧跟在制表符后面输出。

    例如://经检验这是错误程序         

  9. //\r在不同系统里不一样,mac里面是换行,Windows是光标置于本行行首

  10. 一般来说,其在终端和文件中的输出显示相当于按下键盘TAB键效果。一般系统中,显示水平制表符将占8列。同时水平制表符开始占据的初始位

    扩展资料:

    1、\t \r \n都是转义字符,空格就是单纯的空格,输入时可以输入空格

    2、\t 的意思是 :水平制表符。将当前位置移到下一个tab位置。

    3、\r 的意思是: 回车。将当前位置移到本行的开头。

    4、\n 的意思是:回车换行。将当前位置移到下一行的开头。

    5、\f的意思是:换页。将当前位置移到下一页的开头

    在编写的c++程序中,如果是窗口,有时会一闪就消失了,如果不想让其消失,在程序中添加:
    system("pause");
    注意:不要再return 的语句之后加,那样就执行不到了。
    分析:

    在编写的c++程序中,如果是窗口,有时会一闪就消失了,如果不想让其消失,在程序中添加:
    system("pause");
    注意:不要再return 的语句之后加,那样就执行不到了。
    分析:

 十.

a++:a先创建自身的一个副本,然后a自增1,最后返回副本的值

a+=1: 事实上相当于++a

a=a+1: 虽然有点雷同于a+=1,但不同的是此时右值的a和1做相加操作,形成一个副本然后赋值给a,所以有额外操作

++a:将a自增1并返回a 鉴于a++和++a的差别,C++Primer建议用++a作为for循环的递增量

 效率问题:

1.在内建数据类型时(即自增表示式的结果没有被使用,只是简单的用于递增操作),这时这两个表达式的效率是相同的。

2.在自定义数据类型时(主要指有类的情况),由于++a可以返回对象的引用,而a++一定要是返回对象的值(因为局部对象不能返回引用)。可想而知引用的开销当然比直接对对象进行操作要效率高很多,节省很多开销。

前置++和后置++存在本质上的区别:
前置++ 不会产生临时对象
后置++ 在返回时有一个临时对象的创建
在前置++和后置++ 效果相同的时候,最好使用前置++

十一. 结构体

 #include <stdio.h>
struct A {
    int a;
}a;
int main() {
    a.a = 5;
    printf("%d\n", a.a );
    return 0;
}

十二.

 #include <stdio.h>
int a[2][2] = { {0, 1}, {2, 3}};
int main() {
    printf("%d\n", a[1][0]);
    return 0;

a[1]即{2,3} if(c>='0'&&c<='9')

十三. 这句是什么意思 (c语言)

 可以看出在这c是字符型的(char 型),不是数值型,比较的时候是相应的ASCII码比较。
你给出的那就话的意识是:如果c是字符型‘0’,‘1’,‘2’,‘3’.,‘4’,‘5’,‘6’,‘7’,‘8’,‘9’中的某一个的时候,则执行if后面的语句。

'0'是0这个字符,但是如果在这种比较的时候参与运算的这个字符的ASCII值,0的ASCII应该是48,9的是57,if语句里面的意思是这样的,如果c大于等于0且小于等于9的话。。。为什么不直接写c>=0呢,这估计是因为c的数据类型不是int,而是char,所以用这种方式表达

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值