C语言习题精选Word下载.docx
《C语言习题精选Word下载.docx》由会员分享,可在线阅读,更多相关《C语言习题精选Word下载.docx(99页珍藏版)》请在冰豆网上搜索。
第二章、C程序设计的初步知识
1.C语言中不能用来表示整常数的进制是(D)
(A)十进制(B)十六进制(C)八进制(D)二进制
2.在C语言中,反斜杠字符是(D)
(A)\n(B)\t(C)\v(D)\\
3.在ASCII代码表中可以看到每一个小写字母比它相应的大写字母的ASCII码A
(A)大32(B)大64(C)小32(D)小1
4.设d为字符变量,下列表达式不正确的是(C)
(A)d=97(B)d=’a’(C)d=”a”(D)d=’g’
5.10+’a’+1.5-567.345/’b’的结果是(B)
(A)long(B)double(C)int(D)unsignedfloat
6.在C语言中,运算对象必须是整型数的运算符是(A)
(A)%(B)/(C)%和/(D)**
7.为表示关系x>
=y>
=z,应使用C语言表达式(A)
(A)(y<
=x)&
&
(y>
=z)(B)(x>
=y)AND(y>
=z)(C)(x>
=z)(D)(x>
=y)&
=z)
8.若欲表示在if后a不等于0的关系,则能正确表示这一关系的表达式为(D)
(A)a<
>
0(B)!
a(C)a=0(D)a/;
[C语言常量包括数值常量(整型常量(十进制八进制)实型常量)和字
符型常量(字符常量字符串常量)]
9.下列常数中,合法的C常量是(A)
(A)”x-y”(B)’105’(C)’Be’(D)7ff
10.下列常数中,合法的C常量是(A)
(A)-0.(B)’105’(C)‘AB’(D)3+5
11.下列常数中,合法的C常量是(A)
(A)’\n’(B)e-310(C)’DEF’(D)’1234’
12.下列常数中,不合法的C常量是(B)
(A)-0x2a1(B)lg3(C)’[‘(D)”CHINA”
13.下列常数中,不合法的C常量是(B)
(A)-0x3b1(B)123e+2.3(C)’}’(D)6e+7
14.下列符号中,可以作为变量名的是(C)
(A)+a(B)12345e(C)a3B(D)5e+0
15.写出下列正确的输出结果BA
main()
{intx,y,z;
x=y=1;
z=x++-1;
printf(“%d,%d\t”,x,z);
z+=-x+++(++y||++z);
printf(“%d,%d”,x,z);
}
(A)2,03,-1(B)2,13,0(C)2,02,1(D)2,10,1
16.写出下面程序的输出结果()
{intx=40,y=4,z=4;
x=y==z;
printf(“%d”,x);
x=x==(y-z);
(A)40(B)41(C)11(D)10
17.写出下面程序的输出结果()
{intI,j;
I=16;
j=(I++)+I;
printf(“%d”,j);
I=15;
printf(“%d%d”,++I,I);
(A)321615(B)331515(C)341516(D)341615
18.若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值为()
(A)1(B)2(C)2.0(D)2.5
19.下列程序的执行结果是()
#definesum10+20
{intb=0,c=0;
b=5;
c=sum*b;
printf(“%d”,c);
(A)100(B)110(C)70(D)150
20.表达式(double)(20/3)的值为()
(A)6(B)6.0(C)2(D)3
1.如果intI=3;
则k=(I++)+(I++)+(I++),则k=(),I=();
2.如果intI=3;
则k=(I++)+(++I)+(I++),则k=(),I=();
3.如果intI=3;
则k=(++I)+(++I)+(I++),则k=(),I=();
4.如果intI=3;
则k=(++I)+(++I)+(++I),则k=(),I=();
5.已知在ASCII字符集中,字母A的序号为65,下面程序的输出结果为()
{charc=’A’;
intI=10;
c=c+10;
I=c%I;
Printf(“%c,%d\n”,c,I);
}
6.C语言的数据类型有四大类,其分别为(),(),(),()。
7.C语言的数据类型中构造类型包括三种,它们是(),(),()。
8.C语言基本数据类型包括(),(),(),()。
9.在C语言中,常量有不同的类型,包括(),(),()和()。
10.符号常量是指()。
11.整型常量和实型常量也称为(),它们有正负值之分。
12.C语言中,习惯上符号常量名用(),变量用()。
{大写或小写}
13.C语言在定义变量的同时说明变量的(),系统在编译时就能根据变量定义及其()为它分配相应大小的存储空间。
14.在C语言中,用来标识变量名,符号常量名,函数名,数组名,类型名,文件名的有效字符序列称为()
15.整型变量可分为(),(),(),()四种,分别用(),(),(),()表示。
16.在一个整常量后面加一个字母()或(),则认为是longint型常量。
17.在C语言中,实数有两种表示形式,即()和()。
18.下面的程序
main()
{printf(“___ab_c\t_de\rfg\n”);
printf(“h\ti\b\b\j___k”);
运行结果是()
19.在C语言中,系统在每一个字符串的结尾自动加一个”字符串结束标志符”即()以便系统据此判断字符串是否结束。
20.表达式10+’a’+1.5-0.5*’B’的结果是()
21.表达式10+’a’+1.5-567.345/’b’的结果是()型数据
22.在TURBOC中,单精度实数的数值范围约在()之间。
23.下面的程序:
{floatx;
intI;
x=3.6;
I=(int)x;
printf(“x=%f,I=%d”,x,I);
运行结果为()
24.在C语言中,表达式的类型有(),(),(),(),(),()。
25.分析下面的程序:
{inta,b,c;
a=b=c=1;
a+=b;
b+=c;
c+=a;
printf(“
(1)%d\n”,a>
b?
a:
b);
printf(“
(2)%d\n”,a>
c?
a--:
c++);
(a>
=b>
=c)?
printf(“AA”):
printf(“CC”);
printf(“\na=%d,b=%d,c=%d\n”,a,b,c);
26.用C语言描述下列命题
(1)a小于b或小于c
(2)a和b都大于c
(3)a或b中有一个小于c
(4)a是奇数
27.若x=3,y=2,z=1,求下列表达式的值:
(1)x<
y?
y:
x
(2)x<
x++:
y++
(3)z+=x<
28.sizeof用于计算出各个数据类型使用多少内存空间,若有语句:
I=sizeof(int);
j=sizeof(char),则I=();
j=()
29.若I=sizeof(float);
j=sizeof(double),则I=(),j=().
30.在C语言中,可以利用(),将一个表达式的值转换成指定的类型。
第三章、顺序结构(基本语句)
一.选择题
1.C语言中调用printf函数进行输出时需要注意,在格式控制串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,多余的输出项将();
如果格式说明的个数多于输出项的个数,则对于多余的格式将输出不定值(或0)。
(A)不予输出(B)输出空格(C)照样输出(D)输出不定值或0
2.在scanf函数的格式控制中,格式说明的类型与输入项的类型应该一一对应匹配。
如果类型不匹配,系统将()。
(A)不予接收(B)并不给出出错信息,但不可能得到正确数据(C)能接收到正确输入(D)给出出错信息,不予接收输入
3.以下程序的输出结果是()
{
intI=011,j=11,k=0x11;
printf(“%d,%d,%d\n”,I,j,k);
(A)9,11,17(B)9,11,11(C)11,11,11(D)11,11,16
4.以下程序的输出结果是()
#include<
stdio.h>
{printf(“%d\n”,NULL);
(A)不确定的值(因变量无定义)(B)0(C)-1(D)1
5.以下程序的输出结果是()
{charc1=’6’,c2=’0’;
printf(“%c,%c,%d,%d\n”,c1,c2,c1-c2,c1+c2);
(A)输出出错信息(B)6,0,6,102(C)6,0,7,6(D)6,0,5,7
6.有如下定义:
intx=10,y=5,z;
则语句printf(“%d\n”,z=(x+=y,x/y));
的输出结果是()
(A)1(B)0(C)4(D)3
7.以下程序的输出结果是()
{inta=-1,b=4,k;
k=(++a<
=0)&
!
(b--<
=0);
printf(“%d%d%d\n”,k,a,b);
(A)104(B)004(C)103(D)003
8.若有定义:
intx,y;
chara,b,c;
并有以下输入数据(此处,<
cr>
代表换行符)
12<
ABC<
则能给x赋整数1,给y赋整数2,给a赋字符A,给b赋字符B,给c赋字符C的正确程序段是:
(A)scanf(“x=%dy=%d”,&
x,&
y);
a=getchar();
b=getchar();
c=getchar();
(B)scanf(“%dy%d”,&
(C)scanf(“%d%d%c%c%c%c%c%c”,&
y,&
a,&
b,&
c,&
c);
(D)scanf(“%d%d%c%c%c”,&
9.若已定义inta=25,b=14,c=19;
以下三项运算符(?
:
)所构成的语句的执行结果是()
a++<
=25&
b--<
=2&
c++?
printf(“***a=%d,b=%d,c=%d\n”,a,b,c):
printf(“###a=%d,b=%d,c=%d\n”,a,b,c)
(A)(***a=25,b=14,c=19)(B)(***a=26,b=13,c=19)(C)(###a=25,b=14,c=19)
(D)(###a=26,b=13,c=19)
10.以下C程序,正确的运行结果是()(注_代表空格)
{longy=-34567;
printf("
y=%-8ld\n"
y);
y=%-08ld\n"
y=%08ld\n"
y=%+8ld\n"
(A)y=__-34567(B)y=-34567(C)y=-34567(D)y=__-34567
y=-__34567y=-34567y=-34567y=-0034567
y=-0034567y=-0034567y=-0034567y=00034567
y=-34567y=+_-34567y=__-34567y=+34567
二.填空题
1.C语言中的语句可分为五类,即()、()、()、()、()。
2.由一次函数调用加一个分号构成一个()语句。
3.printf是C语言提供的标准输出函数,它的作用是()。
4.printf函数的”格式控制”包括两部分,它们是()和()。
5.如果想输出字符”%”,则应该在”格式控制”字符串中用()表示。
6.符号’&
’是()运算符,&
a是指()。
7.scanf函数的”格式控制”后面应当是(),而不是()。
8.C语言中的空语句就是()。
9.返回语句的功能是从()返回()。
10.复合语句是由一对()括起来的若干语句组成的。
11.下列程序的输出结果是()
{charb[]=”ABCDEFG”;
char*chp=&
b[7];
while(--chp>
b[0])
putchar(*chp);
putchar(‘\n’);
12.下列程序的输出结果是()
{intx=2,y,z;
x*=3+2;
printf(“%d\n”,x);
x*=y=z=4;
x=y=z;
x=(y=z);
13.下列程序的输出结果是()
{printf(“%d”,1<
4&
4<
7):
printf(“%d”,1<
7<
4);
printf(“%d”,(2<
5));
printf(“%d”,!
(1<
3)||(2<
(4<
=6)&
(3<
=7));
14.下列程序的输出结果是()
{intx,y;
x=16;
y=(x++)+x;
printf(“%d\n”,y);
x=15;
printf(“%d,%d\n”,++x,x);
x=20;
y=x--+x;
x=13;
printf(“%d,%d”,x++,x);
15.阅读程序
{charstr1[]="
peopleandcomputer"
str2[10];
char*p1=str1,*p2=str2;
scanf("
%s"
p2);
%s\n"
p1);
运行上面的程序,输入字符串PEOPLEANDCOMPUTER,则程序的输出结果是()。
三.编程题
1.从键盘输入一个大写字母,要求改用小写字母输出;
2.编写程序,判断某一年是否闰年;
3.编写求方程ax2+bx+c的解x的程序;
第四章、选择结构
1.下列运算符中优先级最高的是()。
(A)>
(B)+(C)&
(D)!
=
2.逻辑运算符运算对象的数据类型()。
(A)只能是0和1(B)只能是.T.或.F.(C)只能是整型或字符型(D)任何类型的数据
3.能正确表示x的取值范围在[0,100]和[-10,-5]内的表达式是()。
(A)(X<
=-10)||(x>
=-5)&
(x<
=0)||(x>
=100)(B)(x>
=-10)&
=-5)||(x>
=0)&
=100)
(C)(x>
(x>
=100)(D)(x<
4.以下程序的运行结果是()。
Main()
{intc,x,y;
x=1;
y=1;
c=0;
c=x++||y++;
printf(“\n%d%d%d\n”,x,y,c);
(A)110(B)211(C)221(D)001
5.以下程序的运行结果是()。
x=0;
y=0;
c=x++&
y++;
(A)100(B)110(C)011(D)001
6.两次运行下面的程序,如果从键盘上分别输入6和4,则输出结果是()。
{intx;
scanf(“%d”,&
x);
if(x++>
5)printf(“%d”,x);
elseprintf(“%d\n”,x--);
(A)7和5(B)6和3(C)7和4(D)6和4
7.写出下面程序的运行结果()。
{intx=1,y=1,z=0;
if(z<
0)
if(y>
0)x=3;
elsex=5;
printf(“%d\t”,x);
if(z=y<
elseif(y==0)x=5;
elsex=7;
printf(“%d\t”,z);
(A)170(B)370(C)550(D)151
8.写出下面程序的运行结果()。
{intx,y=1,z=0;
if(y!
=0)x=5;
printf(“x=%d\t”,x);
if(y==0)x=3;
elsex=5;
printf(“x=%d\t\n”,x);
if(y>
elseif(y==0)x=5;
printf(“x=%d\t”,x);
printf(“z=%d\t\n”,z);
if(x=z=y)x=3;
printf(“z=%d\t\n”,z);
(A)x=5x=5(B)x=5x=5(C)x=5x=5(D)x=5x=5
x=1x=1x=5x=1
x=7z=0x=5z=0x=7z=0x=7z=0
x=3z=1x=3z=0x=3z=1x=3z=0
9.若有以下函数关系
x<
0时y=2x
x>
0时y=x
x=0时y=x+1
下面程序段能正确表示以上关系的是()。
(A)y=2x;
(B)y=2x;
(C)if(x>
=0)(D)y=x+1;
if(x!
=0)if(x<
=0)if(x>
0)y=x;
if(x<
=0)
if(x>
if(x==0)y=x+1;
elsey=x+1;
0)y=2x;
elsey=x;
elsey=2x;
10.若有以下变量定义:
floatx;
inta,b;
则正确的switch语句是()。
(A)switch(x)(B)switch(x)(C)switch(a+b)(D)switch(a+b)
{case1.0:
printf(“ok”);
{case1,2:
{case1:
case2.0:
printf(“this”);
case.3:
case2*a:
case1+2:
}}}}
1.以下两条if语句合并成一条if语句为()。
if(a<
=b