C语言学习1

科协技术部task第一期

一、基础知识学习

1.ASCII与char

ASCII表

char a=1,b='1',c=65;
printf("a=%d\n",a); //输出c=1
printf("b=%d\n",b); //输出d=49
printf("c=%c\n",c); //输出A

大小写转化:‘a’-‘A’=32
x+‘a’-‘A’--------大写变小写
x+‘A’-‘a’--------小写变大写

2.sprintf与sscanf

sprintf() 函数的声明:

int sprintf(char *str, const char *format, ...)

eg:在这里插入图片描述

sscanf() 函数的声明:

int sscanf(const char *str, const char *format, ...)

eg:

char str[100];      
//用法一:取指定长度的字符串      
sscanf("12345","%4s",str);      
printf("用法一\nstr = %s\n",str); //1234
//用法二:格式化时间      
int year,month,day,hour,minute,second;      
sscanf("2013/02/13 14:55:34","%d/%d/%d%d:%d:%d",&year,&month,&day,&hour,&minute,&second);
printf("用法二\ntime = %d-%d-%d %d:%d:%d\n",year,month,day,hour,minute,second);//time = 2013-2-13 14:55:34
//用法三:读入字符串      
sscanf("12345","%s",str);      
printf("用法三\nstr = %s\n",str); //12345
//用法四:%*d 和 %*s 加了星号 (*) 表示跳过此数据不读入. (也就是不把此数据读入参数中)      
sscanf("12345acc","%*d%s",str);      
printf("用法四\nstr = %s\n",str); //acc

3.循环

break与continue
break:跳出循环(可以作用在任何地方,常与switch分支结构合用)
continue:跳出循环这一轮剩下的语句进入下一轮(只能运用到循环结构中)

swich case

switch(expression){
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
    case constant-expression  :
       statement(s);
       break; /* 可选的 */
  
    /* 可以有任意数量的 case 语句 */
    default : /* 可选的 */
       statement(s);
}

4.数组

一维数组

int a[8]={0,1,2,3,4,5,6,7};
int a[10]={0};//全为零
int a[10]={[0]=1};//指定初始化,其余为零
int a[10]={1,2,[4]=5,6};//也可以
char c[10]={'c',' ','p','r','o','g','r','a','m'};
char c[10]={"C program"}; 
char c[10]="C program";


二维数组

//二维数组在初始化的时候可以分行进行初始化
int arr[2][3] = { { 1, 2, 3 }, { 4, 5, 6 } };
//二维数组也可以进行放在一起进行初始化
int arr[2][3] = { 1, 2, 3, 4, 5, 6 };
//二维数组在初始化的时候可以进行部分初始化
int arr[2][3] = { { 1 }, { 2 } };//1, 0, 0, 2, 0, 0
int arr[2][3] = { 1, 2, 3 };//1, 2, 3, 0,0,0
//二维字符数组
char c[3][8]={{"apple"},{"orange"},{"banana"}};
char c[3][8]={"apple","orange","banana"};

5.结构体

声明与定义

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book;

初始化

struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} book = {"C 语言", "RUNOOB", "编程语言", 123456};

typedef
typedef可以用来为类型取一个新的名字

typedef unsigned char BYTE;
BYTE  b1, b2;//在这个类型定义之后,标识符 BYTE 可作为类型 unsigned char 的缩写

也可以使用 typedef 来为用户自定义的数据类型取一个新的名字。例如,可以对结构体使用 typedef 来定义一个新的数据类型名字,然后使用这个新的数据类型来直接定义结构变量

typedef struct Books
{
   char  title[50];
   char  author[50];
   char  subject[100];
   int   book_id;
} Book;
int main( )
{
   Book book;
   ................
}

区分:typedef 仅限于为类型定义符号名称,#define 不仅可以为类型定义别名,也能为数值定义别名,比如您可以定义 1 为 ONE。

6.指针

注意区分数组指针与结构体指针的区别

二、做题训练

PTA基础编程题目38道

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值