C复习-查缺补漏-更新中

Q
编写一条scanf语句,读取两个整数,保存至quantity和price,再读取一个字符串,保存至字符数组department中

scanf("%d %d %s", &quantity, &price, department);

Q
while( gets( input ) != NULL ) {}这句代码可能出现什么问题?
如果输入行很长,input数组会溢出。使用fgets并提供数组长度是更好的选择。

Q
编写程序,从标准输入读取再打印到标准输出中,并在每行前面加上行号。需要保证输入行的长度没有限制。

因为不限制行长度,所以使用getchar,另外判断行尾。

int main() {
	int ch;
	int line = 0; // 行号
	int at_beginning = 1; // 表示是否在开头
	while ((ch = getchar()) != EOF) {
		// 先打印行号
		if (at_beginning == 1) {
			printf("%d ", line);
			line += 1;
			at_beginning = 0;
		}
		// 打印字符
		putchar(ch);
		if (ch == '\n')
			at_beginning = 1;
	}
	return 0;
}

Q
假如一个程序需要运行在两台机器上,两台的缺省int长度分别是16和32位,长整型缺省是32和64位。程序使用的某些变量值足够存到int中,某些需要long,为了减少移植时的修改,应该怎么写?

创建一个int_size.h的文件(编写的时候指定位数),然后使用#define指令

32位机器的可以这样写

typedef signed char int8;
typedef short int int16;
typedef int int32;
typedef int defint8;
typedef int defint16;
typedef int defint32;

16位机器可以这样写

typedef signed char int8;
typedef short int int16;
typedef int int32;
typedef int defint8;
typedef int defint16;
typedef int defint32;

Q
如果按%s输出一个enum变量,会打印出什么?

编译器可能会报错,输出未知。应该使用%d输出。

Q
假定一个函数包含了一个自动变量,这个函数在同一行被调用了两次,那么函数第二次调用开始时该自动变量的值和第一次调用即将结束时的值是相同的吗?

可能不相同,也可能相同。在某些架构的机器中,一个硬件中断将把机器的状态信息压到堆栈伤,它们将破坏这些变量。

自动变量auto,只有定义时才创建,当定义它们的函数返回时,系统回收变量所占的存储空间。一般情况下,不作专门说明的局部变量都是自动变量(也可以用auto说明)。举例:块语句中的变量、函数的形参

Q

int func() {
	static int counter = 1;
	return ++counter;
}

int answer = func() - func() * func();

问answer的值是多少?

-和*的计算顺序没问题,但是func()的调用顺序是由编译器决定的,所以answer的值是不一定的。可能是-10 , -5, -2

Q
下面的表达式有何不同?

memchr( buffer, 0, SIZE ) - buffer
strlen( buffer )

主要是第一句。这句也是计算字符串长度的,但是结果的类型是ptrdiff_t,但strlen的结果是size_t。而且如果buffer的数据不是以NUL结尾的话,memchr会返回一个NULL指针,那么减buffer是一个无意义的值;但strlen会在buffer后继续查找,直到找到一个NUL字节

Q
有些C编译器提供了一个称为alloca的函数,它与malloc的区别在于它再堆栈上分配内存。这种类型的分配有什么优点和缺点?

优点:当分配内存的函数返回时,这块内存会自动释放,这是由堆栈的工作方式决定的,可以保证不会出现内存泄漏。缺点:由于函数返回时,被分配的内存将消失,所以它不能用于存储那些需要回传给调用程序的数据。

内容概要:本文介绍了MATLAB实现DBN-RBF深度置信网络结合RBF神经网络多输入单输出回归预测的详细项目实例。项目旨在通过深度置信网络(DBN)和径向基函数神经网络(RBF)的结合,设计出一种高效的回归预测模型,以应对高维数据和非线性关系的挑战。DBN用于无监督特征提取,RBF用于快速回归,两者结合显著提升了预测精度和模型泛化能力。文详细描述了项目的背景、目标、挑战、解决方案、模型架构、代码实现、GUI设计、性能评估及未来改进方向。 适合人群:具备一定编程基础,对机器学习和深度学习有一定了解的研发人员,尤其是从事金融预测、医疗健康、智能制造等领域的工程师和技术人员。 使用场景及目标:①解决高维数据的特征提取难题,提升非线性回归的拟合精度;②通过无监督学习与快速训练能力的结合,提高模型的预测精度和泛化能力;③应用于金融预测、医疗健康、智能制造等多个领域,提供高效的回归预测工具;④通过实时数据流处理和GPU加速推理,确保系统在实时应用的快速响应。 其他说明:此项目不仅提供了详细的理论分析和代码实现,还涵盖了系统架构设计、模型部署与应用、安全性与用户隐私保护等方面的全面指导。通过结合其他深度学习模型、多任务学习、增量学习等技术,项目具备广阔的扩展性和应用前景。系统还支持自动化CI/CD管道、API服务与业务集成、前端展示与结果导出等功能,确保了系统的高可用性和易用性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值