C语言复习提纲

C语言复习提纲
C语言复习提纲

C语言复习提纲

一 C语言概述

1.程序设计语言:机器语言、汇编语言、高级语言。

2.高级语言翻译成机器语言的两种方式:编译方式、解释方式。

3.算法+数据结构=程序

4.结构化程序设计的三种基本结构:顺序结构、分支(选择)结构、循环结构

5.算法的表示方法:自然语言、传统的程序流程图、N-S流程图。

6.结构化程序设计的32字原则:

7.C语言的产生及发展:UNIX操作系统

8.C语言的特点P1页:

9.C语言由函数组成,有且仅有一个main函数。

10.函数:说明部分、函数体。

11.一条复杂语句分行书写,用反斜杠(\)续行。

12.注释用/*……*/

二输入输出

1.单字符输入/出:getchar()、putchar(字符变量)。P29页

2.字符串:gets(字符数组名)、puts(数组名)。P74页

3..格式化输入:scanf(“格式控制符”,地址列表);P30页

格式控制符:%c、 %d 、 %o 、 %x、 %s、 %f

◆若输入long型、double型应加l,如%ld、 %lo、 %lf

◆格式%s输入字符串不包含空格,且对应地址表列是字符数组名。

◆默认分隔符:空格、回车、Tab键(也可按域宽截取)

◆格式控制符间不宜加其它字符,如加入其它字符,输入时应原样输入,否则数据接收

错误。如:scanf(“%d, %d”,&a,&b);输入数据时两数据间要有逗号;

scanf(“%d %d”,&a,&b); %d间有两个空格,则输入数据时至少有两个空格。

◆输入函数中%f格式不能带小数,如:sc anf(“%7.2f”,&a)是错误的。

◆%c格式输入单字符,空格字符和转义字符都作为有效字符接收。

◆%*d表示跳过它对应的输入数据。

4..格式化输出:printf(“格式控制符”,输出列表);

◆格式控制符部分可加入其它字符,原样输出。如:提示语或使输出结果清楚显示

◆输出列表:可以是变量、常量、表达式、函数调用等。

◆转义字符:P8页,以斜杠(\)开始,作为一个字符,如求字符串长度:

“jk\\gk\bl\0k\nlj”,长度为7。

◆注意:输出 long 、double型数据,用%ld、%lf

◆可设定输出宽度,m和n,如:%5d、%6.2f、%.2f ◆负号表示域内向左对齐,如:%-12d

三数据类型

1.常量:

◆整型常量:235、0235、0x235,长整型:-12l、-065l、0x55l等。

◆实型常量:小数形式、指数形式。

◆字符常量:用单引号,如‘c’(注意转义字符)。

◆字符串常量:用双引号,如“hglhg”、“a”,内存占用为实际长度加1。

◆符号常量:无参宏(#define)。

2.变量:

◆标识符命名规则:(P2页)。

◆各种类型变量的长度。

◆数据类型转换:自动、强制。P11

◆注:强制类型转换只得到所需类型的结果值,原变量或表达式的类型仍为原类型。如

(float)(x+y)

3.各种运算符运算规则及其优先级P19页。

4.补充---逻辑表达式的优化运算:

◆&&运算:只要算出第一个表达式为0,第二个表达式不再运算。

◆||运算:只要算出第一个表达式为1,第二个表达式不再运算。

如:int i=0,j=0,a=6; if ((++i>0)||(++j>0)) a++;printf(%d%d%d”,i,j,a);结果i为1,j为0,a为7。

5.其它运算符:条件运算、逗号运算、长度运算符(形式:sizeof 表达式或sizeof (数据类型))

四控制语句P41 –P59

1.if、while、for中的表达式,一般是逻辑或关系表达式,也可以是任意类型表达式。如while(a=5)….

2.如果有多条语句,必须用大括号括起,构成复合语句。

3.switch语句中case后面只能是常量值;若执行完某case后的语句没遇到break,则继续执行下一个case 语句。

4.循环程序:注意循环变量的初值、修正值、循环条件等,以及循环中用到的某些变量赋初值,如求累加和变量。

5.一般是先判断条件,再执行循环体;但do—while语句是先执行一遍循环体,再判断条件。

6.break、continue语句。

五数组 P68

1.数组定义:int a[10];或int a[N](N需要事先定义为符号常量:#define N 10 );

数组长度必须是常量值,不能是变量,可以是在程序开始前定义的符号常量,进行长度定义。

2.下标引用:0~N-1,切记不能引用到N(int a[5]; a[5]=10;这种引用是错误的) 。

3.数组初始化时可省略长度定义。

4.数组定义后如没有给任何一个元素赋初值,对于static类型,各元素初值为0;对于auto 类型,各元素值不定。

5.数组不能整体赋值。数组中各元素值的输入/出,应使用循环程序逐个输入/出;字符数组例外(gets、puts)。

6.数组中的两种排序方法:

◆冒泡法:外循环为i=0;i

个元素,并互换。(考试内容)

◆选择法:外循环为i=0;i

循环中比较a[min]和a[j]两个元素,不互换,只让min=j;内循环结束后再进行互换,a[i]和a[min]互换。

7.二维数组:按行存放。

8.字符数组:通常定义较长长度,如:char s[50];通常用于存放字符串,结束标志为

‘\0’。

可用字符串常量为其初始化,如:char s[]=“sdkhg”;也可由键盘输入,如gets(s);输出用puts(s);

注意:char s[5]={‘a’,’d’,’f’,’g’,’w’};此种形式不是字符串,无字符串结束标志,仅仅是普通一维字符数组,不能用puts输出,只能用%c格式逐个输出。

字符数组的输入/出还有两种形式:%c、%s。

9.字符串函数:strcpy(s1,s2)、 strcat(s1,s2)、 strcmp(s1,s2)、 strlen(s)、

六函数

1.函数定义:int func(int a,int y);如定义时没指明函数类型,如:fun(int a);默认是int型,返回值不确定。

2.声明:函数定义在前,使用在后,可省略函数声明,反之需要在使用前声明。

函数声明后加分号,而函数定义后没有分号。

3.函数调用:函数名(实参表);

◆实参与形参个数、类型、位置一致。

◆形参与实参占据不同的存储单元;形参只在函数调用时才为其分配存储单元,函数调用

结束后释放。

◆实参与形参之间是传值调用,单向传递关系,形参值改变,不会影响实参值。

◆函数可嵌套调用,不可嵌套定义。

◆嵌套调用:一个函数内部又调用另外一个函数。

◆递归调用:一个函数调用它自身。

4.数组作为函数参数:void func(int a[],int n);

◆传递的是实参数组的首地址。调用时实参是数组名,如func(a,10);

5.多维数组: void func(int a[][5],int n);(可省略第一维,但不能省略其它高维)。

6.从作用域角度,变量分为:全局变量、局部变量。

◆局部变量:在函数内部定义,只能在该函数中使用,包括函数的形参和复合语句中定义

的变量,main函数中定义的变量也是局部变量,不能被其它函数使用。

◆不同函数内定义的同名变量,互不影响,因其作用域不同,内存空间独立。

◆全局变量:在函数外部定义,作用域从定义开始到本文件结束。其间的所有函数都可以

使用它,可在各函数间传递值,但容易带来副作用,降低模块独立性。

7.变量的存储类别:auto、static、register、extern。

8.局部变量的存储类别:auto、static、register。

◆auto型的生存周期时函数被调期间,两次调用之间不保留值。

◆static型的生存期是整个程序运行期间,保

留上一次调用后的值,且只赋一次初值(在

程序运行前初始化,默认初值为0)。如:

9.全局变量的存储类别: static、extern。

◆全局变量总是存放在静态存储区间,生存期

是整个程序运行期间,只赋一次初值,在程

序运行前初始化,默认初值为0。

◆用extern对全局变量加以声明,可以将其作

用域扩充到整个文件或其它文件。

◆定义全局变量时加上static,可将其作用域

限制在本文件中,不能被其它文件使用。

10.函数的作用域是全局的,可被其它函数调用。

◆函数存储类别:static、extern。默认为

extern型。

◆如:static int func(int a);

函数,互不干扰。

七预处理和宏

1.预处理命令以“#”开头,末尾不加分号。在

程序编译之前处理。

2.宏替换:将函数中出现宏名的地方用宏体进行替

换。

◆宏体可以是数字、也可以是组成C表达式或

语句的其它字符,还可以引用已定义的其它

宏名。

◆宏的作用域:定义宏之后到本源文件结束,可用#undef提前结束。

◆无参宏(符号常量):#define PI 3.14

注意:函数中双引号内的宏名不替换,如printf(“PI”);

◆有参宏:#define 宏名(形参表) 宏体

◆引用:宏名(实参表)

#include “文件名” 先搜索当前目录,找不到再搜索系统标准目录

八指针

1.指针的基本概念:指针=地址;

2.指针常量:

某已知变量的地址,或数组名等,:int a,b[5];此时&a和b就是指针常量(固定值)。

3.指针变量:如int a,*p=&a; char s[9],*q=s;

◆赋值:必须赋地址值,如int a,*p; p=&a;

如p=2001;是错误的。

4.间接访问:*p=5;等同于a=5;

5.指针作为函数的参数,传递的是实参变量的地址,

如:void func(int *p)

◆调用时用某变量的地址常量,或指向该变量的指针作为实参,如主调函数中有定义int

a,*q;q=&a;则可用&a或q作为实参进行调用,即func(&a);或func(q);都是将变量a的地址传递给形参指针p,使指针p指向变量a。函数中使用*p就是对a的间接访问,就可以改变a的值,或者将结果放入a中。但形参变量本身改变,反过来不会影响实参指针值。

6.指针与一维数组:int a[10],*p=a;则a代表数组首地址,是指针常量,

◆元素的表示方法:a[i]、*(a+i)、 p[i]、*(p+i)

◆元素地址:&a[i]、a+i、 &p[i]、p+I

◆区别:a实指针常量,只不能变,而p是指针变量,可进行增减运算;所以常通过p的

增减运算来快速访问数组a,如:

while(p

或while(p

◆理解(*p)++、*p++、 *(p++)、p++的含义。

◆执行p++后指针拨动的单元数(由元素类型决定)

7.一维数组作为函数形参,实际上就是一个指针变量,如:func(int a[],int n);

等同于func(int *a,int n);

◆函数声明的几种变通形式, P144页。

◆所以指针a在函数中值可以改变,如*a++,不同于函数内定义的数组如:int b[5];这

里b是指针常量。

8.指针与字符串:char *p,s[50]=“fdjfjdfj”; p=s;

◆可用p间接访问字符串,如指针法:for( ;*p!=‘\0’;p++) 或下表法:for(i=0;

p[i]!=‘\0’;i++) 9.指针形参在函数间传递字符串:void copy(char *s1,char *s2)

{ while(*s1++=*s2++); }

◆调用时用字符数组名或指向某字符串的指针做实参,

如:char *p=“sdgygkh”; char ss[50]; func(ss,p) ;

◆函数调用的灵活形式:func(ss+2,p)或func(ss,p+2)

◆注意:输入字符串常用gets函数,但参数应是字符数组名,或已指向某字符数组的指

针,如:char s[50],*p; gets(s);是正确的,而gets(p)是错误的,因为p没被赋地址值,无任何指向。改正:p=s; gets(p);

10.数组指针与多维数组:int a[3][4]; int (*p)[4]; p=a;

◆p指向a的一整行,此时*p就代表a[0];如果执行p++,则p指向下一行,即*p代表

a[1],p跳过单元数为2*4=8个字节。

◆引用元素的两种形式:p[i][j]或(*p)[j]

◆几个等价关系式:由x[i]等价于*(x+i)和&x[i]等价于x+i得出:

a[i][j]等价(*(a+i))[j]等价*(a[i]+j)等价*(*(a+i)+j)

&a[i][j]等价*(a+i)+ j等价a[i]+j

◆指针形参在函数间传递多维数组:int func(int (*b)[4],int n);等价于int

func(int b[][4],int n);

◆调用时用二维数组名做实参,如:func(a,3);11.指针数组:char *s[3];表示数组s 有3个元素,每一个元素都是一个指针变量,都可以指向一个字符串。

◆赋初值:char *s[3]={“sdgg”,”ww”,”q”};或单独赋值:s[0]=“sdgg”;

s[1]=“ww”;s[2]=“q”;

◆用于指向多个字符串。

◆也可用字符数组存储多个字符串,只是占用内存空间大。

11.指向指针的指针:二级指针,char **p;

◆用于访问指针数组,或在函数间传递指针数组,通常就是传递多个字符串。

12.char *s[3]={“sdgg”,”ww”,”q”};char **p; p=s;

◆p指向数组s的首地址,此时*p代表s[0],即指向第0个字符串,*p和s[0]都是第0

个字符串的首地址,

◆可用gets(*p)或gets(p[i])来输入字符串,用puts(*p) 或puts(p[i])来输出字符串。

◆在函数间传递多个字符串的参数形式:func(char **s,int n)或func(char *s[ ],int

n)或func(char s[ ][ ],int n)

◆总结:

1、通常在主调函数中定义指针数组指向多个字符串。

2、函数:func(char **s,int n)或func(char *s[],int n)传递多个字符串首地址;

3、在函数内的使用形式:s[i]或*(s+i),都代表第i个串首地址,或*s++;

4、一般都是整串操作,循环一般使用字符串个数进行控制,如:for(i=0;i

{s[i]……}

◆字符串操作函数:strlen()、strcpy()、strcmp()

13.返回指针值的函数:char *func(char *s,char ch)

◆切记:返回的是地址,在主调函数中应使用指针类型变量接收函数返回值,

如:char *p,a[]=“asdgg”; p=func(a,’d’);

14.动态内存分配:掌握malloc 函数的使用方法。

九结构体

1.结构体:s t r u c t,.定义的几种形式 p141页。成员可以是任意类型。

成员引用:结构体变量名.成员名

◆占用内存大小为:各成员占用内存之和。

◆结构体数组:同普通数组一样使用。初始化时注意双重括号。

◆结构体指针:(*p).成员名或p->成员名只能用结构体变量地址赋值,不能赋某成员的地址,如:p=&https://www.360docs.net/doc/04580538.html,;是错误的。

◆通常定义变量或形参时必须加上struct,如: void func(struct student *p)

{ struct student a[4],temp;……}

2.类型标识符自定义:typedef如:typedef int INTEGER; typedef

struct{…… }STU;

typedef int ARR[10];以后可直接使用INTEGER、ARR、STU类型进行变量定义,书写简略。

◆注意:只能为类型另起新名,不能创造新类型,也不能为变量或函数重新命名

(define)。

十文件

1.流式文件:文本文件、二进制文件。

◆文本文件:若干字符序列,较长,可用type命令或记事本查看。

◆二进制文件:若干字节序列,短,存取速度快,不能用type或记事本等查看。

2.文件操作:读操作、写操作。使用有关文件函数来完成,需包含头文件stdio.h

3.操作步骤:①定义文件类型指针②打开文件③检测指针④读/写⑤关闭文件。

4.打开文件时的使用方式各6种,P207页。

5.读/写函数:fgetc(fp)、fputc(ch,fp)、fread(*p,size,n,fp)、 fwrite(*p,size,n,fp)、fgets(*str,n,fp)、fputs(*str,fp) fscanf(fp, “格式控制符” ,地址列表)、fprintf(fp, “格式控制符” ,输出列表),以上函数是简要书写,具体参考P238页。

6.三个标准设备文件指针:stdin、stdout、stderr

7、有关文件操作函数ferror(fp)、feof(fp)、clearerr(fp);

10.控制循环:while((ch=fgetc(fp)) !=EOF) 或while(!feof(fp))

EOF是在头文件中定义的符号常量,值为-1代表文件结束。

C语言常用函数

C语言的常用库函数 函数1。absread()读磁盘绝对扇区函数 原形:int absread(int drive,int num,int sectnum,void *buf) 功能:从drive指定的驱动器磁盘上,sectnum指定的逻辑扇区号开始读取(通过DOS中断0x25读取)num 个(最多64K个)扇区的内容,储存于buf所指的缓冲区中。 参数:drive=0对应A盘,drive=1对应B盘。 返回值:0:成功;-1:失败。 头文件:dos.h 函数2。abswrite()写磁盘绝对扇区函数 原形:int abswrite(int drive,int nsects,int lsect,void *buffer) drive=0(A驱动器)、1(B驱动器)、 nsects=要写的扇区数(最多64K个); lsect=起始逻辑扇区号; buffer=要写入数据的内存起始地址。 功能:将指定内容写入(调用DOS中断0x26)磁盘上的指定扇区,即使写入的地方是磁盘的逻辑结构、文件、FAT表和目录结构所在的扇区,也照常进行。 返回值:0:成功;-1:失败。 头文件:dos.h 函数3。atof()将字符串转换成浮点数的函数 原形:double atof(const char *s) 功能:把s所指向的字符串转换成double类型。 s格式为:符号数字.数字E符号数字 返回值:字符串的转换值。 头文件:math.h、stdlib.h 函数4。atoi()将字符串转换成整型数的函数 原形:int atoi(const char *s) 功能:把s所指向的字符串转换成int类型。 s格式为:符号数字 返回值:字符串的转换值。若出错则返回0。 头文件:stdlib.h 函数5。atol()将字符串转换成长整型数的函数 原形:long atol(const char *s)

谭浩强C语言知识点总结

谭浩强C语言知识点总 结 文件编码(GHTU-UITID-GGBKT-POIU-WUUI-8968)

C语言最重要的知识点总体上必须清楚的: 1)程序结构是三种: 顺序结构、选择结构(分支结构)、循环结构。 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择),有且只有一个main函数。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。 byte 是指字节, 一个字节 = 八个位.概念常考到的: 1、编译预处理不是C语言的一部分,不占运行时间,不要加分号。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、define PI ; 这个写法是错误的,一定不能出现分号。 3、每个C语言程序中main函数是有且只有一个。 4、在函数中不可以再定义函数。 5、算法:可以没有输入,但是一定要有输出。 6、break可用于循环结构和switch语句。 7、逗号运算符的级别最低,赋值的级别倒数第二。 第一章 C语言的基础知识 第一节、对C语言的基础认识 1、C语言编写的程序称为源程序,又称为编译单位。 2、C语言书写格式是自由的,每行可以写多个语句,可以写多行。 3、一个C语言程序有且只有一个main函数,是程序运行的起点。

第二节、熟悉vc++ 1、VC是软件,用来运行写的C语言程序。 2、每个C语言程序写完后,都是先编译,后链接,最后运行。(.c---?.obj---?.exe)这个过程中注意.c和.obj文件时无法运行的,只有.exe文件才可以运行。(常考!) 第三节、标识符 1、标识符(必考内容): 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了 2、标识符分为关键字、预定义标识符、用户标识符。 关键字:不可以作为用户标识符号。main define scanf printf 都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 预定义标识符:背诵define scanf printf include。记住预定义标识符可以做为用户标识符。 用户标识符:基本上每年都考,详细请见书上习题。 第四节:进制的转换 十进制转换成二进制、八进制、十六进制。 二进制、八进制、十六进制转换成十进制。 第五节:整数与实数 1)C语言只有八、十、十六进制,没有二进制。但是运行时候,所有的进制都要转换成二进制来进行处理。(考过两次)

C语言-基础教程-C语言整型数据

C语言-基础教程-C语言整型数据 考试大计算机等级站整理: 2.3.1 整型常量 整型常量及整常数。它可以是十进制、八进制、十六进制数字表示的整数值。十进制常数的形式是: d i g i t s s 这里d i g i t s可以是从0到9的一个或多个十进制数位,第一位不能是0。八进制常数的形式是: 0 d i g i t s s 在此,d i g i t s可以是一个或多个八进制数(0~7之间),起始0是必须的引导符。 十六进制常数是下述形式: 0 x h d i g i t s0 X h d i g i t s 这里h d i g i t s可以是一个或多个十六进制数(从0~9的数字,并从"a"~" "f"的字母)。 引导符0是必须有的,X即字母可用大写或小写。注意,空白字符不可出现在整数数字之间。表2 - 3列出了整常数的形式。 整常数在不加特别说明时总是正值。如果需要的是负值,则负号"-"必须放置于常数表达式的前面。 每个常数依其值要给出一种类型。当整常数应用于一表达式时,或出现有负号时,常数类型自动执行相应的转换,十进制常数可等价于带符号的整型或长整型,这取决于所需的常数的尺寸。 八进制和十六进制常数可对应整型、无符号整型、长整型或无符号长整型,具体类型也取决于常数的大小。如果常数可用整型表示,则使用整型。如果常数值大于一个整型所

能表示的值,但又小于整型位数所能表示的数,则使用无符号整型。同理,如果一个常数比无符号整型所表示的值还大,则它为长整型。如果需要,当然也可用无符号长整型。 在一个常数后面加一个字母l或L,则认为是长整型。如1 0 L、7 9 L、0 1 2 L、0 11 5 L、0 X A L、0 x 4 f L等。 2.3.2 整型变量 前面已提到,C规定在程序中所有用到的变量都必须在程序中指定其类型,即"定义"。这是和B A S I C、F O RT R A N不同的,而与P a s c a l相似。 运行结果为: R U N a u=22, b u=-1 4 可以看到不同类型的整型数据可以进行算术运算。在本例中是i n t型数据与unsingned int型数据进行相加减运算。

【顿开教育】第01课 C语言课程介绍

第1章 C语言概述 1.1一个简单的C语言程序 1.1.1 #include指令 #include :文件包含命令 : xx文件 “xx.h” : xx.h文件 1.1.2 注释 1.1. 2.1 多行注释 /* 这是我的第一个程序 作者:莫影 版本:version 1.0 */ 1.1. 2.2 单行注释 // 打印函数 1.1.3 main函数 1.1.3.1 函数类型 1.1.3.2 函数名 1.1.3.3 函数返回值 1.2 计算机组成原理 1.2.1 计算机运行原理

1.2.2 进制转换 1.2.2.1 二进制 ①. 二进制数 1010B = (1010)2 ②. 数据存储与二进制 · 1位(b)等于1个二进制位 · 1字节(bit)等于8个二进制位 ③. 存储单位与二进制 · 1 KB = 1024 B = 210B · 1 MB = 1024 KB = 220B · 1 GB = 1024 MB = 230B · 1 TB = 1024 GB = 240B 1.2.2.2 八进制 ①. 八进制数 271Q = (271)8 ②. C语言中的八进制数 0开头的数字 1.2.2.3 十六进制 ①. 十六进制数 1C2F H = (1C2F)16 ②. C语言中的十六进制数 0x开头的数字 1.2.2.4 进制间转换 ①. 八进制与二进制 1位八进制位等于3位二进制位 ②. 十六进制与二进制 1位十六进制位等于4位二进制位 第2章编程启蒙思想 2.1 算法概述 2.1.1 什么是算法 算法:解决问题的方法

2.1.2 算法的优劣 2.1.2.1 时间复杂度 2.1.2.2 空间复杂度 2.1.2.3 正确性 2.1.2.4 容错性 2.1.2.5 可读性 2.2 算法描述 2.2.1 自然语言 用自然语言表示算法就是用日常生活中使用的语言来描述算法的步骤。自然语言通俗易懂,但是在描述上容易出现歧义。 2.2.2 伪代码 伪代码必须结构清晰、代码简单、可读性好,介于自然语言与编程语言之间。 2.2.3 流程图 2.2. 3.1 基本控件 起止框 处理框 判断框 输入输出框 流程线 2.2. 3.2 基本结构 ①. 顺序结构--复制运算 ②. 选择结构--求x的绝对值

C语言中常见的功能函数

C语言中常见的功能函数(应掌握的编程) 1、两个变量值的交换 void exchang(float *x,float *y) /*形参为两个变量的地铁(指针)*/ {float z; z=*x; *x=*y; *y=z; } void main() {float a,b; scanf(“%f%f”,&a,&b); exchang(&a,&b); /*因为形参是指针,所以实参必须给变量的地址,不能给变量名*/ printf(“a=%f,b=%f”,a,b); } 2、判断一个整数的奇偶 int jou(int n) /*如果是奇数返回1,否则返回0*/ { if(n%2==0) return 0; return 1; } 3、小写字符转换成大写字符 根据实参传给形参的字母,判断是否是小写字母,如果是小写字母,则转换成大写字母,否则不进行转换,函数返回转换后或原来的字符。 本函数仿照toupper()库函数的功能编写(toupper(c) 是将变量c字母转换成大写字母,如果不是小写字母不转换)。 char toupper1(char ch) {if(ch>=?a?&&ch<=?z?) ch-=32; /*小写字母比对应的大写字母ASCII码值大32*/ return ch; } 4、判断一个字符是否是字母(或数字) 根据实参传给形参的字符,判断是否是字母(或数字),如果是字母(或数字)返回1,否则返回0。此函数是根据库函数isalpha()(或isdigit())来编写的。 int isalpha1(char ch) /*判断是否是字母*/ {if(ch>=?A?&&ch<=?Z?||ch>=?a?&&ch<=?z?) return 1; else return 0; } int isdigit1(char ch) /*判断是否是数字字符*/ {if(ch>=?0?&&ch<=?9?) return 1; else return 0; } 5、根据学生成绩,返回其等级 char fun(float cj) {char c; switch((int)cj/10) {case 10:

《C语言程序设计》课程设计

《C语言程序设计》课程设计 刘力斌 一、意义和目的 C语言是光信息科学与技术专业的重要专业基础课。在很多后续课程中,都要使用到C语言。 学生通过对C语言的学习,已经具备了使用C语言编写简单的应用程序的能力。为了加强程序设计基础,开设课程设计课,使学生对C语言有更全面的理解,进一步提高运用C语言编程解决实际问题的能力,同时,为后续课程的学习夯实基础。 课程设计目的: 提高用程序设计解决实际问题的能力。 通过提出算法、指定输入输出来设计一个解决方案。 用C语言合理地开发两个简洁有效的程序代码来实现该设计。 测试程序是否工作且满足设计指标并评价其效率。 二、目标 完成本课程设计的学生应能在以下几方面证明你们的能力: A、分析问题。各种简单的与计算机有关的案例中所需要的输出结果,把大问题分解成小问题,使用自顶向下或类似设计方法给出模块化或计划。 B、提出算法执行特定任务。模块表示为算法,使用自顶向下或伪代码等设计手段将模块细化成更详细的成分,清楚地表明顺序、选择和重复等到控制结构。 C、把一个算法变为用C语言编写的结构化程序。 D、用合适的测试方法检查程序是否符合最初的要求,为不合适数据设计错误陷阱,并提供错误信息来帮助用户。 E、写出清晰的用户文档,确保用户或者通过遵循程序中的指示或者使用程序设计者编写的文档能成功地运行程序。 F、写出技术文档,对程序中主要标示符的含义或作用加以说明,并提供一个完整的程序流程图。 G、调试程序、测试数据过程成功。

三、要求 参加本课程设计的学生,应当认真完成本课程设计的全部过程。并以最终课程设计成果来证明其独立完成各种实际任务的能力。从而,反映出理解和运用本课程知识的水平和能力。 完成课程设计应提交如下文档: ①程序的总体设计和算法分析。 ②技术文档 ③用户文档 ④源程序代码清单。 ⑤测试数据和测试过程记录。 ⑥遇到的问题及解决方法分析。 四、选题 每人一个题,具体题目可以参考附录。 第一题:链表操作题(包括建立、插入、删除、打印等)(参考教材); 第二题:文件操作,具体题目最好是自拟。 如果选题确实有困难的同学,可参考后面参考题目来完成本课程设计(成绩要影响)。 五、评价 评价是检测学生理解问题和解决问题能力的一个重要手段,教师将根据学生提交的一套文件中,严格检查以下各项任务完成情况: 1、课程设计文档是否齐全。 2、程序的用户文档 如果在程序执行期间有足够的指导信息显示在屏幕上显示,这些用户文档可以是很简要的,也许只限于解释如何装入并运行程序。 3、问题或任务的陈述(描述问题,而且问题是合理原始的、应当包括输 入、输出及其预期范围。)是否正确。 4、问题的解决方案采取由顶向下设计的形式,在适当的地方使用伪代 码,把整个解决方案划分成若干模块。 5、程序完成后的代码应当加以注解。最少应清楚指出每一个模块。 6、用于检查程序的测试数据,或者对一个控制程序给出测试的例程。测 试应考虑探索通过程序的几条路径,在合适的地方选择打印输出来。 7、程序的技术文档

C语言常用IO函数

一些比较常用的io函数,总结了一下,一块贴出来了 stdin标准输入流 stdout标准输出流 stderr标准错误流 字符IO函数 1.int getchar() 说明:从stdin读取1个字符 返回值:成功,返回该字符;出错,返回EOF; 2.int fgetc(FILE fp) 说明:功能同getchar,默认从文件fp读取; 返回值:成功,返回该字符;出错,返回EOF; 可以重定向 3.int getc(FILE fp) 说明:功能与fgetc相同,但getc既可以被用作 函数实现,也可以被用作宏实现,并且它的编码效率 可能会更高. 可以重定向 4.int putchar(int ch) 说明:向stdout输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 5.int fputc(int c,FILE fp) 说明:功能同putchar,默认向fp输出字符ch; 返回值:成功,返回该字符;出错,返回EOF; 6.int putc(int c,FILE fp) 说明:功能与fputc相同,但putc与getc一样既可能被用作 函数实现,也可能被用作宏实现,并且它的编码效率可能会更高;可以重定向 字符串IO函数 1.char gets(char str) 说明:从stdin读取字符串(不包括'n')写入到字符串str中; 返回值:成功,返回str首地址;错误,返回NULL; 2.char fgets(char str,int N,FILE fp) 说明:默认从文件fp中读取N个字符(包括'n')写入到字符串str中,

如果实际输入字符串小于N,fgets自动添加'n', 返回值:成功,返回字符串首地址;错误或遇到EOF,返回NULL;可以重定向 3.int puts(const char str) 说明:向stdout输出字符串str,然受输出一个'n', 返回值:成功,返回非负值;错误,EOF; 4.int fputs(const char str,FILE fp) 说明:功能同puts,默认向文件fp写入字符串str; 返回值:成功,返回非负值;错误,EOF; 可以重定向 格式化IO函数 1.int scanf(const char format,...) 说明:根据format从stdin格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 2.int fscanf(FILE fp,const char format,...) 说明:功能同scanf,默认从文件fp读取, 返回值:成功,返回读取的项数;出错或遇到文件尾,返回EOF 可以重定向 3.int sscanf(const char buf,const char format,...) 说明:根据format从buf格式化读取N个值,并输入到... 返回值:成功,返回读取的项数;出错,返回EOF 4.int printf(const char format,...) 说明:根据format格式化数据,并输出到stdout 返回值成功,返回输出字符数;错误,返回负数; 5.int fprintf(FILE fp,const char format,...) 说明:功能同printf,默认向文件fp写入; 可以重定向 6.int sprintf(char buf,const char format,...) 说明:根据format格式化数据,并输出到buf, 返回值:成功,返回输出字符数;错误,返回负数

C语言基础知识

常量和变量 1.常量: 程序执行过程中,值不变的量。 3 ,'a' 变量:值可以改变的量。 一个变量有一个名字,在内存中有一定的存储单元,存放变量的值。 2.常量类型: a.整型:12,0,-3 b.实型:4.6,-1.2 c.字符型: 'a','d' d.符号常量: #define PRICE 30 (PRICE不能再被赋值且要大写) 3.变量: 先定义,后使用。一个变量只能被指定为一确定类型。 4.标识符:标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符数列。 a.由字母、数字、下划线三种字符组成,第一个字符必须为字母或下划线。 b.大写字母、小写字母被认为是两个不同的字符。 c.长度一般小于8个。 数据类型 一.整型: 1.整型常量 a.十进制:12,-3,0 b.八进制:以0开头。 c.十六进制:以0x开头。 2.整型变量 a. int -32768——32767 b. short int -32768——32767 c. long int d. unsigned int 0——65535 e. unsigned short 0——65535 f. unsigned long int、short int、long int 第一位为符号位 0000001 (0为正,1为负) unsigned 第一位不是符号位 0000001 所以int型和unsigned型的000001不是同一个值。 二.实型: 1.实型常量:

a.十进制数:数字和小数点组成。0.12,.12,12.0,0.0 b.指数:e之前必须有数字,e后面必须为整数。12e3 2.实型变量: a.单精度:float 7位有效数字 111111.1可,111111.11不可。 b.双精度:double 15—16位有效数字。 三.字符型: 1.字符常量: a. 'a' , 'x' , '*' ,'$' 。 b. 转义字符:‘\n'换。 '\t'从第九列开始。'\r'回车。 '\b'退一格。 2.字符变量: char char='a' 一个字符变量在内存占一个字节。 。将一个字符常量放到一个字符变量中,并不是把该字符本身放到内存单元中去,而是将该字符的ASC码 放到存储单元中,所以字符型数据和整型数据之间可以通用。一个字符型数据既可以以字符形式输出, 又可以以整数形式输出。 四.字符串常量: "how are you", "a","&12" 。不能把一个字符串赋给一个字符变量。 char c='a'对,char c="how" 错。 。'a' :在内存中存a。 “a”:在内存中存a\0。 ‘\0’是C语言中判断字符串是否结束的标志。 变量赋初值 a. int a=3; float f=7.2; char c='a'; b. int a,b,c=5; 相当于 int a,b,c; c=5; c. int a=3;b=3;c=3; 不可写: int a=b=c=3;

C语言常用函数手册

1.分类函数,所在函数库为ctype.h int isalpha(int ch) 若ch是字母('A'-'Z','a'-'z')返回非0值,否则返回0 int isalnum(int ch) 若ch是字母('A'-'Z','a'-'z')或数字('0'-'9'),返回非0值,否则返回0 int isascii(int ch) 若ch是字符(ASCII码中的0-127)返回非0值,否则返回0 int iscntrl(int ch) 若ch是作废字符(0x7F)或普通控制字符(0x00-0x1F) 返回非0值,否则返回0 int isdigit(int ch) 若ch是数字('0'-'9')返回非0值,否则返回0 int isgraph(int ch) 若ch是可打印字符(不含空格)(0x21-0x7E)返回非0值,否则返回0 int islower(int ch) 若ch是小写字母('a'-'z')返回非0值,否则返回0 int isprint(int ch) 若ch是可打印字符(含空格)(0x20-0x7E)返回非0值,否则返回0 int ispunct(int ch) 若ch是标点字符(0x00-0x1F)返回非0值,否则返回0 int isspace(int ch) 若ch是空格(' '),水平制表符('\t'),回车符('\r'), 走纸换行('\f'),垂直制表符('\v'),换行符('\n') 返回非0值,否则返回0 int isupper(int ch) 若ch是大写字母('A'-'Z')返回非0值,否则返回0 int isxdigit(int ch) 若ch是16进制数('0'-'9','A'-'F','a'-'f')返回非0值, 否则返回0 int tolower(int ch) 若ch是大写字母('A'-'Z')返回相应的小写字母('a'-'z') int toupper(int ch) 若ch是小写字母('a'-'z')返回相应的大写字母('A'-'Z') 2.数学函数,所在函数库为math.h、stdlib.h、string.h、float.h int abs(int i) 返回整型参数i的绝对值 double cabs(struct complex znum) 返回复数znum的绝对值 double fabs(double x) 返回双精度参数x的绝对值 long labs(long n) 返回长整型参数n的绝对值 double exp(double x) 返回指数函数ex的值 double frexp(double value,int *eptr) 返回value=x*2n中x的值,n存贮在eptr中double ldexp(double value,int exp); 返回value*2exp的值 double log(double x) 返回logex的值 double log10(double x) 返回log10x的值 double pow(double x,double y) 返回xy的值 double pow10(int p) 返回10p的值 double sqrt(double x) 返回+√x的值 double acos(double x) 返回x的反余弦cos-1(x)值,x为弧度 double asin(double x) 返回x的反正弦sin-1(x)值,x为弧度 double atan(double x) 返回x的反正切tan-1(x)值,x为弧度 double atan2(double y,double x) 返回y/x的反正切tan-1(x)值,y的x为弧度double cos(double x) 返回x的余弦cos(x)值,x为弧度 double sin(double x) 返回x的正弦sin(x)值,x为弧度 double tan(double x) 返回x的正切tan(x)值,x为弧度 double cosh(double x) 返回x的双曲余弦cosh(x)值,x为弧度 double sinh(double x) 返回x的双曲正弦sinh(x)值,x为弧度

C语言学习知识常考的知识点

C语言常考的知识点:总体上必须清楚的: 1)程序结构是三种:顺序结构, 循环结构(三个循环结构), 选择结构(if 和switch) 2)读程序都要从main()入口, 然后从最上面顺序往下读(碰到循环做循环,碰到选择做选择)。 3)计算机的数据在电脑中保存是以二进制的形式. 数据存放的位置就是他的地址. 4)bit是位是指为0 或者1。byte 是指字节, 一个字节= 八个位. 5)一定要记住二进制如何划成十进制。 概念常考到的: 1、编译预处理不是C语言的一部分,不再运行时间。C语言编译的程序称为源程序,它以ASCII数值存放在文本文件中。 2、每个C语言程序中main函数是有且只有一个。 3、在函数中不可以再定义函数。 4、算法的是一定要有输出的,他可以没有输入。 5、break可用于循环结构和switch语句。

6、逗号运算符的级别最低。 第一章 1)合法的用户标识符考查: 合法的要求是由字母,数字,下划线组成。有其它元素就错了。 并且第一个必须为字母或则是下划线。第一个为数字就错了。 关键字不可以作为用户标识符号。main define scanf printf都不是关键字。迷惑你的地方If是可以做为用户标识符。因为If中的第一个字母大写了,所以不是关键字。 2)实型数据的合法形式: 2.333e-1 就是合法的,且数据是2.333×10-1。 考试口诀:e前e后必有数,e后必为整数。. 3)字符数据的合法形式:: '1' 是字符占一个字节,"1"是字符串占两个字节(含有一个结束符号)。 '0' 的ASCII数值表示为48,'a' 的ASCII数值是97,'A'的ASCII数值是65。 4) 整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节: 考试时候一般会说,在16位编译系统,或者是32位系统。碰到这种情况,不要去管,一样做题。掌握整型一般是两个字节, 字符型是一个字节,双精度一般是4个字节就可以了。

C语言入门教程____免费下载

51单片机C语言 相信很多爱好电子的朋友,对单片机这个词应该都不会陌生了吧。不过有些朋友可能只听说他叫单片机,他的全称是什么也许并不太清楚, 更不用说他的英文全称和简称了。单片机是一块在集成电路芯片上集成了一台有一定规模的微型计算机。简称为:单片微型计算机或单片机 (Single Chip Computer)。单片机的应用到处可见,应用领域广泛,主要应用在智能仪表、实时控制、通信、家电等方面。不过这一切都没 什么关系,因为我(当然也包括任何人)都是从不知道转变成知道的,再转变成精通的。现在我只想把我学习单片机的经历,详细地讲叙给大 家听听,可能有些大虾会笑话我,想:那么简单的东西还在这里卖弄。但是你错了,我只是把我个人学习的经历讲述一遍而已,仅仅对那些想 学习单片机,但又找不到好方法或者途径的朋友,提供一个帮助,使他们在学习过程中,尽量少走些弯路而已! 首先,你必须有学习单片机的热情,不是说今天去图书馆看了一个下午关于单片机的书,而明天玩上半天,后天就不知道那个本书在讲什 么东西了。还是先说说我吧,我从大二的第一个学期期末的时候才开始接触单片机,但在这之前,正如上面所说的:我知道有种芯片叫单片机, 但是具体长成什么样子,却一点也不知道!看到这里很多朋友一定会忍不住发笑。嘿嘿,你可千万别笑,有些大四毕业的人也同样不知道单片 机长成什么样子呢!而我对单片机的痴迷更是常人所不能想象的地步,大二的期末考试,我全放弃了复习,每当室友拿着书在埋头复习的时候, 我却捧着自己从图书馆借的单片机书在那看,虽然有很多不懂,但是我还是坚持了下来,当时我就想过,为了单片机值不值得我这样去付出, 或许这也是在一些三流学校的好处吧,考试挂科后,明年开学交上几十元一门的补考费,应该大部分都能过了。于是,我横下一条心,坚持看 我的单片机书和资料。 当你明白了单片机是这么一回事的时候,显而易见的问题出来了:我要选择那种语言为单片机编写程序呢这个问题,困扰了我好久。具 体选择C51还是A51呢汇编在我们大二之前并没有开过课,虽然看着人家的讲解,很容易明白单片机的每一时刻的具体工作情况,但是一合上 书或者资料,自己却什么也不知道了,根本不用说自己写程序了。于是,我最终还是决定学C51,毕竟C51和我们课上讲的C语言,有些类似, 编程的思想可以说是相通的。而且C51还有更大的优点就是编写大程序时的优越性更不言而喻,当然在那时,我并没有想的那么深远,C51的特 点,还是在后来的实践过程中,渐渐体会到的!朋友如果你选择了C51,那么请继续往下看,如果你选择了A51,那么你可以不要看了!因为下面讲 的全是C方面的,完全在浪费你的时间! 呵呵 ^_^ 第二,既然你想学好单片机,你必须得舍得花钱,如果不买些芯片回来自己动手焊焊拆拆的(但是在后期会介绍给大家一个很好用的硬件 仿真软件,并不需要你用实验板和仿真器了,直接在你的PC上完成,但是软件毕竟是软件,从某个特定的意义上来说是并不能代替硬件的),即使 你每天捧着本书,把那本书翻烂,也永远学不会单片机的!刚接触单片机的朋友,看了资料,一定会对以下几个词见的比较多,但是具体的概

第1章 C语言基本知识

第一章C语言基本知识 一、C语言的产生和发展 1、C语言的发展源于人们希望用高级语言编写操作系统。(C-BCPL第二字母)ALGOL60(高级语言)->CPL(硬件支持)-BCPC->B->C->标准C->ANSI C->ISO C 2、语言既具有高级语言特性,又具有低级语言特性-中级语言。 二、C语言的特点 1、语言简明、紧凑、使用方便、灵活。 2、运算符丰富。 3、数据结构丰富,具有现代化语言的各种数据结构。 4、具有结构化的控制语句。 5、语法限制不太严格,程序设计自由度大。 6、C语言允许直接访问物理地址,能实现汇编语言的大部分功能,可以直接对硬件进行操作。 7、生成目标代码质量高,程序执行效率高。 8、用C语言写的程序可移植性好。 三、C程序的基本规则 1、C程序由函数构成。(亦称为函数语言。) 2、C程序中每条语句都用一个分号结尾,分号是C程序语句的必要组成部分,语句最后的分号不能省略。 3、每个C程序都有一个主函数(main()),且只有一个主函数。并且程序是从主函数开始执行的。 4、调用C语言的标准函数通常要在程序开头使用包含命令include,C程序中的命令不用分号结尾。 5、C程序中的变量必须先定义,后使用。 6、C语言以小写字母作为基本书写形式,并且C语言要区分字母的大小写,同一字母的大小写被作为两个不同的字符。 7、C程序中可以用“/*……*/”的形式加注释。 8、C程序书写格式自由,一行内可以写几条语句,一条语句可以写在多行。 9.一个函数包含两个部分: (1)函数的说明部分。包括函数名,函数类型,函数属性,函数参数名等。 如:int max(x,y) int x,y; 函数名后必须跟一对圆括弧,函数参数可以没有,如:main()。 (2)函数体。

C语言课程描述

《C语言程序设计基础》课程描述 实施学期第4学期总学时64讲授学时30实训学时34 课程定位 本课程对培养学生的计算机知识、算法和程序设计能力和计算机应用素质方面起到基础性和先导性的重要作用。同时《C语言程序设计》课程也是数据结构、面向对象程序设计等课程的先修课程,因此《C语言程序设计》课程在教学培养方案中起到承上启下的作用。 课程目标通过本课程的教学,掌握C语言程序设计的基础知识和基本技能,树立结构化程序设计的基本思想,养成良好的编程习惯,培养严谨务实的分析问题与解决问题能力,并为后续的课程打好软件基础。 课程内容C语言程序设计初步,算法的基本概念,常量、变量、运算符与表达式,程序控制结构,函数,编译预处理,数组,指针,结构体与共用体等。 学习重点 教学方法和 手段《C语言程序设计》课程是一门实践性很强的课程,在课程的教学中必须以理论为指导,以实践促理论,通过大量的实践,提高学生对具体问题的分析和运用高级语言进行程序设计的能力。建议采取工学结合、理论教学与实践教学并重的方式开展教学。在理论教学中,注重案例教学和多媒体辅助教学。所用案例应充分考虑工学结合的需求,并与专业所依托行业相应岗位的工作实际紧密结合。通过多媒体课件的开发,充分积累课程资源,有效拓展课堂信息量,适当增加课程的趣味性,努力激发学习兴趣和主动性,切实提高本课程的学习效果。在实践教学中,注重真案真做,实践内容与工作实际紧密结合,增强解决实际问题的能力,并增加对行业及岗位实际的认识。 考核方案设计平时实训项目成绩(30%)+平时作业考勤等成绩(30%)+期末笔试闭卷考试成绩(40%) 2.课程性质 本课程属于考试课程。课程开设的主要目的是使学生掌握一种基本的程序编译语言,了解C语言的基本开发要求,掌握C语言数据类型、结构化程序设计方法,数组及函数的使用,指针结构体等使用规则,培养学生计算机编程基本思想和基本技能。它要以计算机应用基础课程的学习为基础,为后续的应用性课程和系统开发课程的学习打好软件基础。 3.课程的设计思路 该课程总体设计思路是,打破以知识传授为主要特征的传统学科课程模式,转变为以工作任务为中心组织课程内容,并让学生在完成具体项目的过程中学会完成相应工作任务,并构建相关理论知识,发展职业能力。课程内容突出对学生职业能力的训练,理论知识的选取

C语言基础知识归纳

C语言基础知识 1.每个C程序有且只有一个主函数main(),且程序必须从main() 函数开始执行,并在main()函数中结束。 2.在C语言中,用e来表示科学计数法时,规定在e的前面必 须有数字,后面必须为整数。 3.用单引号括起来的一个字符常量只能存放一个字符;C语言中 没有字符串变量,只能用字符数组来存储字符串。 4.外部变量在编译时由系统分配永久的内存空间,所以外部变 量的类型不是自动存储类别。 5.在一个函数内的复合语句中定义的变量,只能在这个复合语 句范围内有效。 6.用sizeof(int)计算int类型数据的字节数。 7.C语言运行时,首先系统检查语法的正误,再运行程序的语法; C语言中,可以在一个函数中嵌套一个函数,但是不能在一个函数中定义一个函数;只有在函数外部定义的函数才是外部函数;C语言的子程序有过程和函数两种。 8.预处理命令行的位置没有规定,只是习惯放在前面;在源文 件中的可以有多条预处理命令,但一行只能写一条;宏名的大写只是习惯性的表示;宏替换不仅不占用运行时间还不分配内存空间。 9.feof函数的作用是检查文件是否结束,当结束时返回的 值为非零,否则为零。

10.当定义了数组后,在给其赋值时,不能直接把字符串赋给数 组名。 11.在赋值表达式中,赋值运算符“=”右侧不能为表达式;在 求余运算符中的两侧都必须为整型;在强制类型转换时,类型名应用括号括起来。 12.静态局部变量,只有当程序结束后,其值才释放。 13.当调用函数时,实参是一个数组名,则向函数传送的是数组 每一个元素的地址。 14.算法的特点为有零个或多个输入,有一个或多个输出,当相 同的输入时,其结果相同;算法正确的程序最终一定会结束。 15.在C语言中,预处理命令行都以“#”开头;当需要时才用 #include;预处理的作用就是实现宏定义和条件编译。 16.当数组元素的下标超出了定义的下标范围时,系统不给出“下 标越界”的字样,而是得出错误的答案,因此在编程时务必检查下标是否越界。 17.共用体变量不能作为函数的参数,也不能使函数带回共用体 变量。 18.指向函数的指针变量的定义形式为:数据类型(*指针变量) ();,因此其为指向函数的指针变量。 19.用C语言编写的代码程序是源程序,只有通过编译、连接才 能进行。 20.在说明为static时,其生存期得到延长,而其作用域并没有改

C语言基础教程经典100例

【程序1】 题目:有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? 1.程序分析:可填在百位、十位、个位的数字都是1、2、3、4。组成所有的排列后再去 掉不满足条件的排列。 2.程序源代码: main() { int i,j,k; printf("\n"); for(i=1;i<5;i++)/*以下为三重循环*/ for(j=1;j<5;j++) for (k=1;k<5;k++) { if (i!=k&&i!=j&&j!=k) /*确保i、j、k三位互不相同*/ printf("%d,%d,%d\n",i,j,k); } } =========================================================== === 【程序2】

题目:企业发放的奖金根据利润提成。利润(I)低于或等于10万元时,奖金可提10%;利润高 于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可可提 成7.5%;20万到40万之间时,高于20万元的部分,可提成5%;40万到60万之间时高于 40万元的部分,可提成3%;60万到100万之间时,高于60万元的部分,可提成1.5%,高于 100万元时,超过100万元的部分按1%提成,从键盘输入当月利润I,求应发放奖金总数? 1.程序分析:请利用数轴来分界,定位。注意定义时需把奖金定义成长整型。 2.程序源代码: main() { long int i; int bonus1,bonus2,bonus4,bonus6,bonus10,bonus; scanf("%ld",&i); bonus1=100000*0.1;bonus2=bonus1+100000*0.75; bonus4=bonus2+200000*0.5; bonus6=bonus4+200000*0.3; bonus10=bonus6+400000*0.15;

C语言课程总结报告

《C语言课程总结报告》 院系:机电工程学院 专业:机械设计制造及其自动化 班级:机制自动化19-02 C语言是一门最基础的程序设计语言,在刚开始学习的时候,由于没有任何知识储备以及了解,导致在课程中,举步维艰甚至有一段时间选择放弃,当为

了课程学习,以及为后来的学习打下基础,便咬牙坚持,在随后的一段时间里,通过书籍,一点儿一点儿将知识大厦建立起来,就慢慢体会到了他的乐趣所在。开始慢慢喜欢上C语言。 在C语言课程第一章的程序设计基础中,有了对C语言的一个比较全面的认识,了解了C语言的历史以及用途。在第二三两章,学习了C语言的基础:基本数据类型、运算符和表达式,通过这两章的学习,首先掌握了C语言的基本框架,并且能够运用基础知识,进行一些简单的编程,比如输出一些短句或者图案。在接下来的四五六章,学习了选择循环结构以及编译预处理和标准库函数,掌握了i f…else…,while, do while,for等语句,同时还能够调用常用数学函数去解决一些基本问题,从而使得程序更加简洁明了,通过对上面这些知识的掌握,使得我能够去编写一些较复杂的程序,并且能够利用编写程序来处理一些简单的数学问题,比如阶乘问题或者输出华氏摄氏温度转化表。第七章是关于函数,在这一章主要是介绍如何自定义函数,确实刚学起来的时候比较难,难以正确运用所学知识去解决问题,但随着对已有编程的分析研究,逐渐掌握了自定义函数的要素,比如自定义阶乘函数double fac(int n)

{ int i; double k=1; for(i=1;i<=n;i++) k=k*i; return k; }。 通过自定义函数使得程序更加简洁,条理清晰,同时对自定义函数的掌握,使得我解决问题的能力更提升了一个台阶,又到达了一个新的高度。第八章和第九章是数组以及字符串数组,通过这两章的学习首先了解了数组概念,并且能够定义数组,同时也学会了选择排序以及冒泡排序等简单的程序,通过数组的学习,可以将数组、字符串和循环语句结合在一起,从而使得我能够对自己的编程进行优化,使之更简化。第十章和第十一章是对结构联合以及文件的学习,通过这两章的学习懂得了结构与联合的区别:1、结构与联合都是由多个不同的数据类型成员组成,但在任何同一时刻,联合转只存放了一个被选中的成员,而结构的所有成员都存在。

C语言基础知识(详细版)

C语言程序的结构认识 用一个简单的c 程序例子,介绍c 语言的基本构成、格式、以及良好的书写风格,使小伙伴对 c 语言有个 初步认识。 例1:计算两个整数之和的c 程序: #include main() { int a,b,sum; /* 定义变量a,b ,sum 为整型变量*/ a=20; /* 把整数20 赋值给整型变量a*/ b=15; /* 把整数15 赋值给整型变量b*/ sum=a+b; /* 把两个数之和赋值给整型变量sum*/ printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); /* 把计算结果输出到显示屏上*/ } 重点说明: 1、任何一个c 语言程序都必须包括以下格式: main() { } 这是c 语言的基本结构,任何一个程序都必须包含这个结构。括号内可以不写任何内容,那么该程序将不执行任何结果。 2、main() - 在c 语言中称之为“主函数” ,一个c 程序有且仅有一个main 函数,任何一个c 程序总是从 main 函数开始执行,main 函数后面的一对圆括号不能省略。 3、被大括号{ }括起来的内容称为main 函数的函数体,这部分内容就是计算机要执行的内容。 4、在{ }里面每一句话后面都有一个分号(; ),在c 语言中,我们把以一个分号结尾的一句话叫做一个 c 语 言的语句,分号是语句结束的标志。 5、printf( “ a=%d,b=%d,sum=%d\n” ,a,b,sum); 通过执行这条c 语言系统提供给我们直接使用的屏幕输出 函数,用户即可看到运行结果,本程序运行后,将在显示器上显示如下结果: a=20,b=15,sum=35 6、#include 注意:(1)以#号开头 (2)不以分号结尾这一行没有分号,所以不是语句,在c 语言中称之为命令行,或者叫做“预编译处理命令” 。 7、程序中以/* 开头并且以*/ 结尾的部分表示程序的注释部分,注释可以添加在程序的任何位置,为了提高程序的可读性而添加,但计算机在执行主函数内容时完全忽略注释部分,换而言之就是计算机当做注释部分不存在于主函数中。 C程序的生成过程 C程序是先由源文件经编译生成目标文件,然后经过连接生成可执行文件。 源程序的扩展名为.c ,目标程序的扩展名为.obj , 可执行程序的扩展名为.exe 。

相关文档
最新文档