本文主要是介绍一些问题的小心得,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
问题1
int main() {unsigned char a = 200;unsigned char b = 100;unsigned char c = 0;c = a + b;printf(“%d %d”, a+b,c);return 0; }
问题是求这个程序的执行结果;
200,100,都是整形,左边的表达式都是char类型,会发生转换,整形占4个字节,而char占一个字节,200是11001000 ,100是1100100,所以 两个数转成二进制后转字符型都是可以完全保留,a是200,b是100,此后执行c=a+b操作,先执行a+b,然后因为c是char类型,所以加了之后再转换,300是100101100,留下低八位字节转换成十进制为44;
问题2
unsigned int a= 0x1234; unsigned char b=*(unsigned char *)&a;
在32位大端模式处理器上变量b等于( )
大端模式小端模式,小端模式低位低地址,高位高地址,
而大端模式呢,低位高地址,高位低地址。
在vs内存地址中写一下的话,那就是00 00 12 34,而平常写的地址和计算机的内存地址是逆置的,所以此时强转char类型的话,剩下的一个字节是00.
问题3
打印杨辉三角
在这里我是直接照着如下链接打的一遍觉得有些小的问题
(11条消息) 用c语言输出杨辉三角形_li1376417539的博客-CSDN博客_杨辉三角c语言
首先直接初始化了一个100*100的数组,申请浪费的空间太多了,但是算法的思想和数学中一致,最左边的一列直接全打印1;其他的元素按照arr[row][col] = arr[row - 1][col] + arr[row - 1][col - 1];这一条核心语句来写
问题4
日本某地发生了一件谋杀案,警察通过排查确定杀人凶手必为4个嫌疑犯的一个。
以下为4个嫌疑犯的供词:
A说:不是我。
B说:是C。
C说:是D。
D说:C在胡说
已知3个人说了真话,1个人说的是假话。
现在请根据这些信息,写一个程序来确定到底谁是凶手。
思想值a,b,c,d分别用1,2,3,4表示,a的话就是murder!=1;,b的话就是murder=3;c的话就是murder=4;d的话是c在胡说,那么就理解为murder!=4;
三个人说真话,一个人是假话,三个逻辑表达式结果是1.一个是0,把他们相加等于3就是判定条件。
这篇关于一些问题的小心得的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!