下面字符串定义错误的是( A )
A. char p[5] = “hello”;
B. char p[] = “hello”;
C. char p[] = {‘h’ , ’e’ , ’l’ , ’l’ , ’o’};
D. char *p = “hello”;
解析:字符串需要包括字符串结束标识符’\0’,”hello”算上\0之后是6个字符,超出了定义的范围大小。设char str[4][5];所定义的数组在内存中的起始地址为50,则数组元素str[3][3]的地址的十进制是( B )
A.65
B.68
C.58
D.59
解析:要注意是数组下标是从0开始的。
从str[0][0] 到str[3][3]有5 X 3 + 3 = 18个数据,又因为char为1字节,所以str[3][3]的地址为50 + 18 X 1 = 68。若int占2个字节,char占1个字节,float占4个字节,sizeof(xc)大小是:( D )
A.16 B.18 C.22 D.20
struct stu
{
union{
char bj[5];
int bh[2];
}class;
char xm[8];
float cj;
}xc;
解析:内存对齐规定:结构体的总大小为结构体最宽基本类型成员大小的整数倍
可见最宽的是float是4.,数组的形式只是多个数据放在一起而已。
联合体里面总共是5个字节&#
c面试试卷
最新推荐文章于 2023-06-30 18:45:16 发布
本文是一份C语言的面试试题集,涵盖了字符串定义错误判断、内存地址计算、数据类型大小、指针操作、栈的性质、数值范围、单片机知识、网络协议以及volatile关键字的用途等知识点,适合准备C语言面试者参考。
摘要由CSDN通过智能技术生成