分类: C/C++
2009-08-01 15:08:35
一、我们常说C语言是一种基于函数和栈的语言。那么,C语言函数中的栈与普通数据结构上提到的栈有什么区别?(至少回答两点)
二、函数指针与普通数据类型指针有什么区别?
三、如下定义数组是否合法?并说明理由。
int n = 1024;
int a[n];
四、下面这个结构体的长度是多少??
struct test
{
char c1;
int i1;
short s1;
char c2;
};
五、static关键字的作用?
六、const关键字的作用?
七、char *a[10]和char (*a)[10]有什么区别?
八、下面这段程序的打印信息是什么呢?
#include
void fun(int a); int main(void) { int i = 9; short *p = NULL; short a[100] = {1, }; printf("sizeof i = %d\n",i); printf("sizeof(i) = %d\n", i); printf("sizeof(*p) = %d\n", sizeof(*p)); printf("sizeof(a) = %d\n", sizeof(a)); printf("sizeof(a[101]) = %d\n", sizeof(a[101])); printf("%d\n", a[101]); printf("sizeof(&a) = %d\n", sizeof(&a)); printf("sizeof(&a[0]) = %d\n", sizeof(&a[0])); fun(a[101]); return 0; } void fun(int a) { printf("sizeof(a[100] = %d\n", sizeof(a)); }
九、有一个32位变量a,将a的bit3~bit5置为2(即0b010),其它几位保持不变。
十、有如下变量定义,请依次写出后面四条赋值语句的左值:
int ix;
unsigned int ux;
char cx = (char)0xff;
unsigned char bx = (unsigned char)0xff;
ix = cx;
ix = bx;
ux = cx;
ux = bx;
十一、指出下面代码的错误之处:
typedef struct SS
{
int x, y, z;
} *p;
p = malloc(sizeof(*p));
// TODO: add code here
free(&p->y);
十二、下面代码有什么问题?
char *a = “abc”, b[] = “abc”;
int main()
{
char *c = “abc”;
char d[] = “123”;
strncpy(c, d, 10);
}
十三、下面代码中*p的值是多少?(用16进制表示)
char a[] = {1, 2, 3, 4, 5, 6, 7, 8};
int *p = (int *)a + 1;