C语言期末复习卷习题Word文件下载.docx
- 文档编号:5613004
- 上传时间:2023-05-05
- 格式:DOCX
- 页数:13
- 大小:32.04KB
C语言期末复习卷习题Word文件下载.docx
《C语言期末复习卷习题Word文件下载.docx》由会员分享,可在线阅读,更多相关《C语言期末复习卷习题Word文件下载.docx(13页珍藏版)》请在冰点文库上搜索。
3)y是奇数y%2?
!
=0
7.下面for循环语句最多可执行4次
For(x=0,y=0?
;
(y?
=99)&
(x<
4)?
x++)
8.设i,j,k均为int型变量,则执行以下for语句后,k的值是10
for(i=0,j=10?
i<
=j?
i++,j--)
k=i+j?
9.若已知x,y,z,m,n均为int型变量,则执行下面语句后,x的值为7y的值为9z的值为7
m=10;
n=5;
x=(--m==n++)--m:
++n;
y=m++;
z=n;
10.若有说明语句:
w=1,x=2,y=3,z=4;
则表达式w>
xw:
yz:
x值是4
11.若定义的函数没有返回值时,则应该在该函数定义时加上类型说明符void
12.凡在函数中未指定存储类型的变量,其隐含的存储类别为动态存储
13.在C语言中,一个函数直接或间接地调用自身,编构成函数的递归
14.如果被调用的自定义函数和调用函数不再同一个文件中,则在应以函数的文件中应将该文件的存储类型定义成型,在调用函数的文件中将该函数说明为型。
15.对于所定义的二维数组a[2][3],元素a[1][2]是数组的第6个元素。
N*j+m+1
16.若有定义:
char*str=”Iamastudent.”;
则字符串在存储单元中占16个字节。
17.在执行inta[][3]={{1,2},{3,4}};
语句后,a[1][2]的值是0。
18.调用strlen(“abc\0ef\0g”)的返回值是3。
\0为停止符
19.设有定义:
chars[12]=“string”;
则printf(“%d\n”,strlen(s));
的输出值是6
20.执行下列程序段后,*p等于3
inta[5]={1,3,5,7,9};
*p=a;
p++;
二.判断(trueorfalse)
1.调用函数时,实参的类型、个数和顺序与函数定义时形参的类型、个数和顺序完全一致。
T
2.函数可以嵌套定义F
3.函数必须有返回值,否则不能正确作用F
4.C程序中有调用关系的所有函数必须放在同一源程序文件中。
F
5.全局变量与函数体内定义的局部变量重名时,局部变量不起作用。
6.函数定义时可以不制定形参的类型,函数调用时由实参的类型决定形参的类型F
7.当函数定义放在main()函数前面时,可以缺省函数声明。
8.C语言中允许函数嵌套调用T
9.局部静态变量是在编译时赋初值的,即只赋一次初值。
10.外部变量必须定义在文件的开头部分F
11.字符’\0’是字符串的结束标记,其ASCII码为0.T
12.若有说明?
:
inta[3][4]={0};
则数组a中每个元素的初值都为0.T
13.若有说明?
inta[2][4]={0,0};
则只有a[0][0]和a[0][1]的初值为0,其余元素的初值均不为0.F
14.若有说明?
inta[3][4];
则数组a中各元素可在程序的编译阶段达到初值0.F
15.若用数组名作为函数调用时的实参,则实际上传递给形参的是数组的第一个元素值。
16.在两个字符串的比较中,字符个数多的字符串比字符少的字符串大。
17.当需要接受用户从键盘上输入的含有空格的字符串时,应使用gets()函数。
18.在C语言中,二维数组元素在内存中的存放顺序可以随意调整变化。
19.&
b指的是变量b的地址处所存放的值;
20.指针变量可用于保存同类型变量的地址值;
21.存放地址的变量同其他类型的变量一样,可以存放任何类型的数据;
22.指向同一数组的两指针p1,p2相减的结果与所指元素的下标相减的结果是相同的。
23.如果定义函数时参数是指针变量,那么,调用函数时的参数就可以是同类型的指针变量,数组名或简单变量的地址T
24.char*name[5]定义了一个一维指针数组,它有5个元素,每个元素都是指向字符数据的指针型数据。
25.语句y=*p++;
和y=(*p)++;
是等价的。
26.函数指针指向的是函数的入口地址。
27.int*p;
定义了一个指针变量,其值是整型的。
28.用指针作为函数参数时,采用的是“地址传送”方式.T
三、选择题
1.下列变量名中哪些是合法的?
?
2aa#C$t3_var?
int
2.语言中用________表示逻辑值“真”。
A)trueB)整型值0C)非零整数值D)T
3.下列合法的字符常量为________。
A)"
a"
B)'
\n'
C)'
china'
D)a
4.设有语句charc='
\72'
则变量c________。
A)包含1个字符B)包含2个字符C)包含3个字符D)不合法
5.字符串"
\t\"
Name\\Address\n"
的长度为________。
A)19B)15C)18D)不合法
6.设a,b,c为int型变量,且a=3,b=4,c=5,下面表达式值为0的是________。
A)'
a'
'
b'
B)a<
=b
C)a||b+c&
b-cD)!
((a<
b)&
c||1)
7.若有以下定义:
chara;
intb;
floatc;
doubled;
则表达式a*b+d–c的值的类型为_____________
A)floatB)intC)charD)double
8.设有语句inta=3;
执行了语句a+=a-=a*a;
后,变量a的值是________。
A)3B)0C)9D)-12
9.设有语句inta=3;
执行了语句printf("
%d"
-a++);
后,输出的结果是__C______,变量a的值是__D_____。
A)3B)4C)-3D)-2
10.将下列数学表达式表示为合法的C语言表达式。
(1)
(2)
(3)
(4)
(5)
(6)
12.下列可作为C语言赋值语句的是:
_____________。
A)x=3,y=5B)a=b=cC)i--;
D)y=int(x);
13.以下程序的输出结果为:
main()
{
inta=2,c=5;
printf("
a=%%d,b=%%d\n"
a,c);
}
A)a=%2,b=%5B)a=2,b=5C)a=%%d,b=%%dD)a=%d,b=%d
14.在下面的条件语句中,只有一个在功能上与其它三个语句不等价(其中s1和s2表示它是C语句),这个不等价的语句是:
。
A)if(a)s1;
elses2;
B)if(!
a)s2;
elses1;
C)if(a!
=0)s1;
D)if(a==0)s1;
15.设有声明语句:
inta=1,b=0;
则执行以下语句后输出为:
switch(a)
case1:
switch(b)
case0:
printf("
**0**"
);
break;
**1**"
case2:
**2**"
A)**0**B)**0****2**C)**0****1****2**D)有语法错误
16.在while(x)语句中的x与下面条件表达式等价的是:
A)x==0B)x==1C)x!
=1D)x!
17.若intx;
且有下面的程序片断,则输出结果为:
for(x=3;
6;
printf((x%2)==0"
**%d"
"
##%d\n"
x);
A)**3B)##3C)##3D)**3##4
##4**4**4##5**5
**5##5
18.以下能对外部的一维数组a(含有10个元素)进行正确初始化的语句是:
A)inta[10]=(0,0,0,0,0);
B)inta[10]={};
C)inta[]={0};
D)inta[10]={10*1};
19.以下能对外部的二维数组a进行正确初始化的语句是:
A)inta[2][]={{1,0,1},{5,2,3}};
B)inta[][3]={{1,2,1},{5,2,3}};
C)2inta[2][4]={{1,2,1},{5,2},{6}};
D)inta[][3]={{1,0,2},{},{2,3}};
20.若二维数组a有m列,则在a[i][j]之前的元素个数为:
A)j*m+iB)i*m+jC)i*m+j-1D)i*m+j+1
21.已知:
staticinta[3][4];
则数组a中各元素。
A)可在程序运行阶段得到初值0B)可在程序编译阶段得到初值0
C)不能得到确定的初值D)可在程序的编译或运行阶段得到初值0
22.判断字符串s1是否大于字符串s2,应当使用:
A)if(s1>
s2)B)if(strcmp(s1,s2))
C)if(strcmp(s2,s1)>
0)D)if(strcmp(s1,s2)>
0)
23..若用数组名作为函数调用时的实参,则实际上传递给形参的是:
A)数组的首地址;
B)数组的第一个元素值;
C)数组中全部元素的值;
D)数组元素的个数。
24.在函数调用时,以下说法中正确的是:
A)在C语言中,实参与其对应的形参各占独立的存储单元;
B)在C语言中,实参与其对应的形参共占同一个存储单元;
C)在C语言中,只有当实参与其对应的形参同名时,才共占同一个存储单元;
D)在C语言中,形参是虚拟的,不占存储单元。
25.C语言中形参的缺省存储类别是:
A)自动(auto)B)静态(static)C)寄存器(register)D)外部(extern)
26.C语言规定:
简单变量做实参时,它和对应形参之间数据的传递方式为:
A)地址传递;
B)单向值传递;
C)由实参传给形参,再由形参传回给实参;
D)由用户指定传递方式。
27.
(1)阅读程序,选择程序的运行结果。
#include<
stdio.h>
intTry(intn)
if(n>
return(n*Try(n-2));
else
return1;
intx;
x=Try(5);
%d\n"
A.15B.120C.1D.前面三个答案都是错的
(2)下面的函数f两次进行调用,请选择程序的运行结果。
intFun(intm)
staticintn=0;
m/=2;
m=m*2;
if(m)
{
n*=m;
return(Fun(m-2));
}
returnn;
inta,i,j;
for(i=0;
2;
i++)
a=Fun(4+i);
printf("
a);
①第一次输出的结果A.8B.0C.64D.4
②第一次输出的结果A.8B.0C.64D.4
28.设有语句:
inta[10],*p=a?
则在下面语句中,不正确的是
A)P=P+1B)P[0]=*P+1C)a[0]=a[0]+1D)a=a+1
29.指向变量的指针,其含义是指该变量的
A)值B)地址C)名D)一个标志
30.若int(*p)[5]?
则其中p的含义是
A)5个指向整形变量的指针;
B)指向5个整形变量的函数指针;
C)一个指向具有5个整形元素的一维数组的指针;
D)具有5个指针元素的一维数组指针,每个元素都只能指向整型量;
31.设有定义:
inta=3,b,*p=&
a;
则下列语句中使b不为3的语句是
A)b=*&
B)b=*P;
C)b=a;
D)b=*a;
32.设char**s;
则以下表达式中,正确的是
A)s=”computer”;
B)*s=”computer”;
C)**s=”computer”;
D)*s=’s’
33.设chars[10],*p=s;
以下表达式中不正确的是
A)p=s+5;
B)s=s+p;
C)s[2]=p[4];
D)*p=s[0];
34.执行下列程序段后,*p等于
inta[5]={1,3,5,7,9},*p=a;
p++
A)1;
B)3;
C)5;
D)7;
程序设计题
1.编程计算1*2*3+3*4*5+99*100*101的值。
intmain()
inti,j,k,sum=0;
for(i=1,j=2,k=3;
100,j<
101,k<
102;
i+=2,j+=2,k+=2)
sum=sum+i*j*k;
sum);
2.编程计算a+aa+aaa+….+aa..a(n个a)的值,n和a的值由键盘输入。
stdlib.h>
Voidmain()
intn,a,i;
intsum,na;
Pleaseinputnanda:
scanf("
%d%d"
&
n,&
a);
sum=0;
na=a;
for(i=1;
=n;
sum+=na;
na=na*10+a;
sum=%d\n"
3.利用
前100项之积计算π。
floata=2,b=1;
doublenum=1;
inti;
=100;
num*=a/b;
if(i%2==0)a+=2;
elseb+=2;
num*=2;
π=%.16lf\n"
num);
4.按如下格式打印100以内整数的平方根表。
5.编程计算
的值。
(m,k从键盘上输入,m>
k)
6.用整数1-12依次表示1-12月,由键盘输入一个月份数,输出对应的季节英文名称(12-2月为冬季,3-5月为春季,6-8月为夏季,9-11月为秋季),要求输入输出表达的意义清楚明白。
7.编程打印以下图形
1
121
12321
1234321
…
8.用递归的方法求n的阶乘
9.编写求两个整数的最大公约数和最小公倍数的函数
10.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 期末 复习 习题