百度文库 - 让每个人平等地提升自我
一、 简答题。 ( 共14题 ,共0分,每题0分 )
1. int i=10, j=10, k=3; k*=i+j; k最后的值是? 答:k = 60 ok
2. 写出程序结果:
void Func(char str[100])
{
printf(\sizeof(str)); }
答:4或者8(如果操作系统为32位则为4,64位则为8) 是地址吗
3. 写出sizeof(struct name2)的结果 struct name2{ char str; int num; short x; }
不会!看结构
答:此题考察结构对齐的知识,结果为12 4. 写出sizeof(struct name1) 的结果 struct name1{ char str; short x; int num; }
不会!
答:同样考察的是结构对齐的知识,结果为8
5. A.c 和B.c两个c文件中使用了两个相同名字的static变量,编译的时候会不会有问题?这两个static变量会保存到哪里(栈还是堆或者其他的)?
答:没有问题,static变量只在当前文件中有效,也就是说static变量的作用域属于所在的文件域。
1
百度文库 - 让每个人平等地提升自我
static变量保存在全局/静态区
6. (void *)ptr 和 (*(void**))ptr的结果是否相同?
答:相同。首先第一个(void *)ptr将ptr转换为空指针类型(一级指针),(*(void**))ptr相当于先将ptr转换为空类型指针(二级指针)。二级指针是指向指针的指针,在前面加上*(解指针),也就是空类型指针了(一级指针)。 7. #define DOUBLE(x) x+x ,i = 5*DOUBLE(5); i 是多少?
答: i = 5 * 5+5 = 30;看书上的结构理解下意思 8. 下面的声明都是什么意思? const int a; int const a; const int *a; int * const a;
int const * const a ;
答:第一个定义常量a,第二个也是定义常量a,第三个定义常量指针a,第四个定义指针常量a,第五个定义指向常量的指针常量(相当于const引用)。 9. 关键字const是什么含意?
答:1.const修饰基本类型,比如int类型为常量。
2.const修饰指针分为两种情况:指针常量或者常量指针。 3.const修饰类的成员函数,则在此函数中无法修改类中数据成员的值。??? 4.const修饰返回值意味着返回值不可被改变
5.const修饰函数参数,意味着函数参数不能被有意或者无意修改。 10. do……while和while……do有什么区别?
答:do…while先执行循环再判断条件,while…do先进行判断再执行循环。 11.语句for(;1;)有什么问题?它是什么意思?
他的意思是循环条件永远为真,不停地进行循环操作,除非循环体中有强制退出循环的语句才能终止循环,其实功能就相当于while(1)
2
百度文库 - 让每个人平等地提升自我
答:无限循环
12.如何引用一个已经定义过的全局变量?
答:题目说的有点不太清楚,如果是引用其它文件中定义的全局变量用extern,如果是在本文件中引用的话用作用域运算符:: 是在c++中的
13.switch()结构中条件表达式的类型可以是什么类型?
答:整型,字符型,常量,枚举类型
14..h头文件中的ifndef/define/endif的作用?
答:预编译命令,一般是用来防止头文件多重包含 结构? 二、 问答题。 ( 共63题 ,共0分,每题0分 ) 1.关键字static的作用是什么?
第一:隐藏。static全局变量只在本文件中可访问,其它文件无法访问。 第二:持久保存变量的内容。static变量一经初始化便到程序运行结束后才 会被释放。
第三:默认初始化为0.static变量会被编译器默认初始化为0
2.int a[3];
a[0]=0; a[1]=1; a[2]=2; int *p, *q; p=a; q=&a[2];
则a[q-p]=a[2]
这段程序执行完之后数组中元素的值分别是什么?q-p=2
答:0, 1, 2
3
c语言题库(含答案)



