C程序设计复习资料含答案Word文档下载推荐.docx
- 文档编号:20941210
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:28
- 大小:32KB
C程序设计复习资料含答案Word文档下载推荐.docx
《C程序设计复习资料含答案Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C程序设计复习资料含答案Word文档下载推荐.docx(28页珍藏版)》请在冰豆网上搜索。
7.变量、数组和字符串指针的定义、指向与引用(仅限于一维数组)
8.了解指针数组与二级指针的概念和定义
9.*能够阅读并理解使用指针进行数据处理的相关程序(极值、逆序、回文和字符串的连接、复制、求长度等)
10.结构体与共用体的概念、定义与引用(仅限概念)
第五章结构化程序设计与应用
1.熟悉程序的三种基本结构:
顺序、选择和循环
2.*通过其中部分例题掌握选择、循环语句的使用以及循环和数组涉及的主要算法
第六章函数与编译预处理
1.掌握函数的定义、声明和调用方法及参数传递方式
2.*结合相关例题掌握一般函数和递归函数的定义与使用
3.熟悉局部变量与全局变量的定义及作用范围,了解各种静态与动态变量的定义、作用范围与生存期
4.了解内部函数与外部函数的定义及调用规则
5.掌握宏定义与宏展开(重点掌握带参数宏的定义与展开)
6.了解文件包含的作用及其使用场合
第七章文件
1.了解文件的概念
2.熟悉文件打开、关闭及各种与文件读写有关函数的格式与用法特别提醒:
以上带*部分主要涉及程序阅读、程序填空和编写程序,其余部分主要以选择和概念填空题出现
C语言程序设计参考题型
说明:
★本题仅反映考试的题型,作为考前复习参考。
★要通过这些典型题目,掌握复习要点中所列内容。
所给题目不可死记硬背,而是通过题目掌握其涉及要点和重要算法。
一、单项选择题
1.C程序的基本构成单位是【C】
A)文件B)命令C)函数D)语句
2.下列叙述中错误的是【C】
A)C程序中main()函数的位置可以任意
B)C程序可以由多个程序文件组成,而一个程序文件又可以由一个或多个函数组成
C)每个程序文件都有一个main()函数
D)C程序总是从main()开始执行,也是由它结束
3.将C源程序转换为目标程序的过程称为【B】
A)编辑B)编译C)连接D)运行
4.C语言中最基本的数据类型包括【B】
A)整型、实型、逻辑型B)整型、实型、字符型
C)整型、逻辑型、字符型D)整型、实型、字符串型
5.以下不合法的用户标识符是【C】
A)j2_KEYB)DoubleC)4dD)_8_
6.C源程序中不能表示的数制是【A】
A)二进制B)八进制C)十进制D)十六进制
7.以下合法的字符常量的是【A】
A)'
\x13'
B)'
\081'
C)'
65'
D)"
\n"
8.以下选项中,能用作数据常量的是【D】
A)o115B)0118C)1.5e1.5D)115L
9.C语言中,要求运算对象必须是整型数据的运算符是【A】
A)%B)/C)\D)&
&
10.表示数学关系“x≥y≥z”的C语言表达式是【C】
A)x>
=y>
=zB)x>
=y||y>
=zC)x>
=y&
y>
=zD)x≥y≥z
11.若变量均已正确定义并赋值,以下合法的C语言赋值语句是【A】
A)x=y==5;
B)x=n%2.5;
C)x+n=j;
D)x=5=4+1;
12.设有定义:
intk=0;
以下选项的四个表达式中与其他三个表达式的值不相同的是【A】
A)k++B)k+=1C)++kD)k+1
13.
若有代数式:
以下错误的C语言表达式是【C】
A)a/b/c*e*3B)3*a*e/b/cC)3*a*e/b*cD)a*e/c/b*3
14.设变量a是整型,f是实型,i是双精度型,则表达式10+'
a'
+i*f值的数据类型为【C】
A)intB)floatC)doubleD)不确定
15.若p和x已经正确定义,x已赋值,并且p=&
x,则下列关系表达式之值为1的是【B】
A)p==xB)*p==xC)&
p==xD)*x==p
16.当用户要求输入的字符串中含有空格时,应使用的输入函数是【C】
A)scanf()B)getchar()C)gets()D)getc()
17.下列能输出字符数组str中字符串的语句是【B】
A)printf("
%c"
str[0]);
B)printf("
%s"
str);
C)printf("
str[]);
D)putchar(str);
18.有输入语句:
scanf("
B%d,%d"
&
a,&
b);
为使变量a、b分别为5和3,从键盘输入数据的正确形式为【B】
A)53<
回车>
B)5,3<
C)a=5b=3<
D)a=5,b=3<
19.定义如下变量和数组:
intj;
intx[3][3]={1,2,3,4,5,6,7,8,9};
则下面语句的输出结果是【C】
for(j=2;
j>
=0;
j--)
printf("
%2d"
x[j][2-j]);
A)159B)147C)753D)369
20.执行下面程序后,a的值是【B】
#defineSQR(x)x*x
voidmain()
{inta=10,k=2,m=1;
a=SQR(k+m);
%d\n"
a);
}
A)10B)5C)2D)1
21.简单if语句的基本形式:
if(表达式)语句【D】
其中“表达式”
A)必须是逻辑表达式B)必须是关系表达式
C)必须是逻辑表达式或关系表达式D)可以是任意合法的表达式
22.在嵌套使用if语句时,C语言规定else总是【C】
A)和之前与其具有相同缩进位置的if配对B)和之前与其最近的if配对
C)和之前与其最近的且不带else的if配对D)和之前的第一个if配对
23.下列叙述中正确的是【D】
A)break语句只能用于switch语句
B)在switch语句中必须使用default
C)break语句必须与switch语句中的case配对使用
D)在switch语句中,不一定使用break语句
24.有以下程序段:
x=-1;
do
x=x*x;
while(!
x);
执行时,循环体执行的次数为【B】
A)0B)1C)2D)不确定
25.以下不正确的if语句形式是【C】
A)if(x>
y&
x!
=y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf("
%d"
x)elsescanf("
y);
D)if(x<
y){x++;
y++;
26.以下程序的输出结果是【C】
{intx=2,y=-1,z=2;
if(x<
y)
if(y<
0)z=0;
elsez+=1;
z);
A)0B)1C)2D)3
27.以下能正确计算1×
2×
3×
…×
10的程序段是【A】
A)i=1,s=1;
B)s=1;
i=1;
dowhile(i<
=10)
{s=s*i;
i++;
}s=s*(++i);
while(i<
11);
C)for(i=1,s=0;
i<
=10;
i++)D)for(i=1,s=1;
;
i++)
s=s*i;
s=s*i;
28.若j为整型变量,则以下循环执行次数是【C】
for(j=0;
j==0;
)printf("
j--);
A)无限次B)0次C)1次D)2次
29.若有说明:
inta[10];
则对a数组元素的正确引用是【C】
A)a[3.5]B)a(8)C)a[6-5]D)a[10]
30.若有定义语句:
doublex[5]={1.0,2.0,3.0,4.0,5.0},*p=x;
则错误引用x数组元素的是【B】
A)*pB)x[5]C)*(p+1)D)*x
31.C中,一个char类型的数据在内存中占用的字节数是【A】
A)1B)2C)4D)8
32.设有程序段:
intk=5;
while(k<
=0)
k--;
则下列描述中正确的是【C】
A)while循环执行5次B)循环是无限循环
C)循环语句一次也不执行D)循环体语句执行一次
33.下面程序段的运行结果是【B】
charc[5]={'
'
b'
\0'
c'
};
printf(“%s”,c);
'
B)abC)AbcD)"
abc"
34.以下不正确的字符串赋值语句是【C】
A)char*s;
s="
abcde"
B)chars[]="
C)chars[10];
D)char*s="
35.设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是【B】
A)k=*p1+*p2;
B)p2=k;
C)p1=p2;
D)k=p2-p1;
36.下面程序的输出结果是【A】
{chars[]="
ABCD"
char*p;
for(p=s;
p<
s+4;
p++)
printf(“%s\n”,p);
A)ABCDB)AC)DD)ABCD
BCDBCABC
CDCBAB
DDAA
37.以下关于C函数的定义和调用描述正确的是【B】
A)函数的定义可以嵌套,但函数的调用不可嵌套
B)函数的调用可以嵌套,但函数的定义不可嵌套
C)函数的定义和调用均可以嵌套
D)函数的定义和调用均不可嵌套
38.以下关于变量的存储类型和作用域说法错误的是【C】
A)函数内定义的变量默认存储类型为auto,函数调用结束时释放其值
B)静态局部变量的生存期虽然被延长,但作用范围依然只限于所在函数内有效
C)寄存器变量主要用于使用频度较高的变量,其资源依然使用计算机内存
D)外部变量可以跨文件使用,但静态外部变量不允许跨文件使用
39.以下关于变量的作用域叙述不正确的是【D】
A)在函数内部定义的变量是局部变量
B)函数中的形式参数是局部变量
C)局部变量的作用范围仅限于其所在函数或复合语句
D)全局变量的作用范围仅限于其所在的文件
40.以下关于C函数参数说法不正确的是【B】
A)实参可以是常量、变量和表达式B)形参可以是常量、变量和表达式
C)实参和形参可以为任意数据类型D)实参与对应的形参类型一致
41.以下关于C函数返回值的叙述正确的是【D】
A)被调函数中只有使用return语句才能返回主调函数
B)使用一个return语句可以返回多个函数值
C)函数返回值类型取决于return语句中的表达式类型
D)函数返回值类型取决于定义该函数时所指定的类型
42.以下数组定义中错误的是【B】
A)intx[][3]={0};
B)intx[2][3]={{1,2},{3,4},{5,6}};
C)intx[][3]={{1,2,3},{4,5,6}};
D)intx[2][3]={1,2,3,4,5,6};
43.若有定义语句:
chars[10]="
1234567\0\0"
则strlen(s)的值是【A】
A)7B)8C)9D)10
44.给定以下程序段:
intn=10;
while(n>
6)
{n--;
printf(“%3d”,n);
以上程序段输出结果是【D】
A)1098B)987C)10987D)9876
45.若i,j已定义为int型,则以下程序段中内循环总的执行次数是【C】
for(i=5;
i>
0;
i--)
for(j=1;
j<
6;
j++)
{……}
A)30B)24C)25D)20
46.若已定义:
float*p,m=3.14159;
则使p指向m正确的赋值语句是【B】
A)p=m;
B)p=&
m;
C)*p=m;
D)*p=&
47.若已定义:
chars[10];
则下面表达式中不能作为s[1]地址的是【A】
A)s++B)s+1C)&
s[0]+1D)&
s[1]
48.已知:
inta=3,b=5,t;
要将a和b中的数值进行交换,错误的程序段是【C】
A)a=a+b;
b=a-b;
a=a-b;
B)t=a;
a=b;
b=t;
C)t=a;
b=a;
a=t;
D)t=b;
49.关于C程序中的#include<
math.h>
,错误的描述是【D】
A)它是C语言的预编译命令B)在程序中该行尾部不需要分号
C)用于将math.h包含进来D)math.h是一个函数
50.下列C程序段的输出结果是【C】
inta=0;
switch(a)
{case0:
printf(“a=0”);
case1:
printf(“a=1”);
default:
printf(“default”);
A)a=0B)a=0defaultC)a=0a=1defaultD)default
51.已知:
inta,x,y;
有语法错误的C语句是【B】
A)while(x)y++;
B)while(x+y=0)a++;
C)while(x<
D)while(y=5)++x;
52.对于do…while()语句,错误的说法是【C】
A)用条件控制循环体的重复执行B)循环体至少要执行一次
C)循环体有可能一次也不执行D)循环体中可以包含若干条语句
53.已知:
54.已知:
inta[5],*p=a;
利用p为数组元素a[4]赋值的正确C语句是【B】
A)scanf(“%d”,p+3);
B)scanf(“%d”,p+4);
C)scanf(“%d”,*(p+3));
D)scanf(“%d”,*(p+4));
55.对于C语句:
char*a[2]={“abcd”,“ABCD”};
叙述正确的是【B】
A)a是指针变量B)a是指针数组C)a是数组指针D)a是字符串
56.设有如下说明语句:
structex
{intx;
floaty;
charz;
}example;
则下面叙述中不正确的是【B】
A)struct是结构体类型的关键字B)example是结构体类型名
C)x,y,z都是结构体成员名D)structex是结构体类型名
57.有以下程序
#include<
stdio.h>
structord
{intx,y;
}dt[2]={1,2,3,4};
voidmain()
{structord*p=dt;
printf(“%d,”,++p->
printf(“%d\n”,++p->
程序的运行结果是【B】
A)1,2B)2,3C)3,4D)4,1
58.设有以下定义【D】
uniondata
{shortintd1;
chard2;
}demo;
则下面叙述中错误的是____。
A)变量demo与成员d1所占的内存字节数相同
B)变量demo中各成员的地址相同
C)变量demo和各成员的地址相同
D)若给demo.d1赋256后,demo.d2中的值是256
59.设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为【B】
A)EOFB)非0值C)0D)NULL
60.读取二进制文件的函数调用形式为:
fread(buffer,size,count,fp);
其中buffer代表的是【C】
A)一个文件指针,指向待读取的文件
B)一个整型变量,代表待读取的数据的字节数
C)一个内存块的首地址,即读入数据存放的地址
D)一个内存块的字节数
二、填空题
1.赋值表达式x*=y+5的另一种书写形式为___x=x*(y+5)_______。
2.已知a=10,b=20,c=3,则表达式!
a>
b||c的值为____1_____。
3.表达式(int)((double)(5/2)+2.5)的值是____4______。
4.若j=3,则表达式(++j)+(j++)的值为_____8_____。
5.若a的原值为4,则表达式“a*=a-=3”运算后,a的值是____1______。
6.若a=5、b=3、c=1,则表达式“a>
b>
c”的值为___0_______。
7.若有定义:
inta=7;
floatx=2.5,y=4.7;
则表达式x+a%3*(int)(x+y)%2/4的值为___2.5_______。
8.整数m既能被3整除又能被4整除的逻辑表达式为____(m%3==0)&
(m%4==0)______。
9.写出代数式0<
x<
1的C逻辑表达式为___(0<
x)&
(x<
1)_____。
10.写出判断字符变量c所存字符是否为字母的逻辑表达式为c>
=’a’&
c<
=’z’||c>
=’A’&
’Z’。
11.实现变量a和b交换的语句或语句序列是a=a+b;
。
12.若整型变量a和b中的值分别为7和9,要求按以下格式输出a和b的值:
a=7
b=9
请完成输出语句:
printf("
a=%d\nb=%d"
a,b);
13.若有定义:
doublea[10][5];
则数组a中行下标最大值为__9__,列下标最大值为__4__。
14.若有定义:
inta[]={1,4,6,5,8,9};
则*(a+5)的值为____9______。
15.设有如下定义inta[5][6],*p;
使p指向数组元素a[4][2]的语句为__p=&
a[4][2];
_______。
16.若有定义:
inta[10],*p=a;
则元素a[5]的值用p表示的形式是___*(p+5)_______。
17.若有定义:
int*p[4];
则标识符p表示_长度为4的一维指针数组_______
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计 复习资料 答案