C语言题目1

字符串的打印

字符串的结束标志"\0" 而arr里没有\0

没有办法找到结束 所以无法计算长度 是随机值

要在{'b','i','t','\0'}计算长度是3

字符表示 c : \t e s t \121

\xdd

打印长度为7

局部定义优先

当局部和全局相同变量时 局部变量优先

main内是局部变量 所以打印 为1

计算数的余数和商

int main() {

int a=0;

int b=0;

int shang=0;

int yushu=0;

scanf("%d %d",&a,&b);

shang=a/b;

yushu=a%b;

printf("%d %d",shang,yushu);

return 0;

}

前置++和后置++计算

++a 先++后使用 c=6 a=6

++c 先++后使用 b=7 c=7

c++ c=8

++a a=7

a++ a=8

b=b+(a+c)=7+8+8=23

浮点数的打印

a/b 因为a是int类型 b是int类型

只能打印整数 7/2 是3

a/c 7/2.0f 3.50000

小数点默认打印6位小数

两数相乘或相除只有一边为小数 打印出的才有小数

限定宽度和小数位

限定宽度 包括小数点位 如%5d

而限制小数位 是%5.2f 表示显示小数点后二位

不足五位 前面空出几位

如打印 2.5 空2.50

%5d 限制宽度 五位 打印12345

switch相关练习

当 a=1时

由于 switch中没有beak 跳出循环 语句继续执行 直到最后一个 b=0

所以 b=0、

打印1/1-1/2+1/3-1/4+1/5 +1/100

二分查找

所谓二分查找 就是折半思想

条件

1有序

2从小到大排列

列如 数组 int arr[] = { 1,2,3,4,5,6,7,8,9,10 }

从数组中找到7

如果一个个从中遍历数组 很麻烦 数组定义有几万个值 折一半 大大提高效率

cpp 复制代码
int main()
{
	int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
	int left = 0;
	int right = sizeof(arr) / sizeof(arr[0]) - 1;
	int key = 7;//要找的数字
	int mid = 0;//记录中间元素的下标
	int find = 0;
	while (left <= right)
	{
		mid = (left + right) / 2;
		if (arr[mid] > key)
		{
			right = mid - 1;
		}
		else if (arr[mid] < key)
		{
			left = mid + 1;
		}
		else
		{
			find = 1;
			break;
		}
	}
	if (1 == find)
		printf("找到了,下标是%d\n",mid);
	else
			printf("没找到");
	return 0;
}

编写程序数一下 1到 100 的所有整数中出现多少个数字9

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//编写程序数一下 1到 100 的所有整数中出现多少个数字9

int main()

{

int i = 0;

int j = 0;

for (i = 0; i <= 100; i++)

{

if (i % 10 == 9||i/10==9)

{

j++;

}

}

printf("%d", j);

return 0;

}

打印1000年到2000年之间的闰年

int main()

{

int i = 0;

for (i = 1000; i <= 2000; i++)

{

if ((i % 400 == 0) || (i % 4 ==0&& i % 100 != 0))

{

printf("%d", i);

}

}

return 0;

}

//求10 个整数中最大值

int main()
{
int arr[] = { 1,2,3,4,5,6,7,8,9,10 };
int max = arr[0];
int i = 0;
for (i = 0; i < 10; i++)
{
if (arr[i]> max)
{
max = arr[i];
}
}

printf("%d", max);

return 0;

}

把3个数从大到小打印

int main()

{

int a;

int b;

int c;

while (scanf("%d %d %d", &a, &b, &c) != EOF)

{

if (a < b)

{

int d = a;

a = b;

b = d;

}

if (a < c)

{

int d = a;

a = c;

c = d;

}

if (b < c)

{

int d = b;

b = c;

c = d;

}

printf("%d %d %d", a, b, c);

}

return 0;

}

相关推荐
菜鸡儿齐3 小时前
ThreadLocal介绍
java·开发语言
国服第二切图仔3 小时前
Rust开发之自定义错误类型(实现Error trait)
开发语言·python·rust
小年糕是糕手3 小时前
【C/C++刷题集】二叉树算法题(一)
c语言·数据结构·c++·算法·leetcode·学习方法·改行学it
雨中散步撒哈拉3 小时前
14、做中学 | 初二上期 Golang集合Map
开发语言·后端·golang
m0_748240257 小时前
Windows编程+使用C++编写EXE加壳程序
开发语言·c++·windows
兮兮能吃能睡8 小时前
R语言模型分析(一)(1)
开发语言·r语言
wuk99810 小时前
基于有限差分法的二维平面热传导模型MATLAB实现
开发语言·matlab·平面
im_AMBER11 小时前
数据结构 09 二叉树作业
数据结构·笔记·学习
初见无风12 小时前
2.5 Lua代码中string类型常用API
开发语言·lua·lua5.4