C语言编程经典100题(笔记)

笔记目录


前言

C语言 ; 笔记


一、上嵌_C面试100

1、二分查找

// 二分查找, 折半查找

# include <stdio.h> 

int binary_search(int *arr, int k, int n)
{
	int low = 0;
	int high = n-1;
	int mid;

	while(low <= high)
	{
		mid = (high + low)/2; // 向下取整

		if (arr[mid] > k)
			high = mid - 1;
		else if (arr[mid] < k)
			low  = mid +1;
		else
			return mid;

	}

	return mid;

}


int main(void)
{
	int a[] = {1, 8, 57, 666, 3454};
    
	int mid = binary_search(a, a[3], 5);

	printf("元素 %d 在 a[%d] 位置\n",a[3], mid);

}

// 元素 666 在 a[3] 位置





2、编写一个 C 函数,该函数给出一个字节中被置1 的位的个数

3、编写一个 C 函数,该函数将给定的一个字符串转换成整数。

4、请编写一个 C 函数,该函数将给定的一个整数转换成字符串。

5、实现strcmp函数 。

6、请编写一个 C 函数,该函数将一个字符串逆序。

7、请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值。

8、请编写一个 C 函数,该函数在一个字符串中找到可能的最长的子字符串,该字符串是由同一字符组成的。

9、华为面试题:怎么判断链表中是否有环?

10、有一浮点型数组A,用C语言写一函数实现对浮点数组A进行降序排序,并输出结果,要求要以数组A作为函数的入口.(建议用冒泡排序法)

11、实现双向链表删除一个节点P,在节点P后插入一个节点,写出这两个函数

12、把一个链表反向 。

13、将二维数组行列元素互换,存到另一个数组中。

14、输入一行字符,统计其中有多少个单词。

15、写一个内存拷贝函数,不用任何库函数.就是前些时候本版讨论的那个问题。

16、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少?

17、取一个整数a从右端开始的4~7位。

18、打印出杨辉三角形(要求打印出10行如下图)。

在这里插入图片描述

19、写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

20、809*??=800*??+9*??+1 其中??代表的两位数,8*??的结果为两位数,9*??的结果为3位数。求??代表的两位数,及809*??后的结果。

21、某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的,加密规则如下:每位数字都加上5,然后用和除以10的余数代替该数字,再将第一位和第四位交换,第二位和第三位交换

22、计算字符串中子串出现的次数。

23、有两个磁盘文件A和B,各存放一行字母,要求把这两个文件中的信息合并(按字母顺序排列),输出到一个新文件C中。

二、经典_C基础100

1、三位数

2、求利润

3、平方数

4、第几天

5、数字排序


总结

23/05/25 - 未完结

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值