C简述理解

C

入门

  1. 我们从接触“Hello,world!”开始,学习标准输入输出。这应该是我们大多数人的第一节编程课。希望大家在编程的道路上越走越远的同时,也不要忘记那个当初懵懵懂懂却又满怀希望的自己!
#include<stdio.h>
int main(){
	printf("Hello, world!");//注意“H”,“ ”。
	return 0;
} 

数据类型

在之后的学习里,我们认识了C语言的成员——数据类型。看下面:
类型 针对数据
int 整数
float 单精度浮点数(带小数点)
double 双精度浮点数(带小数点)
char 字符
struct(自定义数据类型的关键字) 针对一个对象需要存储多项信息
计算机的内存是有限的,定义数据类型可以最大程度的节约内存空间。
声明: 【数据类型 变量名 】 例:int a;

变量

变量是一个内存空间,通过语句对变量中的数据进行修改,就是说,变量是操作对象。需要声明变量是哪个数据类型的。

语句

对数据进行操作,实现处理问题的方式。

1.if else ,switch case语句(选择结构,条件判断)
2.for ,while, do while语句(循环结构)

http://noi.openjudge.cn/

  1. 简单计算器
    总时间限制: 1000ms 内存限制: 65536kB
    描述
    一个最简单的计算器,支持+, -, *, / 四种运算。仅需考虑输入输出为整数的情况,数据和运算结果不会超过int表示的范围。

输入
输入只有一行,共有三个参数,其中第1、2个参数为整数,第3个参数为操作符(+,-,*,/)。
输出
输出只有一行,一个整数,为运算结果。然而:

  1. 如果出现除数为0的情况,则输出:Divided by zero!
  2. 如果出现无效的操作符(即不为 +, -, *, / 之一),则输出:Invalid operator!
    样例输入
    1 2 +
    样例输出
    3
    提示
    可以考虑使用if和switch结构。
#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int a,b;char c;
	cin>>a>>b>>c;
		if(c=='+' )cout<<a+b;
		  else if(c=='-' )cout<<a-b;
		  else if(c=='*' )cout<<a*b;
		  else if(c=='/' ){
		      if(b!=0) cout<<a/b;
		      else cout<<"Divided by zero!";}
		  else cout<<"Invalid operator!";
	}

2.金币
总时间限制: 1000ms 内存限制: 65536kB
描述
国王将金币作为工资,发放给忠诚的骑士。第一天,骑士收到一枚金币;之后两天(第二天和第三天)里,每天收到两枚金币;之后三天(第四、五、六天)里,每天收到三枚金币;之后四天(第七、八、九、十天)里,每天收到四枚金币……这种工资发放模式会一直这样延续下去:当连续N天每天收到N枚金币后,骑士会在之后的连续N+1天里,每天收到N+1枚金币(N为任意正整数)。

你需要编写一个程序,确定从第一天开始的给定天数内,骑士一共获得了多少金币。

输入
一个整数(范围1到10000),表示天数。
输出
骑士获得的金币数。
样例输入
6
样例输出
14

#include<stdio.h>
int main(){int n;int sum=0,m=0;int k=0;
 scanf("%d",&n);
 for(int i=1;i<=n;i++){
    if(k==m) {k=0;m++;}
    k++;sum+=m;
    }
 printf("%d",sum);
  return 0;}

数据结构

数组:数据类型 变量名[ n ],n是一个常数
针对需要批量处理的同类数据

  1. 大整数加法
    总时间限制: 1000ms 内存限制: 65536kB
    描述
    求两个不超过200位的非负整数的和。

输入
有两行,每行是一个不超过200位的非负整数,可能有多余的前导0。
输出
一行,即相加后的结果。结果里不能有多余的前导0,即如果结果是342,那么就不能输出为0342。
样例输入
22222222222222222222
33333333333333333333
样例输出
55555555555555555555

#include<stdio.h>
#include<string.h>
int main(){ 
 char a[201],b[201];
 int A [201]={0},B[201]={0};
 for(int i=0;i<=200;i++){
     a[i]=b[i]='\0';
     } 
   scanf("%s",a);
   int len=strlen(a);
   scanf("%s",b);
   int len_=strlen(b);
   for(int j=0,i=len-1;j<len;j++,i--){
        A[j]=a[i]-'0';
        }
   for(int j=0,i=len_-1;j<len_;j++,i--){
        B[j]=b[i]-'0';
        }
     len=(len>len_)?len:len_;
     
  for(int i=0;i<len+1;i++){
       A[i]=A[i]+B[i];
       if(A[i]>=10) 
         { A[i]-=10;  B[i+1]++;}
       }
      int k=200;
    while(A[k]==0)
    {k--;if(k==0)  break;}
    for(int i=k;i>=0;i--)
          printf("%d",A[i]);
    return 0;}

函数

对语句块,程序块进行封装,实现特定功能的代码为函数。
实现将一个复杂的问题分成多个简单的问题,分别处理进行解决,用函数分别解决每一个小问题。

指针

  1. 声明
    【基本数据类型 * 变量名 】例:int *p; int a=5; p=a;
    p是指向a(int型)的指针变量。
    指针指的就是地址。
    指针变量是一个内存空间,有它自己的内存地址。它的值用来存储地址。
    到现在,我们学的什么东东有地址呢?
    变量:int 型,char 型,float 型
    数组:int [], float[] []
    函数: 函数有自己的起始地址。
    对了,指针变量自己也有地址哦。
    上面陈述的都是指针变量可以指向的西西!

我们学的东西都在综合,理解知识点之间的关系,灵活运用。比如数据类型和数组,数据类型和指针,数据类型和指针和数组(指向一维数组的指针变量),函数和指针,结构体也可以和数组,指针结合。
谢谢大家观看!在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值