C语言程序设计习题.docx
- 文档编号:23415065
- 上传时间:2023-05-16
- 格式:DOCX
- 页数:81
- 大小:79.48KB
C语言程序设计习题.docx
《C语言程序设计习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题.docx(81页珍藏版)》请在冰豆网上搜索。
C语言程序设计习题
C程序设计习题
第一章C语言基础知识
1.1选择题
1.C语言源程序的基本单位是_____。
A.过程B.函数C.子程序D.标识符2.下列各组字符序列中,可用作C标识符的一组字符序列是_____。
A.S.b,sum,average,_above
B.class,day,lotus_1,2day
C.#md,&12x,month,student_n1
D.D56,r_1_2,name,_st_1
3.以下各组标识符中,不能作为合法的C用户定义标识符的是___
(1)___、___
(2)___、___(3)___、___(4)___。
(1)A.a3_b3B.voidC._123D.IF
(2)A.ForB.printfC.WORDD.sizeof(3)A.answerB.toC.signedD._if(4)A.putcharB._doubleC.123_D.INT
4.以下各组数据中,不正确的数值或字符常量是___
(1)___、___
(2)___、___(3)___、___(4)___。
(1)A.0.0B.5LC.o13D.9861
(2)A.011B.3.987E-2C.018D.0xabcd(3)A.8.9e1.2B.1e1C.0xFF00D.0.825e2
(4)A."c"B.′\"′C.0xaaD.50.
5.哪一个是C语言中合法的常量_____。
A.1.52eB.±13C.′X′D."X"′Y′6.以下两组整数值中,不正确的八进制或十六进制数分别是___
(1)___、___
(2)___。
(1)A.0x16B.016C.-16D.0xaaaa
(2)A.oxccB.-017C.-0x123D.0xffff
8.以下的选择中,正确的赋值语句是_____。
A.a=1,b=2B.i++;C.a=b=5D.y=int(x)9.在以下各组运算符中,优先级最高的运算符分别为___
(1)___、___
(2)___、___(3)___、___(4)___。
(1)A.?
:
B.++C.&&D.+=
(2)A.*=B.>=C.(类型)D.,(3)A.||B.%C.!
D.==(4)A.=B.!
=C.*(乘号)D.()10.在C语言中,能代表逻辑值“真”的是_____。
A.trueB.大于0的数C.非0整数D.非0的数11.下列变量说明语句中,正确的是_____。
A.char:
abc;B.chara;b;c;C.intx;z;D.intx,z;12.下列字符序列中,不可用作C语言标识符的是_____。
A.b70B.#abC._symbolD.a_1
13.以下不正确的叙述是_____。
A.在C程序中所用的变量必须先定义后使用B.在程序中,APH和aph是两个不同的变量C.若a和b类型相同,在执行了赋值语句a=b;后b中的值将放入a中,b中的值不变D.当输入数值数据时,对于整型变量只能输入整型值;对于实型变量只能输入实型值
14.以下正确的叙述是_____。
A.在C程序中,语句之间必须要用分号“;”分隔B.若a是实型变量,C程序中允许以下赋值a=10;因此,实型变量中允许存放整型数C.在C程序中,无论是整数还是实数,都能准确无误地表示D.在C程序中,%是只能用于整数运算的运算符15.以下叙述中不正确的是_____。
A.一个好的程序应该有详尽的注释B.C程序中的#include和#define均不是C语句C.在C程序中,赋值运算符的优先级最低D.在C程序中,j++;是一条赋值语句16.设C语言中,int类型数据占2个字节,则long类型数据占___
(1)___个字节;unsignedint类型数据占___
(2)___个字节;short类型数据占___(3)___个字节。
(1)A.1B.2C.4D.8
(2)A.1B.2C.4D.8
(3)A.1B.2C.4D.8
17.C语言中,double类型数据占___
(1)___个字节;char类型数据占___
(2)___个字节。
(1)A.1B.2C.4D.8
(2)A.1B.2C.4D.8
18.若a为整型变量,则以下语句_____。
a=-2L;
printf("%d\n",a);A.赋值不合法B.输出值为-2C.输出不确定值D.输出值为2
19.执行下面两个语句后,输出的结果为_____。
charc1=97,c2=98;printf("%d%c",c1,c2);A.9798B.97bC.a98D.ab20.执行以下语句的结果为_____。
y=10;x=y++;A.x=10,y=10B.x=11,y=11C.x=10,y=11D.x=11,y=1021.下列数据中,为字符串常量的是_____。
A.′A′B."house"C.Howdoyoudo.D.′$abc′22.先用语句定义字符型变量c,然后要将字符a附给c,则下列语句中正确的是_____。
A.c=′a′;B.c="a";C.c="97";D.C=′97′23.执行下列语句的结果是_____。
i=3;printf("%d,",++i);printf("%d",i++);A.3,3B.3,4C.4,3D.4,424.已知x=3、y=2,则表达式x*=y+8的值为:
A.3B.2C.30D.1025.设x=2.5、a=7、y=4.7,算术表达x+a%3*(int)(x+y)%2/4的值为_____。
A.2.5B.7C.4.7D.2.7526.设a=12,a定义为整型变量。
表达式a+=a-=a*=a的值为_____。
A.12B.144C.0D.13227.执行x=5>1+2&&2||2*4<4-!
0后,x的值为_____。
A.-1B.0C.1D.528.已知year为整型变量,不能使表达式(year%4==0&&year%100!
=0)||year%400==0的值为“真”的数据是_____。
A.1990B.1992C.1996D.200029.下列运算符中,不属于关系运算符的是_____。
A.
30.下列表达式中,属于算术表达式的是_____。
A.x>=60==1B.x+60*(x>60)C.x>=60&&x<70||x==50D.x=(x>=60)31.下列表达式中,属于关系表达式的是_____。
A.x>=60==1B.x+60*(x>60)C.x>=60&&x<70||x==50D.x=(x>=60)32.下列表达式中,属于赋值表达式的是_____。
A.x>=60==1B.x+60*(x>60)C.x>=60&&x<70||x==50D.x=(x>=60)33.下列表达式中,属于逻辑表达式的是_____。
A.x>=60==1B.x+60*(x>60)C.x>=60&&x<70||x==50D.x=(x>=60)34.已知各变量的类型定义如下:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1.42,y=5.2;
则以下两组中不符合C语言语法的表达式分别是___
(1)___、___
(2)___。
(1)A.k=i++B.(int)x+0.4
C.y+=x++D.a=2*a=3
(2)A.x%(-3)B.w+=-2
C.k=(a=2,b=3,a+b)D.a+=a-=(b=4)*(a=3)
35.假设所有变量均为整型,表达式(a=2,b=5,a>b?
a++:
b++,a+b)的值是_____。
A.7B.8C.9D.2
36.以下两组中不符合C语言语法的赋值语句分别是___
(1)___、___
(2)___。
(1)A.a=1,b=2B.++i;C.a=b=5;D.y=(a=3,6*5);
(2)A.i++;B.i=i=5;C.k=2*4,k*4;D.y=float(i);
37.下列程序的输出是_____。
main(){inta=9;a+=a-=a+a;printf("%d\n",a);}A.18B.9C.-18D.-9
38.下列语句的输出结果是_____。
printf("%d\n",(int)(2.5+3.0)/3);
A.有语法错误不能通过编译B.2
C.1D.0
39.执行下列程序时,若从键盘上输入数据:
123678则输出是_____。
#include"stdio.h"main(){charc1,c2,c3,c4,c5,c6;scanf("%c%c%c%c",&c1,&c2,&c3,&c4);c5=getchar();c6=getchar();putchar(c1);putchar(c2);printf("%c%c\n",c5,c6);}A.1267B.1256C.1278D.1245
40.下列程序的输出是_____。
main(){inta=7,b=5;printf("%d\n",b=b/a);}A.0B.5C.1D.不确定值
41.下列程序的输出是_____。
main(){inta=011;printf("%d\n",++a);}A.12B.11C.10D.9
42.若int类型数据占两个字节,则下列语句的输出为_____。
intk=-1;printf("%d,%u\n",k,k);A.-1,-1B.-1,32767C.-1,32768D.-1,65535
43.下列程序的输出是_____。
#include
44.设a=3,b=4,c=5,则表达式!
(a+b)+c-1&&b+c/2的值为_____。
A.5B.8C.0D.145.设a=2,b=3,c=4,则表达式a+b>c&&b==c&&a||b+c&&b=c的值为_____。
A.5B.8C.0D.146.若k,g均为int型变量,则下列语句的输出为_____。
k=017;g=111;printf("%d\t",++k);printf("%x\n",g++);A.156fB.1670C.1571D.166f47.以下程序不用第三个变量,实现将两个数进行对调的操作。
#include
(1)___;b=___
(2)___;a=___(3)___;
printf(a=%db=%d\n",a,b);}
(1)A.a+bB.a-bC.a*bD.a/b
(2)A.a+bB.a-bC.b-aD.a*b(3)A.a+bB.a-bC.b-aD.a/b
48.若k为int变量,则以下语句_____。
k=8567;printf("|%-06d|\n",k);A.输出格式描述符不合法B.输出为|008567|C.输出为|8567|D.输出为|-08567|49.若x为float型变量,则以下语句_____。
x=213.82631;printf("%-4.2f\n",x);A.输出格式描述符的域宽不够,不能输出B.输出为213.83C.输出为213.82D.输出为-213.82
50.若x为double变量,则以下语句_____。
x=218.82631;printf("%-6.2e\n",x);A.输出格式描述符的域宽不够,不能输出B.输出为21.38e+01C.输出为2.2e+02D.输出为-2.14e251.若k为int型变量,则以下语句_____。
k=-8567;printf("|%06D|\n",k);A.输出为|%06D|B.输出为|0-8567|C.格式描述符不合法,输出无定值D.输出为|-8567|52.若ch为char型变量,k为int型变量(已知字符a的ASCII十进制代码为97),则执行下列语句后的输出为_____。
ch=′a′;k=12;printf("%x,%o,",ch,ch,k);printf("k=%%d\n",k);A.因变量类型与格式描述符的类型不匹配,输出无定值B.输出项与格式描述符个数不符,输出为零值或不定值C.61,141,k=%d
D.61,141,k=%12
53.若有以下定义:
chars=′\092′;则该语句_____。
A.使s的值包含1个字符B.定义不合法,s的值不确定C.使s的值包含4个字符D.使s的值包含3个字符54.若a是float型变量,b是unsigned型变量,以下输入语句中合法的是_____。
A.scanf("%6.2f%d",&a,&b);B.scanf("%f%n",&a,&b);C.scanf("%f%3o",&a,&b);D.scanf("%f%f",&a,&b);55.给出以下程序①和②,它们的输出_____。
①#include"stdio.h"
main()
{inta=4,b=7;
printf("%d\n",(a=a+1,b+a,b+1));
}
②#include
main()
{inta=1,b=2;
printf("%d\n",a=a+1,a+b,b+1);
}
A.①输出5②输出2
B.①输出8②输出2
C.①输出5②中printf()函数调用语句的输出项包含了a=a+1形式,不合法D.①中printf函数调用语句的格式描述符不够,输出无定值②输出2
56.已知字母a的ASCII十进制代码为97,则执行下列语句后的输出为_____。
chara=′a′;a--;printf("%d,%c\n",a+′2′-′0′,a+′3′-′0′);A.b,cB.a--运算不合法,故有语法错C.98,cD.格式描述和输出项不匹配,输出无定值57.下列程序的输出为_____。
#include
(a++):
(a--),则其中表达式M_____。
A.和(M==0)等价B.和(M==1)等价C.和(M!
=0)等价D.和(M!
=1)等价59.以下程序的输出是_____。
#include"stdio.h"main(){inti,j,k,a=3,b=2;i=(--a==b++)?
--a:
++b;j=a++;k=b;printf("i=%d,j=%d,k=%d\n",i,j,k);}A.i=2,j=1,k=3B.i=1,j=1,k=2C.i=4,j=2,k=4D.i=1,j=1,k=360.若变量都已正确定义,则程序段_____。
a=2;b=3;
printf(a>b?
"***a=%d":
"###b=%d",a,b);A.没有正确的输出格式控制B.输出为:
***a=2C.输出为:
###b=2D.输出为:
***a=2###b=2
61.a,b为整型变量,二者均不为0,以下关系表达式中恒成立的是_____。
A.a*b/a*b==1B.a/b*b/a==1C.a/b*b+a%b==aD.a/b*b==a62.C语言中表示逻辑“真”值的是_____。
A..T.B.0C.trueD.非0整型值
63.为了提高程序的运行速度,在函数中对于整型或指针可以使用_____型的变量。
A.autoB.registerC.staticD.extern64.以下程序的输出结果为_____。
#include"stdio.h"
main()
{inti=010,j=10;
printf("%d,%d\n",++i,j--);
}A.11,10B.9,10C.010,9D.10,965.C语言中以下几种运算符的优先次序_____的排列是正确的。
A.由高至低为:
!
&&,||,算术运算符,关系运算符,赋值运算符B.由高至低为:
!
算术运算符,关系运算符&&,||,赋值运算符C.由高至低为:
算术运算符,关系运算符,赋值运算符,!
&&,||D.由高至低为:
算术运算符,关系运算符,!
&&,||,赋值运算符66.设a为整型变量,初值为12,执行完语句a+=a-=a*a后,a的值是_____。
A.552B.144C.264D.-26467.以下程序的输出结果为_____。
#include"stdio.h"main(){inti;for(i=0;i<10;i++);printf("%d",i);}A.0B.123456789C.0123456789D.10
选择题答案
1.B2.D3.
(1)B
(2)D(3)C(4)C4.
(1)C
(2)C(3)A(4)A5.C6.
(1)C
(2)A8.B9.
(1)B
(2)C(3)C(4)D10.D11.D12.B13.D14.D15.C16.
(1)C
(2)B(3)B17.
(1)D
(2)A18.B19.B20.C21.B22.A23.D24.C25.A26.C27.C28.A29.D30.B31.A32.D33.C34.
(1)D
(2)A35.B36.
(1)A
(2)D37.C38.C39.A40.A41.C42.D43.B44.D45.D46.D47.
(1)A
(2)B(3)B48.C49.B50.C51.A52.C53.B54.C55.B56.C57.A58.C59.D60.C61.C62.D63.B64.B65.B66.D67.D
1.2写出程序运行结果1.下列程序的运行结果为_____。
main()
{intx;
x=-3+4*5-6;printf("%d\t",x);
x=3+4%5-6;printf("%d\t",x);x=-3*4%-6/5;printf("%d\t",x);x=(7+6)%5/2;printf("%d\n",x);}2.下列程序的运行结果为_____。
main()
{intx=2,y,z;
x*=3+2;printf("%d\t",x);x*=y=z=4;printf("%d\t",x);x=y=1;z=x++-1;printf("%d,%d\t",x,z);z+=-x+++y;printf("%d,%d\t",x,z); x=40;y=4;z=4;x=y==z;printf("%d\t",x);x=x==(y=z);printf("%d\n",x);}3.下列程序的运行结果为_____。
main()
{inti,j;i=16;j=(i++)+i;printf("%d\t",j);i=15;printf("%d\t%d\t",++i,i);i=20;j=i--+i;printf("%d\t",j);i=13;printf("%d\t%d\n",i++,i);}4.下列程序的运行结果为_____。
main()
{inta=1,b=2,c=3;++a;c+=++b;{intb=4,c;c=b*3;a+=c;printf("1:
%d,%d,%d\t",a,b,c);a+=c;printf("2:
%d,%d,%d\t",a,b,c);}printf("3:
%d,%d,%d\n",a,b,c);}5.若输入3,4,5,下列程序的输出结果为_____。
#include"math.h"main(){floata,b,c,s,area;scanf("%f,%f,%f",&a,&b,&c);s=1.0/2*(a+b+c);area=sqrt(s*(s-a)*(s-b)*(s-c));printf("a=%7.2f,b=%7.2f,c=%7.2f,s=%7.2f",a,b,c,s);printf("area=%7.2f\n",area);}6.下列程序的运行结果为_____。
main()
{unsignedchara=′a′,b=′b′,c=′C′;a=a-32;b+=c-a;c=c-32+b-a;printf("a=%c,b=%c,c=%c\n",a,b,c);}7.下列程序的运行结果为_____。
#include"stdio.h"
main()
{intx=2,y=4,z=40;x*=3+2;printf("%d\t",x);x=y=z;printf("%d\n",x);}8.下列程序的运行结果为_____。
#include"stdio.h"
main()
{inta=5,b,c;a*=3+2;printf("%d\t",a);a*=b=c=5;printf("%d\t",a);a=b=
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)