1.局部变量能否和全局变量重名? 可以,但是局部屏蔽全局,要使用全局变量要用::。 2.结构体默认的字节对齐一般满足三个准则: 1 结构体第一个变量的字节能够被其最宽基本类型成员的大小所整除。 2. 结构体每个成员所占的字节都是成员自身大小的整数倍。 3.结构体的总大小为结构体最宽基本类型成员大小的整数倍。 3.用两个栈实现一个队列的功能? 思路:A,B两个站, 1.先把数据输入A栈 2.再把A栈的数据送入B栈 3.B栈再出栈 4.C语言程序的内存分配 答:一个由 c/C++编译的程序占用的内存分为以下几个部分 1.栈区编译器自动分配,释放。如在函数里面的数据,无需程序员操作 2.堆区需要程序员手动分配和释放(容易犯错)。 5.关键字 static 的作用是什么? 1 在函数体的静态变量在这一函数被调用过程中维持其值不变。 3. 在一个文件内(但在函数体外) ,一个静态变量可以被文件内所用函 数访问,但不能被文件外其它函数访问。 4. 在文件内,一个静态函数只可被这一文件其它函数调用。 6.交换两个变量的值,不使用第三个变量 a=a^b b=a^b a=a^b 7.写出下面程序的运行结果 #include <stdio.h> void getmemory(char *p) { p=(char *) malloc(100); strcpy(p, ”hello world ”); } int main( ) { char *str=NULL; getmemory(str); printf( “%s/n”,str); free(str); return 0; } 答:会运行奔溃,因为在函数上申请空间无法给主函数的指针利用,所以str是野指针,释放野指针会有意想不到的错误出现。 9.求 1000!的未尾有几个 0 #include<stdio.h> int find(int num) { int ret=0; while(num%5==0) { num=num/5; ret++; } return ret; } int main() { int ret;=0 for(int i=0;i<=1000;i+=5) { ret+=find(i); } printf("%d",ret); return 0; } 10.、读文件 file1.txt 的内容(例如): 12 34 56 输出到 file2.txt : 56 34 12
#include<stdio.h>
int main()
{
FILE*fp1,*fp2;
int*a=(int*)malloc(10*sizeof(int));
fp1=fopen("a.txt","r");
fp2=fopen("b.txt","w");
int i=0;
while(fscanf(fp1, ”%d”,&a[i]) != EOF)
i++;
for(;i>=0;i--)
fprintf(fp2,"%d",a[i]);
fclose(fp1);
fclose(fp2);
return 0;
}
本文转载布尔青年:http://blog.qmgua.com/?id=144
|