c语言笔试基础

c语言–形参实参基础

1.发生传值调用时,形参和实参各占一个独立的存储空间。因为值传递。不会修改原值,所以不是一块空间。

2.

char a[] = "xyz", b[] = {'x', 'y', 'z'};
if (strlen(a) > strlen(b))
    printf("a > b\n");
else
    printf("a <= b\n");

strlen函数是从第一个元素开始到遇到第一个’\0’为止字符的个数,由于第二个数组中结束符 ‘\0’位置未知,所以strlen(b)>strlen(a)。

3.

#include "stdio.h"
int func(int x, int y)
{
    return (x + y);
}
int main()
{
    int a = 1, b = 2, c = 3, d = 4, e = 5;
    printf(" %d\n", func((a + b, b + c, c + a), (d, e)));

    return 0;
}

逗号表达式的结果是其最右边表达式的值
4.

以下代码打印的结果是(假设运行在 i386 系列计算机上):
struct st_t  
{
  int status;
  short *pdata;
  char errstr[32];
};

st_t st[16];
char *p = (char *)( st[2].errstr + 32 );
printf( "%d", ( p - (char *)(st) ) );
char*p = (char*)( st[2].errstr + 32 );//第3个的errstr字符串+32后是第4个结构体的首指针
printf( "%d", ( p - (char*)(st) ) );//p减去第0个指针就是求4-0中间有多少字节,就是40*3=120

st_t大小为40
设st起始地址为0
str[2].errstr起始地址为40*2+8=88
p存储的地址为88+32
结果显然为120
5.
对于派生类的构造函数,在定义对象时构造函数的执行顺序为?
1:成员对象的构造函数
2:基类的构造函数
3:派生类本身的构造函数
213
理解:1.类的构造函数可能使用类的对象成员,因此类的对象成员→类的构造函数
2.派生类的构造函数可能使用父类的对象成员,因此基类的构造函数→派生类的构造函数
3.析构和构造刚好相反~
6.
在计算机中,表示汉字时,UTF-16是用2个字节,UTF-8是用三个字节。如果保存成文本文件,还需要标识,UTF-16占用两个字节,UTF-8占用三个字节。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值