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

C语言程序设计期末复习
2011年C语言程序设计期末复习
一、选择题(每题3分)
1.以下说法正确的是(C)。
A)C语言程序总是从第一个定义的函数开始的。
B)在C语言程序中,要调用的函数必须在main()函数中定义。
C)C语言程序总是从main()开始执行的。
D)C语言程序中的main()函数必须放在程序的开始处。
2.在C语言中,合法的字符常量是(B)。
A)’\084’B)‘\x43’C)‘ab’D)“\0”
3.设有如下定义:
intx=10,y=3,z;
则语句:
printf(“%d\n”,z=(x%y,x/y));
的输出结果是(D)。
A)1B)0C)4D)3
4.选出合法的C语言赋值语句(B)。
A)a=b=58B)i++;C)a=58,b=58D)k=int(a+b)
5.在下列选项中,不正确的赋值语句是(D)。
A)++t;B)n1=(n2=(n3=0));C)k=j==j;D)a=b+c=1;
6.设a=5,b=6,c=7,d=8,m=2,n=2,执行“(m=a>b)&&(n=c>d)”后n的值(B)。
A)1B)2C)3D)4
7.阅读程序:
main()
{
intx=1,y=0,a=0,b=0;
switch(x)
{
case1:
switch(y)
{
case0:
a++;break;
case1:
b++;break;
}
case2;a++;b++;break;
}
printf(“a=%d,b=%d\n”,a,b);
}
上面程序的输出结果是(A)。
A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2
8.当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为(B)。
if(a>b)x=1;
elseif(c>d)x=2;
elsex=3;
A)1B)2C)3D)6
9.设有语句“intx=1,y=1;”,则表达式(!
x||y++)的值是(B)。
A)0B)1C)2D)–1
10.下面程序段运行后的输出结果是(B)。
chars[18]=”abook!
”;
printf(“%.4s”,s);
A)abook!
B)aboC)ook!
D)格式描述不正确,没有确定输出
11.下面程序运行后的输出结果是(A)。
main()
{
intn[2],i,j,k;
for(i=0;i<2;i++)
k=2;
for(i=0;ifor(j=0;jn[j]=n[i]+1;
printf(“%d\n”,n[k]);
}
A)不确定的值B)3C)2D)1
12.C语言规定,程序中各函数之间(A)。
A)既允许直接调递归用,也允许间接递归调用B)既不允许直接调递归用,也不允许间接递归调用C)允许直接调递归用,不允许间接递归调用D)不允许直接调递归用,允许间接递归调用
13.下面程序运行后的输出结果是(C)。
intabc(intu,intv)
main()
{
inta=24,b=16,c;
c=abc(a,b);
printf(“%d\n”,c);
}
intabc(intu,intv)
{
intw;
while(v)
{
w=u%v;u=v;v=w;
}
returnu;
}
A)6B)7C)8D)9
14.定义如下变量:
intn=10;
则下列循环的结果是(B)。
while(n>7)
{
n--;
printf(“%d\n”,n);
}
A)10B)9C)10D)9
9898
8787
76
15.C语言规定,在一个源程序中,main()的位置(C)。
A)必须在开始。
B)必须在系统调用的库函数的后面。
C)可以任意。
D)必须在最后。
16.下面程序段的输出结果是(B)。
inti=010,j=10;
Printf(“%d,%d\n”,++i,j--);
A)11,10B)9,10C)010,9D)11,9
17.合法的语言字符常量是(A)。
A)‘\t’B)“A”C)65D)A
18.阅读程序:
main()
{
inta;floatbc;
scanf(“%2d%d3f%4f”,&a,&b,&c);
printf(“\na=%d,b=%f,c=%f“,a,b,c);
}
若运行时,从键盘输入(回车),则程序的输出的结果是(B)。
A)a=98,b=765,c=4321B)a=98,b=765.,c=4321.
C)a=98,b=765.0,c=4321.0D)a=98.0,b=765.0,c=4321.0
19.若有以下语句:
charc1=’b’,c2=’e’;
printf(“%d,%c\n“,c2-c1,c2-‘a’+’A’);
则输出结果是(B)。
A)2,MB)3,EC)2,ED)输出结果不确定
20.若k是int型变量,且有下面程序段,其输出结果是(A)。
K=-3;
if(k<=0)printf(“####”);
Elseprintf(“&&&&“);
A)####B)&&&&C)####&&&&D)有语法错误,无法输出。
21.下面程序的输出结果(C)。
main()
{
inta=-1,b=4,k;
k=(a++<=0)&&(!
(b--<=0));
printf(“%d%d%d\n”,k,a,b);
}
A)003B)012C)103D)112
22.当c的值不为0时,在下列选项中,能正确将c的值赋给变量a、b的是(C)。
A)c=b=a;B)(a=c)||(b=c);C)(a=c)&&(b=c);D)a=c=b;
23.设a、b、c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是(D)。
A)‘a’&&’b’B)a<=bC)a||b+c&&b-cD)!
((a
c||1)
24.下面程序段运行后的输出结果是(D)。
chars[12]=”abook”;
printf(“%d”,strlen(s));
1.12B)8C)7D)6
25.定义如下变量和数组:
inti,x[3][3]={1,2,3,4,5,6,7,8,9};
则下列语句的输出结果是(C)。
for(i=0;i<3i++)printf(“%d”,x[i][2-i]);
A)159B)147C)357D)369
26.下面程序运行后的输出结果是(B)。
f(intb[],intn)
{
inti,r;
r=1;
for(i=0;i<=n;i++)
r=r*b[i];
returnr;
}
main()
{
intx,a[]={2,3,4,5,6,7,8,9};
x=f(a,3);
printf(“%d”,x);
}
A)720B)120C)24D)6
27.在一个C源程序文件中,如果定义一个只允许本源程序文件中所有函数使用的全局变量,则该变量要使用的存储类型为(D)。
A)externB)registerC)autoD)static
28.设j为int型变量,则下面for循环语句的执行结果是(B)。
for(j=10;j>3;j--)
{
if(j%3)j--;
--j;--j;
printf(“%d‘,j);
}
A)63B)74C)62D)73
29.下面程序运行后的输出结果是(A)。
chars[]=”ABCD”;
main()
{
char*p;
for(p=s;p
printf(“%s\n”,p);
}
A)ABCDB)AC)DD)ABCD
BCDBCABC
CDCBAB
DDAA
30.选出可用于C语言用户标示符的以组一组标示符(B)。
1.voidDefineWord
2.a3_b3_123iF
3.For-abcCase
4.2aDosizeof
31.已知在ASCii代码中,字母A的序号是65,以下程序输出结果是(D)。
main()
{
charc1=’A’,c2=’Y’;
printf(“%d,%d\n”,c1,c2);
}
A)输出格式非法,输出错误信息B)65,90C)A,YD)65,89
32.若已定义x和y为double类型,则表达式“x=1,y=x+3/2”的值是(C)。
A)1B)2C)2.0D)2.5
33.已知字母A的ASCII码为十进制的65,下面程序的输出结果是(A)。
main()
{
charch1,ch2;
ch1=’A’+’5’-‘3’;
ch2=’A’+’6’-‘3’;
printf(“%d.%dc\n”,ch1,ch2);
}
A)67,DB)B,CC)C,DD)不确定的值
34.下列可作为C语言赋值语句的是(C)。
A)x=3,y=5B)a=b=6C)i--;D)y=int(x);
35.设A、B和C都是int型变量,且A=3,B=4,C=5,则下面表达式中值为0的表达式是(D)。
A)‘A’&&’B’B)A<=BC)A||B+C&&BD)!
((A
C||1)
36.为表示关系x≥y≥z,应使用C语言表达式(A)。
A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)
37.设有语句“intx=1,y=1;”,则表达式(!
x||y--)的值是(B)。
A)0B)1C)2D)–1
38.C语言中,运算对象必须是整型的运算符是(C)。
A)&&B)/C)%D)*
39.下面程序段运行后的输出结果是(C)。
chars[12]=”ab\n\\012\\\””;
printf(“%d”,strlen(s));
A)14B)7C)9D)10
40.若有下列说明:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=’a’,d,g;
则数值为4的表达式是(D)。
A)a[g-c]B)a[4]C)a[‘d’-‘c’]D)a[‘d’-c]
41.下面程序运行后的输出结果是(D)。
f(inta)
{
intb=0;staticintc=3;
a=c++;b++;
return(a);
}
main()
{
inta=2,i,k;
for(i=0;i<2;i++)
k=f(a++);
printf(“%d\n”,k);
}
A)3B)0C)5D)4
42.执行下面程序段的结果是(B)。
intx=23;
do
{
printf(“%2d”,x--);
}while(!
x);
A)打印出321B)打印出23C)不打印任何内容D)陷入死循环
43.执行下面语句后,变量i的值是(C)。
for(i=1;i++<4;);
A)3B)4C)5D)不定
44.下面程序运行后的输出结果是(C)。
#include
main()
{
char*p1=”abc”,*p2=”ABC”,str[50]=”xyz”;
strcpy(str+2,strcat(p1,p2));
printf(“%s\n”,str);
}
A)xyzabcABCB)zabcABCC)xyabcABCD)yzabcABC
45.C语言中,最简单的数据类型包括(B)。
A)整型、实型、逻辑型
B)整型、实型、字符型
C)整型、字符型、逻辑型
D)整型、实型、逻辑型、字符型
46.若x和y都是int型变量,x=100,y=200,且有以下程序段:
printf(“%d”.(x,y));
则,输出结果是(A)。
A)200B)100C)100,200D)输出格式不够,输出不确定的值
47.3.若t为double类型,表达式“t=1,t+5,t++”的值是(D)。
A)1B)6.0C)2.0D)1.0
48.设有如下定义:
intx=10,y=3,z;
则语句:
printf(“%d\n”,x/y);
的输出结果是(D)。
A)1B)0C)4D)3
49.执行下面程序后,b的值为(B)。
intx=25,b;
charz=’A’;
b=((x&&15)&&(z<’a’));
A)0B)1C)2D)3
50.阅读程序:
main()
{
floatx,y;
scanf(“%f”,&x);
if(x<0.0)y=0.0;
elseif((x<5.0)&&(x!
=2.0))
y=1.0/(x+2.0);
elseif(x>10.0)y=1.0/x;
elsey=10.0;
printf(“%f\n”,y);
}
若运行时从键盘上输入2.0(回车),则上面程序的输出结果是(D)。
A)0.B)0.C)0.D)10.
51.在下面的运算符中,优先级最高的运算符是(C)。
A)<=B)=C)%D)&&
52.设a=1,b=2,c=3,d=4,则表达式“a
a:
ca:
d”的结果为(D)。
A)4B)3C)2D)1
53.下面程序的运行结果是(D)。
main()
{
inta[8]={0},i,j,k=8;
for(i=0;ifor(j=0;ja[j]=a[i]+1;
printf(“%d\n”,a[k]);
}
A)6B)7C)8D)不确定的值
54.下面程序运行后的输出结果是(D)。
main()
{
chara[7]=”abcdef”;
charb[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
}
A)空格B)\0C)eD)f
55.C语言中,形参的缺省存储类型是(A)。
A)自动(auto)B)静态(static)C)寄存器(register)D)外部(extern)
56.下面程序运行后的输出结果是(B)。
Voidfun(inta,intb,intc)
{
a=456;b=567;c=678;
}
main()
{
intx=10,y=20,z=30;
fun(x,y,z);
printf(“%d,%d,%d\n”,x,y,z);
}
A)30,20,10B)10,20,30C)456,567,678D)678,567,456
57.阅读下面程序:
#include
main()
{
floatx,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while
(1)
{
if(fabs(z)>1.0)
{
x=y;y=z;z=x/y;
}
elsebreak;
}
printf(“%f\n”,y);
}
若从键盘输入3.6和2.4并回车,则输出结果是(B)。
A)1.B)1.C)2.D)2.
58.下面程序的输出结果是(D)。
main()
{
intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf(“%d“,x--,y);
}
A)10192B)9876C)10990D)101091
59.下面程序运行后的输出结果是(B)。
main()
{
char*alpha[6]={“ABCD”,“EFGH”,“IJKL”,“MNOP”,“QRST”,“UVWX”};
char**p;
inti;
p=alpha;
for(i=0;i<4;i++)
printf(“%s”,p[i]);
printf(“\n”);
}
A)ABCDEFGHIJKLB)ABCDEFGHIJKLMNOPC)ABCDD)AEIM
60.合法的C语言字符常量是(A)。
A)'\t'B)"A"
C)65D)A
1.
61.若有以下说明语句
inta=5;a++;
a++的值是(C)。
A)7B)6
C)5D)4
62.若t为double类型,表达式“t=1,t+5,t++”的值是(D)。
A)1B)6.0C)2.0D)1.0
63.设a为整型变量,不能正确表达数学关系10A)10C)a>10&&a<15D)!
(a<=10)&&!
(a>=15)
64.已知字母A的ASCii码为十进制的65,下面程序的输出结果是(A)。
#include"stdio.h"
main()
{charch1,ch2;
ch1='A'+'5'-'3';
ch2='A'+'6'-'3';
printf("%d,%c\n",ch1,ch2);}
A)67,DB)B,CC)C,DD)不确定的值
65.阅读程序:
main()
{
floatx,y;
scanf(“%f”,&x);
if(x<0.0)y=0.0;
elseif((x<5.0)&&(x!
=2.0))
y=1.0/(x+2.0);
elseif(x>10.0)y=1.0/x;
elsey=10.0;
printf(“%f\n”,y);
}
若运行时从键盘上输入2.0(回车),则上面程序的输出结果是(D)。
A)0.B)0.C)0.D)10.
66.在下面的运算符中,优先级最高的运算符是(C)。
A)<=B)=C)%D)&&
67.设a=1,b=2,c=3,d=4,则表达式“a
a:
ca:
d”的结果为(D)。
A)4B)3C)2D)1
68.下面程序的运行结果是(D)。
main()
{
inta[8]={0},i,j,k=8;
for(i=0;ifor(j=0;ja[j]=a[i]+1;
printf(“%d\n”,a[k]);
}
A)6B)7C)8D)不确定的值
69.下面程序运行后的输出结果是(D)。
main()
{
chara[7]=”abcdef”;
charb[4]=”ABC”;
strcpy(a,b);
printf(“%c”,a[5]);
}
A)空格B)\0C)eD)f
70.C语言中,形参的缺省存储类型是(A)。
A)自动(auto)B)静态(static)C)寄存器(register)D)外部(extern)
71.下面程序运行后的输出结果是(B)。
Voidfun(inta,intb,intc)
{
a=456;b=567;c=678;
}
main()
{
intx=10,y=20,z=30;
fun(x,y,z);
printf(“%d,%d,%d\n”,x,y,z);
}
A)30,20,10B)10,20,30C)456,567,678D)678,567,456
72.阅读下面程序:
#include
main()
{
floatx,y,z;
scanf(“%f%f”,&x,&y);
z=x/y;
while
(1)
{
if(fabs(z)>1.0)
{
x=y;y=z;z=x/y;
}
elsebreak;
}
printf(“%f\n”,y);
}
若从键盘输入3.6和2.4并回车,则输出结果是(B)。
A)1.B)1.C)2.D)2.
73.下面程序的输出结果是(D)。
main()
{
intx=10,y=10,i;
for(i=0;x>8;y=++i)
printf(“%d“,x--,y);
}
A)10192B)9876C)10990D)101091
74.下面程序运行后的输出结果是(B)。
main()
{
char*alpha[6]={“ABCD”,“EFGH”,“IJKL”,“MNOP”,“QRST”,“UVWX”};
char**p;
inti;
p=alpha;
for(i=0;i<4;i++)
printf(“%s”,p[i]);
printf(“\n”);
}
A)ABCDEFGHIJKLB)ABCDEFGHIJKLMNOPC)ABCDD)AEIM
75.当a=1,b=3,c=5,d