C语言程序设计复习大纲.docx

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

C语言程序设计复习大纲.docx

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

C语言程序设计复习大纲.docx

C语言程序设计复习大纲

题型及分数:

单选题:

20分

判断题:

10分

填空题:

20分

程序分析题:

20分

编程题:

30分

其中:

课后习题及复习大纲中相类似题所占比例在70%-80%。

带*号的内容和复习题为较难部分,为非重点考察内容。

第一章C语言程序设计基础(出题比例4-6%)

1.程序设计语言的基本概念

✓程序

✓程序设计语言

✓常用程序设计语言及其类型

✓源程序、编译、目标文件、连接、可执行程序

✓编程的步骤

2.C语言程序的基本结构

(1)C源程序的框架

C源程序的框架,主要有:

编译预处理、主函数()、函数n()等,主函数的位置不一定在最前面,可以在程序的中部或后面,主函数的名字固定为main。

(2)C语言源程序的书写规则:

✓C源程序是由一个主函数和若干个其它函数组成的;

✓函数名后必须有小括号,函数体放在大括号内;

✓C程序对大、小写字母书写敏感;

✓每句的末尾加分号;

✓可以一行多句;

✓可以一句多行;

✓可以在程序的任何位置加注释,注释的方式。

3.C语言程序设计的的基本步骤和调试过程

复习题:

/*****

1.每个C语言程序中有且仅有一个函数,它是程序的入口和出口。

2.引用C语言标准库函数,一般要用预处理命令将其头文件包含进来。

3.C语言属于()

A.高级语言B.低级语言

C.中级语言D.机器语言

4.C语言程序是由组成。

5.C语言的源程序中的main函数在程序中的位置应该是。

6.C语言的语句以结尾。

7.C语言源程序经过编译以后生成文件,生成的文件名后缀为,经过连接后生成文件,后缀为

8.C语言中不能使用关键字作为标识符。

(√)

第二章基本数据类型,运算符与表达式(出题比例20-30%)

关键知识点:

1.常量,变量:

a)标识符的命名规则

b)常量,变量的概念:

直接常量,符号常量,变量必须先定义后使用

c)变量名和变量值的区别。

2.C语言中的基本数据类型

a)各种数据类型的数据在内存中的存放方式

b)掌握各种数据类型数据的常量使用方法,特别注意字符常量和字符串常量的区别使用

c)整型,字符型,浮点型变量的定义和引用方法

d)数据的数据类型,数据的取值范围,数据在内存中存放方式三者之间的联系

3.运算符和表达式的使用方法

a)自增、自减运算符

b)赋值运算符

c)算术运算符及表达式

d)逗号运算符及表达式

e)*位运算符及表达式

f)sizeof运算符及表达式

g)*强制数据类型转换符及表达式

4.运算符的优先级和结合性

本章复习题:

课后习题:

一、单选题,二、填空题

1.C语言的标识符命名规则中,第一个字符可以为字符‘#’或‘&’.(×)。

2.下列全部属于合法的用户标识符的是()

A.A1P_0dSB.float2la_A

C.*ahykkD._123tempmain

3.C语言对字母的大小写不敏感。

(×)

4.C语言中,符号常量由宏定义命令#define来定义。

(√)

5.double,int、char、float几种基本数据类型变量的存储空间从小到大的排列顺序为charintfloatdouble。

6.下列四个选项中,均是合法的整型常量的选项是A

A.160–0XFFFF011B。

-0XCDF01A0XE

C.-01986,0120688D。

-0X48a2e50x

7.合法的C语言字符常数是(A)

A.'\t'B."A"C.54D.A

8.设有语句chara='\72';即变量a(A)

A.包含一个字符B.包含两个字符

C.包含3个字符D.说明不合法

9.若有定义inta=7;folatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是。

(2.500000)

10.在C语言中,要求运算数一定是整型的运算符是(D)

A./B。

++C。

=D。

%

11.*设有类型说明unsignedinta=65535,按%d格式输出a的值,其结果是(B)

A.65535B.-1C.1D.–32767

12.(B)是非法的C语言转义字符

A.'\b'B.'0xf'C.'\037'D.'\'

13.*若x、y、z均为int型变量,则执行以下语句后的输出是(A)

x=(y=(z=10)+5)-5;

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

y=(z=x=0,x+10);

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

A.x=10,y=15,z=10B.x=10,y=10,z=10

x=0,y=10,z=10x=0,y=10,z=0

C.x=10,y=15,z=10D.x=10,y=10,z=10

x=10,y=10,z=0x=10,y=10,z=0

14.以下程序的输出结果是(B)

#include

voidmain()

{

inta;

floatb,c;

scanf("%2d%3f%4f",&a,&b,&c);

printf("\na=%d,b=%f,c=%f\n",a,b,c);

}

如输入:

9876543210

A.a=98,b=765,c=4321B.a=98,b=765.000000c=4321.000000

C.a=98,b=765.0,c=4321.0D.a=1,b=432,c=8765

15.有如下定义:

inta=20,n=10;求下列表达式的值。

A.a/=a+a;(a=___

(1)___)

B.a%=n%=7;(a=___

(2)___)

C.a+=a-=a*=a;(a=___(3)___)

16.若有以下定义和语句(B)

charc1='b',c2='e';

printf("%d,%c\n",c2-c1,c2-'a'+'A');

则输出结果是:

A)2,MB)3,E

C)2,ED)不确定

17.在以下一组运算符中,优先级最高的运算符是(C)

A)<=B)=

C)%D)&&

第三章程序设计的控制结构(出题比例25-35%)

本章复习题包括课后习题:

一、单选题,二、填空题四、程序设计题1,2,4,8,9

3.1顺序程序设计

关键知识点:

1.各种类型数据的格式化输入输出方法

a)字符的输入输出函数getchar()和putchar()

b)注意利用scanf函数输入变量值时不要漏掉取地址符号&

c)调用printf函数输出各种类型数据的方法。

2.顺序程序设计方法和步骤

1.若有以下定义和语句:

(A)

intu=010,v=0x10,w=10;

printf("%d,%d,%d\n,u,v,w);则输出结果是:

A)8,16,10B)10,10,10C)8,8,10D)8,10,10

2.若有定义:

intx,y;chara,b,c;并有以下输入数据(此处代表换行符,u代表空格):

1u2

AuBuC

则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是(B)

A)scanf("x=%dy=%d",&x,&y);a=getchar();b=getchar();c=getchar();

B)scanf("%d%d",&x,&y);a=getchar();b=getchar();c=getchar();

C)scanf("%d%d%c%c%c",&x,&y,&a,&b,&c);

D)scanf("%d%d%c%c%c%c%c%c":

&x,&y,&a,&a,&b,&b,&c,&c);

3.已有如下定义的输入语句,若要求A1,A2,C1,C2的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是(C)。

(注:

□表示空格,表示回车)

inta1,a2,;

charc1,c2;

scanf(“%d%c%d%c”,&a1,&c1,&a2,&c2);

A)10□A□20B

B)10□A□20□B

C)10A20B

D)10A20□B

4.已知:

intx;floaty;所用的scanf调用语句格式为:

scanf(“x=%d,y=%f”,&x,&y);

为了将数据10和66.6分别赋给x和y,正确的输入应当是(A)。

A)x=10,y=66.6<回车>

B)10,66.6<回车>

C)10<回车>66.6<回车>

D)x=10<回车>y=66.6<回车>

5.编程实现输入圆的半径,求圆的面积。

3.2选择程序设计

关键知识点:

1.C语言语句的分类

a)特别注意复合语句的使用

b)注意何时使用空语句

2.条件表达式

a)关系运算符

b)逻辑运算符

c)条件运算符的用法

d)各种运算符的优先级关系和结合性

e)注意bool变量的取值:

非零即真

3.选择结构的应用方式

a)if语句的几种应用方式:

if-else配对问题

b)switch语句:

SWITCH后表达式类型,CASE后表达式类型

c)break的使用方法

1.已知x=45,ch=’B’,y=0;则表达式(x>=y&&ch<’b’&&!

y)的值是(C)

A.0B.语法错

C.1D.“假”

2.下列关于switch语句和break语句的结论中,正确的是(B)。

A)break语句是switch语句的一部分

B)在switch语句中可以根据需要使用或不使用break语句

C)在switch语句中必须使用break语句

D)break语句不能在switch语句中使用

3.能正确表达:

“当x取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是(C)。

A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=210)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

4.假定所有变量均已正确说明,下列程序段运行后x的值是(B)

a=b=c=0;x=35;

if(!

a)x--;

elseif(b);

if(c)x=3;

elsex=4;

A)34B)4C)35D)3

5.*以下两条if语句可合并成一条if语句为________

if(a<=b)x=1;elsey=2;

if(a>b))printf("****y%d\n",y);elseprintf("####x=%\n",x);

6.运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为C

A)2,0        B)5,0        C)5,5        D)2,5

    main()

    {

intv1=0,v2=0;

    charch;

    while((ch=getchar())!

=’#’)

    switch(ch)

    {

case‘a’:

  case‘h’:

  default:

v1++;

  case‘0’:

v2++;

 }

 printf(“%d,%d\n”,v1,v2);

 }

7.若变量c为char类型,能正确判断出c为小写字母的表达式是D

A)'a'<=c<='z'B)(c>='a')||(c<='z')

C)('a'<=c)and('z'>=c)D)(c>='a')&&(c<='z')

8.设a、b、C、d、m、n均为int型变量,且a=5、b=6、c=7、d=8、m=2、n=2,则逻辑表达式(m=a>b)&&(n=c>d)运算后,n的值为C

A)0B)1C)2D)3

9.已知:

inta=4,b=5,c;则执行表达式c=a=a>b后变量a的值为(A)。

A)0

B)1

C)4

D)5

10.若给定条件表达式:

(n)?

(c++):

(c--),则与表达式n等价的表达式是(C)。

A)n==0

B)n==1

C)n!

=0

D)n!

=1

11.下面程序的输出结果是88898787。

键盘输入:

446755表示回车)

#include

voidmain(void)

{

intc;

while((c=getchar())!

=‘\n’)

switch(c-‘2’)

{

case0:

case1:

putchar(c+4);

case2:

putchar(c+4);break;

case3:

putchar(c+3);

default:

putchar(c+2);break;

}

printf(“\n”);

}

12.逻辑运算符的运算优先级都要低于算术运算符。

(×)

3.3循环结构程序设计

关键知识点:

1.C语言循环结构的用法,原理

2.三种循环的语法

a)while

b)do-while,

c)for

d)注意分号应何时出现;

3.break,continue的使用方法

4.循环嵌套(2重)的用法

1.以下程序的输出结果是D

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=10)break;

if(b%3==1)

{b+=3;continue;}

}

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

}

A)101B)6C)5D)4

2.执行语句for(i=0;i++<3;);后,变量i的值为(C)。

A)2

B)3

C)4

D)5

3.下列程序运行结果是(A)

#include

main()

{intx=231;

do

printf("%2d",x--);

while(!

x);}

A.231B.23C.无D.死循环

4.定义inti=1;执行语句while(i++<5);后,i的值是(D)

A.3B.4C.5D.6

5.设x和y均为int型变量,则执行下面的循环后,y值为(C)

for(y=1,x=1;y<=50;y++)

{if(x==10)}break;

if(x%2==1){x+=5;continue;}

x-=3;}

A)2B)4C)6D)8

6.假定a和b为int型变量,则执行以下语句后b的值为(D)

a=1;b=10;

do{b-=a;a++;}while(b--<0);

A)9B)-2C)-1D)8

7.在下列选项中,没有构成死循环的程序段是C

  A)inti=100

    while

(1)

    {i=i%100+1;

    if(i>100)break;

    }

  B)for(;;);

  C)intk=1000;

    do{++k}while(k>=1000)

  D)ints=36;

    While(s);--s;

8.设t为int类型,进入到下面的循环之前,t的值为0

while(t=l)

{……}

则以下叙述中正确的是(B)

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

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

9.*写程序计算当=0.5时下述级数和的近似值,使其误差小于某一个指定的值epsilon(例如:

epsilon=0.000001):

#defineE0.000001

#include

voidmain(void)

{

inti,k=1;

floatx,y,t=1,s,r=1;

printf(“Pleaseenterx=”);

scanf(“%f”,&x);

for(s=x,y=x,i=2;fabs(r)>E;i++)

{

t*=i-1;

y*=x*x;

k*=-1;

r=k*y/t/(2*i-1);

s+=r;

}

printf(“S=%f\n”,s);

}

第四章数组(出题比例15-20%)

关键知识点:

1.数组变量的特征以及数据元素的特性

a)各数组元素类型一致,个数有限,排列有序

2.一维数组和二维数组变量

a)如何定义数组

b)如何初始化数组

c)数组元素的引用方式

d)*数组元素的存储方式

e)*数组元素的地址及其使用

3.字符串与字符数组的区别

a)字符串常量的返回值是地址

b)字符数组的赋值

c)字符串的输入和输出

d)注意字符串的结束标志

4.各类字符串库函数的使用方法

a)掌握几种常见的函数:

gets,puts,

b)*函数strcat,strcmp等

 

复习习题:

课后习题:

一、单选题,二、填空题三、程序设计题第2,3小题

1.合法的数组说明是(B)。

A)inta[]=“string”;

B)inta[]={0,1,2,3,4,5};

C)chara=“string”;

D)chara[]={0,1,2,3,4,5};

2.要说明一个有10个int元素的数组,应当选择语句(A)

A)inta[10];

B)inta[2,5];

C)inta[];

D)int*a[10];

3.已知:

inta[10];则对a数组元素的正确引用是(D)。

A)a[10]

B)a[3.5]

C)a(5)

D)a[0]

4.以下对一维数组a正确进行初始化的语句是(C)。

A)inta[10]=(0,0,0,0,0);

B)inta[10]={};

C)inta[]={0};

D)inta[2]={10,9,8};

5.对以下说明语句的正确理解是(B)。

inta[10]={6,7,8,9,20};

A)将5个初值依次赋给a[1]至a[5]

B)将5个初值依次赋给a[0]至a[4]

C)将5个初值依次赋给a[6]至a[10]

D)因为数组长度与初值个数不相同,所以此语句不正确

6.执行下面的程序段后,变量k中的值为(A)

intk=3,s[2];

s[0]=k;

k=s[1]*10;

A.不定值B.33C.30D.10

7.若有以下程序片段:

(D)

charstr[]="ab\n\012\\\"";

则字符数组str能存储的字符个数为

A}3B}4C}6D}7

8.*函数调用:

strcat(strcpy(str1,str2),str3)的功能是(c)

A)将串str1复制到串str2中后再连接到串str3之后

B)将串str1连接到串str2之后再复制到串str3之后

C)将串str2复制到串str1中后再将串str3连接到串str1之后

D)将串str2连接到串str1之后再将串str1复制到串str3中

9.已知:

chars[100];inti;则下列引用数组元素的语句中,错误的表示形式是(D)。

A)s[i+10]

B)*(s+i)

C)*(i+s)

D)*((s++)+i)

11.给出以下定义:

(C)

charx[]="abcdefg";

chary[]={'a','b','c','d','e','f','g'};

则正确的叙述为

A)数组X和数组Y等价B)数组x和数组Y的长度相同

C)数组X的长度大于数组Y的长度D)数组X的长度小于数组Y的长度

12.以下程序的输出结果是(B)

main()

{

inti,k,a[10],p[3]:

K=5;

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

a[i]=i;

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

p[i]=a[i*(i+1)];

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

k+=p[i]*2;

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

A)20B)21C)22D)23

13.以下程序的输出结果是D

A)ABCDB)ABCDC)EFGD)EFGH

FGHEFGJKIJKL

KLIJO

M

main()

{

charw[][10]={"ABCD","EFGH","IJKL","MNOP"},k;

for(k=1;k<3;k++)

printf("%s\n",w[k]);

}

14.以下程序的输出结果是A

A)18B)19C)20D)21

main()

{

inta[3][3]={{1,2},{3,4},{5,6}},i,j,s=0;

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

for(j=0;j<=i;j++)s+=a[i][j];

printf("%dn",s);

}

15.假定int类型变量占用两个字节,其有定义:

intx[10]={0,2,4};,则数组x在内存中所占字节数是D

A)3B)6C)10D)20

16.以下程序的输出结果是C

main()

{

inti,a[10];

for(i=9;i>=0;i--)a[i]=10-i;

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

}

A)258B)741C)852D)369

17.以下数组定义中不正确的是D

A)inta[2][3];

B)intb[][3]={0,1,2,3};

C)intc[100][100]={0};

D)intd

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

当前位置:首页 > 自然科学 > 化学

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

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