第一大类型:基础
第二大类型:符号
格式化的输出:
#include <stdio.h>
#include <stdlib.h>
int main()
{
printf("%7d\n",a);
//%d代表整形,7代表在a前面增加6个空格,a代表一个字符.
printf("%.2f\n",a);
//%f代表精度,一般是保留小数六位,.2代表保留两位小数。
print("%#o,%#x\n",a,a);
//%o代表八进制整数,%x代表十六进制整数。
#表示在前面显示前导符;例如"0x"
print("%s %c\n",a,a);
//%s表示输出字符串。%c表示输出一个字符。
return 0;
}
第三大类型: 运算符
1、算数运算符:+ - * / %。
2、常用数学函数:exp()、sqrt()、
fabs()、pow()、log()、sin()
3、关系运算符:> < >= <= == !=
4、逻辑运算符:&& || !
5、赋值运算符:= += -= *= /=
第四大类型:结构
选择结构的类型:
(1)单分支结构:
if( ){
}
(2)双分支结构:
if( ){
}else if( ){
}
(3)多分支结构:
if{
}else if( ){
}else if( ){
}else if( ){
}
第五大类型:循环
循环结构:
(1)while语句:
while(条件){
}
(2)do while语句:
do{
}while(条件);
(3)for(i=0;i<n;i++){
}
(4)停止循环:
break;强制跳出整个循环
continue;结束本次循环
第六大类型:数组
一、数组的定义:
(1)int a[10]; 对于数组元素的下标引用只能是整数。
(2)一维数组:
int a[]{1,2,3}; //下标可以省略;a[0]=1;
(3)二维数组:
int a[][3]{1,2,3,4,5,6}; //二维列的下标不能省略;a[0][0]=1;
(4)字符数组:
char str[]="hello"//字符串数组以"\0"结尾;
字符串的长度比字符多一
二:一维数组的输入与输出:
int a[10];
for(i=0;i<10;i++){
scanf("%d",&a[i]); //输入10个数到a数组每个元素中
}
for(i=0;i<10;i++){
printf("%d",a[i]); //将a数组10个元素的值输出
}
三:二维数组的输入与输出:
int a[3][4];
for(i=0;i<3;i++){
for(j=0;j<4;j++){
scanf("%d",&a[i][j]); //输入12个数到a数组三行四列的每个元素中
}
}
for(i=0;i<3;i++){
for(j=0;j<4;j++){
printf("%d",a[i][j]); //将三行四列的数的值输出
}
}
第七大类型:枚举
枚举的代码样例:
#include<stdio.h>
#define one 1
#define two 2
#define three 3
#define four 4
int main(){
enum number{
one = 1; two = 2; three = 3;
}
printf("%d %d %d",one,two,three);
//输出:1 2 3
enum number{
one; two = 3; three; four = two+3;
}
printf("%d %d %d %d",one,two,three,four);
//输出:0 3 4 6
}
枚举的规律:
第一个数未定义值为0;后面不定义值为前面数+1;
定义的值可以在枚举中被修改。
第类型:考试真题
一、猜数字游戏
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int main()//猜数字游戏
{
srand(time(NULL));
int magic = rand()%100+1;//电脑生成数
int number = 1;//自己要猜的数字
int cnt = 0;
while(number>0){
scanf("%d",&number);
if(magic>number){
printf("Too small\n");
}else if(magic<number){
printf("Too big\n");
}else if(magic==number){
printf("right");
break;
}
}
return 0;
}
二、冒泡排序
将一排数从小到大进行排列 :
#include <stdio.h>
#include <stdlib.h>
int main()//冒泡排序
{
int a[10]={1,54,12,45,31,87,11,34,20,10};
int i,j;
for(i=0;i<10;i++){
for(j=0;j<10-i;j++){
if(a[j]>a[j+1]){
int temp = a[j];
a[j] = a[j+1];
a[j+1] = temp;
}
}
}
for(i=0;i<10;i++){
printf("%d ",a[i]);
}
return 0;
}
三、百钱买百鸡
公鸡一个三块钱,母鸡一个两块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?
#include <stdio.h>
#include <math.h>
int main()
{
int i,j,k;
for(i=0;i<=33;i++){
for(j=0;j<50;j++){
k = 100-i-j;
if(3*i+2*j+k/3==100&&k%3==0){
printf("公鸡有%d只,母鸡有%d只,小鸡有%d只\n",i,j,k);
}
}
}
return 0;
}
四 、打印金字塔(类型一)
#include <stdio.h>
#include <math.h>
int main()
{
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=4-i;j++){
printf(" ");
}for(j=1;j<=i;j++){
printf("%d",i);
}
printf("\n");
}
return 0;
}
四、打印金字塔(类型二)
#include <stdio.h>
#include <math.h>
int main()
{
int i,j;
for(i=1;i<=4;i++){
for(j=1;j<=4-i;j++){
printf(" ");
}for(j=1;j<=2*i-1;j++){
printf("%d",i);
}
printf("\n");
}
return 0;
}