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