`
huobengluantiao8
  • 浏览: 1034045 次
文章分类
社区版块
存档分类
最新评论

C语言面试题 unsigned int ,i?i, ab 交换

 
阅读更多
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>文件;

分享到:
评论

相关推荐

    C语言链表类面试题.docx

    C语言链表类面试题.docx struct node { int data; struct node* next; }; 创建单链表的程序为: struct node* create(unsigned int n) { //创建长度为n的单链表 assert(n &gt; 0); node* head; head = new ...

    源码讲解int和unsigned int 的区别,每一位是干什么的

    源码讲解int和unsigned int 的区别,每一位是干什么的

    把unsigned int 对调

    把unsigned int 对调

    float、int、unsigned int数据与其在实际内存中表示的相互转换小程序

    float、int、unsigned int数据与其在实际内存中表示的相互转换小程序

    C_函数(标注版).pdf相关函数 signal,sleep 表头文件 #include<unistd.h> 定义函数 unsigned int alarm(unsigned int seconds);

    定义函数 unsigned int alarm(unsigned int seconds); 函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目前的进程。如果参数 seconds 为0,则之前设置的闹钟会被取消,并将剩下的时间返回...

    volatile_unsigned_int

    讲述了volatile_unsigned_int地址映射的使用说明。

    89c52精确延时子函数

    unsigned?int?i?=?3;?????//?注意i,j的数据类型, unsigned?char?j?=?3;????//?不同的数据类型延时有很大不同 //-----------------各种精确延时语句----------------------------------- while(?(i--)!=1?);?????...

    面试中常见的C语言问题

    1. switch(c) 语句中 c 可以是 int, long, char, float, unsigned int 类型? 其实这个题目很基础,c应该是整型或者可以隐式转换为整型的数据,很明显不能是实型(float、double)。所以这个命题是错误的。 1.3 const...

    无限深度整数,您可以把unsigned int的上限无限扩展

    用C++标准库编写,您可以把unsigned int的上限无限扩展,直至你的计算机的内存被耗尽为止。它的作用是诸如计算任意一个正整数的阶乘、执行任意长度的整数的计算等;当然,你也可以根据源码来编写整数、实数等更为...

    基于C语言char与unsigned char的区别介绍

    在C中,默认的基础数据类型均为signed,现在我们以char为例,说明(signed) char与unsigned char之间的区别。 首先在内存中,char与unsigned char没有什么不同,都是一个字节,唯一的区别是,char的最高位为符号位,...

    深入解析unsigned int 和 int

    2.unsigned—–无符号,修饰int 、char3.long——长型,修饰int 、double4.short——短型,修饰int 我们主要来看一下signed和unsigned与int之间的联系与区别。什么叫做有符号,什么叫做无符号这个问题其实很简单,...

    HY-TFT液晶底板原理图

    void address_set(unsigned int x1,unsigned int y1,unsigned int x2,unsigned int y2) { main_W_com_data(0x0020,x1);//设置X坐标位置 main_W_com_data(0x0021,y1);//设置Y坐标位置 main_W_com_data(0x0050,x1)...

    c8051F340单片机SSD1963芯片RGB16位LCD屏应用驱动源码.zip

    void WriteComm(unsigned int i); void WriteData(unsigned int i); void WriteDispData(unsigned char dataH,unsigned char dataL); void SSD1963_Init(void); void WriteDispData(unsigned char DataH,unsigned ...

    求32位机器上unsigned int的最大值及int的最大值的解决方法

    代码如下:#include &lt;stdio&gt;int main(int argc, char *argv[]){ unsigned int max_int = 0-1; printf(“The max value of unsigned int on 32 machine: %u/n”, max_int);} 代码如下:#include &lt;stdio&gt;int main(int ...

    BINTOHEX.zip

    unsigned int i; unsigned int wdclksel = 0x40000010; unsigned int wdtc = 0x40000004; unsigned int wdmod = 0x40000000; unsigned int wdfeed = 0x40000008; *(unsigned int*)wdclksel = 0x01; *...

    89S51 0-999 计数程序

    static unsigned int i; unsigned char code LEDDis[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF}; void Delay(unsigned int ii) { unsigned int jj; for(;ii&gt;0;ii--) for(jj=0;jj;jj++) {;} ...

    计算机二级考试c语言模拟试题

    计算机二级考试c语言模拟试题应用非常好在C语言中,int,char,和short三种类型数据所占用的内存 A.均为2个字节 B.由用户自己定义 C.由所用机器的机器字长决定 D.是任意的 21.高性能int类型的数据长度为2个字节,则 ...

    c语言的itoa,浮点,int整数转换为字符串,整型转十六进制字符,兼容单片机STM等C开发用

    c语言的itoa:char *m_itoa(int n) 整数转换为字符串。char *m_itoh(unsigned int num, int length, int prefix)整数转换为0x十六进制字符串。num: 要转换的数字,无视符号。length:指定字节长度,一字节为2个十六进制...

    显示屏lcd1602

    unsigned int i,j; for(i=0;i;i++) for(j=0;j;j++); } main() { unsigned int Count = 0; LCD_Initial(); GotoXY(0,0); Print("The 1602LCD Test"); GotoXY(0,1); Print("GO: by JJJ"); while(1) { ...

    整数运算_atom_整数运算_

    (C语言:typedef unsigned int word;),基本要求实现六个函数:word atom(char*):字符串转换成对应的二进制。char* mtoa(word):二进制转换成字符串。word madd(wordword):二进制所表示数的加法。word msub(word...

Global site tag (gtag.js) - Google Analytics