一些易忽视的c知识点,顺便测测你的c水平

来源:互联网 发布:程序员工作经验怎么写 编辑:程序博客网 时间:2024/06/05 16:04
下面的十个c语言问题,极具代表性,特摘录出来供大家分享:
1. c语言具有多少个关键字?试试你能说出来多少个?
2. printf(“What???!!!”); 输出是什么?
3. sizeof()是函数吗?那下面四个写法中,哪几个是正确的写法,哪几个错误的写法?
int i=0;
A)sizeof(int)    B)sizeof(i)   C)sizeof int  D)sizeof i
4. 你.对sizeof真正了解多少? 
int *p=NULL; 
sizeof(p)的值是多少?sizeof(*p)呢?
很简单吧,那么下面的结果又是多少呢?
int a[100];
sizeof(a)的值是多少?
sizeof(a[100])呢?//注意是100哟!
sizeof(&a)呢?
sizeof(&a[0])呢?
int b[100];
void fun(int b[100])
{
 sizeof(b);//sizeof(b)的值是多少?
 sizeof(&b);呢????
}
typedef struct s{
char a[10];
int b;
}ss;
sizeof(ss) 的值是多少?
5. sizeof(“”)和strlen(“”)相等吗?为什么?
6. 正数在计算机内部是怎么存取的?负数呢?那考虑下下面程序结果是多少?
int main()
{
 char a[1024];
 int i;
 for(i=0;i<1000;i++)
 {
  a[i]=-1-i;
}
printf(“%d”,strlen(a));
return 0;
}
7. return关键字主要用来终止一个函数并返回其后面跟着的值。那么return什么都能返回吗?
char * fun()
{
 char str[30]=”Hello World!”;
 return str;
}
上面的程序有毛病吗?请说明原因。
void fun()
{
return;
}
上面的程序有毛病吗?如果没有毛病,那么return返回的是什么?
8. const int MAXNUM=100;
此时的MAXNUM是常量吗?MAXNUM的值一定不能改变吗?如能,请举出反例,并说明原因。
9. 空结构体有多大?并解释原因。
struct student_exa1
{
}stu1;
sizeof(stu1)的值是多少?
struct student_exa2
{
int i;
int a[];
}stu2;
sizeof(stu2)的值是多少?
stu2 *p=(stu2 *)malloc(sizeof(stu2)+100*sizeof(int));
此时sizeof(stu2)的值又是多少?
结果一定很诡异吧……
10. 什么是大端模式?什么是小端模式?
union{
 int i;
 char a[2];
}*p,u;
p=&u;
p->a[0]=0x39;
p->a[1]=0x38;
那么p->i的值是多少?(假如计算机的存储模式为小端模式)

 
最后一句话与大家共勉:
别只顾着你键盘上的W、A、S、D四个键了,多按按F10和F11吧……
0 0
原创粉丝点击