【C语言】C语言基础20题

这篇博客详细解析了C语言基础的20道题目,涵盖类型隐式转换、数组指针、静态变量、字符串结束符、const关键字、volatile的作用等核心概念。通过实例和解释帮助读者理解C语言中的关键知识点。
摘要由CSDN通过智能技术生成

考点:类型隐式转换

答案:>6

解释:当表达式中存在有符号数和无符号数时,所有操作数都自动转换为无符号数

a =   6   = (0000 0000 0000 0000 0000 0000 0000 0110)2        以32位系统为例

b = -20  = (1000 0000 0000 0000 0000 0000 0001 0100)2

b的补码 = (1111 1111  1111  1111  1111 1111  1110  1100)2        b=-20转换为无符号数得到的数,是一个非常大的整数

若题目输出部分改成:

(a+b>6) ? printf(">6") : printf("<=6");

输出结果相同

 


考点:读越界,写越界

答案:段错误

strcpy( char *str1,char *str2)的工作原理是,扫描str2指向的内存,逐个字符赋给s1所指向的内存,直到碰到'\0'。

因为在这种赋值方式下,str1={a,a,a,a,a,a,a,a,a,a},没有'\0',所以赋值不能结束,所以使用strcpy函数赋值时字节数具有不确定性,不知道在末尾会赋什么值。


考点:static、变量

答案:i = 10 ;j = 1

解释:

1、被static修饰的变量存储在静态数据区,当函数运行结束后,该变量不会被释放,函数在下一次被运行时依然可以使用其值

2、静态变量只被初始化一次,函数下次运行会直接跳过初始化(static int i = 0  // )


考点:数组和指针的区别,sizeof

答案:

(1)4     (sizeof(p)的意思是,指针p占4个字节)

(2)4     (sizeof(*p)的意思是,指针p指向的int类型占4个字节)

(3)400  (sizeof(a)的意思是,数组a一共占4*100=400个字节)

(4)4      (a[100]是一个int类型的元素,占4个字节)感觉a[100]这样是不太对的啊???越界了吧??

(5)4      (sizeof(&a)中,a代表数组的首元素,&a表示首元素的地址,地址占4个字节) 

(6)4      (a[0]是数组的第一个元素,地址占4个字节)

(7)4      (当数组作为函数的参数进行传递时,会自动变为同类型的指针sizeof(b) ---> sizof(int *),指针占4个字节)

 


考点:字符串结束符,char 的范围

答案:255

解析:a[0] = -1; a[1] = -2 ; a[2] = -3 ... a[127] = -128 ; a[128] = 127 ; a[129] = 126 ... a[255] = 0


考点:const

答案:

(1)p的指向可改,p指向的内容不可改(const修饰的是*p)

(2)p的指向可改,p指向的内容不可改(const修饰的是*p)

(3)p的指向不可改,p指向的内容可改(const修饰的是p)

(4)p的指向不可改,p指向的内容也不可改(const既修饰了*p也修饰了p)


  • 9
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值