C语言题目Word格式文档下载.docx
《C语言题目Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C语言题目Word格式文档下载.docx(51页珍藏版)》请在冰点文库上搜索。
18.已知s是字符型变量,下面不正确的赋值语句是(B)。
A.s=’\012’;
B.s=’u+v’;
C.s=’1’+’2’;
D.s=1+2;
19.已知s是字符型变量,下面正确的赋值语句是(C)。
A.s=’abc’;
B.s=’\08’;
C.s=’\xde’;
D.s=”\”;
20.若有以下定义,则正确的赋值语句是(C)。
intx,y;
floatz;
A.x=1,y=2,B.x=y=100C.x++;
D.x=int(z);
21.下列语句中符合C语言的赋值语句是(D)。
A.a=7+b+c=a+7;
B.a=7+b++=a+7;
C.a=7+b,b++,a+7D.a=7+b,c=a+7;
22.putchar函数可以向终端输出一个(D)。
A.整型变量表达式值。
B.字符串
C.实型变量值。
D.字符或字符型变量值。
23.以下程序段的输出结果是(C)。
inta=12345;
printf(”%2d\n”,a);
A.12B.34C.12345D.提示出错、无结果
1.2填空题
1.C语言的符号集包括__英文字母______、__数字______、____一些有特定含义的标点符号____。
2.结构化设计中的三种基本结构是顺序结构、选择结构、循环结构
3.C语言源程序文件的后缀是C,经过编译后生成文件的后缀是___OBJ_____,经过链接后生成文件的后缀是__EXE______。
4.C语言的关键字都用___小写_____{大写或小写}。
5.一个函数由两部分组成,它们是__函数说明部分和函数体_____。
6.函数体一般包括__变量定义部分和执行部分__。
7.C语言是通过___输入和输出函数____来进行输入和输出的。
8.若x和y均为int型变量,则以下语句的功能是____交换x和y的值。
x+=y;
y=x-y;
x-=y;
9.有一输入函数scanf(”%d”,k);
则不能使float类型变量k得到正确数值的原因是:
__
(1)格式符应为:
%f;
(2)变量前边未加取地址符&
即应为scanf(”%f”,&
k);
。
1.3答案及部分解析
一.选择题答案
1.B2.B3.D4.B5.B6.C7.A8.C9.C10.B11.A12.B13.A14.D15.A16.C17.B18.B19.C20.C21.D22.D23.C
二.填空题答案
1.答案:
英文字母、数字、一些有特定含义的标点符号
2.答案:
顺序结构、选择结构、循环结构
3.答案:
C,OBJ,EXE
4.答案:
小写
5.答案:
函数说明部分和函数体
6.答案:
变量定义部分和执行部分
7.答案:
输入和输出函数
8.答案:
交换x和y的值
9.答案:
(1)格式符应为:
第二章选择结构
2.1选择题
1.已有定义:
intx=3,y=4,z=5;
则表达式!
(x+y)+z-1&
&
y+z/2的值是(D)。
A.6B.0C.2D.1
2.设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
3.设x、y和z都是int类型变量,且x=3,y=4,z=5,则下面的表达式中,值为0的表达式为(D)。
A.’x’&
’y’B.x<
=y
C.x||y+z&
y-zD.!
((x<
y)&
!
z||1)
4.为了避免嵌套的if-else语句的二义性,C语言规定else总是与(C)组成配对关系。
A.缩排位置相同的if
B.在其之前未配对的if
C.在其之前未配对的最近的if
D.同一行上的if
5.逻辑运算符两侧运算对象的数据类型(D)。
A.只能是0或1
B.只能是0或非0正数
C.只能是整型或字符型数据
D.可以是任何类型的数据
6.下列运算符中优先级最高的是(C)。
A.<
B.&
C.+D.!
=
7.选择出合法的if语句(设intx,a,b,c;
)(A)。
A.if(a=b)c++;
B.if(a=<
b)c++;
C.if(a<
>
D.if(a=>
8.判断char型变量s是否为小写字母的正确表达式是(C)。
A.’a’<
=s<
=’z’B.(s>
=’a’)&
(s<
=’z’)
C.(s>
=’z’)D.(’a’<
=s)and(’z’>
=s)
9.已知x=45,y=’a’,z=0;
则表达式(x>
=z&
y<
’z’||!
y)的值是(C)。
A.0B.语法错
C.1D.“假”
10.执行以下语句后,y的值为(A)。
intx,y,z;
x=y=z=0;
++x||++y&
++z;
A.0B.1C.2D.不确定值
11.已知inta=1,b=2,c=3;
以下语句执行后a,b,c的值是(B)。
if(a>
b)
c=a;
a=b;
b=c;
A.a=1,b=2,c=3B.a=2,b=3,c=3
C.a=2,b=3,c=1D.a=2,b=3,c=2
12.以下程序的运行结果是(C)。
#include”stdio.h”
main()
{inta=1;
if(a++>
1)printf(”%d\n”,a);
elseprintf(”%d\n”,a--);
}
A.0B.1C.2D.3
13.若a、b、c、d、w均为int类型变量,则执行下面语句后的w值是(A)。
a=1;
b=2;
c=3;
d=4;
w=(a<
b)?
a:
b;
w=(w<
c)?
w:
c;
d)?
d;
A.1B.2C.3D.4
14.执行下列程序,输入为3的输出结果是(C)。
{intk;
scanf(”%d”,&
switch(k)
{case1:
printf(”%d\n”,k++);
case2:
case3:
case4:
break;
default:
printf(”Full!
\n”);
}}
A.3B.4C.3,4D.4,5
15.有如下程序,写出该执行结果(C)。
{floatx=2.0,y;
if(x<
0.0)y=0.0;
elseif(x<
10.0)y=1.0/x;
elsey=1.0;
printf(”%f\n”,y);
A.0.000000B.0.250000C.0.500000D.1.000000
16.已知大写字母A的ASCII码值是65,小写字母b的ASCII码是(A)。
A.98B.66C.97D.67
17.为表示x≤y≤z,应使用C语言表达式(B)。
A.(x<
y<
z)B.(x<
=y)&
(y<
=z)C.(x≤y)&
(y≤z)D.(x≤y)AND(y≤z)
18.下列程序运行结果是___A____。
#include”stdio.h”
voidmain()
{charch1,ch2;
ch1=’A’;
ch2=(ch1>
=’A’&
ch1<
=’Z’)?
(ch1+32):
ch1;
printf(“%c”,ch2);
A.aB.AC.97D.65
2.2填空题
1.设intx=9,y=8;
表达式x==y+1的结果是___1_____。
2.定义intx,y;
执行y=(x=1,++x,x+2);
后,y的值是___4_____。
3.定义intx=10,y,z;
执行y=z=x;
x=y==z;
后,x的结果是___1_____。
4.以下程序是对用户输入的字母进行大小写转换。
请在【】内填入正确内容。
{charch;
printf(”pleaseinputaletter:
”);
scanf(”%c”,&
ch);
if(【1】)ch=ch+32;
elseif(ch>
=’a’&
ch<
【2】;
printf(”theconvertedletteris:
%c\n”,ch);
5.以下程序是对从键盘输入的任何三个整数,求出其中的最小值。
main()
{inta,b,c,min;
printf(”pleaseinputthreenumbers:
scanf(”%d%d%d”,&
a,&
b,&
c);
if(【1】ch>
=’A’&
=’Z’)min=b;
elsemin=a;
if(min>
c)
【2】ch=ch-32;
printf(”min=%d\n”,min);
6.执行以下语句后,x、y和z的值分别为__1,0,0_。
x=y=z=0;
三.程序设计题。
1.编写程序,从键盘输入一字符,输出其相应的ASCII值和大写字母。
#include<
stdio.h>
{chara;
printf(“inputa:
”);
a=getchar();
a=a-32;
printf(“%d,%c\n”,a,a);
2.编写程序,从键盘一个整型数,判断它能否被3整除,若能,输出“yes”,否则输出”no”.
{intx;
scanf(“%d”,&
x);
if(x%3==0)
printf(“yes\n”);
elseprintf(“no\n”);
2.3答案及部分解析
1.D2.B3.D4.C5.D6.C7.A8.C9.C10.A11.B12.C13.A14.C15.C16.A17.B18.A
2.解析:
当条件1:
m=a>
b的值为假时,便已经确定整个表达式的值为假,所以不必再继续判断第二个表达式的逻辑值。
由于没有执行第二个表达式n=c>
d,所以n的值仍为2。
1.答案:
1
解析:
注意该表达式是关系表达式的双等号,所以其结果只能为1或0。
2.答案:
43.答案:
4.答案:
【1】ch>
=’Z’【2】ch=ch-32
5.答案:
【1】a>
b【2】min=c;
6.答案:
1,0,0
第三章循环结构
3.1选择题
1.以下程序的输出结果是(A)。
{intn=4;
while(n--)
printf(〞%d〞,--n);
A.2,0B.3,1C.3,2,1D.2,1,0
2.以下程序的输出结果是(D)。
{intx=10,y=10,i;
for(i=0;
x>
8;
y=++i)
printf("
%d%d"
x--,y);
A.10192B.9876C.10990 D.10,10,9,1
3.当执行以下程序段时(A)。
x=-1;
do
{x=x*x;
while(!
x);
A.循环体将执行一次 B.循环体将执行两次
C.循环体将执行无数多次 D.系统将提示有语法错误
4.若i,j已定义为int类型,则以下程序段中内循环的总的执行次数是(A)。
for(i=5;
i;
i--)
for(j=0;
j<
4;
j++)
{…}
A.20B.24C.25D.30
5.请读程序:
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;
case1:
b++;
case2:
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
6.有以下程序
#include〞stdio.h〞
intabc(intu,intv);
{intc,a=24,b=16;
c=abc(a,b);
printf(〞%d\n〞,c);
intabc(intu,intv)
{intw;
while(v)
{w=u%v;
u=v;
v=w;
returnu;
输出结果是(C)。
A.6B.7C.8D.9
7.有以下语句:
i=1;
for(;
i<
=100;
i++)sum+=i;
与以上语句序列不等价的有(C)。
A.for(i=1;
;
i++){sum+=i;
if(i==100)break;
B.for(i=1;
){sum+=i;
i++;
C.i=1;
)sum+=i;
D.i=1;
8.下面程序的运行结果为(A)。
{intn;
for(n=1;
n<
=10;
n++)
{if(n%3==0)continue;
%d"
n);
}}
9.在C语言中,if语句后的一对圆括号中,用以决定分支的流程的表达式(D)。
A.只能用逻辑表达式B.只能用关系表达式
C.只能用逻辑表达式或关系表达式D.可用任意表达式
10.在以下给出的表达式中,与do-while(E)语句中的(E)不等价的表达式是(C)。
A.(!
E==0)B.(E>
0||E<
0)C.(E==0)D.(E!
=0)
11.下列程序的输出是(C)。
{inti;
charc;
=5;
i++)
{c=getchar();
putchar(c);
程序执行时从第一列开始输入以下数据,<
CR>
代表换行符。
u<
w<
xsta<
A.uwxstaB.uC.uD.u
www
xxsxsta
12.在C语言中,为了结束while语句构成的循环,while后一对圆括号中表达式的值应该为(A)。
A.0B.1C.trueD.非0
13.在C语言中,为了结束由do-while语句构成的循环,while后一对圆括号中表达式的值应为(A)。
14.C语言的if语句嵌套时,if与else的配对关系是(A)。
A.每个else总是与它上面的最近的if配对
B.每个else总是与最外的if配对
C.每个else与if的配对是任意的
D.每个else总是与它上面的if配对
15.下列程序的输出为(C)。
{inti=0,j=0,a=6;
if((++i>
0)||(++j>
0))a++;
i=%d,j=%d,a=%d\n"
i,j,a);
A.i=0,j=0,a=6B.i=1,j=1,a=7C.i=1,j=0,a=7D.i=0,j=1,a=7
16.下列程序段的输出结果为(C)。
{intx=3;
do
{printf("
%3d"
x-=2);
while(!
(--x));
A.1B.30C.1-2D.死循环
3.2填空题:
1.当输入19,2,21时下列程序运行的结果是___21______。
{inta,b,c,max;
pleasescanthreenumbera,b,c:
\n"
);
scanf("
%d,%d,%d"
&
max=a;
if(max<
b)max=b;
c)max=c;
maxis:
max);
2.若输入4,程序运行结果为【17】,若输入-4,运行结果为【2-4】,若输入10,运行结果为【319】.
{intx,y;
if(x<
1)
{y=x;
x=%d,y=x=%d\n"
x,y);
elseif(x<
10)
{y=2*x-1;
x=%d,y=2*x-1=%d\n"
else
{y=3*x-11;
x=%d,y=3*x-11=%d\n"
3.以下程序运行的结果__8,14,1______。
{intx=2,y,z;
x*=3+1;
%d,"
x++);
x+=y=z=5;
x);
x=y==z;
%d\n"
4.如果输入‘1’,‘2’,‘3’,‘4’,程序运行输出的是___1234_____。
{charc;
inti,k;
k=0;
4;
{while
(1)
{c=getchar();
if(c>
='
0'
c<
9'
)break;
k=k*10+c-'
;
k=%d\n"
k);
5.以下程序运行的结果是____8_____。
{inta,b;
for(a=1,b=1;
a<
a++)
{if(b>
=20)break;
if(b%3==1)
{b+=3;
continue;
b-=5;
a);
6.对以下程序:
当输入6514时,其运行结果是【11】。
当输入1463时,其运行结果是【27】。
当输入25125时,其运行结果时【325】。
{intm,n;
m,&
n);
while(m!
=n)
{while(m>
n)m-=n;
while(n>
m)n-=m;
m=%d\n"
m);
7.鸡问题:
100元钱买100只鸡,公鸡一只5元钱,母鸡一只3元钱,小鸡一元钱三只,求100元钱能买公鸡、母鸡、小鸡各多少只?
{intcocks,hens,chicks;
cocks=0;
while(cocks<
=19)
{hens=0;
while(hens<
=33)
{chicks=100.0-cocks-hens;
if(5.0*cocks+3.0*hens+chicks/3.0==100.0)