c语言函数

C语言文件操作及应用(一)

帅比萌擦擦* 提交于 2020-01-05 23:54:04
文件的打开与关闭: 文件的打开(fopen函数)   (1).函数原型:         FILE *fopen(char *path,char *mode);   (2).功能说明:按照mode方式打开由path指定的文件,如果未找到path文件:若以读方式打开,则会打开失败;若以写方式打开,则会创建一个由path指定的名字建立一个新文件;   (3).参数说明:path是一个字符指针,它将指向要打开或建立的文件的文件名字符串。mode是一个指向文件处理方式字符串的字符指针,处理方式见下表; 文件使用方式 含义 "r"(只读) 为输入打开一个文本文件 "w"(只写) 为输出打开一个文本文件 "a"(追加) 向文本文件尾增加数据 "rb"(只读) 为输入打开一个二进制文件 "wb"(只写) 为输出打开一个二进制文件 "ab"(只写) 向二进制文件尾增加数据 "r+"(读写) 为读/写打开一个文本文件 "w+"(读写) 为读/写建立一个新的文本文件 "a+"(读写) 为读/写打开一个文本文件 "rb+"(读写) 为读/写打开一个二进制文件 "wb+"(读写) 为读/写建立一个新的二进制文件 "ab+"(读写) 为读/写打开一个二进制文件 文件的关闭(fclose函数)   (1).函数原型:         int fclose(FILE *fp);   (2).功能说明

C语言指针与数组

亡梦爱人 提交于 2020-01-04 05:49:02
C语言指针与数组 数组的下标应该从0还是1开始? 我提议的妥协方案是0.5,可惜他们未予认真考虑便一口回绝 -- Stan Kelly-Bootle 1. 数组并非指针 为什么很多人会认为指针和数组始终应该可以互换的呢? 因为对数组的引用总是可以写成对指针的引用,而且确实存在一种指针和数组的定义完全相同的上下文环境, 不幸的是,这只是数组的一种极为普通的用法,并非所用情况下都是如此。 2. 什么是声明,什么是定义 C语言中对象必须有且只有一个定义,但它可以有多个extern声明. 定义:只能出现在一个地方, 确定对象的类型并分配内存 ,用于创建新的对象,例如 int a[100] 声明:可以多次出现,描述对象的类型,用于指代其他地方定义的对象(例如在其他文件里) 例如 extern int a[100] extern对象声明告诉编译器对象的类型和名字,对象的内存分配则在别处进行 3. 数组与指针的区别 出现在赋值左边的符号被称为 左值, 出现在赋值右边的符号被称为 右值。 编译器为每个变量分配一个地址(左值),这个地址在编译时可知,并且该变量在运行时一直保存于这个地址中。 存储于变量中的值(右值)只有在运行时才可知,如果需要用到变量中存储的值,编译器就发出指令从指定地址读入变量并将它存于寄存器中。 例如: char a[9] = "abcdefgh"; c = a[i]

C语言I博客作业11

我的梦境 提交于 2020-01-03 04:00:24
一、本周教学内容&目标 第5章 函数 要求学生掌握各种类型函数的定义、调用和申明,熟悉变量的作用域、生存周期和存储类型。 二、本周作业头 问题 答案 这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/10131 我在这个课程的目标是 掌握并熟练C语言 这个作业在哪个具体方面帮助我实现目标 不停的的编写程序,打代码还熟悉了电脑,提高自己的速度 参考文献 C语言程序设计I,笔记 三、本周作业 1.PTA实验作业 请在此处列出自己的排名图片 1.1 题目叙述 1.1.1 数据处理 数据表达:定义了三个变量,分别为a,b,s;均为整型,以此来确定完全平方数。 数据处理: 伪代码解读 1.1.2 实验代码截图 1.1.3 造测试数据 输入数据 输出数据 说明 105 500 cut=6 样例 300 1000 cut=5 完全平方数 1.1.4 PTA提交列表及说明 提交列表说明:编译错误:在循环语句里返回值写成了0.并for语句里面的分号打成了逗号。 1.2 题目叙述 本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。 函数接口定义: int is( int number );

C语言I博客作业11

狂风中的少年 提交于 2020-01-02 20:59:17
这个作业属于哪个课程? C语言程序设计II 这个作业的要求在哪里? https://edu.cnblogs.com/campus/zswxy/CST2019-4/homework/10098 我在这个课程的目标是? 熟练掌握C语言的使用技巧和C语言相关工具的使用 这个作业在哪个具体方面帮助我实现目标? 深入了解和使用函数/DIV> 参考文献 伪代码的写法,CSDN,《C Primer Plus》,Make down语法 1.PTA实验作业 1.1统计某类完全平方数 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等。 1.1.1数据处理 数据表达:用了j,n,a三个变量,其中j是定义平方根,n赋值为N,a是定义数组存储10个元素,且都是整型。 数据处理:用了k←n%10;a[k]++表达式和if判断结构和while循环结构。 1.1.2实验代码截图 1.1.3 造测试数据 输入数据 输出 4 104 5 500 144 676 1.1.4 PTA提交列表及说明 ·1答案正确:只要能弄懂数组的运用,还是可以做的。 1.2统计各位数字之和是5的数 本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。 1.2.1数据处理 数据表达:用了j

C语言中的异常处理

主宰稳场 提交于 2020-01-02 12:24:48
一 前言: 异常处理,对于做面向对象开发的开发者来说是再熟悉不过了,例如在C#中有 try { ... } catch( Exception e){...} finally{ ..... } 在C++中,我们常常会使用 try{} ... catch(){} 块来进行异常处理。 说了那么多,那么到底什么是异常处理呢? 异常处理(又称为错误处理)功能提供了处理程序运行时出现的任何意外或异常情况的方法。 异常处理一般有两种模型,一种是"终止模型",一种是"恢复模型" "终止模型": 在这种模型中,将假设错误非常关键,将以致于程序无法返回到异常发生的地方继续执行.一旦异常被抛出,就表明错误已无法挽回,也不能回来继续执行. "恢复模型": 异常处理程序的工作是修正错误,然后重新尝试调动出问题的方法,并认为的二次能成功. 对于恢复模型,通常希望异常被处理之后能继续执行程序.在这种情况下,抛出异常更像是对方法的调用--可以在Java里用这种方法进行配置,以得到类似恢复的行为.(也就是说,不是抛出异常,而是调用方法修正错误.)或者,把try块放在while循环里,这样就可以不断的进入try块,直到得到满意的结果. 二 面向对象中的异常处理 大致了解了什么是异常处理后,由于异常处理在面向对象语言中使用的比较普遍,我们就先以C++为例,做一个关于异常处理的简单例子: 问题:求两个数相除的结果。 这里

C语言I博客作业05

半腔热情 提交于 2020-01-02 08:11:25
问题 答案 这个作业属于哪个课程 C语言程序设计Ⅱ 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/CST2019-2/homework/9826 我在这个课程的目标是 掌握C语言 这个作业在那个具体方面帮助我实现目标 学会调用函数和定义函数 参考文献 百度百科 1.PTA实验作业 1.1 判断一个整数的各位数字平方之和能否被5整除 编写函数fun,其功能是:判断一个整数的各位数字平方之和能否被5整除,可以被5整除则返回1,否则返回0。 函数接口定义: int fun(int n ); 其中 n 是用户传入的参数。 函数判断n的各位数字平方之和能否被5整除,能被5整除则返回1,否则返回0。 裁判测试程序样例: include <stdio.h> int fun( int n ); int main() { int m; scanf("%d", &m); printf("The result is %d\n", fun(m)); return 0; } /* 你的程序将被嵌入在这里 */ 输入样例: 12 输出样例: The result is 1 输入样例: 123 输出样例: The result is 0 1.1.1数据处理 数据表达:使用了两个整型变量sum与i,来表示各位数字平方之和,个十百位数字 数据处理

C语言I博客作业11

|▌冷眼眸甩不掉的悲伤 提交于 2020-01-01 16:00:10
这个作业属于哪个课程 C语言程序设计II 这个作业要求在哪里 https://edu.cnblogs.com/campus/zswxy/SE2019-3/homework/10126 我在这个课程的目标是 学习如何使用函数 这个作业在那个具体方面帮助我实现目标 在PTA题目中多次使用函数,加深印象 参考文献 C语言程序设计,上课笔记,伪代码的写法 1.PTA实验作业 1.1统计某类完全平方数 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144、676等 1.1.1数据处理 数据表达:使用了a,i,m,N变量。 数据处理:运用while语句,if语句,定义数组。 1.1.2实验代码截图 1.1.3造测试数据 输入数据 输出数据 说明 105 500 cnt = 6 满足 200 880 cnt = 5 满足 257 638 cnt = 3 满足 1.1.4PTA提交列表及说明 提交列表说明: 经过同学教导一次成功 1.2统计各位数字之和是5的数 本题要求实现两个函数:一个函数判断给定正整数的各位数字之和是否等于5;另一个函数统计给定区间内有多少个满足上述要求的整数,并计算这些整数的和。 1.2.1数据处理 数据表达:使用了n,c,t,a,b,sum,count变量,定义字符型变量ch。 数据处理:for语句,if语句,镶嵌结构。 1

C语言 函数参数

空扰寡人 提交于 2020-01-01 14:27:55
基础 函数的形参都是原数据的“副本”,在函数自己栈中申请内存 函数中参数都是传值,传指针本质上也是传值 如果想要改变入参内容,则需要传该入参的地址(指针和引用(c++)都是类似的作用) 形参与实参 普通变量参数 函数内部用的参数是形参,传入函数的参数是实参 形参会在函数栈空间再开辟内存,复制实参的内容 函数结束后,栈空间,形参也随之消失 # pragma warning(disable:4996) # include <stdio.h> void test ( int a ) { printf ( "形参地址:%x,值:%d\n" , & a , a ) ; //形参地址:4ffc70,值:10 return ; } int main ( int argc , char * argv [ ] ) { int a = 10 ; printf ( "实参地址:%x,值:%d\n" , & a , a ) ; //实参地址:4ffb9c,值:10 test ( a ) ; system ( "pause" ) ; return 0 ; } 指针作为参数 指针参数 函数不需要再为形参开辟存储int类型的空间 # pragma warning(disable:4996) # include <stdio.h> void test ( int * a ) { * a = * a + 1 ;

C语言入门(6)——函数入门

情到浓时终转凉″ 提交于 2019-12-31 22:43:49
C语言入门(6)——函数入门 1. 函数是什么? 函数是一块代码,一组一起执行一个任务的语句。函数接受零个或多个参数,计算完成返回零个或一个值。 函数的作用: 重复使用代码 2. 函数怎么用? 2.1 调用函数 在数学中有很多的函数,可以直接在C语言中使用,例如: sin() 、 cos() 。这些函数的使用方法与数学使用方法是一致的。使用函数通常称为调用函数。函数调用语法如下: 函数名 ( 参数值 ) ; **说明:**调用函数要按照函数定义,按照顺序给出正确数量、正确类型的参数。 传递给函数的参数值是表达式的结果,这包含:字面量、变量、函数的返回值、计算结果。 像 printf() 一样, sin() 、 cos() 都是C语言使用标准库定义的函数,这类函数称为标准函数。使用标准函数通常要添加标准函数所在的头文件。常用的函数还有 sqrt() 、 pow() 、 fabs() 等。 注意使用 sin() 、 cos() 、 sqrt() 、 pow() 、 fabs() 等数学函数在代码中,需要加入头文件 math.h ;在编译时加上链接库 -lm 。 2.2 定义函数 除了使用标准库定义的函数,我们也可自己定义函数,称为自定义函数。定义格式如下: 返回类型 函数名 ( 参数列表 ) { 语句 1 ; 语句 2 ; 语句 3 ; ………… ; } 2.3 函数细节 2.3.1

C语言错题集

社会主义新天地 提交于 2019-12-31 02:10:20
一、选择题 (1).若有定义:int *p[4];则标识符p是()。 A: 是一个指向整型变量的指针 B: 是一个指针数组名 C: 是一个指针,它指向一个含有四个整型元素的一维数组 D: 定义不合法 标准答案:B, 解析:p是一个具有4个元素的指针数组,每一个元素是一个int型指针 (2).下面判断正确的是 ()。 A: char *a=“china”;等价于char *a; a=“china”; B: char str[10]={“china”};等价于char str[10];str[]={“china”}; C: char *s=”china”;等价于char *s; s=”china”; D: char c[4]=”abc”,d[4]=”abc”;等价于char c[4]=d[4]=”abc”; 标准答案:A, 解析:A:指针变量可以在定义时初始化(赋初值),也可以在定义之后再初始化。 B:字符串数组必须在定义的时候就初始化,否则就要从键盘上输入给它初始化。 C:指针变量只能存放地址,不是把字符串赋给s,只是把”china”的第一个字符的地址赋给指针变量s。在C语言中只有字符变量,没有字符串变量。所以应该是等价于char *s; s=”china”。 D:字符数组之间不可以直接互相这样赋值。 (3).若有说明:int i, j=2,*p=&i;, 则能完成i