C语言面试题 unsigned int ,i?i, ab 交换
来源:互联网 发布:化妆品网络营销策划 编辑:程序博客网 时间:2024/06/07 01:00
1、unsigned int 类型的数据与int类型的数据运算后自动转化为unsigned int 类型。
比如说-20和6运算后就会变成一个很大的数;
下面解释一个判断语句:
(a+b>6)?{
c=1
}:(c=0);
具体的意思就是如果a+b>6则c+1,否则C=0;
// %f.2:表示的意思是小数点后保留几位;
[color=orange]2、隐式类型转换:[/color]
在混合类型的算式表达式中,最宽的数据类型肩负起了目标转换类型的责任,
这被称为算术转换。(Arithmetic Conversion)
int ab = 4;
double ab = 4.111;
此时ab=4.0;
表达式不同类型间的赋值】
在这时候目标转换类型是被赋值的对象,
用一个表达式传递给一个函数,表达式类型和形参类型不同: 此时的目标值是形参的值;
function momo(double) momo(2) 结果值是double type;
函数返回值和i形参不同type
double difference(int );
目标类型为函数返回值类型;
3、 i?i
itn i = 3,j = 4;
i?i++;++j;
printf("%d %d\n",i,j); the answer is 4,4;
等价于:(
if(i=true){
i++
}else{
++j;
}
)
4、很纠结的式子,:i++j;
mean is :first:i++;
next: +j;
5、最扯淡的分析,
x = x+1; x+=1;x++ 这三个式子哪个效率最高:
从她得执行过程分析:
第一个:先读取右X地址
X+1;
读取做X的地址;
将右值传给左边的X;
第二个:读取右X的地址;
x+1
得到值传给X(X地址早已经读出);
第三个:效率最高
读取有X的地址;
X自增1.
6、编程规范方面:
‘A’==a比a=='A'合适: because 常量是不能被赋值的少写一个‘=’时能检查出错误
7、a、b交换:(神奇的算最大值的方法)
扩展:abs( int x )是求整数的绝对值的 ,
fabs( double x )是精确到双精度浮点型的求绝对值的
简单的说就是保留的精度位数更高
求两个数中最大的那个:
int max = ((a+b)+abs(a-b))/2(so牛逼);
int c = a-b;
char *strs[2] = {"a大","b大"};
c = unsigned(c)>>(sizeof(int)*8-1) ;
c=a-b,假如a<b的话,c为负数,转换为无符号数的话,最高位将是1
第二句c=unsigned(c)>>(sizeof(int)*8-1);就是求c的最高位,
之后只要判断是否为1就可以知道a和b哪个大了
----0、真正的交换来啦:
不用中间变量交换:a、b;
a^b 表示 a 和b 进行 异或运算
a=a^b;
b=a^b;
a=a^b;
8、c、c++的区别;
(1)、c++支持函数的重载,c不支持,c++中的 void foo(int x,int y).
被C编译后就成了 void _foo();
(2)、头文件中的ifndef、define、endif是防止头文件被重复引用的!!
(3)、<filename.h>是在标准库路径开始搜索的
"filename.h"是从用户的工作路径开始搜索的!!
9、如何判断一段程序是C还是C++;
1、C是void main()而标准C++是int main() ;
2、文件就不同
c++有输入输出流文件即#include<iostream>
c用的是scanf 和printf
而c++用的是cout 和cin
3、c++有类的定义,c是没有的
4、C++在编译时定义了_cplusplus,C编译时定义了_STDC.
10、主函数想不到的地方,
在main函数退出执行之后,可以使用atexit()函数注册一个函数,
注意需要<stdlib.h>文件;
比如说-20和6运算后就会变成一个很大的数;
下面解释一个判断语句:
(a+b>6)?{
c=1
}:(c=0);
具体的意思就是如果a+b>6则c+1,否则C=0;
// %f.2:表示的意思是小数点后保留几位;
[color=orange]2、隐式类型转换:[/color]
在混合类型的算式表达式中,最宽的数据类型肩负起了目标转换类型的责任,
这被称为算术转换。(Arithmetic Conversion)
int ab = 4;
double ab = 4.111;
此时ab=4.0;
表达式不同类型间的赋值】
在这时候目标转换类型是被赋值的对象,
用一个表达式传递给一个函数,表达式类型和形参类型不同: 此时的目标值是形参的值;
function momo(double) momo(2) 结果值是double type;
函数返回值和i形参不同type
double difference(int );
目标类型为函数返回值类型;
3、 i?i
itn i = 3,j = 4;
i?i++;++j;
printf("%d %d\n",i,j); the answer is 4,4;
等价于:(
if(i=true){
i++
}else{
++j;
}
)
4、很纠结的式子,:i++j;
mean is :first:i++;
next: +j;
5、最扯淡的分析,
x = x+1; x+=1;x++ 这三个式子哪个效率最高:
从她得执行过程分析:
第一个:先读取右X地址
X+1;
读取做X的地址;
将右值传给左边的X;
第二个:读取右X的地址;
x+1
得到值传给X(X地址早已经读出);
第三个:效率最高
读取有X的地址;
X自增1.
6、编程规范方面:
‘A’==a比a=='A'合适: because 常量是不能被赋值的少写一个‘=’时能检查出错误
7、a、b交换:(神奇的算最大值的方法)
扩展:abs( int x )是求整数的绝对值的 ,
fabs( double x )是精确到双精度浮点型的求绝对值的
简单的说就是保留的精度位数更高
求两个数中最大的那个:
int max = ((a+b)+abs(a-b))/2(so牛逼);
int c = a-b;
char *strs[2] = {"a大","b大"};
c = unsigned(c)>>(sizeof(int)*8-1) ;
c=a-b,假如a<b的话,c为负数,转换为无符号数的话,最高位将是1
第二句c=unsigned(c)>>(sizeof(int)*8-1);就是求c的最高位,
之后只要判断是否为1就可以知道a和b哪个大了
----0、真正的交换来啦:
不用中间变量交换:a、b;
a^b 表示 a 和b 进行 异或运算
a=a^b;
b=a^b;
a=a^b;
8、c、c++的区别;
(1)、c++支持函数的重载,c不支持,c++中的 void foo(int x,int y).
被C编译后就成了 void _foo();
(2)、头文件中的ifndef、define、endif是防止头文件被重复引用的!!
(3)、<filename.h>是在标准库路径开始搜索的
"filename.h"是从用户的工作路径开始搜索的!!
9、如何判断一段程序是C还是C++;
1、C是void main()而标准C++是int main() ;
2、文件就不同
c++有输入输出流文件即#include<iostream>
c用的是scanf 和printf
而c++用的是cout 和cin
3、c++有类的定义,c是没有的
4、C++在编译时定义了_cplusplus,C编译时定义了_STDC.
10、主函数想不到的地方,
在main函数退出执行之后,可以使用atexit()函数注册一个函数,
注意需要<stdlib.h>文件;
- C语言面试题 unsigned int ,i?i, ab 交换
- linux c/c++ unsigned int i;i永远>=0了
- C/C++面试题:i++与++i哪个效率更高?
- C/C++面试题:i++与++i哪个效率更高?
- unsigned与signed之间的区别;微软试题已知unsigned int i=3;unsigned j;输出j=i*(-1)的结果详解
- [C语言]unsigned int与 int
- 嵌入式C语言面试题汇总解答(I)--嵌入式程序员必看
- Java面试题之i=i++
- 很有意思的面试题i++,++i
- C语言++i和i++
- C++面试题之i++面试题
- C语言数组特性-取下标运算中的交换律----i[a] == a[i]
- int i=-20; unsigned int j = 10; i+j;的问题
- C语言 算术转换 unsigned signed int
- C语言:探测 unsigned int 的边界
- 面试题:不用第三变量交换ab值
- 【C语言】【面试题】【笔试题】使用有限空间,不使用库函数,逆置“student a am i”
- 【C语言】【面试题】【笔试题】使用有限空间,不使用库函数,逆置“student a am i”
- 禅道程序员的10条原则
- C语言重点知识,面试必备!!
- Windows下的Objective-C集成开发环境(IDE)
- Fckeditor漏洞总结
- 【windows8开发】开发平台与开发框架
- C语言面试题 unsigned int ,i?i, ab 交换
- ORA-12154: TNS: 无法解析指定的连接标识符
- 多态
- 在eclipse3.7中配置hadoop1.0.1插件
- Oracle 密码文件
- syWebEditor的一个通杀漏洞
- 将指定SQL的执行计划从共享池删除
- 文件上传字符截断与NC提交技巧
- VirtualBox 不能为虚拟电脑 openfiler 打开一个新任务