当前位置:文档之家› 打印一下-C语言期末复习资料(可编辑修改word版)

打印一下-C语言期末复习资料(可编辑修改word版)

打印一下-C语言期末复习资料(可编辑修改word版)
打印一下-C语言期末复习资料(可编辑修改word版)

期末复习

第一部分:C 中的数据

首先,从主调函数和被调函数(模块间)要处理的任务数据的角度来总结数据的知识点:

C 语言中所讲授的数据有基本类型(整型、实型和字符型)和构建类型(数组、结构体、共用体、链表结点)之分。构建类型是由基本类型构建而成,因此我们有必要对基本类型的数据做以更细致的研究。

一.基本类型的数据

程序中的数据无非是以常量和变量两种形式描述。在这里我们不妨思考两个问题:(1)为什么要用变量?(2)常量经常用在什么地方?

(一)常量

对于基本类型常量我们要掌握:常量分几类?每类的书写规则是什么?

(1)整型常量:有十、八、十六进制三种表示形式。(3.3.1、3.3.3)

(2)实型常量:有小数和指数两种表示形式.(3.4.1、3.4.3)

(3)字符型常量:有普通字符(可以是 ASCII 码表中的任何一个字符)、转义字

符(表示控制命令的转义字符和用八进制十六进制描述的转义字符)(3.5.1)(4)字符串常量(3.5.4)

(5)符号常量:实际上是不带参数的宏定义(3.2.1 、9.1.1)

对于常量部分的考察无非是辨别书写形式,字符类的常量特别注意转义字符的辨认。这就要求我们熟记书写规则。例如以下题目:

t-1:下面哪个是正确的整型常量表示

A)019 B)0X34g C)-123 D)o56 E) 12,000

t-2: 下面哪个是错误的实型常量表示

A).23 B)3.8E-4.5 C)45E12 D)92.45

t-3: 下面哪个是正确的字符常量表示:

A)”b”B)’\\’C)’\34’D)’\0x9’E)’0123’

t-4: 下面那个是正确的字符串常量表示:

A)’abc’B)“”C)“”D)“\0x120”E)”abRT\0\\”

F)”A”

t-5: 字符串“ab034\0\\t\v\012”存储需要多少个字节?先组合转义字符,11 个字节

t-6: puts(“ab034\0\\t\v\012”);的结果是ab034?strlen(“ab034\0\\t\v\012”)

的值是5?

(二)变量

对于基本类型的变量,我们知道要使用变量必须先定义变量,定义的基本格式是:数据类型变量名;要正确定义变量就必须清楚两点(1)什么样的变量名才是合法的?(3.2.2)(2)如何用类型符来描述所要定义的变量,这就涉及到变量所分配的字节数、存储特点、有无符号及各自表示的数值范围等。

变量的三大类:

(1)整型变量(3.3.2)

分配字节:2 字节(int/short) 4 字节(long)(TC2.0)

存储特点:存储的是数值的补码形式

符号标识:signed unsigned

表示数值范围:表 3-1

(2)实型变量(3.4.2)

分配字节:4 字节(float)8 字节(double) 16 字节(long double)存

储特点:图3-7

表示数值范围:表 3-2

(3)字符型变量(3.5.2、3.5.3)

分配字节:1 字节(char)

存储特点: 存储字符的A SCII 值

符号标识:signed unsigned

表示数值范围:signed char: -128~+127

Unsigned char: 0~255

基本类型变量这部分知识主要的考察形式:

(1)变量名(标识符)的正确与否鉴别

(2)变量类型标识符的识别与应用

(3)变量定义语句中对变量进行初始化的形式正确与否鉴别(3.6)

例如以下题目:

t-7: 以下正确的变量标识符是:

A)3sum B)INT C)_3max D)case E)p&sum F)s_m_a t-8: 以下正确的变量类型声明是:

A)s igned int B)int long C)unsigned long D)short long

t-9: 下面程序段在 tc2.0 和c free3.0 运行时的输出各为-1 / 65535?

unsigned int a=65535;

printf("%d",a);

t-0: 以下正确的定义语句是:

A)i nt a=b=5 ; B)char ch=97 ; C)unsigned int x, y=-5;D)int

a=3,b=5; E)int c=3

(二)建构类型的数据

程序给出的任务数据可以是基本类型的,也可以是集合性质的。集合中的所有数据可以是同类型的即数组(7.1.1~7.1.3、7.2.1~7.2.3、7.3.1~7.3.4),也可以是不同

类型的(例如学生记录)即结构体(11.1~11.5)。

在这部分知识中主要考察的形式有:

(1)数组及结构体的定义、初始化和引用

(2)计算集合(数组、结构体变量)存储所需要的空间

(3)数组定义时缺省形式的一些规则:

●在定义一维数组时,若给出了所有初始值则一维中括号内的数值可以省

略,由初始值的个数来确定其值。但若没有给出初始值,则不能省略中括

号内的值。例如:int a[]={1,2,3}; int b[]={3};都对。int a[]; 不对。

●二维数组的第 2 维列数任何情况下都不能缺省,第 1 维中的数值若在给出

初始值的按情况下可以缺省。例如int a[2][]={{1,2}{3,4}}不对。int

a[][2]={1,2,3,4,5};正确。

(4)只有在数组定义时可以给数组整体赋值,不能单独用赋值运算“=”给数组整体赋值,特别是字符串数组。例如 int a[3]; a={1,2,3}; char b[10]; b=”china”;

char c[2][10]; c[0]=”chian”;c[1]=”japan”都不对, 只能是

int a[3]={1,2,3};char b[10]=”china”; char

c[2][10]={“china”,”japan”};

(5)函数体内定义的数组名是地址常量,而由数组名表示的一些表达式也是常量表达式。如int a[3]={1,2,3}; a,a+i 都是常量。int b[3][3]={..};

b,b[0],b+i,*(b+i)也都是常量形式。常量形式意味着该式只能出现在等号

的右边,而不能作为左值。

例如以下题目:

t-11: 以下正确的数组定义形式是:

A)i nt n; scanf(“%d”,&n) ; int a[n] ;

B)#define N 10 int a[N]; C)int b[3][4];

D)char b[ ][4];

t-12: 以下不正确的数组定义和初始化形式是:

A)int a[]={1,2,3}; B) int a[]={0}; C) int a[][3]={1,2,3,4};

D)int a[2][2]={{1,1},{2,2},{3,3}} E) char a[10]={“hello”}; F) char a[]=”hello”;

G)int a[2][]={{1,1},{2,2}}; H) char a[10]; a=”hello”;

I)char a[2][10]; a[0]=”hello ” ;a[1]=”tom” ; J) char a[2][10]={“hello”, “tom”};

t-15: 若有数组 int a[2][2]={1,2,3,4},则能引用数组元素 4 的形式为:

A) a[1][2] B) *(a+1) C) *(*(a+1)+1) D) *(a+3) E) a[1][1] F) *(a[1]+1)

t-6: 若有数组 int a[3]={1,2,3};则能引用数组元素 2 的形式为:

A)a[1] B) *(a+1) C) &a[1] D) a+1t-11: 以下正确的数组定义形式是:

A)i nt n; scanf(“%d”,&n) ; int a[n] ;

B)#define N 10 int a[N];

C)int b[3][4];

D)c har b[ ][4];

t-17: 若有如下程序段,则对于“TOM”串中首字符 T 的正确引用形式为: struct A{ int age;

char name[10];

};

Struct A t[2]={1,”TOM”,2,”MIKE”},*p=t;

A)(*p).name B) t[2].name C)t[1].name[0] D)p->name[0]

第二部分:数据的输入输出

讨论完 C 中的数据我们再讨论各种数据的输入与输出。如果数据输入不当再完美的程序也不可能显示出预期的结果。这部分作业的输入出现的问题较多,我们要熟记输入规则但不能死记硬背。下面的这三对函数都包含在文件“stdio.h“中,因他们的输入输出终端是标准设备-键盘和显示器,因此称为标准的 IO 函数,标准 IO 函数的使用与缓冲区有密切的联系。学习本部分时最重要的是要理解输入缓冲区中数据流和输入函数格式匹配的输入机制(参见本章手册中的参考资料)

C 中的输入输出是调用系统库函数来实现的,常见有三对库函数:

(1)s canf()/printf(): 可输入输出任何类型的数据。一次函数调用可以实现多个数据的 IO。

(2)g ets()/puts():只对字符串数据进行输入输出操作。一次函数调用只可实现一个串的IO。

(3)g etchar()/putchar():只对字符数据进行输入和输出操作。一次函数调用只可实现一个字符的 IO。

对于这几对函数的使用主要考察:

(1)s canf、printf 的使用规则(4.5,可参考本章教学目标)

(2)g etchar 和p utchar 的使用格式(4.4)

(3)g ets 与s canf 的使用区别例

如以下题目:

t-18:若有程序段 int a; float x; char c[10];scanf(“%2d%f%s”,&a,&x,c);

当程序执行时从键盘输入 23456.78abcd ,a=23 x=456.78、和 c=”abcd”t-19:若有定义 int a ;float b ; 则 scanf(“a=%d;b=%f”,&a,&b) ;的输入形式是

a=3 ;b=4.5

t-20:若有定义 float x ;则语句scanf(“%5.2f”,&x)是否正确?不正确

t-21:若有定义 char a,b ;对于scanf(“%c%c”,&a,&b );若输入 A B,则a=A

b=空格?

t-2:若用 getchar()函数输入一个字符存储到字符变量 ch 中再将其输出,则以下正确的写法是:

A)g etchar(ch) ;B)ch=getchar(); C) ch=putchar(); D)putchar(ch); t-23: 若有语句 scanf(“%s”,a); 程序运行时若输入 hello tom!,则存储到 a 中的串是“hello”

t-24: 若有 int a=97; float x=34.56; char c=’B’ ; 则语句printf(“ %c%d

%d”,a,x,c )的输出是a 34 66

t-25: 若有程序段:

char a, b , s[10],t[10]; a=getchar();b=getchar();

gets(s);gets(t);

printf("a=%c,b=%c,s=%s,t=%s",a,b,s,t); 程序

运行时若输入 A

B

Hello

TOM

程序输出是a=A,b= ,s=B,t=HELLO

t-26: 若有如下定义,写出每个变量对应的格式符。

int a ; %d long int b; %ld unsigned long c; %lu

float x; %f long double y; %lf char ch; %c

t-7: 若要分别输入两个串“hello”和“tom”至数组 s 和 t 中,下面四个程序段运行结果是

否一样?可以有什么样的推论?若运行后输入的两个串以回车为结束符

程序段 1:程序段 2:程序段 3:

char s[10],t[10]; char s[10],t[10]; char s[10],t[10];

gets(s);gets(t); scanf(“%s”,s); gets(t); gets(s);

scanf(“%s”,t);

程序段 4:

char s[10],t[10]; scanf(“%s”,s);

scanf(“%s”,t);

程序段 2 结果不一样。Scanf 和 gets 连用时对回车符的处理不同。Scanf 将回车符留在缓冲区中,而 gets 的回车符带走。

第三部分:函数之间对任务数据的处理方法

在编写多模块程序也即存在函数调用这样的程序时,我们必须首先设计模块之间任务数据的交接方法,即主调函数如何让被调函数得到要访问的任务数据。部分初学者对此不解,不明白为什么在子函数中不能通过直接引用主调函数中的变量名来访问主调函数中的任务数据,例如这样的题目:在 main 函数中定义了变量 x 和变量 y 并赋予值,而子函数sum 的任务就是对主函数中的这两个数据求和,部分初学者也许认为在sum 函数中直接用表达式 x+y 就可以求出主调函数中这两个变量的和了。

要明白这个错误的原因我们还是要对程序的模块化设计思想做以分析。这个思想的设计起因很简单,正如我们可以理解为什么学校里要划分院系,而院系里再分班;也正如为什么公司里都划分各个职能部门一样。变量的作用域属性和存储属性也就是这个设计思想规则的体现。模块之间只能通过接口(实参/形参返回值)来互通信息。

为了保证模块内部信息(数据)的隐藏性,规定模块内部定义的变量也只能在本块内被引用,这就是作用域规则下的局部变量。在某些时候可能几个模块需要共享一些数据,这些数据可以被多个模块访问,这就是作用域规则下的全局变量。例如在战争游戏中,指挥部和后勤部都会需要战士的人数,指挥部用这个数目来调兵遣将,后勤部用这个数目来供给口粮和装备。

不同的模块之间存在信息共享(全局变量),而同一个模块的多次调用之间也可以共享某些信息(静态局部变量)。

对于作用域和存储类型这两部分内容要掌握:

(1)完整的变量定义格式:存储类型符数据类型符变量名;

(2)能根据变量的定义位置来判断哪些是局部变量,哪些是全局变量,他们各自的作用域范围是什么。

(3)能根据变量定义中的存储类型符来判断变量的存储类型,从而确定变量在内存生存期的起点和终点。

(4)所有的全局变量都是静态存储的,也即存储类型符只能是static/extern 两种之一,这两个的区别是前者限定这个全局变量只能被当前文件所使用,而后者声明的变

量可以被其他文件所使用。若全局变量缺省存储类型符则默认为e xtern。

(5)静态变量在使用前都应有初始值,若未显示赋值则系统有默认值-0 或者NULL。

(6)局部变量有静态类型也有动态类型,若存储类型符缺省则应默认为 auto。

常见题型:

t-28:读程序写结果:

#include int

fun(int);

int n=1;

void main()

{ int x=2, y=3;

printf("1:x=%d,y=%d,n=%d\n",x,y,n);

{ int x=7;

printf("2:x=%d,y=%d,n=%d\n",x,y,n);

}

y=fun(x);

printf("3:x=%d,y=%d,n=%d\n",x,y,n);

y=fun(x);

printf("4:x=%d,y=%d,n=%d\n",x,y,n);

}

int fun(int x)

{ static m=3;

m++;

n+=x;

printf("5:x=%d,m=%d,n=%d\n",x,m,n);

return m+n;

}

因变量作用域的限制使得接口传递信息时采取一种机制:将主调函数的实参值进行复制,形参到的是实参的副本,即传值调用的机制。但这种机制在处理集合数据时带来问题,我们不可能将集合中的每一个数据都做为一个实参,为了解决这个问题考虑将集合数据在内存中存储的首地址(是一个地址值)拷贝给子函数,这样子函数就需要定义指针变量来接收传递来的地址值,这种处理机制称传址调用,子函数能利用指针变量间接访问到主调函数中的数据。对于返回结果是集合性质的数据也采用相同

的处理方法,即返回这个结果集合的首地址,也即返回值是指针的函数功能。

若主调函数要子函数处理的是多个同类型的数据集合,例如多个一维整型数组,或者多个串,那么为了传递简便通常在主调函数中先对这多个数据集合做些处理,例如将这几个集合的首地址存储在一个指针数组中,这样传递实参时只要将这个指针数组的首地址传递给子函数,而子函数将定义一个二级指针来存放指针数组的首地址,继而通过这个二级指针来间接访问到这多个数据集合。

例如 char a[10]=”..”,b[10]=”..”,c[10]=”..”; char *p[3]={a,b,c}; 有函数调用 fun(p,3),则形参定义相应为:(char **pp, int n ).

例如如下题型:

请分析下面函数调用表达式中的实参来写出对应的子函数中形参变量的定义,并说出这种调用形式下数据的访问方法(传值调用还是传址调用):

t-29:根据实参写出对应的形参变量的定义

(1)主调函数中若有定义:int x=2,y=3;

函数调用: fun(x,y);

形参定义:

(2)主调函数中若有定义:int x=2,y=3;

函数调用:fun(&x,&y);

形参定义:

(3)主调函数中若有定义:char x=’A’,y=’B’;

函数调用:fun(x,y);

形参定义:

(4) 主调函数中若有定义:int a[5]={1,2,3,4,5};

函数调用:fun(a[0]);

形参定义:

(5) 主调函数中若有定义:int a[5]={1,2,3,4,5};

函数调用:fun(&a[0]);或者 fun(a);

形参定义:利用形参变量对数组元素的间接访问形式

(6) 主调函数中若有定义:int a[3][3]={1,2,3,4,5,6};

函数调用:fun(a[2][2]); 形

参定义:

(7) 主调函数中若有定义:int a[3][3]={1,2,3,4,5,6};

函数调用:fun(&a[2][2]);

形参定义:利用形参变量对数组元素的间接访问形式(8) 主调函数中若有定义:int a[3][3]={1,2,3,4,5,6};

函数调用:fun(a,3,3); 形

参定义:

(9) 主调函数中若有定义:int a[3][3]={1,2,3,4,5,6};

函数调用:fun(*a,9);或者 fun(&a[0][0],9);或者 fun(a[0],9)

形参定义:利用形参变量对数组元素的间接访问形式(10)主调函数中若有定义:char a[3][10]={“hello”,”jack”,”tom”};

函数调用:fun(a,3);

形参定义:利用形参变量对数组元素的间接访问形式(11)主调函数中若有定义:

int a[5]={1,1,1,1,1};

int b[5]={2,2,2,2,2};

int c[5]={3,3,3,3,3};

int *p[3]={a,b,c};

函数调用:fun(p,3);

形参定义:利用形参变量对数组元素的间接访问形式(12)主调函数中若有定义:

char a[5]=”hello”;

char b[5]=”jack”;

char *p[2]={a,b,c};

函数调用:fun(p,2);

形参定义:利用形参变量输出串j ack

(13)主调函数中若有定义:

char a[3][10]={”hello”, ”jack”,”tom”};

char *p[3]={a[0],a[1],a[2]};

函数调用:fun(p,3);

形参定义:利用形参变量输出串j ack

(14)主调函数中若有定义:

Struct A {

Int x;

Char n[10];

};

Struct A m={1,”mike”};

函数调用:fun(m);

形参定义:

Struct A a[3]={1,”mike”,2,”jack”,3,”tom”};

函数调用:fun(a,3); 利用形参变量输出串m ike

形参定义:

函数调用:fun(a[0])

形参定义:

在多模块的程序中应能写出或者找出函数的三要素-函数调用、函数声明(原型)、函数定义,函数声明根据情况可以缺省。或者给出其中一个要素能写出其它的两个要素,例如以下题目:

t-0:

函数原型: double fun(int,float);

函数调用:

函数定义头部:

t-31:

函数原型: char *fun(char *,char ) ;

函数调用:

函数定义头部:

t-32:

函数原型: int fun(int [], int) ;或者 int fun(int *, int) ;

函数调用:

函数定义头部:

t-33:

函数原型: int fun(int (*)[3], int,int) ;

函数调用:

函数定义头部:

t-34:

函数原型: int fun(int **, int,int) ;

函数调用:

函数定义头部:

函数调用: p=fun(a,b) ; /* 若以有定义 char *p ,a[10] ,b[10] ;*/

函数定义头部:

t-36:

函数原型:

函数调用: sum=fun(a,5) ; /* 若以有定义 int sum,a[5]={..} ;*/

函数定义头部:

t-37:

函数原型:

函数调用: sum=fun(a,5,5) ; /* 若以有定义 int sum,a[5][5]={..} ;*/

函数定义头部:

t-38:

函数原型:

函数调用: fun(p,3) ; /* 若以有定义char (*p)[3]={“..”,“.”,“..”}*/

函数定义头部:

t-39:

函数原型:

函数调用: sum=fun(&a[0][0],9) ; /* 若以有定义 int sum, a[3][3]={...}*/ 函数定义头部:

t-40:

函数原型:

函数调用: fun(x) ; /* 若以有定义 struct A x={...}*/

函数定义头部:

函数调用: fun(a,3) ; /* 若以有定义 struct A a[3]={...}*/

函数定义头部:

t-42:

函数原型:

函数调用:

函数定义头部:int sum(int (*p)[3],int m,int n) t-43:

函数原型:

函数调用:

函数定义头部:int *sum(int *p)

在这部分内容中,对于给出的程序我们要非常明确程序采用的调用方式是传值还

是传址,两个模块的接口处实参和形参的匹配,子函数返回值和主函数接收值的匹配。

第四部分:模块内部的任务实现(算法:解题思路)

多数题目在解题的过程中可能都会用到选择和循环,因此我们有必要首先对程序

的这两种结构进行讨论。

选择结构的应用比较简单,只是把我们思维中的选择逻辑依葫芦画瓢的用计算机语句翻译出来就可以,而循环结构的应用对于初学者来说需要花费一定的精力,理解循环的构成,分析每一类题目循环的应用特点。

C 语言中的分支语句(第 5 章)只提供了四种,其中三种 if 语句(简单 if/两分支 if/多分支 if),一种 switch 语句。而应用这四种语句或嵌套能实现任何复杂情况的选择逻辑。

按选择逻辑分类,可有两分支的选择逻辑和多分支的选择逻辑,两分支的逻辑可

由简单 if 语句和两分支 if 语句实现,课堂上我们曾推论过这两种结构之间的转换关系,希望大家还记得。多分支的逻辑可有三种方法实现:(1)由两分支语句嵌套实现多分支(2)应用多分支 if 语句实现(3)应用 switch 语句实现。作业中我们曾以三分支的逻辑(分段函数)为例,要求大家尽可能写出由两分支嵌套实现的三分支各种写法,其中有一种是 if...else...的 else 分支中又嵌套了一个 if...else...,而这种逻辑结构实质上就是多分支if 语句的变形,由此我们推论出(1)和(2)之间的关系,继而又用实例演示了(2)和(3)之间的转换关系,这样我们就把选择结构的所有形式有机的串联起来,它们之间是存在紧密联系的,明白了这一点在编写程序的时候用什么形式来编写选择逻辑就很清楚了。

对于循环的应用(第6 章),我们在课堂讲解时首先用较简单的例题演示了三种循环语句(while 循环,do-while 循环,for 循环)的使用,然后总结了循环的三个构成:循环变量的初始化、循环条件的设置、循环变量步长的修改。然后对用常见的应用循环的题目根据任务性质做了分类,有数值型求解题目(主要是数学类,如

1+1/2 !+1/3 !+...等)和事务管理类题目(学生成绩统计等),对于数值求解类题目有迭代算法的,有穷举算法的,也有其他算法的,它们对于循环的应用形式各有千秋,在学习时应多归纳总结规律。

选择结构这部分内容中主要会考察:

(1)对于给定的应用选择结构的程序能清楚的找出配对关系。

(2)各分支语句之间的转换

(3)对于判断条件条件的理解,应会书写和计算条件

(4)对于 switch 语句的理解,switch 中缺省 break 语句对结果的影响

(5)应用分支语句来编写程序。

(请参考第 5 章手册里的课后自测部分的题目)

例如以下题目:

t-44.若有 a=1,b=3,c=5,d=4,x=6,则下面程序段执行后 x 的值是:

if( a

if( c

else if( b

else x=5;

t-45.将下列 switch 语句改写为 if 语句实现

swicth(x)

{ case 0 :y=0 ;break ;

case -1: y=-1;break;

case 1: y=1;break;

default: y=10;

}

t-46.将下列i f 语句改写为s witch 实现:

if(x<0) y=-1 ;

else if(x==0) y=0;

else y=1;

t-47.下面程序段输出是什么?

int x=1;

if(x=2) putchar(‘*’); else

putchar(‘#’);

t-48.下面程序段输出是什么?

Char a[10]=”hello”,b[10]=”hi,liou”; Char

*p1,*p2;

p1=a;p2=b+3;

if(*p1==*p2) putchar(‘*’); else

putchar(‘#’);

t-49: if(printf(‘*’))的条件与下面哪一个等价

A)if(‘1’) B)if(a=0)

t-50:下面程序段的输出是什么?

int x=3,s=0;

switch(x)

{ case 3:

case 2: s++;

default: s++;

case 1: s++;

}

printf(“s=%d”,s);

循环结构这部分主要考察:

(1)三种循环的互相改写

(2)循环条件的判定与书写

(3)循环中执行的跳转(break/continue)

(4)嵌套循环的应用(特别是对一二维数组的访问)(5)W hile 与d o-while 的区别例

如以下题目:

t-51:将下面的 for 循环改写成 while 循环:

for(i=0;i<=10;i++)

{ if(i==6 ) continue;

printf(“*”);}

t-52: 以下程序段的输出是

int a=1,b=2,c=3,s=1;

while(c>b>a)

{ if(s++>3) printf(“%d”,s);}

printf(“%d”,s);

t-3:下面的循环条件哪个为真

A)c har ch=’0’ ; while(ch){…} B)int a=1;while(a=0){..} C) int a=0; while(a++){…}

t-54:下面程序段的功能是什么? char

a[10],*p1=a,*p2=”hello”;

while( *p1++ = *p2++);

t-55: 下面程序段的输出是什么?

char a[10]= “abcdef”,*p1=a, b[10]=“ABC”,*p2=b; while(*p1 &&

*p2) { *p1=*p2;p1++;p2++} puts(a);puts(b); puts(p1);puts(p2);

t-56:若有定义 int a[3][3]={1,2,3,4,5,6,7,8,9},i,j;则下面程序段的输出是什么?

for(i=0;i<3;i++)

{ for(j=0;j<3;j++)

{printf("%d",a[i][j]);if(i==j) break; } printf("\n");

}

算法中使用的分支或者循环结构是构建框架的体现,而框架内就需要具体的语句来填充,算法描述中相当一部分语句是各种运算表达式语句,这就需要我们对C 中的运算做以全面的了解。应将课本附录 C 中运算符的优先级和结合性以及图 3-10 记住,对于计算混合表达式有用。对于字符型数据应牢记在运算时取其 ASCII 值进行运算,

C语言必背18个经典程序(可直接打印)

1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) /*内循环结束后,leap依然为1,则m是素数*/ {printf("%-4d",m);h++; if(h%10==0) printf("\n"); } leap=1;

C语言讲义自己归纳笔记

ACM协会C语言讲义 知识点1:C语言的数据类型 所谓数据类型是按被定义变量的性质,表示形式,占据存储空间的多少,构造特点来划分的。在C语言中,数据类型可分为:基本数据类型,构造数据类型,指针类型,空类型四大类。 知识点2:常量 对于基本数据类型量,按其取值是否可改变又分为常量和变量两种。在程序执行过程中,其值不能被改变的量称为常量。 整型常量:12,0,-3 实型常量:0.25,12.345,-3.4 字符常量:’a’,’b’ 知识点3:符号常量 符号常量:用标示符代表一个常量。在C语言中,可以用一个标识符来表示一个常量,称之为符号常量。 符号常量在使用之前必须先定义,其一般形式为: #define 标识符常量 习惯上,符号常量名用大写,变量名用小写,以示区别 例 #define PRICE 30 #include void main() { int num,total; num=10;

total=num*PRICE; printf("total=%d\n",total); } 程序中,用#define命令行定义PRICE代表常量30,此后凡在本程序中出现的PRICE都代表30,可以和常量一样进行运算,程序运行结果为 total=300 用标识符代表一个常量,称为符号常量。 符号常量与变量不同,它的值在其作用域内不能改变,也不能再被赋值。 符号常量的好处是: 含义清楚; 能做到“一改全改”。 知识点4:标识符 在C语言中用来对变量、符号常量、函数、数组、类型等数据对象命名的有效字符序列统称为标识符。简单的说,标识符就是一个名字。 C语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。 知识点5:字符串常量 字符换常量是一对双撇号括起来的字符序列。 “Hello world” C规定:在每一个字符串常量的结尾加一个“字符串结束标志”,以便系统据此判断字符串是否结束。C规定以字符’\0’作为字符串结束标志。 知识点6:强制类型转换 (double)a (将a转换成double类型) (int)(x+y) (将x+y的值转换成整形) (float)(5%3) (将5%3的值转换成float型) 其一般形式为 (类型名)(表达式) 知识点7:自增、自减运算符 ++i,--I (在使用i之前,先使用i的值加(减)1) i++,i-- (在使用i之后,使用i的值加(减)1) 例 i=3; printf("%d",++i); 输出“4”,若改为 printf("%d",i++); 则输出“3”。 知识点8:复合的赋值运算符 a+=3 等价于a=a+3

C语言必背18个经典程序

C语言必背18个经典程序 (总10页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } system("pause"); } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除, 则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m); for(i=2;i<=k;i++)

C语言全套教材

变量和常量 一、变量 (一)、变量类型和表示方法 1.什么是变量?一句话,变量是存储数据的值的空间。由于数值的类型有多种,有整数、小数(浮点数)、字符等等,那 么对应的变量就有整型变量、浮点型变量、字符型变量。变量还有其他的具体分类。整型变量还可具体分为无符号型、长整型和短整型。浮点型也可分为单精度型、双精度型和长双精度型。此外还可以分为静态变量、外部变量、寄存器变量和自动存储变量。这些数据类型我们在本节和后面的章节中都会陆陆续续介绍。 那么变量我们总要给它取个名字吧,这个名字我们叫做标识符。 标识符的命名有一定的规则: (1).标识符只能由字母、数字和下划线三类字符组成 (2).第一个字符必须是字母(第一个字符也可以是下划线,但被视作系统自定义的标识符) (3).大写字母和小写字母被认为是两个不同的字符,如A和a是两个不同的标识符 (4).标识符可以任意长,但只有前32位有效。有些旧的C版本对外部标识符的限制为6位。这是由于链接程序的限制所总 成的,而不是C语言本身的局限性 (5).标识符不能是C的关键字 2.从上面的规则中,有个关键字的概念。那么什么叫关键字呢? 从表面字意上也可以看出,关键字是C语言本身某些特性的一个表示,是唯一的代表某一个意思的。 下面列出ANSI标准定义的32个C语言的关键字,这些关键字在以后的学习中基本上都会用到,到时再说它们的各自用法。 auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while C语言还包括一些不能用做标识符的扩展关键字。 asm cdecl _cs _ds _es far huge interrupt near pascal _ss 所以在以后的学习中,在给变量命名时要避开这些关键字。 3. Turbo C2.0规定所有变量在使用前都必须加以说明。一条变量说明语句由数据类型和其后的一个或多个变量名组成。变 量说明的形式如下: 类型<变量表>; 这里类型是指Turbo C2.0的有效数据类型。变量表是一个或多个标识符名,每个标识符之间用,分隔。 (二)、整型变量 整型变量是用来存储整数的。 整型变量又可具体分为好几种,最基本的整型变量是用类型说明符int声明的符号整型,形式如下: int C ounter; 这里int是类型说明符,Counter是变量的名字。 整型变量可以是有符号型、无符号型、长型、短型或象上面定义的普通符号整型。 整型是16位的,长整型是32位,短整型等价于整型。 以下是几种整型变量的声明示例: long int Amount; /*长整型*/ long Amount; /*长整型,等价于上面*/ signed int Total; /*有符号整型*/ signed Total; /*有符号整型,等价于上面*/

全国计算机二级C语言资格考试培训资料

全国计算机二级C语言资格考试培训资料 ◆考试方式 全国计算机等级考试二级C语言每年上半年3月份与9月份两次考试,报名时间查看通知。 1.笔试:90分钟,满分100分,其中含公共基础知识部分的30分。 2.上机:90分钟,满分100分 3.上机操作包括: (1)填空。 (2)改错。 (3)编程。 ◆题型分析 二级C考试分笔试和机试两部分,两部分总分均为100分,两部分考试均需60分以上才能合格发放证书。若其中一科(笔试或机试)通过,另一科可在下一次考试中补考,若补考合格发放证书。若二科均在85分以上,在合格证书上将加印“优秀”字样,若二科均在70分以上,在合格证书上将加印“良好”字样。 (一)笔试 笔试内容分两部分。公共基础知识考核内容:30分;C语言基础知识考核内容:70分。题型分析如下: 1、单向选择题40道题,共70分。

分值分布如下: 其中(1)-(10)、(21)-(40)小题,每題2分,(11)-(20)小题,每题1分。 考核内容分布如下: (1)-(10)小题为公共基础知识考核内容,共计20分; (11)-(40)小题为C语言知识考核内容,共计50分。 2、填空题15个空,每空2分,共30分。 考核内容分布如下: (1)-(5)空为公共基础知识考核内容,共计10分; (6)-(15)空为C语言知识考核内容,共计20分。 ◆基本要求 1.熟悉 6.0 集成开发环境。 2.掌握结构化程序设计的方法,具有良好的程序设计风格 3.掌握程序设计中简单的数据结构和算法并能阅读简单的程序。 4.在 6.0 集成环境下,能够编写简单的C程序,并具有基本的纠错和调试程序能力 ◆考试内容 一、C语言程序的结构 1.程序的构成,函数和其他函数。 2.头文件,数据说明,函数的开始和结束标志以及程序中的

《C语言程序设计》案例讲义_完整版

C语言程序设计 模块一认识C语言 能力标准: 1.了解C语言的作用; 2.熟悉C程序结构; 3.掌握TC集成调试环境的使用。 知识点: 1.C语言是人和计算机交流的一种工具; 2.C语言程序的执行过程。 1.C语言的发展 计算机语言是计算机和人交流的工具,必须遵守一定的规则,具有一定的书写格式。C语言就是一种计算机语言,诞生于1972年,是由美国电话电报公司(AT&T)贝尔实验室的Dennis.M.Ritchie 设计。C语言诞生至今已30多年,其发展经历了ALGOL(1960年)—CPL(1963年)—B(1970年)—C(1972年)的演变过程。 2.人机交流 人和计算机交流可以采用对话形式的一问一答方式,也可采用任务方式,即把需要交流的内容集中在一起,一次性完成。前者的专业述语叫解释方式,后者叫编译方式。用C语言进行人和计算机交流采用的是编译方式。具体过程如下: ?编程首先人将和计算机交流的内容按要求,用C语言写成任务,如要计算机计算5!,则需要写出以下任务: #include main() { float m,k,j; k=5; m=1; for(j=1;j<=k;j++) m=m*j; printf(“%f !=%f\n”,k,m); } 上述用C语言表示的任务,称为程序。所谓程序指由一系指令组成,完成某个具体功能的指令集合。 ?编译计算机本身是一堆零件,它只知道高低电平,对应到二进制就是“0”和“1”这两个符号,当然它是不认识我们用上述符号写成的程序,因此我们需要将上述程序进行转换,转换成由“0”和“1”的组合来表示的二进制程序,也就是机器语言程序。我们把这样的转换称之为编译。 ?连接为了方便程序的编写,专业人员已经将许多常用的功能写成了固定的程序,并已进行编译,我们在编写实际应用程序时可以直接使用现成的功能程序,这些功能程序要和用户编写的程序连接起来,形成最终计算机能够执行的机器语言程序。 ?执行经过上述三步之后生成的机器语言程序,在Turbo C系统中称为目标程序,把目标程序

C语言必背18个经典程序

C语言必背18个经典程序 1、/*输出9*9口诀。共9行9列,i控制行,j控制列。*/ #include "stdio.h" main() {int i,j,result; for (i=1;i<10;i++) { for(j=1;j<10;j++) { result=i*j; printf("%d*%d=%-3d",i,j,result);/*-3d表示左对齐,占3位*/ } printf("\n");/*每一行后换行*/ } } 2、/*古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? 兔子的规律为数列1,1,2,3,5,8,13,21....*/ main() { long f1,f2; int i; f1=f2=1; for(i=1;i<=20;i++) { printf("%12ld %12ld",f1,f2); if(i%2==0) printf("\n");/*控制输出,每行四个*/ f1=f1+f2; /*前两个月加起来赋值给第三个月*/ f2=f1+f2; /*前两个月加起来赋值给第三个月*/ } } 3、/*判断101-200之间有多少个素数,并输出所有素数及素数的个数。 程序分析:判断素数的方法:用一个数分别去除2到sqrt(这个数),如果能被整除,则表明此数不是素数,反之是素数。*/ #include "math.h" main() { int m,i,k,h=0,leap=1; printf("\n"); for(m=101;m<=200;m++) { k=sqrt(m+1); for(i=2;i<=k;i++) if(m%i==0) {leap=0;break;} if(leap) /*内循环结束后,leap依然为1,则m是素数*/

--C语言讲义

经典,学习C语言的天堂C语言算法:栈 void fun (char *s, char *t) { int i, d; /***********SPACE***********/ d = 【?】; /***********SPACE***********/ for (i = 0; i

c语言视频教程

C语言视频教程 C语言全套视频教程c语言入门,c语言视频教程的在线学习,相关课件软件的下载,知识点讲解入门,是您学习c语言程序设计教程的最佳选择。 1第一讲iOS开发必备之C语言基础--进制转换 包含知识点:进制定义、程序开发中常用进制介绍、n进制转换10进制、10进制转换n进制。 2第二讲iOS开发必备之C语言基础--数据类型、运算符 数据类型分类、常量、变量、运算符、表达式、语句、输入输出函数。 3第三讲iOS开发必备之C语言基础--分支结构-if 程序结构概述、关系运算符、逻辑运算符、if的三种形式、条件运算符。

4第四讲iOS开发必备之C语言基础--分支结构-switch...case switch case,if与switch case区别,break关键字 5第五讲iOS开发必备之C语言基础--循环结构 while、do while、for循环,三种循环的区别 6第六讲iOS开发必备之C语言基础--循环嵌套 循环的嵌套使用、break关键字、continue关键字。 7第七讲iOS开发必备之C语言基础--一维数组 构造数据类型、一维数组定义、数组元素使用、冒泡排序。 8第八讲iOS开发必备之C语言基础--字符数组 字符数组、字符数组的输入输出、字符数组常用函数(strlen、strcpy、strcat、strcmp等)。 9第九讲iOS开发必备之C语言基础--二维数组 二维数组定义、二维数组元素使用、二维数组与循环结构结合使用、二维数组使用场景。 10第十讲iOS开发必备之C语言基础--字符串数组

字符串数组定义、二维数组操作每个字符串、二维数组操作每个字符、字符串排序、多维数组。 11第十一讲iOS开发必备之C语言基础--函数定义 函数意义、函数分类、函数定义、函数使用、函数举例。 12第十二讲iOS开发必备之C语言基础--函数嵌套 形参、实参、数组名作为函数参数,函数嵌套调用,递归函数,变量作用域。 13第十三讲iOS开发必备之C语言基础--结构体 结构体特点、结构体定义、结构体变量、typedef关键字、结构体成员访问,结构体使用。 14第十四讲iOS开发必备之C语言基础--结构体与数组混合使用 结构体嵌套结构体、结构体作为数组成员、结构体数组冒泡排序。 15第十五讲iOS开发必备之C语言基础--指针初级 内存的两种方式、指针、指针变量、指针的类型、指针的重指向 16第十六讲iOS开发必备之C语言基础--指针作为函数参数

C语言讲义

序言C语言概述和运行环境 1概述: 语言: C语言是一种计算机程序设计语言,它既具有高级语言的特点,又具有汇编语言的特点。它由美国贝尔研究所的D.M.Ritchie于1972年推出,它可以作为工作系统设计语言,编写系统应用程序,也可以作为应用程序设计语言,编写不依赖计算机硬件的应用程序。 二级C语言属于全国计算机等级考试一年举行两次。每年上半年3月倒数第一个星期六上午进行;每年下半年九月份的9月倒数第二个星期六上午进行。 考试内容为10分计算机公共基础题(数据结构、程序设计、软件工程、数据库),90分的C语言课程题;考试题型分为:40个选择题(40分),1道程序填空题(18分),1道程序改错题(18分),1道子程序实现题(24分),总分100分,考试时间120分钟,考试成绩总分60以上且上机题36分以上考试合格。 2运行环境:Microsoft Visual C++ 6.0 3环境安装: 图1选择“setup.exe”双击开始安装

图 2 选择接受协议继续安装

图 3 无需安装msdn 4软件应用 图 4 首先新建一个工程

图 5 然后在“工程”中新建文件 5常用的快捷键:

编译:ctrl+F7 运行:ctrl+F5 创建可执行文件:F7 插入/删除断点:F9 编辑 “源文件”.c ;编译生成:中间文件.obj ;连接生成:目标文件.exe ;执行内存映像文件。

第一章程序设计基本概念 1.1 程序和程序设计 1.1.1 C程序 软件:程序+数据+文档 程序:连续执行的一条条指令的集合称为“程序”。(若干有序指令的集合称为程序。)指令:完成特定意义的语句。 语句:表达式和分号。(任何语句都是以分号为结尾) 表达式:若干标识符和功能函数。 标识符:各种自定义变量和系统保留字; 功能函数:系统函数和自定义的子程序函数。 对于计算机来说,它不能识别由高级语言编写的程序,它只能接受和处理由0和1代码构成的二进制指令或数据。由于这种形式的指令是面向机器的,因此也被称为“机器语言”。所以所有由高级语言编写的程序都要经过编译,编译成二进制代码。这种具有翻译功能的软件称为编译程序。(C++) 语言有很多种,我们现在要谈论的就是C语言。为什么计算机会能进行各种各样的操作,就是由不同的指令来实现的。而不是只有C语言才可以实现这样的功能。还有其它很多语言。但是我们一般说C语言是其它语言的母语。会了C语言其它语言在学习的过程的过程就会感到轻松一些。 C语言源程序文件名的后缀.c,经过编译后,生成文件的后缀是.obj,经过连接后,生成可执行文件的后缀是.exe。 1.1.2 程序设计(选择题) 1.确定数据结构(数据存放与数据之间的关系,) 2.确定算法(可以理解成将原材料进行加工的加工厂,解决问题的方法和思路) 3.编码(写代码,去实现功能) 4.在计算机上调试程序(有错误进行调试) 5.整理并写出文档资料(阑述程序所实现的功能,使用时应注意什么) 1.2 算法 定义:是指为了解决某个特定的问题而采取的确定 ..的步骤。 ..且有限 1.有穷性(有限的时间内能执行完) 2.确定性(每次得到的结果是一样的) 3.可行性(能用) 4.有零个或多个输入 5.有一个或多个输出

C语言习题(7)培训资料

C语言习题(7) 第7章函数 一.填空题 1.C语言中从函数的形式分可分为无参函数和。 2.在C语言中,一个自定义函数一般由两部分组成,它们是函数首部和。 3.从用户使用角度看,函数有两种:标准函数和。 4.若一个函数不需要形参,则在定义该函数时应使形参表为空或者放置一个标识符。 5.有函数调用fun1(x+y, (y,z), 10, fun((x,y-1))); 函数fun1有个参数。 6.已知函数定义:void dothat(int n, double x) { …… },其函数声明的两种写法为 _________________________,_________________________。 7.C语言变量按其作用域分为和;按其生存期分为___________和。 8.C语言变量的存储类别有,,和。 9.凡在函数中未指定存储类别的局部变量,其默认的存储类别为。 10.在一个C程序中,若要定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量需要定义 的存储类别为。 11.C语言中,形式参数的缺省存储类型是。 12.C语言中,若为指定函数是内部函数或外部函数,则默认该函数是。 二.选择题 1.以下正确的说法是___________。 A)用户若需要调用标准库函数,调用前必须重新定义 B)用户可以重新定义标准库函数,如若此,该函数将失去原有定义 C)系统不允许用户重新定义标准库函数 D)用户若需要使用标准库函数,调用前不必使用预处理命令将该函数所在的头文件包含编译,系统会自动调用。 2.以下正确的函数定义是___________。 A)double fun(int x, int y); B)int fun(int x,y) { z=x+y ; return z ; } { int z ; return 3;} C)double fun (x,y) D)double fun (int x, int y) { int x, y ; double z ; { double z ; z=x+y; z=x+y ; return z ; } return z ; } 3.C语言中,简单变量做实参和形参时,以下正确的说法是___________。 A)实参和与其对应的形参各占用独立的存储单元 B)实参和与其对应的形参共占用一个存储单元 C)只有当实参和与其对应的形参同名时才共占用相同的存储单元 D)形参时虚拟的,不占用存储单元 4.C语言规定,简单变量做实参时,它和对应的形参之间的数据传递方式是___________。 A)地址传递 B)单向值传递 C)有实参传给形参,再由形参传给实参 D)由用户指定传递方式 5.C语言规定,函数返回值的类型是由___________决定的。 A)return语句中的表达式类型B)调用该函数时的主调函数类型

C语言讲义C基础

C++语言基础 说明:本部分资料是C++语言基础部分,由于《C++程序设计》课本中未讲解语言基础,在此我们补充完整,希望同学们认真学习。 本资料中使用编译环境为VC 第1章C++语言概述 1.1 简单的C++程序介绍 例 #include main() { cout<<"这是我的第一个程序\n"; } 本程序的作执行结果: 每个C/C++语言程序都有一个main()函数其固定格式为: //编写程序的准备工作 main ( ) { 要编写的程序,实现不同的功能; } 编程人员要做的就是在划线部分填写适当的代码。 上例中: #include 表示包含文件。 说明:#include <文件名> 或#include ”文件名”表示要将文件名对应的文件中的代码包含到我们的程序中。文件名所对应的文件一般是C/C++语言已经编辑好的库文件,可以帮助我们完成相应的工作,而代码不需要我们自己编写。库文件是系统中自带的现有文件,其中实现了不同功能,我们要记住每个库文件的功能,以方便我们决定什么时候包含什么文件,实现什么功能。要包含的文件也可是自己编写的文件。 main ( ) { 要编写的程序,实现不同的功能;} 此部分称为main函数,是固定格式,我们要做的是在划线部分填写代码,实现不同功能。而要完成这一部分的编写,学要了解C/C++语言的数据类型,运算符,常用函数,控制语句等等。 上例中cout<<"这是我的第一个程序\n"; 表示要在屏幕上输出“这是我的第一个程序”这句话(输出的文字是多个字符要用双引号引起来,单个字符用单引号),并在输出完成后换行(\n 表示要换行,该符号使用时应写在引号内) 例求两数之和 #include //包含文件iostream.h,包含该文件后可使用cout输出数据。 main ( ) { int a,b,sum; /*这是定义变量*/ a=123; b=456; /* 以下3行为语句*/ sum=a+b; cout<<"sum is "<< sum<

C语言编程实例100题

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; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03;

C语言免费视频教程下载(2015全套)

C语言视频教程下载(2015全套) C语言全套视频教程c语言入门,c语言视频教程的在线学习,相关课件软件的下载,知识点讲解入门,是您学习c语言程序设计教程的最佳选择。 1第一讲iOS开发必备之C语言基础--进制转换 包含知识点:进制定义、程序开发中常用进制介绍、n进制转换10进制、10进制转换n进制。 2第二讲iOS开发必备之C语言基础--数据类型、运算符 数据类型分类、常量、变量、运算符、表达式、语句、输入输出函数。 3第三讲iOS开发必备之C语言基础--分支结构-if 程序结构概述、关系运算符、逻辑运算符、if的三种形式、条件运算符。 4第四讲iOS开发必备之C语言基础--分支结构-switch...case switch case,if与switch case区别,break关键字 5第五讲iOS开发必备之C语言基础--循环结构

while、do while、for循环,三种循环的区别 6第六讲iOS开发必备之C语言基础--循环嵌套 循环的嵌套使用、break关键字、continue关键字。 7第七讲iOS开发必备之C语言基础--一维数组 构造数据类型、一维数组定义、数组元素使用、冒泡排序。 8第八讲iOS开发必备之C语言基础--字符数组 字符数组、字符数组的输入输出、字符数组常用函数(strlen、strcpy、strcat、strcmp等)。 9第九讲iOS开发必备之C语言基础--二维数组 二维数组定义、二维数组元素使用、二维数组与循环结构结合使用、二维数组使用场景。 10第十讲iOS开发必备之C语言基础--字符串数组 字符串数组定义、二维数组操作每个字符串、二维数组操作每个字符、字符串排序、多维数组。 11第十一讲iOS开发必备之C语言基础--函数定义 函数意义、函数分类、函数定义、函数使用、函数举例。

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时,其生存期得到延长,而其作用域并没有改变,在定义后系统会自动帮它赋值为0,static为关键字不能被用作它用。 21. 频繁地使用空语句会降低程序的可读性和运算速度。 22. 运算符%两边都应是整数,赋值语句左边应该是变量,而非表达式,强制转换语句强制类型应加括号。 23. 在逻辑运算符中,其两侧的运算符对象为任意合法的表达式即可。 24. 函数fread(&Iarray,2,16,fp)的功能是,从fp所指的数据文件中读取16次2字节的数据存储到数组Iarray中。 25. 整个流式文件也可以随机存取数据,C语言文件中有好多函数可以达到写入数据时,未经输入数据,达到不覆盖的目的,在进行写操作时,系统会自动关闭文件。 26. 使用putchar、getchat、puts、gets、printf、scanf函数时,必须在程序的开头出现包含头文件#include”stdio.h”的命令行,而使用字符串处理函数时,必须在程序的开头出现包含头文件#include”string.h”命令行,而使用数学函数时,必须在程序的开头出现包含头文件#include”math.h”的命令行。 27. 一个斜杠与小于等于127任意数字按一个字符计算,一个斜杠与任意一个字符按一个字

小甲鱼零基础入门学习C语言全套教程打包下载及在线观看

《零基础入门学习C语言》全套教程打 包下载及在线观看 至今小甲鱼仍然莫名其妙会受到这样的攻击,喜欢鱼C的朋友帮忙转载下吧,所有视频完全免费!不需要任何版权!尽量转,让那些狼心狗肺的家伙不能得逞! 您也可以通过以下链接捐助鱼C,一元捐助鱼C重建家园: 第八章_指针01 在线观看: 下载地址: 第八章_指针02 在线观看: 下载地址: 第八章_指针03 在线观看: 下载地址: 第八章_指针04 在线观看: 下载地址: 第八章_指针05 在线观看: 下载地址: 第八章_指针06 在线观看: 下载地址:

第八章_指针07 在线观看: 下载地址: 第八章_指针08 在线观看: 下载地址: 第八章_指针09 在线观看: 下载地址: 第九章_预处理01 在线观看: 下载地址: 第九章_预处理02 在线观看: 下载地址: 第九章_预处理03 在线观看: 下载地址: 第十章_结构体与共用体01在线观看: 下载地址: 第十章_结构体与共用体02在线观看: 下载地址: 第十章_结构体与共用体03在线观看: 下载地址:

第十章_结构体与共用体04在线观看: 下载地址: 第十章_结构体与共用体05在线观看: 下载地址: 第十章_结构体与共用体06在线观看: 下载地址: 第十章_结构体与共用体07在线观看: 下载地址: 第十一章_文件操作01 在线观看: 下载地址: 第十一章_文件操作02 在线观看: 下载地址: 第十一章_文件操作03 在线观看: 下载地址: 第十一章_文件操作04 在线观看: 下载地址: 第十二章_位运算01 在线观看: 下载地址:

第十二章_位运算02 在线观看: 下载地址: 通告: 1. 由于小甲鱼的免费视频影响到某些机构的盈利。鱼C官网于2011年8月21日遭遇无情的商业打击,主要被大量肉鸡以CC和DDOS流量等攻击。 对于我们这样的小网站来说,资金暂时没有能力购买足够的防御机制,因此鱼C 网站只能暂时被迫关闭!! 2. 迫于无奈,小甲鱼决定在鱼C官网和论坛正常恢复前,将所有的教程下载地址更新在腾讯空间和大家分享: 3. 面对邪恶势力,永不妥协!希望您如果是网站主或者某网站版主,您可以将小甲鱼的视频进行转载宣传。 对于VIP会员的特权,小甲鱼感到很愧疚,将以如下方式予以补偿: 1. 定期以 E-mail 的形式将最新的视频教程发到您的邮箱; 2. 定期将视频教程所用到的课件、工具、源代码发到您的邮箱; 3. 在论坛恢复前,VIP会员可以通过 E-mail 将您的疑问发送给小甲鱼,小甲鱼将每天抽出时间给您解答。

自学c语言(全套资料)

二级c语言全套资料,这里收集了我学习c语言的全套资料。包含了历年真题从2005年至2011年的真题及答案都有,和电子资料、上级模拟软件、南开上级100题模拟软件、程序设计及公共基础课件也有方便了大家学习,为大家节省了很多时间去整理和筛选那些良莠不齐的资料、也有我的学习方法和经验。希望我的收集对你考试有所帮助。学习方法:c语言 今天我就来讲讲怎样好好利用我们手上的资料; 全国计算机等级考试实用应试教程二级c语言程序设计 全国计算机等级考试实用应试教程二级公共基础知识 全国计算机等级考试金文老师的c语言视频 南开上机100题 怎样将我们手头的资料好好的应用起来呢 我们应该是先学c语言程序设计,跟着金文老师学习,在观看视频我们该做写什么,首先我们在教才上找到金文老师所讲的知识点,做好重点,空闲可以翻来看看,无数次潜意识中记忆东西。开始老师会给我们普及一下什么是计算机语言,这个嘛,大家心里有个慨念就行了,也没必要去深究,程序设计有三种结构:顺序、选择、循环。这三种结构大家一定要记住,因为程序设计都是这三种结构,不论是c语言还是汇编语言等等的程序都是这三种结构组成的。计算机二级大都是考察我们读程序的能力,叫我们去设计程序是很少的,基础题就是让我们判断一下那些不是标识符,这个题很简单只要我们把常用的标识符记住还有变量的命名规则记住就行了。其实程序设计也没有什么捷径可循只有静下心来好好把这247个视频慢慢看完就可以也了,每天只需花半小时学习5至十个章节(视频);但是我们在看的同时一定要把他看懂,也不是看不懂的地方非要停留在那不前,像这样很难的地方也不超过十个,我们可以选择跳过继续往下看,老师有的也会在以后的例题讲解让我们反复体会程序的奥妙。遇到困难时我们不要气馁,只要你坚持下去,坚持下来了你就胜利者!因为c语言程序设计它是一个整体,在这里讲的知识点,只要学了后面的程序设计中也会有相关的程序段,给我们反复提示,让我们在潜意识中掌握知识,其实在你们入到门之后也可以自己总结一套属于自己学习这样会更有效率的去学习c语言,毕竟这只是我自己的方法嘛。大家有什么好点子也可以在贴吧或群里说说啊。三人行,必有我师焉。不懂时要学会多问问你学过c语言或在学的朋友和同学。跟着视频学程序设计我总结一句话:不会就看;不懂再看;看懂就过。最重要的就是经文老师用的软件是Turbo C (即TC),现在开考试用的是Visual C++ (即VC)(微软的产品) ;所以大家对Turbo C (即TC) 就没必要去下载练习了;可以做个了解;因为每一个程序最开始都是保存sava后1源程序.C编译之后就是2目标程序.OBJ,在连接就生成可3这行文件.EXE. Visual C++ (即VC)也一样。 公共基础 看完247个程序设计视频后,可以根据自己情况练一练题;当然我们在做总复习之前还有一部没走,就是二级公共基础,我们需要花一定时间系统性学习一两遍,公共基础不是像程

C语言编程实例100例下载(Word版)

【程序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; if(i<=100000) bonus=i*0.1; else if(i<=200000) bonus=bonus1+(i-100000)*0.075; else if(i<=400000) bonus=bonus2+(i-200000)*0.05; else if(i<=600000) bonus=bonus4+(i-400000)*0.03; else if(i<=1000000) bonus=bonus6+(i-600000)*0.015;

相关主题
文本预览
相关文档 最新文档