结构
- 我们从一个简单的C语言程序开始:
#include <stdio.h>
int main() {
printf("Hello, World!");
return 0;
}
尝试替换双引号里的内容,例如将 “Hello, World!” 替换为 “Hello, Kimoji”。
得到模板:
#include <stdio.h>
int main() {
// scanf("", );
printf("",); // 换行用 \n
return 0;
}
在C语言中,我们可以直接输出,也可以操作变量,但在操作变量之前,我们需要先定义数据类型;C语言里可以没有输入但一定要有输出。
- 接下来试试,打印九宫格:
#include <stdio.h>
int main() {
printf("***\n");
printf("***\n");
printf("***\n");
return 0;
}
再试试,打印4行的等腰三角形
#include <stdio.h>
int main() {
for (int i = 1; i <= 4; i++) {
for (int j = 1; j <= (4 - i); j++)
printf(" ");
for (int k = 1; k <= (2 * i - 1); k++)
printf("*");
printf("\n");
}
return 0;
}
看出来输出是怎么回事了吗?
空格也算字符,\n换行
输出与输入
- printf(“%2d”,x)(不足两位补0)
- printf(“%.2lf”,x)(保留两位小数)
- printf(“hello world”)
while(scanf(“%d”,&a)= =1)(不定长输入)
while(scanf(“%d”,&a[n++])==1)
指针sanf(“%d”,a);scanf(“%d”,&a[i].name)
运算符
观察除法的结果:
- 1/3 = 0…1
- 2/3 = 0…2
- 9/4 = 2…1
-
算术运算符
+
、-
、*
(加、减、乘)/
(除,结果取整数部分)%
(取余)++
(自增)、--
(自减)- 复合运算符:
+=
、-=
、*=
、/=
、%=
-
逻辑运算符
&&
(逻辑与)||
(逻辑或)
-
三元运算符
- 例子:
int flag = 0; if (a * a + b * b == c * c) flag = 1; printf("%s", flag ? "yes" : "no");
- 例子:
数据类型
-
字符是整数通过ASCII映射得到的。
- 尝试:
int a = 97; printf("%c", a); // 输出 'a' char a = 'a'; printf("%d", a); // 输出 97
- 尝试:
-
强制转换
(type) x
(type为要转换的类型,小数转整形时忽略小数部分)- 例如:
double x = 2.0; printf("%d", (int) x);
-
#define
预制常量/函数- 例如:
#define s(a+b) a+b; // s(a+b)=a+b
- 例如:
-
C语言没有bool类型和string类型。
-
创建自定义数据类型:
类型名称 | 对象 | 格式说明符 |
---|---|---|
char | 0-9,aA-zZ,字符串 | %c , %s |
int | 整数 | %d |
double | 小数或整数 | %lf |
long long | 整数 | %lld |
- 补充:换行符
\n
作业
关注公众号[Kimo姬]即可获得答案,还有实用工具等等。简洁实用的公众号,无付费项目无捆绑应用
-
计算交错序列的和
- 交错序列:1 - 2 + 3 - 4 + 5 … + n(n为输入的整数),计算该序列的和。
-
整数反转
- 输入一个整数,反转它。例如,输入 12345,输出 54321。
-
计算字符数量
- 输入一个字符串,统计其中字母、数字、空格和其他字符的个数。
-
判断回文数
- 输入一个整数,判断它是否是回文数。回文数是指正序和倒序读都是一样的数。
-
生成随机数
- 生成 n 个随机数,范围为 m 到 p 之间,包括 m 和 p。
-
寻找素数
- 输入一个整数 n,找到所有小于 n 的素数。
-
字符串旋转
- 输入一个字符串和一个偏移量 k,将字符串向右旋转 k 个位置。
-
寻找数组中的重复元素
- 输入一个数组,找到数组中重复的元素,并输出重复的元素及其出现次数。
-
计算斐波那契数列
- 输入一个整数 n,计算斐波那契数列的前 n 项。斐波那契数列:1, 1, 2, 3, 5, 8, 13, …