C语言程序设计复习大纲.docx
- 文档编号:15025143
- 上传时间:2023-06-29
- 格式:DOCX
- 页数:21
- 大小:30.65KB
C语言程序设计复习大纲.docx
《C语言程序设计复习大纲.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习大纲.docx(21页珍藏版)》请在冰点文库上搜索。
C语言程序设计复习大纲
题型及分数:
单选题:
25分判断题:
10分填空题:
15分程序分析题:
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语言规定了若干有特定意义、为C语言专用的单词,称为关键字。
5.C语言的语句以结尾。
6.C语言源程序经过编译以后生成文件,生成的文件名后缀为,经过连接后生成文件,后缀为
7.C语言中不能使用关键字作为标识符。
(√)
第二章基本数据类型,运算符与表达式(出题比例20-30%)
1.关键知识点:
常量,变量:
a)标识符的命名规则
b)常量,变量的概念:
直接常量,符号常量,变量必须先定义后使用
c)变量名和变量值的区别。
2.C语言中的基本数据类型
a)各种数据类型的数据在内存中的存放方式
掌握各种数据类型数据的常量使用方法,特别注意字符常量和字符串常量的区别使用
b)整型,字符型,浮点型变量的定义和引用方法
c)数据的数据类型,数据的取值范围,数据在内存中存放方式三者之间的联系
3.运算符和表达式的使用方法
a)自增、自减运算符赋值运算符算术运算符及表达式逗号运算符及表达式
b)*位运算符及表达式sizeof运算符及表达式*强制数据类型转换符及表达式
4.运算符的优先级和结合性
本章复习题:
课后习题:
一、单选题,二、填空题
1.C语言的标识符命名规则中,第一个字符可以为字符‘#’或‘&’.(×)。
2.下列全部属于合法的用户标识符的是()
A.A1P_0dSB.float2la_AC.*ahykkD._123tempmain
3.C语言对字母的大小写不敏感。
(×)
4.C语言中,符号常量由宏定义命令#define来定义。
(√)
5.在VC6.0中,数据类型int,char,float和double所占的内存字节数分别是、、和。
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.字符串常量”mine”的字符个数是(B)A.4B.5C.6D.7
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=0x=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)&&
18.字符串”It\’s40an\40apple,\n”中包含20个字符。
19.若x=64,y=88,则x<<2和y>>2的值分别是256和22。
第三章程序设计的控制结构(出题比例25-35%)
本章复习题包括课后习题:
一、单选题,二、填空题四、程序设计题1,2,4,7,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;并有以下输入数据(此处
1□2
则能给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)关系运算符逻辑运算符条件运算符的用法各种运算符的优先级关系和结合性注意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.C语言提供的3种逻辑运算符是________、________和________。
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)0B)1C)4D)5
10.若给定条件表达式:
(n)?
(c++):
(c--),则与表达式n等价的表达式是(C)。
A)n==0B)n==1C)n!
=0D)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.逻辑运算符的运算优先级都要低于算术运算符。
(×)
13.当m=3,n=4,a=5,b=1,c=2时,执行完d=(m=a!
=b)&&(n=b>c)后,n值为0,m值为1。
14.有intx,y,z;且x=4,y=-5,z=6,则以下表达式!
(x>y)+(y!
=z)||(x+y)&&(y-z)的值为1。
3.3循环结构程序设计
关键知识点:
1.C语言循环结构的用法,原理
2.三种循环的语法
a)While,do-while,for,注意分号应何时出现;
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)2B)3C)4D)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.下面的for循环语句最多可执行4次
for(x=0,y=0;(y!
=99)&&(x<4);x++);
8.设t为int类型,进入到下面的循环之前,t的值为0
while(t=l)
{……}
则以下叙述中正确的是(B)
A)循环控制表达式的值为0B)循环控制表达式的值为1
C)循环控制表达式不合法D)以上说法都不对
9.下面程序的输出结果是-1。
main()
{
intx=2;
while(x--);
printf(“%d\n”,x);
}
10.for循环只能用于循环次数已经确定的情况。
(×)
11.break语句不仅能够用在循环语句中,还可用在switch语句中。
(√)
12.*写程序计算当x=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.一维数组和二维数组变量,,,,如何定义数组,如何初始化数组,数组元素的引用方式,数组元素的存储方式,数组元素的地址及其使用
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.若有以下程序片段:
charstr[]="ab\n\012\\\"";
则字符数组str能存储的字符个数为(D)
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)
10.若有“inta[3][4]={{1},{2},{3}};”,则a[1][1]的值为0。
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[3][]={{1,2},{1,2,3},{1,2,3,4}};
18.对字符数组
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 复习 大纲