C语言程序设计复习汇总 2012

上传人:优*** 文档编号:47657989 上传时间:2021-12-25 格式:DOC 页数:17 大小:63KB
收藏 版权申诉 举报 下载
C语言程序设计复习汇总 2012_第1页
第1页 / 共17页
C语言程序设计复习汇总 2012_第2页
第2页 / 共17页
C语言程序设计复习汇总 2012_第3页
第3页 / 共17页
资源描述:

《C语言程序设计复习汇总 2012》由会员分享,可在线阅读,更多相关《C语言程序设计复习汇总 2012(17页珍藏版)》请在装配图网上搜索。

1、真诚为您提供优质参考资料,若有不当之处,请指正。C语言程序设计复习汇总 20121.每个程序只有一个main函数,而且它是程序最先执行的地方,是程序的入口点,不管它的位置在哪里,都是首先从它开始执行。2.每个程序都要包含头文件.头文件的声明方法:#include <头文件名>3.程序的3个区域:1预处理区域(头文件定义的地方) 2变量声明区域(声明变量的地方) 3执行语句区域。4.每个语句后面要加分号“;”代表语句的结束。if语句的小括号(判断条件)后面不用加分号。5.多个语句可以写在同一行,每个语句后面可以加分号,表示语句结束。但不提倡这种方法,这样不美观,而且能够使程序代码的可

2、读性很差。6.注释可用双斜杠/表示,但是标准的C语言注释符号是/* */。7.代码缩进:在写代码的时候,尽量让执行语句靠右边对齐。8.复合语句:用花括号括起来的语句组表示复合语句。9.符号常量:在包含头文件的定义语句下面。使用#define关键字进行声明。格式是:#define 常量名 常量值。 使用符号常量的好处:使程序易于维护,并且增加可读性,同时并不会改变程序编译的结果。符号常量的值在程序的运行时不能被改变,只能在进行代码编写的时候才能改变。这是常量与变量的最大区别。习惯上符号常量的常量名用大写字母,而变量的变量名用小写字母,以示区别。10.变量的基本类型:int(整型) char(字符

3、型) float(单精度浮点型) double(双精度浮点型)。11.变量命名规则:只能是字母数字下环线组成的字符串,并且第一个字符只能是字母或下划线。变量名应做到见名知意,变量名不可以是C语言中的关键字或者是函数名。大小写不同的变量名代表不同的变量(在C语言中区分大小写).12.变量的作用:变量的值可以在运行时改变,使程序具有灵活性。13.变量的三要素:变量类型变量名 变量的当前值14.所有的变量都必须先声明然后再使用,变量的声明就是规定变量的类型的名字,如果不声明就是用会出现编译错误。15.变量的初始值:在声明变量的同时可以赋给变量一个初始值,如果不赋初始值,变量的值会是一个随机数。16.

4、使用变量的三个步骤:声明赋初值 使用变量的值。17.输入输出函数:printf()  sacnf () 这两个寒暑的声明包含在头文件 stdio.h 中。所以要使用这两个函数一定要包含这个头文件。scanf("%d",&变量名); %d 代表整型格式  如果是实型变量则用%f  字符型变量则用%c 变量名前面的取地址符(&)不能少 在scanf()函数内尽量不要使用换行标志n printf("%d",变量名)  同上引号内的字符串,除格式控制符(如%d %c

5、%f 以及换行符n )等等之外,其它都按照原样输出。18.算术运算符: +(加)  -(减)  *(乘)  /(除)  %(求余/模) 19.逻辑表达式: &&(和/与/且)  |(或)   !(非) 表达式1 && 表达式2  当表达式1和表达式2同时成立时候, 它的值是真,否则为假表达式1 | 表达式2  当表达式1或者表达式2任何一个成立的时候,或者两个都成立的时候,它的值是真, 否则是假 

6、;    !表达式       当表达式的值是真,那么结果就是假 反之 当表达式的值是假,它的值就是真。20.在C语言中,0表示假,非0表示真。21.自增(+)自减(-)运算符,不建议初学者过多的使用,知道有这家伙就可以了。22.条件语句:if语句如果是相等比较,那么要注意等于的关系运算符是(=)而不是(=),=是赋值运算符if(条件)语句;if(条件)语句;else语句;if(条件)语句;else if(条件)语句;else语句;23.switch-case语句switch(整型表达式)case 情况1

7、:语句1;break;case 情况2:case 情况3:语句2;break;default:语句n;24.循环语句:for语句 while语句 do-while语句for(循环计数器初始化表达式;循环判断条件表达式;循环计数器表达式)循环体;while(循环判断条件表达式)循环体;do循环体;while(循环判断条件表达式);   /在这里记得要在while()后面加分号.25.for while do-while语句的区别:for和while语句是先判断循环条件,如果成立就执行循环体,反之则直接跳到循环后面的语句继续执行。 do-while语句是先执行一次循环体,然后再

8、判断循环条件是否成立,如果成立则继续执行循环体,否则,直接跳到循环后面的语句继续执行。for while语句的循环体可能一次也不会被执行,但是do-while语句的循环体至少会被执行一次。26.while和do-while通常用于循环此数不确定的情况,而for语句通常用于循环次数已知的情况。27.break语句:用于中止循环,跳到循环后面语句中继续执行。或者跳出switch语句。28.continue语句:用于结束本次循环,进入到下一次循环的条件判断,29.数组:数组是由多个具有相同数据类型的变量组成的数据结构。就像是一个集合。30.数组的声明:类型数组名数组元素总数 = 初始值; 

9、 31.数组的下标从0开始。32.数组元素的使用:数组名下标 复习题题型一. 单项选择题:(每小题1分,共25分)二. 判断题:(每小题1分,共10分)三. 阅读程序写结果:(每小题4分,共20分)四. 程序填空:(每空2分,共14分)五. 编程题(4小题共31分)单项选择题:1. 算法具有五个特性,以下选项中不属于算法特性的是_。B A)有穷性 B)简洁性 C)可行性 D)确定性2. 以下叙述中正确的是_。C A)用C语言实现的算法必须要有输入和输出操作 B)用C语言实现的算法可以没有输出但必须要有输入 C)用C程序实现的算法可以没有输入但必须要有输出 D)用C程序实现的算法可以既

10、没有输入也没有输出3. 不合法的八进制数是_。BA) 0 B) 028 C) 077 D)014. 在C语言的if语句中,用作判断的表达式为_DA)关系表达式 B)逻辑表达式C)算术表达式D)任意表达式5. 若变量已定义,要求完成求5!的计算,不能完成此操作的程序段是_ _。BA)for(i=1,p=1;i<=5;i+) p*=i;B)for(i=1;i<=5;i+) p=1; p*=i;C)i=1;p=1;while(i<=5)p*=i; i+;D)i=1;p=1;dop*=i; i+; while(i<=5); 6. 已有定义:char a="xyz&qu

11、ot;,b='x','y','z',以下叙述中正确的是_。C A)数组a和b的长度相同 B)a数组长度小于b数组长度 C)a数组长度大于b数组长度 D)上述说法都不对7. 有以下程序_。Amain() char a='a',b;print("%c,",+a);printf("%cn",b=a+);程序运行后的输出结果是A)b,b B)b,cC)a,bD)a,c 有以下程序_。Amain()int a=3,b=4,c=5,d=2;if(a>b)if(b>c)8. printf(&q

12、uot;%d",d+ +1);elseprintf("%d",+d +1);printf("%dn",d);程序运行后的输出结果是A)2 B)3 C)43 D)44 9. 表达式_是满足:当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式DA) (c=1)|(c=3)|(c=5) B) (c!=1)&&(c!=3)&&(c!=5)C) (c=1)&&(c=3)&&(c=5) D) (c=1)|(c=3)|(c=5) 10. 若变量已正确说明,则以下程序段输出为_。A a

13、=10;b=50;c=30; if (a>b) a=b,b=c; c=a;A) a=10 b=50 c=10 B) a=10 b=30 c=10C) a=50 b=30 c=10 D) a=50 b=30 c=50数字字符0的ASCII值为48,若有以下程序_。C main() char a='1',b='2' printf("%c,",b+); printf("%dn",b-a); 程序运行后的输出结果是 (A)3,2 (B)50,2 (C)2,2 (D)2,5011组成C程序的基本单位是_。CA)表达式与语句 B

14、)若干文件 C)函数 D)main函数12下列变量定义正确的是_。A)int x_1 ; y;B)int x=y=5 ;C)int for=4;D)int printf=2,x_y=2;13任何复杂的程序,都是由_构成的。A)分支结构、顺序结构、过程结构 B)循环结构、分支结构、过程结构C)顺序结构、循环结构、分支结构 D)循环结构、分支结构14以下说法错误的是_。A)dowhile语句与while语句的区别仅是关键词“while”出现的位置不同B)while语句是先进行循环条件判断,后执行循环体的C)dowhile是先执行循环体,后进行循环条件判断D)while、dowhile和for语句的

15、循环体都可以是空语句15以下叙述错误的是_。A)语言本身没有输入输出语句B)一个可执行的源程序必须包含一个main函数C)程序中,注释说明只能位于一条语句的后面D)程序的基本组成单位是函数16以下对二维数组a的声明正确的是_。A)int a 3 ; B)int a (3,4); C)int a 14; D)int a (3)(4);17下列函数头中形参说明错误的是_。A)float average(float array9, n) B)float average(float *array ,int n)B)float average(float array ,int n) C)float av

16、erage(float array ,int n18t为int类型,进入下面的循环之前t的值为0,以下叙述正确的是_。while( t=l ) A)循环控制表达式的值为0 B)循环控制表达式的值为1C)循环控制表达式不合法 D)以上说法都不对19若a为整型变量,则以下语句_。a=-2L;printf (“%dn”,a);A)赋值不合法 B) 输出值为-2 C)输出为不确定值 D)输出值为220若有说明语句:int y4=0,0,0,0,0,0; 则正确的叙述是_。A)数组y的每个元素都可得到初值0B)二维数组y的行数为1C)该说明等价于int y04=0;D)有元素y00至y05可得到初值,其

17、余元素均得不到初值021若有定义:int b5;则以下对b 数组元素的正确引用是_。A)*&b5 B)b+2C)*(*(b+2) D)*(b+2)22C语言中规定,if语句的嵌套结构中,else总是与_配对。A)与最近的if 配套 B)与第一个if 配套C)按缩进位置相同的if配套 D)与最近的且尚未配对的if 配套23若用数组名作为函数调用时的参数,则实际上传递给形参的是_。A)数组元素的个数 B)数组的第一个元素值C)数组中全部元素的植 D)数组首地址24若在一个源程序文件中定义了一个允许其他源文件引用的实型外部变量x,则在另一文件中可以使用的引用说明是_。)extern floa

18、t x; B)float x;)extern auto float x; D)extern static float x;25若有定义char x = "12345" char y = '1', '2', '3', '4', '5';则 。A)x数组与y数组的长度相同 B)x数组长度大于y的长度C)x 数组长度小于y数组长度 D)x数组等价与y 数组判断题:()1、 “A”是一个字符常量。 X()2、在标准C中,使用所有输入输出函数必须包含“stdio.h”文件。 X3、设整型变量s, c1,c

19、2的值均为2,则执行语句(s=(c1= =c2)后,s的值为:(     )。    A)0  B)1   C)2  D)3( )4、关系运算符中,= = 的优先级要高于 >= 的优先级。 X( )5、判断a,b两个数是否相等,用 a = b。 X( ) 6、在循环过程中,使用break语句和continue语句的作用是一样的。 X(     )7、数组的下标从1开始。  X (  

20、0;  )8、数组边定义边赋值时,大括号内数据项的数目可以大于或等于数组的长度。 ( )9、空指针的值为NULL。 正确( )10、函数的返回值必须与函数定义时的返回类型一致。 正确阅读程序写结果1阅读以下程序,若输入5<回车>,写出程序运行结果。#include <stdio.h>int main( ) int i, n; double fact; scanf("%d", &n); fact=1; for(i=1;i<=n;i+) fact*=i; printf("%.0fn", fact);1

21、202阅读以下程序,若输入a<回车>,写出程序运行结果。#include <stdio.h>int main( ) char ch; ch=getchar(); if(ch>='a'&&ch<='z') ch=ch-a+A; else if(ch>='A'&&ch<='A') ch=ch-'A' + 'a' putchar(ch);A3阅读以下程序,若输入1 9 3 4 0<回车>,写出程序运行结果。#inc

22、lude <stdio.h>int main( ) int x, sum; scanf("%d", &x); sum=0; while(x>0) if(x%2=0) sum+=x; scanf("%d", &x); printf("%dn", sum);44阅读以下程序,若输入4 5 7 9 5<回车>,写出程序运行结果。#include <stdio.h>int main( ) int i, index, n; int a10; scanf("%d", &

23、amp;n); for(i=0; i<n; i+) scanf("%d", &ai); index=0; for(i=1;i<n;i+) if(ai<aindex) index=i; printf("min=%d,index=%dn", aindex,index);Min=5,index=05写出以下程序的运行结果。#include<stdio.h>int x;void cude() x=x*x*x; void main() x=5; cude(); printf("%dn",x);1256写出以

24、下程序的运行结果。#include<stdio.h>void main() int a =1,3,5,7,9; int y=0,x,*p; p=&a0; for(x=0; x<3; x+) y+=*(p+x); printf("%dn",y); 97阅读以下程序,写出程序的功能。#include<stdio.h>void main() int a10=2,4,0,-5,10,6,-8,9,6,7; int i,s=0,count=0; for(i=0; i<10; i+) if(ai>0) s+=ai,count+; els

25、e continue; printf ("s= %d , count=%dn", s ,count); S=44 ,count=78阅读以下程序,写出程序的运行结果。#include<stdio.h>#define N 6void main() int aN=4,5,8,3,6,1; int j,t; for(j=0; j<N-1; j+) if(aj>aj+1) t=aj; aj=aj+1; aj+1=t; for(j=0; j<N; j+) printf("%5d",aj); 答案11202A344min=5,index

26、=05125697s=44 , count=781   3   4   5   6   8程序填空:1以下程序的功能是计算11/21/31/4.的前n 项和,请填空。#include <stdio.h>int main( )        int i, n;        float sum;    

27、60;   scanf("%d", &n);              ;                for(i=1;i<=n;            ) 

28、60;                                                      

29、60;     printf("%.3fn", sum);   2以下程序的功能是从键盘输入n个整数,输出其中的最大值,请填空。#include <stdio.h>int main( )int  a, max,i,n;scanf("%d", &n);scanf("%d", &max); for(           &#

30、160;  ;i<n;i+)                                 if(               )  

31、;   max=a;printf("min is %dn", max);  3以下程序的功能是对10个整数从小到大排序#include<stdio.h>void sort(int arr,int n); void main()       int a10,*p,i;        printf("input 10 numbers:");      

32、;  for (i=0; i<10; i+)                scanf("%d",&ai);        printf("nthe original array is:");        for(p=a;  p<a+10; 

33、60;p+)                printf("%d  ",*p);                                pri

34、ntf("nthe present array is:");        for (p=a; p<a+10; p+)                printf("%d  ",*p); void sort(int arr ,int n)       int *p1,*p2

35、,temp;        for (p1=arr ; p1<arr+(n-1); p1+)                 for (           ; p2<arr+n; p2+)       &#

36、160;                  if (                )                &

37、#160;           temp=*p1; *p1=*p2; *p2=temp; 4以下程序完成对键盘输入的正整数进行求和、平均值、最大值和最小值,输入负数时循环结束。请填写缺少的语句。#include<stdio.h>void main()       int i,j,n,max,min,a100,s=0;        for(i=1; i<=100; i+

38、)                        scanf("%d,",&ai);                     if(    &

39、#160;         )                     s+=ai;               n=i-1;       

40、  min=max=a1;        for(j=2; j<=n; j+)                        if(              ) max=a

41、j;                 if(                ) min=aj;               printf("n=%dtaverage=%f

42、tmax=%dtmin=%dn",n,(float)s/n,max,min);  1sum=0i+sum+1.0/i3sort(a)p2=p1+1*p1>*p22i=1scanf("%d", &a)a>max4if(ai>0)aj>maxaj<min编程题1.输入2个整数,求两数的平方和并输出。 #include <stdio.h> main() intt a ,b,s; printf("please input a,b:n"); scanf("%d%d”,&a,&a

43、mp;b); s=a*a+b*b; printf("the result is %dn",s); 2. 输入一个圆半径(r),当r>0时,计算并输出圆的面积和周长,否则,输出提示信息。#include <stdio.h> #define PI 3.14 <stdio.h>main() float r ,s , l; printf("please input r:n"); scanf("%f”,&r);if (r>=0) s=pi*r*r; l=2*i*r ; printf("the area

44、 is %fn",s);printf("the circumference is %fn",l);else printf("input error!n"); 3. 编一程序每个月根据每个月上网时间计算上网费用,计算方法如下: 要求当输入每月上网小时数,显示该月总的上网费用(6分)main() int hour; float fee; printf(“please input hour:n”);scanf(“%d”,&hour); if(hour<=10) fee=30; else if(hour>=10&&h

45、our<=50) fee=3*hour; else fee=hour*2.5; printf(“The total fee is %f”,fee);4.神州行用户无月租费,话费每分钟0.6元,全球通用户月租费50元,话费每分钟0. 4元。输入一个月的通话时间,分别计算出两种方式的费用,判断哪一种合适。 main() float a,x,y; printf(“n请输入您的话费:”); scanf(“%f,”,&a); x= 0.6*a; y=50+0.4*a; printf (“神州行话费为: %fn”,x);printf (“全球通话费为: %fn”,y); if (x>=

46、y) printf(“建议使用全球通”); else printf(“建议使用神州行); 5、从键盘输入30名学生的成绩数据,求其中的最高分、最低分和平均分。(提示:用数组存放成绩数据) #include<stdio.h> #define M 30 main ( ) float scoreM, max , min, aver; int i ; printf(“please input score: n”); for(i=0; i<M ; i+) scanf(“%f”, &scorei); max=score0; min=score0; aver=score0; for

47、(i=1; i<M; i+) if (max < scorei) max= scorei; if (min>scorei) min=scorei; aver+=scorei; printf(“max=%f, min=%f,aver=%f”, max, min, aver/M);6. 从键盘输入某班学生某门课的成绩及其学号(班级人数最多40人,具体人数由键盘输入),输出该班最高分和最低分及其学生学号;并输出该班该课程的总分和平均分。请编写程序。#include <stdio.h>#define ARR_SIZE 40main() float scoreARR_SIZ

48、E, maxScore,minScore,sum;int n, i;long maxNum, minNum,numARR_SIZE;printf("Please enter total number:");scanf("%d", &n); printf("Please enter the number and score:n");for (i=0; i<n; i+) scanf("%ld%f", &numi, &scorei); maxScore = score0;minScore=

49、score0;maxNum = num0; minNum= num0; sum=score0;for (i=1; i<n; i+) if (scorei > maxScore) maxScore = scorei; maxNum = numi; else if (scorei < minScore) minScore = scorei; minNum = numi; sum=sum+scorei;printf("maxScore = %.0f, maxNum = %ldn", maxScore, maxNum); printf("minScore

50、 = %.0f, minNum = %ldn", minScore, minNum);printf("sum = %.1f, average = %.1fn", sum, sum/n);7.输入m,k的值,编程求下面表达式的值:(要求编写一个求阶乘的函数,调用函数实现本题)#include <stdio.h>unsigned long Factorial(unsigned int number);main() unsigned int m, k;double p; printf("Please input m, k:"); scan

51、f("%u, %u", &m, &k); p = (double)Factorial(k) / Factorial (m-k); printf("p=%fn", p); unsigned long Factorial(unsigned int number)unsigned long i, result = 1; for (i=2; i<=number; i+)result *= i; return result;8. 编写程序,其中自定义一函数,用来判断一个整数是否为素数,主函数输入一个数,输出是否为素数。#include <

52、;math.h>int IsPrimeNumber(int number)int i;if (number <= 1)return 0; Else for (i=2; i<sqrt(number); i+)if (number % i) = 0)return 0; return 1; main() int n; printf(“Please input n:”); scanf(“%d”,&n); if(IsPrimeNumber(n) printf(“n%d is a Prime Number”,n); else printf(“n%d is not a Prime Number”,n);17 / 17

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!