c语言直接打印int变量报错,C语言视频链接

一、视频

视频链接见 :http://pan.baidu.com/s/1i320yEh

本视频初衷在于帮助初学者更好地学习C语言。

二、报错

视频中的一些错误修正见下面链接,欢迎大家修正报错,发邮件286636965@qq.com,或者直接评论,希望大家共同进步。

http://note.youdao.com/share/?id=2e09ff62a3c83bcd4a79d369146bbff0&type=note

三、学习辅助

结合下面大纲和作业配合视频多写多练。

Day1:

计算机基础概述

linux 安装

目录结构:树形

路径:绝对路径 相对路径

特殊目录:根目录 主目录  上一层目录 当前目录

命令 : ls  cd  pwd  vim  gedit   man

作业:安装其他linux发行版本 比如 centos redhat

Day2:

命令:sudo  su

c语言:

(0)gcc 编译 四个阶段

(1)变量基本定义,变量、内存、数据之间关系

(2)操作符 表达式

注意表达式的值 这个概念

+ - * / ++ --

&&    ||    !

 <= >= == !=

?:  ,,,逗号表达式

Day3:

1、流程图基本画法

2、  if 语句 switch语句

for  while   do..while

课后作业 :

基础题:  4、5、7.(1)  8  9 10 11 12 流程图要求画出来。

1(必做)、在终端输出自己的名字和年龄。

2(必做)、打印出各种变量类型所占字节数。

3(必做)、输入半径求出圆形面积并打印 。

4(必做)、输入3个数 从小到大输出。

5(必做)、输入学生成绩(0-100分) 输出等级(a:90-  100,  b :80-89  c:70-79  :d 60-69  e:<60 )

用 if 和switch 语句

6(必做)、输入数字,输出星期几(输入:6,输入:星期六)     用if和switch语句

7、(必做)(1)用 for  while do while语句实现 1+2+3….+100

(必做)(2)求n的阶乘

8、(必做) 把100-200之间不能被3整除的数输出

9、 输入两个数求最大公约数。

10 、编程题:在屏幕上输出如下图形 键盘输入n

*

*   *

*   *   *

11、分解质因数 12 = 2*2*3

12(必做)、1!+2!+3!+4!+++n!

扩展题:求 123456789123456789123456+12345678901234567890

课后思考:float double 在内存中存储形式

预习 Day4命令及相关知识

Day4:

数组

(1)一维数组定义 、初始化、使用

(2)一维数组在内存中的形式

(3)数组与字符串

(4)二维数组定义、初始化、使用

(5)二维数组在内存中的形式。

strcpy  strlen gets puts

Day5:

1 、函数

(1)函数基本定义及使用

(2) 形参实参 的传递

(3) 函数传递数组

(4)函数嵌套调用

2、自学gdb 调试 :

见群共享 《gdb 十分钟教程》

3、预处理指令

#if  #else  #endif

#define

#include

#ifdef

#ifndef

思考题:

(1)   gets 函数为什么有危险

(2)  int func(int a[10])

{

sizeof(a) --->等于多少,为什么?

}

作业:必做

1、计算数组的长度

2、用数组来处理Fibonicci数 列的前10项

output 1,1,2,3,5,8......

3、输入一串字符、剔除除了小写字母以外的其他字符,并输出。

4、有 一维数组  int  a[6] = {1,2,3,4,5,6};

二维数组   b[2][3];

把数组a中的数据拷贝到数组b中,并且在逻辑上b里面的数据行列为

1 2 3

4 5 6

5、输入2*3 矩阵,并打印,行列互换后再打印。

6、验证 二维数组 在内存中的存储方式。

7、写函数实现    int sum(int n); 1+2+3。。。。N

8、用函数实现 min 到 max之间不能被m整除的数的个数    int  num(int min ,int max,int m);

9、写函数实现    int fac(int n); 1*2*3*....n

用函数实现 1!+2!+3!+4!….n!;

int sum_of_factorial(int n);

10、实现 加减乘除 函数.

参考接口   double  add(double a,double b);

double  sub(double a,double b);

double  mul(double a,double b);

double  div(double a,double b);

实现计算器 函数接口 通过 0、1、2、3来选择计算功能

int calc(int select,int a,int b);

11、用函数实现 2、8、16进制打印

void decimal_to_hex(int data);

void decimal_to_oct(int data);

void decimal_to_binary(int data);

实现总函数接口 通过2、8、1 2 选择来输出各种进制

void decimal_convert(int select,int data);

12、输出数组的全部元素。

void array_print(int a[],int len );

13 、编写程序,交换数组a和数组b中的前n个元素。

void swap_array(int a[],int b[],int n);

14、 A、编程实现:有10个人(编号1到10)围成一圈123123...报数,报到3的人出去,然后下一个人继续从一开始报数,求最后剩下的人的编号。

B、用函数实现  n 个人报数,报到m的人除去,求最后剩下的人的编号

int  left_num(int a[ ],int n,int m )

15、 函数的功能是:将s数组中的n个数倒序,请自己定义函数的参数形式及命名

16、用函数实现 数组从小到大排序

void  sort(int a[ ],int len);

17、有数组 a[10] b[10]  c[20]

a、b中的数据都是从小到大排列,把a  b 中的数据合并放到 c中依然从小大

Void func(int a[],int b[],int c[],int len);

其中 a  b 数组的长度为 len ,c 为 2*len

Day6-7

1、指针基本定义及使用  *  &

2、指针加减法

3、指针与一维数组关系

4、指针变量  所占字节

5、Malloc free 基本用法

6、typedef #define用法及区别

7、变量作用域及生存周期

8、栈、堆、静态存储区、文字常量区 比较

9、指针作为函数形参

10、函数传数组本质

11、指针与字符串、char数组综合分析

12、const  及 const 于指针结合

作业:

1、有int *p1,char *p2 ,double *p3,int **p ,打印出各个       sizeof(p)

2、int a[10] 用指针为数组a赋值,并打印出每个值 ( 用多种方法)

提示 :a[i] ---*(a+i)

3、交换两个数    void swap(int *a,int *b);

4、输出数组的全部元素。

void array_print(int *a,int len);

5、int  my_strlen(const  char *p),求字符串长度

6、实现 my_strcpy 函数 ;

7、my_strcpy 安全吗,如何改进?

8、编写函数,对传递进来的两个整型量计算它们的和与积之后,通过参数返回。

函数声明为 void compute(int m, int n, int *sum, int *p);

9、用函数实现创建动态数组

提示(数组的本质是什么?)

void *create_array(int  size,int len);

Size为数组每个元素所占内存的大小,len为数组长度。

10、使用memcpy,memset函数,实现 my_memcpy,my_memset函数

Day8-9

1、指针数组,数组的每个元素是指针 int* a[10];

2、指针的指针 int **p;

3、函数的指针  int (*p)(int)

4、一维数组的地址 及 指针变量

5  二维数组与指针

6 大小端

7  main 函数参数

作业:

1、定义指针数组int * a[10],每个指针指向一块10个Int大小的内存,赋值0-99,并打印。

2、定义指针数组char *a[10],每个指针指向一块10个char大小的内存,用scanf为每块内存输入字符串(不超过10个字符),并打印所输入.

3、输出一个int变量 每个字节所存的数据。

4、int a,b;

int *p1 = &a;

Int *p2 = &b;

通过函数 调用使  p1 = &b, p2 = &a;

5、函数指针基本用法

有 以下函数

int  add(int a,int b);

strcpy ;

memcpy

分别用指针变量去调用这些函数。

6、用指向数组的指针Int (*p)[10] ,去访问int a[10]的每个元素.

7、用指针实现int a[2][3]所有元素输出(多种方法)

用以下指针  int *p1, int (*p2)[3];

8、编写代码,并生成可执行文件 cal,有两种运行模式

A-------界面模式

./cal 运行的时候

打印以下界面并根据选择计算结果

(1)

please select function

1  add

2  sub

3  div

4  mul

5  quit

(2)输入1

please input  num:

(3)输入1  2

(4)输出3并返回到 (1)界面

B---------直接命令模式

./cal -add 1 2

输出和,以下同理:

./cal -sub 1 2

./cal -div 1 2

./cal -mul 1 2

如果命令输入错误会有相应提示

比如 ./cal -kk  ,没有kk这个选项

./cal -sub 1,缺少参数

9、编写以下函数,把字符串中的小写字母都转化为大写字母,运行错误返回NULL,

运行成功,返回新字符串的地址。

char*  trans(const char *p);

并写 测试函数测试功能,如果测试成功,返回0,测试失败返回-1

int  test_trans();

10、请编写一个函数,计算某一个字符串中有多少个单词,假设单词与单词之间用空格分隔,且单词为英文字母。

int  num_of_word(char *p);

(1)画出流程图

(2)完成代码

(3)编写测试函数int  test_num_of_word();成功返回0,失败返回-1,尽可能全面得测试各种情况。

11、查手册使用strstr函数,并实现其功能my_strstr.

12、查手册使用strtok函数,并实现其功能my_strtok

13、查手册使用strdup函数,并实现其功能my_strdup

Day10

结构体

1、结构体基本定义、使用及初始化

2、结构体与指针

3、结构体包含结构体成员

4、结构体数组

5、结构体与函数

6、浅拷贝  深拷贝

7、字节对齐

8、位段

作业 :

1、定义图书结构体,输入信息并打印,用多种方法.    Book

a、书名(小于10个字符)

b、页数、

c、作者(小于10个字符)

d、价格

2、a\定义图书结构体数组,存入10本书信息,并打印

多种方法

b\ 定义结构体指针数组,通过该数组操作a

3、动态定义图书结构体数组,存入10本书,打印,打印完后销毁。

4、定义图书馆结构体

(1)Library

a、现存图书数量

b、最大容量(固定)

c、所存图书信息

(2) Book

a、书名(书名字符不定)

b、页数、

c、价格

定义如下函数

(1)增加一本书的信息

Int  add_book(Library *p,char *name,int  page, int price)

(2)打印图书馆中所有所存图书的信息。

void  print_lib(Library *p);

5、定义图书馆结构体,最大图书容量不定。并写

图书馆创建函数

Library *create_lib(int  max_num);   max_num是最大容量

图书馆销毁函数

int  destroy_lib(Library *p);

增加一本书的信息

Int  add_book(Library *p,char *name,int  page, int price)

打印图书馆中所有所存图书的信息。

void  print_lib(Library *p);

拷贝p1图书馆中的信息到p2图书馆中

Int  copy_lib(Library *p2,Library *p1);

测试 copy_lib函数,按照如下方法:

(1) lib1 并增加基本书

(2)把lib1中的信息拷贝到lib2中

(3)销毁lib1

(4)打印lib2中的信息

Day11

新增视频

结构体11 -20

作业:

1、写代码验证字节对齐

2、写代码验证位段的概念

3、把Day10的作业代码用多文件标准写法组织起来:有如下文件

book.c  book.h   library.c  library.h  main.c

book.c 实现书的基本信息的设计

library.c 实现图书馆的基本设计(用到book.c的功能)

main.c 测试功能

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值