c语言题目

一些关于c语言的题目


一、计算程序输出

注意:无符号类型怎么计算。
在这里插入图片描述

首先这里i是无符号类型,j是普通整形。进入循环中i每次减3到-1,因为为无符号类型,要取-1的原码反码补码。补码变为十进制为254然后接着循环,循环84次后还余2,2-3等于-1。-1取原反补为255,接着循环85次结束。

在这里插入图片描述

二、以下程序运行时,若输入1abcedf2df<回车>输出结果是

在这里插入图片描述
while的判断条件为输入的不能是回车,如果a%2不等于0也就是不能为偶数位,并且字符串从a开始从z结束。把小写变为大写。
1AbCeDf2dF

将flag的第二个bit置0

在这里插入图片描述
先把2的原码写出啦来,0000…0010。
先把flag右移的排除,因为不确定flag的数是什么。
异或的话也不确定flag的那个位置的数是相同还是不同,相同置为0不同置为1。
按位或是有1就为1,全0为0。flag的数也是不确定的。
按位与是全1为1,有0就为0。并且这个a选项已经取反了0111…1101,也就是说这里已经是0了,用按位与的话无论flag这个位置的数是0还是1都为0。

结构体大小

在这里插入图片描述
在这里插入图片描述
在默认对其数为4的情况下

在这里插入图片描述
在第一个结构体中,先是double占八个字节,紧接着是char占一个字节,但是下面的一个为int类型对其数为4的倍数且默认对齐数也是4所以对齐到12。大小为16
在第二个结构体中,char占一个字节,double需要占八个字节并且默认对其数为4所以对其到4,int刚好从12开始占四个字节。大小为16。

在默认对其数为8的情况下:
在这里插入图片描述

在第一个结构体中,先放入double类型8个字节,然后放入char类型。最后的int类型这里注意在默认对其数和结构体中类型的对其数哪个小对其哪个。就那这个来说,默认对其数是8,但是int的对其数是4,4要小所以要对其4的倍数也就是从12开始。结构体大小为16。
在第二个结构体中,先放入一个字节的char类型。然后放入double类型的八个字节,且因为默认对其数是8放入8个字节。然后是int类型放入4个字节。到这里一共是20个字节,但是结构体的大小为最大对其数的倍数。所以结构体大小为24。

下列C程序执行后c输出结果为()

在这里插入图片描述
加减乘除时,不用管类型。
-3
原码:1000…0011
反码:1111…1100
补码:1111…1101
2
0000…0010
c
1111…1111

c的原码是1000…0001

设有定义char *p[]={“Shanghai”,“Beijing”,“Honkong”};则结果为j字符的表达式是()

在这里插入图片描述

递归

在这里插入图片描述
先算i=f(f(2))里的f2,2不大于二返回3。i=f(3)返回xf(x-1),3f(2)也就是3*3=9。

二维数组

在这里插入图片描述
在这里插入图片描述

四行四列

左移操作符

在这里插入图片描述
1的原码
0000 …0000 0001
左移五个之后
0000…0010 0000
所以(1<<5)为2的5次方为32,后面减了一个1就为31。
21和31进行异或
0000…0001 1111
0000…0001 0101
结果为
0000…0000 1010

在这里插入图片描述

指针

在这里插入图片描述

编译链接

在这里插入图片描述

宏定义

在这里插入图片描述
z=2*(3+1+((4+1)*5+1))=60
注意括号

优先级

在这里插入图片描述
转换优先级从高到低,double---->int----->short------>float----->char。在这个题中,a*b先转换成int类型,然后加double类型的转换为double类型,最后减float类型但是float类型优先级比double低,所以是double类型。

  • 13
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值