C语言程序设计期末复习题学生用2文档格式.docx
《C语言程序设计期末复习题学生用2文档格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计期末复习题学生用2文档格式.docx(38页珍藏版)》请在冰豆网上搜索。
14.定义fp为文件型指针变量的定义方法为_______FILE*fp
______。
15.数组int
a[3][4];
共定义了___12____个数组元素。
16、C源程序是由_函数__构成的。
一个C程序一般由若干个函数构成,其中至少应包含主函数(mian()函数)。
因此,函数C程序的基本单位。
17、三种基本程序结构是顺序结构__、_选择结构__、循环结构__。
18、C语言的三个循环语句分别是while__、_do-while__、_for__。
19.表示“x≥y≥z”的C表达式是_x>
=y&
y>
=z。
20.表达式!
!
5的值是1__。
21、在C程序中,指针变量能够赋地址_值或者空(0或NULL)__值。
22.下列程序段的输出是_5__。
int*p,*q,k=5,j=6;
q=&
k;
p=q;
j;
printf("
%d"
*p);
23.下列程序段的输出是_58__。
intf(intx)
{staticy=1;
y++;
x+=y;
returnx;
voidmain()
{intk;
k=f(3);
printf("
%d%dn"
k,f(k));
24、一个C程序总是从main()或主函数开始运行的。
25、三种基本程序结构是顺序结构__、_选择结构__、循环结构__。
26、一个char数据在内存中所占字节数为1,一个int数据在内存中所占字节数为2,一个long数据在内存中所占字节数为4,一个float数据在内存中所占字节数为4。
27、若有定义:
inta[]3[4]={{1,2}{0}{4,6,8,10}};
则初始化后a[1][2]的值为
0,a[2][1]得到的值为6
28.在C语言中,函数分为3种类型,分别是主函数、库函数和自定义函数。
29.下列程序段的输出是_*#*#____。
main()
for(k=1;
k<
5;
k++)
{if(k%2)printf("
*"
);
elsecontinue;
#"
}
30、下列程序的输出结果是:
Afterswap5,3。
swap(int*p,int*q)
{intt;
t=*p;
*p=*q;
*q=t;
}
voidmain()
{inta=3,b=5;
swap(&
a,&
b);
Afterswap%d,%d"
a,b);
二、选择题
1.执行intx=2,y=3;
后表达式x=(y==3)的值是(B)
A)0B)1
C)2D)3
2.在循环结构的循环体中执行break语句,其作用是(C)
A)结束本次循环,进行下次循环
B)继续执行break语句之后的循环体中各语句
C)跳出该循环体,提前结束循环
D)终止程序运行
3.以下程序运行结果是(A)
{chars[]=”\’Address\’”;
printf(%d\n”,strlen(s));
A)9B)10
C)11D)12
4.以下程序运行结果是(C)
{inta[]={2,4,6,8,10},y=1,x;
for(x=0;
x<
3;
x++)y=y+a[x+1];
printf(“%d\n”,y);
A)17B)18
C)19D)20
5.设inta[][4]={0,0};
则以下错误的描述是(D)
A)数组a的每个元素都可得到初值0
B)二维数组a的第一维大小为1
C)数组a的行数为1
D)只有元素a[0][0]和a[0][1]可得到初值0,其余元素得不到初值0
6.以下程序运行结果是(C)
fun3(intx)
{staticinta=3;
a=a+x;
returna;
{intk=2,m=1,n;
n=fun3(k);
n=fun3(m);
printf(“%d\n”,n);
A)3B)4
C)6D)9
7.以下不正确的描述是(D)
A)在函数外部定义的变量是全局变量
B)在函数内部定义的变量是局部变量
C)函数的形参是局部变量
D)局部变量不能与全局变量同名
8.C语言的简单数据类型包括(D)
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型D)整型、实型、字符型
9.数学关系式x≤y≤z可用C语言的表达式表示为(A)
A)(x<
=y)&
(y<
=z)B)(x<
=y)and(y<
=z)
C)(x<
=y<
=z)D)(x<
z)
10.要使以下程序的输出结果为4,则a和b应满足的条件是(A)
main()
{ints,t,a,b;
scanf(“%d%d”,&
b);
s=t=1;
if(a>
0)s=s+1;
b)t=s+t;
else
if(a==b)t=5;
elset=2*s;
printf(“%d\n”,t);
A)a>
0并且a<
bB)a<
b
C)a>
0并且a>
bD)a<
b
11.下面程序的输出结果为(B)
{inti;
for(i=100;
i<
200;
i++)
{
if(i%5==0)continue;
printf(“%d\n”,i);
break;
A)100B)101
C)无限循环D)无输出结果
12.下列程序段的运行结果是(B)
inti=1,a[]={1,5,10,9,13,7};
while(a[i]<
=10){a[i]=a[i]+2;
i++;
for(i=0;
6;
i++)printf(“%d”,a[i]);
A)271211139B)171211137
C)171211139D)17129137
13.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是(D)
A)chars[]=“abcde”;
B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’};
C)chars[]={“abcde”};
D)chars[5]=“abcde”;
14.下面程序段的运行结果是(A)
inta[2][3]={1,2,3},i,j;
for(i=0;
2;
for(j=0;
j<
j++)
{a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];
printf(“%d,”,a[i][j]);
A)2,4,6,2,0,8,B)1,2,3,0,0,0,
C)1,2,3,2,0,6,D)2,4,6,2,0,6,
15、执行下面语句后,变量I的值是(C)。
for(I=1;
I++<
4;
);
A)3B)4C)5D)不定
16、putchar函数可以向终端输出一个(D)。
A)整型变量表达式值B)实型变量值
C)字符串D)字符或字符型变量值
17、有一函数关系见下表:
x
y=
x<
x-1
x=0
x>
x+1
下面程序段中能正确表示上面关系的是(C)。
A)y=x+1;
B)y=x–1;
C)if(x<
=0)D)y=x;
if(x>
=0)if(x!
=0)if(x<
0)if(x<
=0)
if(x==0)if(x>
0)y=x-1;
if(x<
0)
y=x;
y=x+1;
elsey=x;
y=x–1;
elsey=x–1;
elsey=x+1;
elsey=x+1;
18、对for(表达式1;
;
表达式3)可理解为(B)
A)for(表达式1;
0;
表达式3)B)for(表达式1;
1;
表达式3)
C)for(表达式1;
表达式1;
表达式3)D)for(表达式1;
表达式3;
表达式3)
19、若i、j均为整型变量,则以下循环(D)
for(i=0,j=-1;
j=1;
i++,j++)
printf(“%d,%d\n“,i,j);
A)循环体只执行一次B)循环体一次也不执行
C)判断循环结束的条件不合法D)是无限循环
20、设j为int型变量,则下面for循环语句的执行结果是(B)
for(j=10;
j>
3;
j--)
{if(j%3)j--;
--j;
--j;
printf(“%d“,j);
A)63B)74C)62D)73
21、一个C程序的执行是从(A)。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
22、下面四个选项中,合法的用户标识符是(D)
A)P_#$B)2haC)gotoD)_ab
23、要把整数67523赋与整型变量I,则应说明I的类型是(B)
A)intB)longC)shortD)unsigned
24、已知intI;
floatf;
正确的表达式是(D)
A)(intf)%IB)int(f)%IC)int(f%I)D)(int)f%I
25、判断char型变量c1是否为小写字母的正确表达式是(D)
A)’a’<
=c1<
=’z’B)(c1>
=a)&
(c1<
C)98<
=c1&
123>
=c1D)c1>
=’a’&
c1<
=’z’
26、执行以下语句后b的值为(B)。
inta=5,b=6,w=1,x=2,y=3,z=4;
b=(a=w>
x)&
(b=y>
z);
A)6B)0C)1D)4
27、以下能正确地定义整型变量a,b和c并为其赋初值5的语句是(C)。
A)inta=b=c=5;
B)inta,b,c=5;
C)inta=5,b=5,c=5;
D)a=b=c=5;
28、已知:
chara;
intb;
floatc;
doubled;
执行语句c=a+b+c+d;
后,变量c的数据类型是(D)
A)int
B)charC)floatD)double
29、已知字母A的ASCII码为65,以下程序段的输出结果是(C)
charc1=’A’,c2=’Y’;
printf(″%d,%d″,c1,c2);
A)65,90B)A,YC)65,89D)输出格式不合法
30、阅读以下程序,当输入数据的形式为:
25,13,10<
CR>
正确的输出结果为(D)。
(“CR”表示回车)
main()
{intx,y,z;
scanf(“%d%d%d”,&
x,&
y,&
z);
printf(“x+y+z=%d\n”,x+y+z);
A、x+y+z=48B、x+y+z=35C、x+z=35D、不确定值
31、以下错误的if语句是(C)
A)if(x>
y);
B)if(x==y)x+=y;
C)if(x!
=y)scanf(“%d”,&
x)elsescanf(“%d”,&
y)
D)if(x<
y){x++;
y++;
}
32、阅读以下程序:
{intx;
scanf(“%d”,&
x);
if(x--<
5)printf(“%d\n”,x);
elseprintf(“%d\n”,x++);
程序运行后,如果从键盘上输入5,则输出结果是(B)
A、3B、4C、5D、6
33、若intI=10;
执行下列程序后,变量I的正确结果是(D)
switch(I){case9:
I+=1;
case10:
case11:
default:
}
A)10B)11C)12D)13
34、C语言中while与do---while语句的主要区别是(A)
A)do---while的循环体至少无条件执行一次
B)do---while允许从外部转到循环体内
C)do---while的循环体不能是复合语句
35、以下的for循环(B)
for(x=0,y=100;
(y!
=123)&
(x<
=3);
x++);
A)执行3次B)执行4次C)循环次数不定D)是无限循环
36、执行”for(I=1;
);
”后,变量I的值为(C)
A)3B)4C)5D)不定
37、以下程序段(C)
x=-2;
do
{x=x*x;
while(!
x);
A是死循环B循环执行两次C循环执行一次D有语法错误
38、设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
39、以下程序的输出结果是(C)
main()
{intI,j,x=0;
for(I=0;
I<
I++)
{x++;
j++)
{if(j%3)continue;
x++;
printf(“x=%d\n”,x);
x=4B)x=8C)x=6D)x=12
40、以下程序的输出结果(D)
{intx=10,y=10,I;
for(I=0;
8;
y=++I)
printf(“%d,%d”,x--,y);
A)10,19,2B)9,87,6C)10,99,0D)10,109,1
41、以下正确的描述是(B)。
在C语言程序中:
A)函数的定义可以嵌套,但函数的调用不可以嵌套
B)函数的定义不可以嵌套,但函数的调用可以嵌套
C)函数的定义和函数的调用均不可以嵌套
D)函数的定义和函数的调用均可以嵌套
42、以下正确的说法是(B)。
建立函数的目的之一是:
A)提高程序的执行效率B)提高程序的可读性C)减少程序的篇幅D)减少程序文件所占内存
43、以下正确的说法是(B)。
A)用户若需调用标准库函数,调用前必须重新定义
B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义
C)系统根本不允许用户重新定义标准库函数
D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统自动去调
44、下列定义不正确的是(C)
A)#definePI3.141592B)#defineS354
C)intmax(intx,inty);
D)staticcharc;
45、下列程序运行结果是(A)
#defineP3
#defineS(a)P*a*a
{intar;
ar=S(3+5);
printf(“%d”,ar);
A)192B)29C)27D)25
46、以下能对二维数组a进行正确初始化的语句是(B)。
A)inta[2][]={{1,0,1},{5,2,3}}B)inta[][3]={{1,2,3},{4,5,6}}
C)inta[2][4]={{1,2,3},{4,5},{6}}D)inta[][3]={{1,0,1}{},{1,1}}
47、下列描述中不正确的是(C)
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
48、设有定义”inta=3,b,*p=&
a;
”,则下列语句中使b不为3的语句是(B)
A)b=*&
B)b=*a;
C)b=a;
D)b=*p;
49、若有说明:
inti,j=2,*p=&
i;
则能完成i=j赋值功能的语句是(B)
A、i=*p;
B、*p=*&
j;
C、i=&
D、i=**p;
50、C语言程序中每个语句和数据定义的最后必须有一个(A)
A分号B逗号C空格D冒号
51.设intx=1,y=1;
表达式(!
x++||y——)的值是(B)
A.0
B.1
C.2
D.-1
52.main()
{
intn;
(n=6*4,n+6),n*2;
printf(“n=%d\n”,n);
}
此程序的输出结果是(B)
A.30
B.
24
C.
60
D.
48
53.若有如下定义,则(D)是对数组元素的正确的引用。
int
a[10],*p;
p=a;
p=a;
A.
*&
a[10]
a[11]
*(p+10)
D.*p
54.设整型变量n的值为2,执行语句“n+=n-=n*n;
”后,n的值是(C)
0
4
-4
2
55.以下不能正确定义二维数组的语句是(D)
A.inta[2][2]={{1},{2}};
B.inta[][2]={1,2,3,4};
C.inta[2][2]={{1},2,3};
D.inta[2][]={{1,2},{3,4}};
56.(C)程序段的功能是将变量u、s中的最大值赋给变量t.
if(u>
s)t=u;
t=s;
t=u;
if(t)
t=s;
C.
s)t=s;
elset=u;
D.
if(u)
57.下列程序段的输出结果是(A)
.
voidmain()
intk;
for(k=1;
k<
5;
k++〉
{
if(k%2!
=0)printf(“#”);
else printf(“*”);
}
A.#*#*
B.*#*#
##
D.以上都不对
58.设变量定义为inta[3]={1,4,7},*p=&
a[2],则*p的值是(C)
A.&
a[2]
B.4
C.7
D.1
59.能正确表示a和b同时为正或同时为负的逻辑表达式是(D).
A.(a>
=0||b>
=0)&
(a<
0||b<
0)
B.(a>
=0&
b>
0&
b<
0)
C.(a+b>
0)&
(a+b<
=0)
D.a*b>
60.C语言中,合法的字符型常数是(A).
A.‘A’
B.“A”
C.65
D.A
61.设有数组定义:
chararray[]=“China”;
则数组所占的空间是(C).
A.4个字节
B.5个字节
C.6个字节
D.7个字节
62.若变量c为c