第一篇:c语言程序分类总结
一、选择排序法:
1、函数方法: #include
scanf(“%d”,&a[i]);sort(a,10);printf(“The sorted array:n”);for(i=0;i<10;i++)
printf(“%d ”,a[i]);printf(“n”);}
void sort(int array[],int n){int i,j,k,t;
for(i=0;i {k=i; for(j=i+1;j if(array[j] k=j; t=array[k];array[k]=array[i];array[i]=t;} } 2、数组方法:实验6_1 #include printf(“enter data:n”); for(i=1;i<=10;i++) {printf(“a[%d]=”,i); scanf(“%d”,&a[i]); } printf(“n”); printf(“The orginal numbers:n”); for(i=1;i<=10;i++) printf(“%5d”,a[i]); printf(“n”); for(i=1;i<=9;i++) {min=i; for(j=i+1;j<=10;j++)if(a[min]>a[j])min=j; temp=a[i]; a[i]=a[min]; a[min]=temp; } printf(“nThe sorted numbers:n”); for(i=1;i<=10;i++) printf(“%5d”,a[i]); printf(“n”);} 3、指针方法:(教材209 例题8.9)#include scanf(“%d”,p++);p=a;sort(p,10);for(p=a,i=0;i<10;i++) {printf(“%d ”,*p);p++;} printf(“n”);} void sort(int x[],int n){int i,j,k,t; for(i=0;i {k=i; for(j=i+1;j if(x[j]>x[k])k=j; if(k!=i) {t=x[i];x[i]=x[k];x[k]=t;} } } 二、素数算法: 1、筛选法求素数(教辅41.1题)#include for(i=1;i<=100;i++) a[i]=i; a[1]=0; for(i=2;i for(j=i+1;j<=100;j++) {if(a[i]!=0 && a[j]!=0) if(a[j]%a[i]==0) a[j]=0; } printf(“n”); for(i=2,n=0;i<=100;i++) { if(a[i]!=0) {printf(“%5d”,a[i]); n++; } if(n==10) {printf(“n”); n=0; } } printf(“n”);} 2、(1)For循环方法: #include printf(“please enter a integer number:”); scanf(“%d”,&m); k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>k)printf(“%d is a prime number.n”,m); else printf(“%d is not a prime number.n”,m);} (2)求100~200之间素数: # include for(m=101;m<=200;m=m+2) { k=sqrt(m); for(i=2;i<=k;i++) if(m%i==0)break; if(i>=k+1) {printf(“%d ”,m); n=n+1; } if(n%10==0)printf(“n”); } printf(“n”);} 3、函数方法:实验7_1(教辅63.3题)#include int n; printf(“ninput an integer:”); scanf(“%d”,&n); if(prime(n)) printf(“n %d is a prime.n”,n); else printf(“n %d is not a prime.n”,n);} int prime(int n) {int flag=1,i; for(i=2;i if(n%i==0) flag=0; return(flag); } 三、最值问题: 1、函数方法,两个数比较大小(教材144.例题7.2)#include int a,b,c; scanf(“%d,%d”,&a,&b); c=max(a,b); printf(“max is %dn”,c);} int max(int x,int y){ int z; z=x>y?x:y; return(z);} 2、二维数组,求出其中值最大的那个元素值:(教材123.例题6.5)#include int a[3][4]={{1,2,3,4},{9,8,7,6},{-10,10,-5,2}}; max=a[0][0]; for(i=0;i<=2;i++) for(j=0;j<=3;j++) if(a[i][j]>max) {max=a[i][j]; row=i; colum=j; } printf(“max=%d,row=%d,colum=%dn”,max,row,colum);} 3、有三个字符串,要求找出其中最大者(教材136.例题6.9)#include char string[20]; char str[3][20]; int i; for(i=0;i<3;i++) gets(str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(string,str[1]); if(strcmp(str[2],string)>0) strcpy(string,str[2]); printf(“nthe largest string is:n%sn”,string);} 4、函数方法,四个整数,找出最大值:(教材152.例题7.5)#include int a,b,c,d,max; printf(“Please enter 4 interger numbers:”); scanf(“%d %d %d %d”,&a,&b,&c,&d); max=max_4(a,b,c,d); printf(“max=%d n”,max);} int max_4(int a,int b,int c,int d){int max_2(int a,int b);int m; m=max_2(a,b);m=max_2(m,c);m=max_2(m,d);return(m);} int max_2(int a,int b) 这也可以这么写 int max_2(int a,int b){return(a>b?a:b); {if(a>b)return a;} else return b;} 四、辗转相除问题:(最大公约数最小公倍数问题) 1、一般法,求最大公约数和最小公倍数(教辅26页,第一题)#include int p,r,n,m,temp; printf(“请输入两个正整数n,m:”); scanf(“%d,%d,”,&n,&m); if(n { temp=n; n=m; m=temp; } p=n*m; while(m!=0) { r=n%m; n=m; m=r; } printf(“它们的最大公约数为:%dn”,n); printf(“它们的最小公约数为:%dn”,p/n);} 2、函数法: void main(){int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf(“%d,%d”,&u,&v); h=hcf(u,v); printf(“H.C.F=%dn”,h); l=lcd(u,v,h); printf(“L.C.D=%dn”,l);} int hcf(int u,int v){int t,r;if(v>u) {t=u;u=v;v=t;} while((r=u%v)!=0) {u=v; v=r;} return(v);} int lcd(int u,int v,int h) { return(u*v/h); } 五、有关指针的实验题: 1、实验9-1(输入3个整数,由小到大的顺序排列)(1)#include void swap(int *p1,int *p2) {int p; p=*p1;*p1=*p2;*p2=p; }(2)#include void swap(char *p1,char *p2){char p[20]; strcpy(p,p1);strcpy(p1,p2);strcpy(p2,p);} 2、实验9_2(将n个数,输入时顺序的逆序排列)#include scanf(“%d”,&num[i]);p=&num[0];sort(p,n);printf(“Now,the sequence is:n”);for(i=0;i printf(“%d ”,num[i]);printf(“n”);} void sort(char *p,int m){int i;char temp, *p1,*p2;for(i=0;i {p1=p+i; p2=p+(m-1-i); temp=*p1; *p1=*p2; *p2=temp; } } 3、实验9_3(写一函数,求一个字符长度)#include int length(char *p) {int n;n=0;while(*p!=' ') {n++; p++; } return(n);} C语言程序总结 1·C程序是由函数构成的。一个C源程序至少包含一个函数(main函数),也可以包含一个main和若干其他函数。C的函数相当于其它语言中的子程序。用函数来实现特定的功能。可以说C是函数式的语言。程序全部工作都是由函数来完成的。C的函数库十分丰富,标准C提供一百多个库函数,TurboC和MS C4.0提供三百多个库函数。 C的这种特点使得容易实现程序的模块化。2.一个函数由两部分组成: (1)函数的说明部分。包括函数名、函数类型、函数属性、函数参数(形参)名、形式参数类型。 例如例1.3中的max函数的说明部分为。int max(x,y)函数类型 函数名 函数参数 int x,y;形参类型 形参 一个函数名后面必须跟一对圆括弧,函数参数可以没有,如main()。 (2)函数体,即函数说明部分下面的大括弧{„}内的部分。如果一个函数内有多个大括弧,则最外层的一对{ }为函数体的范围。 函数体一般包括: ①变量定义。如例1.3中main函数中的“int a,b,c”。 ②执行部分。由若干个语句组成。 当然,在某些情况下也可以没有变量定义部分(例如例1.1)。甚至可以既无变量定义也无执行部分。如: dump(){ } 它是一个空函数,什么也下干,但这是合法的。3.一个C程序总是从main函数开始执行的,而不论main函数在整个程序中的位置如何(main函数可以放在程序最前头,也可以放在程序最后,或在一些函数之前在另一些函数之后)。 4.C程序书写格式自由,一行内可以写几个语句,一个语句可以分写在多行上人程序没有行号,也不象FORTRAN或CoBoL那样严格规定书写格式(语句必须从某一列开始书写)。5.每个语句和数据定义的最后必须有一个分号。分号是C语句的必要组成部分。例如: c=a十b; 分号不可少。即使是程序中最后一个语句也应包含分号(这是和PAScAL语言不同的)。 6.C语言本身没有输入输出语句。输入和输出的操作是由库函数scanf和printf等函数来完成.C对输入输出实行‘函数化' 7.可以用/*„„*/对C程序中的任何部分作注释,一个好的,有使用价值的源程序都应当加上必要的注释,以增加程序的可读性。 改错题分类总结 改错题总的出错分为两大类:语法出错和逻辑出错,此类题目是比较简单的题型,因此也是最容易把握的知识点。 注意:错误都是出现在/**********found**********/下面的这一行。只是下面的这一行,其他行都没有错误。不能修改其他行。做题方法: 1.首先拿到题目,先将题目详细看看(包括题干),看清题目对做题时很有帮助,特别是一些逻辑性较强的题目很有用。有的同学可能会觉得题目太难了不想去读,其实在做改错题目时即便你不会也能把题目做对。 2.按照以下的步骤解决题目中的错误的内容,对应着修改。修改完之后保存即可。一 语法错误 1.关键字出错:在二级C语言考试中仅仅考查学生对基本的关键字掌握情况,比如:整型就是int 不是Int,知识点简单。(1)6题第二个空:If应该改为if;(2)1 2题第二个空:If应该改为if;(3)2 3题第一空:dounle 应该改为double;(4)3 5题第二空:I f应该改为if;(5)3 6题第二空:Double 应该改为double。(6)2题第二空:wihle 应该改为while。 2.格式出错:在考试中主要考查学生细心的程度,最喜欢考简单的知识点。 (1)少分号:2题第一空、28 题第一空、29 题第一空、34 题第二空、37 题第 二空、48 题第二空。考查的知识点:分号是语句结束的标志。 (2)for 语句的格式:for(;;)中间用分号隔开不是用逗号隔开。3题第二空、6 题第一空、14 题第二空都是出现了for 语句格式出错的问题。 (3)if 语句的格式:if(表达式),if 后面必须加上小括号。3 7题第一空if 后面必须加上小括号。 (4)命令行格式出错:17 题第一空中include 命令少了#,正确的形式应该是#include “std io.h”; (5)常用函数格式: A 22 题第一空中n=strlen[aa]应该改为n=strlen(aa),记住函数名后面一定是花括号,不能是方括号,方括号只有在数组下标中用到。 B 4 9题第一空int j,c, float xa =0.0;应该改为int j,c;float xa =0.0;记住:要同时定义两种以上不同的数据类型的时候必须在不同类型的数据中间加上分号。 C 4 1题第二空scanf(“%d”,a[i][j]);应该改为scan f(“%d”,&a[i][j])。考查scanf 输入函数的格式。 (6)数组:所有老师讲到数组时候必须统一将此知识点给学生回顾一遍!A数组下标引用时候只能用反括号。2 8题第二空t(k)=b(j)应该改为t[k]=b[j]。 B二维数组中的列下标不能省略。4 6题第一空必须将数组列下标补充完整。A[][3](7)常用符号出错: A C语言中大于等于符号是“>=”,但是在考试的时候可能出现将它写为“=>”,49 题第二空就是这样的错误。 B当题目中需要比较某个字符是否是大写字母或是小写字母、数字时,必须将“与”、“或”、“非”记住。判断某个字符是否是大写字母:char ch;if(ch>=’A’&&ch<=’Z’)printf(“%c”,c h);判断某个字符是否是小写字母:char ch;if(ch>=’a’&&ch<=’z’)printf(“%c”,c h);判断某个字符是否是数字:c har ch;if(c h>=’0’&&c h<=’9’)printf(“%c”,c h);判断某个数字是否能同时被5和7整除: int i=35;if(i%5==0&&i%7==0)printf(“%d”,i);判断某个数字是否能被5或7整除: int i=35;if(i%5==0||i%7==0)printf(“%d”,i);判断某个数字是否是偶数或奇数: int i=35;if(i%2==0)printf(“%d是一个偶数”,i);else printf(“%d是一个奇数”,i); 二 逻辑错误 1.使用了没有定义过的变量:这种题目可以通过编译查找出出错的地方并改之。(1)0(零)和o(字母欧)的区别:19 题第一空、2 3题第二空、43 题第二空。(2)P(大)和p(小)的区别:3 3题第一空。(3)普通变量大小写的区别:int a=10;A A有的变量在定义的时候是小写但是在使用的时候是大写,或是在定义的时候是大写在使用的时候却是小写。B大小写没有出错,程序中直接使用了没有定义过的变量,要求学生更加细心的读题目。4 5题第二空使用到了i这个变量,但是我们在定义行中没有找到i的定义,因此在做题时候要上下结合来分析题目。22 题第二空c=aa [j]中的c没我们一直用心做教育!有定义过,参看定义的语句不能发现应该是c h=aa [j]。3 8题第一空要求将后面用到的变量s1 定义完整。2.运算符号出错: (1)C语言中除号是“/”不是“” (2)赋值号(=)和等号(==)混淆,记住在if 语句中出现赋值号(=)一般是讲它改为等号(==)。14 题第一空和29 题第二空都是这样的错误。3.表达式的取值范围出错: 当遇到计算表达式的累加或是累减时,一定用到循环来完成相应的操作。例如:改错题第七题中要求计算t=1-1/2*2-1/3*3-„.-1/m*m这个表达式,在这个题目中第一空有这样的f or 语句:for(i=2;i 这个考点同样考查表达式的相关知识。例如:改错题第七题中要求计算t=1-1/2*2-1/3*3-„.-1/m*m这个表达式,在这个题目中第一空有这样的for 语句:for(i=2;i 遇到这种题目在改错题中最容易考查的是大于(>)、小于(<)等符号的变化,当你查找出错的地方没有语法错误,也没有使用了未定义的变量时,记住这个口诀:将大于改为小于,将小于改为大于!6.函数的返回值及其参数:重点 int fun(int x, int y) main(){ { if(x>y)return x; int a,b,c;else return y; scanf(“%d%d”,&a,&b);} c=fun(a,b); printf(“最大值为:%d”,c);}(1)函数的返回类型:在上面的例子中fun 函数的返回值是int,如果将int 改为doubl e,很明显是错误的。从两个地方来看,首先return x;中x的类型必须和fun 函数中的返回值相同,x是整型。其次c=fun(a,b);中fun 函数将一个返我们一直用心做! 回值赋值给了变量C,说明函数返回的值一定是整型。记住:函数调用、函数的返回值和return中数据类型必须一致! (2)return后面的表达式及其类型:1 9.2、3 0.2、39.2(3)函数传递的参数: int fun(int x, int y) main(){ { if(*x>*y)return*x; int a,b,c;else return*y; scanf(“%d%d”,&a,&b);} c=fun(&a,&b); prin t f(“最大值为:%d”,c);} 一定注意:传递的是值还是地址。比较上面两个例子大家很容易区别传递的是值 还是地址,第一个例子调用函数的时候传递的是值,因此在f u n函数的形参中x 和y仅仅是普通的变量,而第二个例子中调用函数的时候传递的是地址,因此在 f un 函数的形参中x和y就是两个指针变量。5.1、13.1、17.2、2 0.1、2 5.2依据刚 刚讲的方法很快就能找出出错点。(4)指针的使用: int fun(in t *x, in t *y){ if(*x>*y)return*x;else return*y;} 在此例中f un 函数的形参是x和y,它们的类型是整型的指针,那么在f un 函数的函数体中使用到x和y的值时一定要区分:x>y比较的是x和y所存变量地址的大小,*x>*y才是比较值的大小。如果存在*x=x+y;的类似情况一定是错误的,必须要将赋值号的左右两边的类型变为一致。5.2、5.3、20.2、24.2、35.1、44.1 一定特别注意!7.数组: (1)数组下标的初始值:数组下标从零开始,到长度减一结束。考试技巧:当出错行在定义部分时,先检查该定义语句有没有语法错误,再看定义语句中的变量有没有赋初始值,最后看变量赋的初始值有没有正确。定义初始值有窍门,遇到累加时,用来存放累加和的变量一般赋值为零,遇到求阶乘时,用来存放阶乘值的变量一般赋值为一。8.1中的变量k赋值为1,但是我们说了数组的下标只能从0开始,因此将1改为0就行了。 (2)普通变量的初始值:依照上面的技巧,我们同样可以将它延伸到普通变量中。4 1.1中需要将变量的值进行初始化,题目中有这样的要求:“输出主对角线元素之和”,既然这样我们很肯定初始值应该为零,接着我们看看是给哪个变量赋值?看printf(“su m =%d”,su m);输出的是sum 的值,说明sum 就是我们要补充在横线上的变量。10.1也可以用同样的方法来分析。 (3)数组和字符串长度减一:当使用数组中的元素时,最大值只能到数组长度减一。字符串以’ ’作为字符串的结束标志,因此取值最大也只能到字符串长度减一。25.2中输出p r in t f(“%d”,a a[i]);分析程序知道i在此时就是数组的长度,我们要输出数组中的元素,最大就只能到a a[i-1],因此改为printf(“%d”,aa[i-1]);就行了。4.1和38.2中考查的是字符串长度减一的问题。 (4)数组下标往后走:当题目要求将一个数组中的元素直接赋值或是以某种方式复制到另一个数组中时,接受数据的数组中的下标要自增9.。1中s[j]=s[i];将s[i]中的值复制给s[j],联系上下函数段发现i是一个变量被for语句控制,从0开始直到遇到’ ’结束。i一直在加但是j没有变化,因此改为s[j++]=s[i];即可。类似的题目有:25.2、26.2、32.1、50.2。8.特例: 部分题目的解答很特殊,需要根据上下文中的内容来解答题目;例如10.1,在此题目中,定义了变量t=0;根据下面程序中的循环,s=0.0,首先加的是变量t的值,即s的值是从0.0开始的,s得到的值是:s=0.0+0.0+1.0/3+„„,观察表达式的值,这个少加了第一项1.0的值,所以变量t的初值不能是0.0,只能是1.0,或者是1;21.2中的这个题目中,表达式的值是从2/1+3/2+5/3„„即表达式的规律是从第一项开始,以后的每一项的分子是前一项的分子和分母的和,分母为前一项的分子。所以该题目的第二个空中的内容应该是:c=a;a+=b;b+=c;这一条语句中a代表的变量的分子,b代表的是变量的分母,执行第一个表达式的值,把a的值赋值给变量c,第二个表达式是把分子和分母的和相加复制给变量a,第三个表达式是把原来a的值和变量b的值相加之后得到的值赋值给变量b,则变量b得到的值也为分子分母的和,不满足题意,而分母应该为原来分子的值。第三表达式的值应该改为:b=c;9.素数 掌握求素数的格式: 判断一个数是否是素数的方法很多,只用掌握一种即可,首先掌握判断一个素数的方法; 素数的定义: 1、是自然数 2、只能被1和本身整除,2到本身减一之间的数不能整除该数。判断m是否为素数的格式: for(i=2;i 求素数的题目只要把格式给带进去就可以了。1 1.1这个题目中只用改为“==”。29 题也是一样的解答方法。10、链表 链表的题目分为带头结点的和不带头结点的链表; 1、带头结点的链表 带头结点的链表的第一个空的改为:p=h->next;第二个空改为:p=p->next;.2、不带头结点的链表 不带头结点的链表的第一个空的改为:p=h;第二个空改为:p=p->next;. 行政程序的分类 2011-11-7 16:0 来源:法律教育网【大 中 小】【我要纠错】 1、抽象行政行为的程序与具体行政行为的程序; 抽象行政程序具有普遍性和后及性的特点,是针对某类人或事普遍适用的,且在时限上一般只面向未来发生效力。具体行政程序则具有相对的具体性和前溯性,指针对特定的人或 事采取的,在时限上一般只对既往事件发生效力的程序。 2、内部行政程序与外部行政程序; 内部行政程序,是指行政主体内部行政事务的运作程序。外部行政程序,是指行政主体 对外实施行政管理活动所运用或应当遵循的程序。 3、强制性程序与任意性程序; 任意行政程序,是指法律没有明确规定和要求,由行政主体自由裁量决定或选择采取的行政程序。强制性行政程序,即法律有明确的规定和要求,行政主体必须遵循的行政程序。 4、事先行政程序与事后行政程序; 5、行政立法程序、行政执法程序和行政司法程序。 行政立法程序,由于行政立法行为内容的广泛性,行为对象的不特定性和效力的后及性,行政立法程序一般都比较复杂、严格。行政执法程序,一般应体现行政效率的原则和保护相对方合法权益的原则。行政司法程序,则由于裁判行为对象是当事人双方的争议或纠纷,因 而其程序具有准则司法的特点和司法化的趋势,而其核心内容是体现公正和公平。 招标分类原则及简易招标程序 1.0 目的 对适用于房地产项目开发的招投标项目按标底额的大小进行分类,以便在招投标的过程中,根据不同项目采取不同招标形式,使招标工作更加科学、有效。2.0 适用范围 适用于房地产开发项目所涉及到的所有项目。3.0 定义 3.1.固定招标程序:指按照《投标单位推荐办法》、《招标文件管理规定》、《投标单位考察办法》及《定标管理办法》的有关规定实施的招投标过程。 3.2简易招标程序:指在固定招标程序基础上,对较小标底额或重复性较强的招投标过程进行简化,以提高工作效率,降低招标成本的招投标办法。简易招标程序分为适用于Ⅰ施工现场追加项目、Ⅱ一般性小额招标项目、Ⅲ政府指定供应商招投标项目三类。 3.3 政府指定供应商招投标项目:主要指与开发项目配套的自来水工程、煤气入户工程、供暖工程、供电工程、人防设备、网络通讯、有线电视等。 4.0 内容 4.1招投标的分类按标底额的大小划分。招投标项目分为三类:大型项目、小型项目和政府指定供应商。4.2大型和小型项目的划分指标底额分别为10万元以上(含10万元)、10万元以下的项目。 4.3大型招标(10万元以上,含10万元):按照固定招标程序进行。 4.4 小型招标(10万元以下):按照简易招标程序进行。4.4.1施工现场追加项目:考察正在现场施工或供货队伍情况,如具备施工能力,并得到项目现场工程部认可,经预算部核算工程量,有针对性地与以上单位进行谈判,在遵循原有价格、质量要求、工期、付款条件等主要合同条款情况下,通过签订补充协议的形式进入会签审批。 4.4.2其他一般性小型招标:通过推荐、查阅供应商资料库等渠道确定参加投标供应商,将公司需求以书面形式通报供应商,要求供应商提供企业资质、营业执照、质量证明等资料以及书面形式的报价,招标分项专业工程师进行投标情况汇总后根据需要,可在公司副总经理和总经理均同意后进行现场考察,而后由预算部形成定标建议书报公司副总经理和总经理审批。价格确定可采取以下方式:一次性招标竞价,即在一次性报价后选择合理低价定标;价格复制方式,即根据以往招标中确定的合理价格为标底选择合适的中标单位。合同签定可以采购单或简易协议形式与供应商签订合约。 4.5 政府指定供应商招标:按照简易招标程序进行。基本程序是提供资料——对方报价——预算核价——洽谈降价——进入会签——公司副总经理和总经理审批后签订合同。 5.0 对于适用于简易招标程序的项目招标结果,公司副总经理和总经理负责及时向公司股东或董事会汇报。 6.0严禁将大型招标项目肢解、拆分成若干个小型招标项目,试图达到“规避审批流程和关键环节”的不良目的。 7.0以上招标分类原则及简易招标程序可根据实际情况适时作出调整和修改。第二篇:C语言程序总结
第三篇:二级C语言改错题分类总结
第四篇:行政程序的分类
第五篇:招标分类及简易招标程序