C语言程序设计复习汇总.docx

上传人:b****1 文档编号:23127031 上传时间:2023-05-08 格式:DOCX 页数:23 大小:32KB
下载 相关 举报
C语言程序设计复习汇总.docx_第1页
第1页 / 共23页
C语言程序设计复习汇总.docx_第2页
第2页 / 共23页
C语言程序设计复习汇总.docx_第3页
第3页 / 共23页
C语言程序设计复习汇总.docx_第4页
第4页 / 共23页
C语言程序设计复习汇总.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

C语言程序设计复习汇总.docx

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

C语言程序设计复习汇总.docx

C语言程序设计复习汇总

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

1.每个程序只有一个main函数,而且它是程序最先执行的地方,是程序的入口点,不管它的位置在哪里,都是首先从它开始执行。

2.每个程序都要包含头文件.头文件的声明方法:

#include<头文件名>

3.程序的3个区域:

1预处理区域(头文件定义的地方)2变量声明区域(声明变量的地方)3执行语句区域。

4.每个语句后面要加分号“;”代表语句的结束。

if语句的小括号(判断条件)后面不用加分号。

5.多个语句可以写在同一行,每个语句后面可以加分号,表示语句结束。

但不提倡这种方法,这样不美观,而且能够使程序代码的可读性很差。

6.注释可用双斜杠//表示,但是标准的C语言注释符号是/**/。

7.代码缩进:

在写代码的时候,尽量让执行语句靠右边对齐。

8.复合语句:

用花括号{}括起来的语句组表示复合语句。

9.符号常量:

在包含头文件的定义语句下面。

使用#define关键字进行声明。

格式是:

#define常量名常量值。

使用符号常量的好处:

使程序易于维护,并且增加可读性,同时并不会改变程序编译的结果。

符号常量的值在程序的运行时不能被改变,只能在进行代码编写的时候才能改变。

这是常量与变量的最大区别。

习惯上符号常量的常量名用大写字母,而变量的变量名用小写字母,以示区别。

10.变量的基本类型:

int(整型)char(字符型)float(单精度浮点型)double(双精度浮点型)。

11.变量命名规则:

只能是字母数字下环线组成的字符串,并且第一个字符只能是字母或下划线。

变量名应做到见名知意,变量名不可以是C语言中的关键字或者是函数名。

大小写不同的变量名代表不同的变量(在C语言中区分大小写).

12.变量的作用:

变量的值可以在运行时改变,使程序具有灵活性。

13.变量的三要素:

变量类型变量名变量的当前值

14.所有的变量都必须先声明然后再使用,变量的声明就是规定变量的类型的名字,如果不声明就是用会出现编译错误。

15.变量的初始值:

在声明变量的同时可以赋给变量一个初始值,如果不赋初始值,变量的值会是一个随机数。

16.使用变量的三个步骤:

声明赋初值使用变量的值。

17.输入输出函数:

printf()  sacnf()这两个寒暑的声明包含在头文件stdio.h中。

所以要使用这两个函数一定要包含这个头文件。

scanf("%d",&变量名);%d代表整型格式  如果是实型变量则用%f  字符型变量则用%c变量名前面的取地址符(&)不能少在scanf()函数内尽量不要使用换行标志\n

printf("%d",变量名)  同上

引号内的字符串,除格式控制符(如%d%c%f以及换行符\n)等等之外,其它都按照原样输出。

18.算术运算符:

+(加)  -(减)  *(乘)  /(除)  %(求余/模)

19.逻辑表达式:

&&(和/与/且)  ||(或)  !

(非)

表达式1&&表达式2  当表达式1和表达式2同时成立时候,它的值是真,否则为假

表达式1||表达式2  当表达式1或者表达式2任何一个成立的时候,或者两个都成立的时候,它的值是真,否则是假

    !

表达式      当表达式的值是真,那么结果就是假反之当表达式的值是假,它的值就是真。

20.在C语言中,0表示假,非0表示真。

21.自增(++)自减(--)运算符,不建议初学者过多的使用,知道有这家伙就可以了。

22.条件语句:

if语句如果是相等比较,那么要注意等于的关系运算符是(==)而不是(=),=是赋值运算符

if(条件)

{

语句;

}

if(条件)

{

语句;

}

else

{

语句;

}

if(条件)

{

语句;

}

elseif(条件)

{

语句;

}

else

{

语句;

}

23.switch-case语句

switch(整型表达式)

{

case情况1:

语句1;

break;

case情况2:

case情况3:

语句2;

break;

default:

语句n;

}

24.循环语句:

for语句while语句do-while语句

for(循环计数器初始化表达式;循环判断条件表达式;循环计数器表达式)

{

循环体;

}

while(循环判断条件表达式)

{

循环体;

}

do

{

循环体;

}while(循环判断条件表达式);  //在这里记得要在while()后面加分号.

25.forwhiledo-while语句的区别:

for和while语句是先判断循环条件,如果成立就执行循环体,反之则直接跳到循环后面的语句继续执行。

do-while语句是先执行一次循环体,然后再判断循环条件是否成立,如果成立则继续执行循环体,否则,直接跳到循环后面的语句继续执行。

forwhile语句的循环体可能一次也不会被执行,但是do-while语句的循环体至少会被执行一次。

26.while和do-while通常用于循环此数不确定的情况,而for语句通常用于循环次数已知的情况。

27.break语句:

用于中止循环,跳到循环后面语句中继续执行。

或者跳出switch语句。

28.continue语句:

用于结束本次循环,进入到下一次循环的条件判断,

29.数组:

数组是由多个具有相同数据类型的变量组成的数据结构。

就像是一个集合。

30.数组的声明:

类型数组名[数组元素总数]={初始值};  

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程序实现的算法可以既没有输入也没有输出

3.不合法的八进制数是__________。

B

A)0B)028C)077D)01

4.在C语言的if语句中,用作判断的表达式为__________D

A)关系表达式 B)逻辑表达式  C)算术表达式  D)任意表达式

5.若变量已定义,要求完成求5!

的计算,不能完成此操作的程序段是___。

B

A)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;do{p*=i;i++;}while(i<=5);

6.已有定义:

chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是__________。

C

A)数组a和b的长度相同B)a数组长度小于b数组长度

C)a数组长度大于b数组长度D)上述说法都不对

7.有以下程序__________。

A

main()

{chara='a',b;

print("%c,",++a);

printf("%c\n",b=a++);

}

程序运行后的输出结果是

A)b,bB)b,cC)a,bD)a,c

有以下程序__________。

A

main()

{

inta=3,b=4,c=5,d=2;

if(a>b)

if(b>c)

8.printf("%d",d+++1);

else

printf("%d",++d+1);

printf("%d\n",d);

}

程序运行后的输出结果是

A)2B)3C)43D)44

9.表达式__________是满足:

当c的值为1、3、5三个数时值为“真”,否则值为“假”的表达式D

A)(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=10;b=50;c=30;

if(a>b)

a=b,b=c;

c=a;

A)a=10b=50c=10B)a=10b=30c=10

C)a=50b=30c=10D)a=50b=30c=50

数字字符0的ASCII值为48,若有以下程序__________。

C

main()

{

chara='1',b='2';

printf("%c,",b++);

printf("%d\n",b-a);

}

程序运行后的输出结果是

(A)3,2(B)50,2(C)2,2(D)2,50

11.组成C程序的基本单位是________。

C

A)表达式与语句B)若干文件C)函数D)main函数

12.下列变量定义正确的是________。

A)intx_1;y;

B)intx=y=5;

C)intfor=4;

D)intprintf=2,x_y=2;

13.任何复杂的程序,都是由________构成的。

A)分支结构、顺序结构、过程结构B)循环结构、分支结构、过程结构

C)顺序结构、循环结构、分支结构D)循环结构、分支结构

14.以下说法错误的是________。

A)do~while语句与while语句的区别仅是关键词“while”出现的位置不同

B)while语句是先进行循环条件判断,后执行循环体的

C)do~while是先执行循环体,后进行循环条件判断

D)while、do~while和for语句的循环体都可以是空语句

15.以下叙述错误的是________。

A)C语言本身没有输入输出语句

B)一个可执行的C源程序必须包含一个main函数

C)C程序中,注释说明只能位于一条语句的后面

D)C程序的基本组成单位是函数

16.以下对二维数组a的声明正确的是________。

A)inta[3][];B)inta(3,4);C)inta[1][4];D)inta(3)(4);

17.下列函数头中形参说明错误的是________。

A)floataverage(floatarray[9],n)B)floataverage(float*array,intn)

B)floataverage(floatarray[],intn)C)floataverage(floatarray,intn

18.t为int类型,进入下面的循环之前t的值为0,以下叙述正确的是________。

while(t=l)

{……}

A)循环控制表达式的值为0B)循环控制表达式的值为1

C)循环控制表达式不合法D)以上说法都不对

19.若a为整型变量,则以下语句________。

a=-2L;

printf(“%d\n”,a);

A)赋值不合法B)输出值为-2C)输出为不确定值D)输出值为2

20.若有说明语句:

inty[][4]={0,0,0,0,0,0};则正确的叙述是________。

A)数组y的每个元素都可得到初值0

B)二维数组y的行数为1

C)该说明等价于inty[0][4]={0};

D)有元素y[0][0]至y[0][5]可得到初值,其余元素均得不到初值0

21.若有定义:

intb[5];则以下对b数组元素的正确引用是________。

A)*&b[5]B)b+2

C)*(*(b+2))D)*(b+2)

22.C语言中规定,if语句的嵌套结构中,else总是与________配对。

A)与最近的if配套B)与第一个if配套

C)按缩进位置相同的if配套D)与最近的且尚未配对的if配套

23.若用数组名作为函数调用时的参数,则实际上传递给形参的是________。

A)数组元素的个数B)数组的第一个元素值

C)数组中全部元素的植D)数组首地址

24.若在一个C源程序文件中定义了一个允许其他源文件引用的实型外部变量x,则在另一文件中可以使用的引用说明是________。

A)externfloatx;B)floatx;

C)externautofloatx;D)externstaticfloatx;

25.若有定义charx[]="12345";chary[]={'1','2','3','4','5'};则。

A)x数组与y数组的长度相同B)x数组长度大于y的长度

C)x数组长度小于y数组长度D)x数组等价与y数组

判断题:

( )1、“A”是一个字符常量。

X

( )2、在标准C中,使用所有输入输出函数必须包含“stdio.h”文件。

X

3、设整型变量s,c1,c2的值均为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 

(     )8、数组边定义边赋值时,大括号内数据项的数目可以大于或等于数组的长度。

()9、空指针的值为NULL。

正确

()10、函数的返回值必须与函数定义时的返回类型一致。

正确

阅读程序写结果

1.阅读以下程序,若输入5<回车>,写出程序运行结果。

#include

intmain()

{inti,n;

doublefact;

scanf("%d",&n);

fact=1;

for(i=1;i<=n;i++)

fact*=i;

printf("%.0f\n",fact);

}

120

2.阅读以下程序,若输入a<回车>,写出程序运行结果。

#include

intmain()

{

charch;

ch=getchar();

if(ch>='a'&&ch<='z')

ch=ch-‘a’+’A’;

elseif(ch>='A'&&ch<='A')

ch=ch-'A'+'a';

putchar(ch);

}

A

3.阅读以下程序,若输入19340<回车>,写出程序运行结果。

#include

intmain()

{intx,sum;

scanf("%d",&x);

sum=0;

while(x>0)

{if(x%2==0)sum+=x;

scanf("%d",&x);}

printf("%d\n",sum);

}

4

4.阅读以下程序,若输入45795<回车>,写出程序运行结果。

#include

intmain()

{inti,index,n;

inta[10];

scanf("%d",&n);

for(i=0;i

scanf("%d",&a[i]);

index=0;

for(i=1;i

{if(a[i]

printf("min=%d,index=%d\n",a[index],index);

}

Min=5,index=0

5.写出以下程序的运行结果。

#include

intx;

voidcude()

{x=x*x*x;}

voidmain()

{x=5;

cude();

printf("%d\n",x);

}

125

6.写出以下程序的运行结果。

#include

voidmain()

{

inta[]={1,3,5,7,9};

inty=0,x,*p;

p=&a[0];

for(x=0;x<3;x++)y+=*(p+x);

printf("%d\n",y);

}

9

7.阅读以下程序,写出程序的功能。

#include

voidmain()

{

inta[10]={2,4,0,-5,10,6,-8,9,6,7};

inti,s=0,count=0;

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

if(a[i]>0)s+=a[i],count++;

elsecontinue;

printf("s=%d,count=%d\n",s,count);

}

S=44,count=7

8.阅读以下程序,写出程序的运行结果。

#include

#defineN6

voidmain()

{

inta[N]={4,5,8,3,6,1};

intj,t;

for(j=0;j

if(a[j]>a[j+1])

{t=a[j];

a[j]=a[j+1];

a[j+1]=t;

}

for(j=0;j

printf("%5d",a[j]);

}

答案

1.120

2.A

3.4

4.min=5,index=0

5.125

6.9

7.s=44,count=7

8.1  3  4  5  6  8

程序填空:

1.以下程序的功能是计算1+1/2+1/3+1/4+..的前n项和,请填空。

#include

intmain()

{

       inti,n;

       floatsum;

       scanf("%d",&n);

 

           ;

       

       for(i=1;i<=n;           )

       {       

                         ;

         }

       printf("%.3f\n",sum);  }

2.以下程序的功能是从键盘输入n个整数,输出其中的最大值,请填空。

#include

intmain()

{

int a,max,i,n;

scanf("%d",&n);

scanf("%d",&max);

 

for(             ;i

{

                   ;

   

       if(              )

    max=a;}

printf("minis%d\n",max); }

3.以下程序的功能是对10个整数从小到大排序

#include

voidsort(intarr[],intn);

voidmain()

{

      inta[10],*p,i;

      printf("input10numbers:

");

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

               scanf("%d",&a[i]);

      printf("\ntheoriginalarrayis:

");

      for(p=a; p

               printf("%d ",*p);

                     ;

      printf("\nthepresentarrayis:

");

      for(p=a;p

               printf("%d ",*p);

}

voidsort(intarr[],intn)

{

      int*p1,*p2,temp;

      for(p1=arr;p1

               for(          ;p2

                         if(               )

                         { temp=*p1;*p1=*p2;*p2=temp;}

}

4.以下程序完成对键盘输入的正整数进行求和、平均值、最大值和最小值,输入负数时循环结束。

请填写缺少的语句。

#include

voidmain()

{

      inti,j,n,max,min,a[100],s=0;

      for(i=1;i<=100;i++)

      {                scanf("%d,",&a[i]);

                  if(             )                   s+=a[i];

      }

      n=i-1; 

      min=max=a[1];

      for(j=2;j<=n;j++)

      {                if(             )max=a[j];

               if(               )min=a[j];

      }

      printf("n=%d\taverage=%f\tmax=%d\tmin=%d\n",n,(float)s/n,max,min); 

}

1

sum=0

i++

sum+1.0/i

3

sort(a)

p2=p1+1

*p1>*p2

2

i=1

scanf("%d",&a)

a>max

4

if(a[i]>0)

a[j]>max

a[j]

编程题

1.输入2个整数,求两数的平方和并输出。

#include

main()

{intta,b,s;

printf("pleaseinputa,b:

\n");

scanf("%d%d”,&a,&b);

s=a*a+b*b;

printf("theresultis%d\n",s);

}

2.输入一个圆半径(r),当r>=0时,计算并输出圆的面积和周长,否则,输出提示信息。

#include

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1