对C语言的知识的回忆

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

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值