1.简述C
C语言不但执行效率高而且可移植性好,可以用来开发应用软件、驱动、操作系统等。
2 第一个C程序
#include
int main(){
printf("Hello World");
return 0 ;
}
解释:
#include
函数就是实现代码逻辑的一个小的单元。
3.一个C程序有且只有一个主函数,即main函数。C程序就是执行主函数里的代码,也可以说这个主函数就是C语言中的唯一入口。
4.注释 C语言编译器在编译时会被自动忽略。
多行注释 /* .............. */
单行注释 //
5.标识符:
C 语言规定,标识符可以是字母(A~Z,a~z)、数字(0~9)、下划线_组成的字符串,并且第一个字符必须是字母或下划线。在使用标识符时还有注意以下几点:
(1)标识符的长度最好不要超过8位,因为在某些版本的C中规定标识符前8位有效,当两个标识符前8位相同时,则被认为是同一个标识符。
(2)标识符是严格区分大小写的。例如Imooc和imooc 是两个不同的标识符。
(3)标识符最好选择有意义的英文单词组成做到"见名知意",不要使用中文。
(4)标识符不能是C语言的关键字。想了解更多C语言关键字的知识,请查阅WIKI。
6.注意:在定义中不允许连续赋值,如int a=b=c=5;是不合法的
7 .如下小例子
#include
int main(){
int age =19 ;
printf("我今年%d\n"+age);
return 0 ;
}
8.数据类型
基本类型 =======>字符型、整形、浮点类型(单、双)
#include
int main(){
int age =19 ;
char a ='e' ;
float b =12.12 ;
printf("今年%d岁,\n",+age);
printf("性别是%c \n",+a);
printf("%f\n",+b);
return 0 ;
}
9.格式化输出语句
#include
int main(){
int age =19 ;
char a ='e' ;
float b =12.12 ;
double c = 13.14567 ;
printf("今年%d岁,\n",age);
printf("性别是%c \n",a);
printf("%f\n",b);
printf("%f\n",c);
printf("%s\n","我是一名好孩子");
return 0 ;
}
如果要输出多个变量的并指定变量的位置时候,格式符还可以连用,变量之间需要用逗号隔开,如:
#include
int main(){
int age = 18;
float height = 1.85;
char unit = 'm';
printf("小明今年%d岁\n", age);
printf("小明身高%f,%c\n", height, unit);
printf("%s\n","小明现在在慕课网上学习IT技术");
return 0;
}
10不可改变的常量
#include
#define POCKETMONEY 10 //定义常量及常量值
#define I 'S'
int main()
{
// POCKETMONEY = 12; //小明私自增加零花钱对吗?
printf("小明今天又得到%d元零花钱\n", POCKETMONEY);
printf("%c\n",'c');
printf("%d\n",999);
printf("%f\n",12.12);
printf("%c",I);
return 0;
}
11 自动类型转换
注:字节小的可以向字节大的自动转换,但字节大的不能向字节小的自动转换
12强制类型转换
#include
int main()
{
double num = 2.5; //定义浮点型变量num并赋值为2.5
int num2 = (int)num ;
printf("num的整数部分是%d\n", num2);
return 0;
}
13 运算符号
※ 算术运算符
※ 赋值运算符
※ 关系运算符
※ 逻辑运算符
※ 三目运算符
#include
int main()
{
int x = 0;
printf("x=%d\n",x++);
printf("x=%d\n",++x);
return 0;
}
15 三木运算符
表达式1 ? 表达式2 : 表达式3
#include
int main()
{
int money = 12 ;
float cost =11.5 ;
printf("能不能走%c",money>cost?'y':'n');
return 0;
}
16 分支结构 是否是闰年
#include
int main()
{
int year = 2014; //今年是2014年
//补全一下代码
//条件:能被4整除且不能被100整除或者能被400整除的年份为闰年
if((year%4==0&&year/100!=0)||(year%400==0)){
printf("%s\n","是闰年");
}else{
printf("%s","不是闰年");
}
return 0;
}
17 while循环
#include
int main()
{
int i,sum=0;
i=1;
while(i<=100) //循环条件应该是什么呢?
{
sum=sum+i;
i++ ; //这里是不是应该改变循环变量的值
}
printf("100以内所有整数之和为:%d\n", sum);
return 0;
}
18 do-while
#include
int main()
{
int number=200;
int year=2014;
do{
year++ ;
number=number*1.2 ;
}while(number<1000);
printf("到%d年招工规模突破1000人\n", year);
return 0;
}
19 for循环
#include
int main()
{
// 定义变量sum, num
int sum, num;
sum = 0;
for(num = 0; num<=10 ; num++ ) //for循环条件与num的变化值
{
sum=sum+num ;
}
printf("10以内数的和为:%d", sum);
return 0;
}
20 for注意
22 输出一个正三角形
23 打印9*9 乘法口诀
24请使用for循环,倒序打印9*9乘法表。打印结果如下图所示
25找出0-50之间的所有素数,所谓素数就是只能被1和它本身整除的数字,比如:7,13,23等
26计算1到20之间不能被3整除的数字之和
27.
小明参加期末考试,分数等级分为A-D,等级划分方式如下:
90<=分数<=100 ,等级为A。
80<=分数<90 ,等级为B。
60<=分数<80 ,等级为C。
分数<60 ,等级为D。
28自定义方法 (最好放在main方法之前)
#include
/* 自定义整型函数 sayLove() */
int sayLove()
{
//在这里输入输出语句printf,输出内容为I Love imooc
printf("I love Learning");
return 0;
}
/* 自定义整型函数 dividLine() */
int dividLine()
{
printf("%s\n", "*************");
return 0;
}
/* 主函数 */
int main()
{
sayLove();
dividLine();
return 0;
}
29 有参和无参 函数调用
#include
/* 考虑一下哪个输出该用无参函数哪个输出该用有参函数呢? */
int learn(){
printf("小明在学习\n");
return 0 ;
}
int learnnum(int num){
printf("小明学习了%d课了",num);
}
int main()
{
learn();
learnnum(3);
return 0;
}
30.计算三角形的周长
#include
int getGirth(int a,int b,int c)
{
if( (a+b)<=c || (a+c)<=b || (b+c)<=a ) //判断是否为三角形
{
printf("不构成三角形\n");
return 0;
}
else
{
int cirf = a+b+c ; //计算三角形周长
return cirf;
}
}
int main()
{
/* 定义三角形三边长 */
int a, b, c;
a = 3;
b = 4;
c = 5;
printf("三角形的周长是:%d\n",getGirth(a,b,c) ); //调用周长函数
return 0;
}
注意:void函数中可以有执行代码块,但是不能有返回值,另void函数中如果有return语句,该语句只能起到结束函数运行的功能。其格式为:return;
32 递归调用函数
计算n的阶乘
小明为了学好英语,需要每天记单词,第一天记1个,第二天记2个依次类推,到第10天的时候小明一共记了多少个单词?
请用代码完成,算出小明第10天开始的时候会了多少个单词?
#include
/* 定义获取单词数量的函数 */
int getWordNumber(int n)
{
if(n == 1)
{
return 1; //第一天只会1个单词
}
else{
return getWordNumber(n-1)+n ; //到第天会的单词数量
}
}
int main()
{
int num = getWordNumber(10); //获取会了的单词数量
printf("小明第10天记了:%d个单词。\n", num);
return 0;
}
33. 变量 (如何引用外部变量)
#include
void fn()
{
static int x = 1; //定义静态局部变量
x*=2;
printf("x=%d\n",x);
}
int main()
{
int i;
for(i=0;i<5;i++)
{
fn();
}
extern int x; //调用外部变量
printf("x=%d\n",x);
return 0;
}
int x=100;
34.内部函数与外部函数
#include
#include "test.c" //引用test.c文件
extern void printLine() //这里定义的方法对吗?
{
printf("**************\n");
}
int main()
{
say();
return 0;
}
#include
void say(){
printLine();
printf("I love imooc\n");
printf("good good study!\n");
printf("day day up!\n");
printLine();
}
35 数组
#include
int main()
{
//第一种形式
int arrFirst[3] = {1,2,3};
//第二种形式
int arrSecond[] = {1,2,3};
//第三种形式
int arrThird[3];
//给arrThird数组每个元素初始化
arrThird[0]=1 ;
arrThird[1]=2 ;
arrThird[2]=3 ;
//输出第一个数组中的第二个元素
printf("%d\n", arrFirst[1]);
//输出第二个数组中的第二个元素
printf("%d\n", arrSecond[1]);
//输出第三个数组中的第二个元素
printf("%d\n", arrThird[1]);
return 0;
}
36 遍历数组
#include
int main()
{
int arr[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int i ; //必须先声明变量i
for(i=0;i<=9;i++){
printf("%d\n",arr[i]);
}
return 0;
}
37 传递数组
#include
void temp(int arr[]){
int i ;
for(i=0;i<=4;i++){
printf("%d",arr[i]);
}
}
int main(){
int arr[5]={1,2,3,4,5};
//传递数组
temp(arr);
return 0 ;
}
38. 经典冒泡排序
另一种写法
#include
void swap(int *a, int *b); //交换两个数
int main()
{
int str[10];
int i, j;
//初始化数组为10 9 8 7 6 5 4 3 2 1
for (i = 0; i < 10; i++)
{
str[i] = 10 - i;
}
//排序,从a[0]开始排,从小到大
for (i = 0; i < 10; i++)
{
for (j = i + 1; j < 10; j++)
{
if (str[i] > str[j])
{
swap(&str[i], &str[j]);
}
}
}
//将十个数输出
for (i = 0; i < 10; i++)
printf("%d\n", str[i]);
return 0;
}
void swap(int *a, int *b)
{
int c;
c = *a;
*a = *b;
*b = c;
}
39.查询数组中某个元素
在C语言中,是没有办法直接定义字符串数据类型的,但是我们可以使用数组来定义我们所要的字符串。一般有以下两种格式:
1、char 字符串名称[长度] = "字符串值";
2、char 字符串名称[长度] = {'字符1','字符2',...,'字符n','\0'};
注意:
1、[]中的长度是可以省略不写的;
2、采用第2种方式的时候最后一个元素必须是'\0','\0'表示字符串的结束标志;
3、采用第2种方式的时候在数组中不能写中文。
在输出字符串的时候要使用:printf(“%s”,字符数组名字);或者puts(字符数组名字);。例如:
41. 声明二维数组
#include
int main()
{
//使用第一种方式初始化方式声明并初始化二维数组arr1
int arr1[2][2]={{10,20},{30,40}};
int arr3[][2]={{20,30},{40,50}};
//使用第二种方式初始化方式声明并初始化二维数组arr2
int arr2[2][2];
arr2[0][0]=10;
arr2[0][1]=20;
arr2[1][0]=30;
arr2[1][1]=40;
return 0;
}
二维数组定义的时候,可以不指定行的数量,但是必须指定列的数量
我是可爱的小尾巴~~ 某慕视频 Q32138446038