C语言程序设计习题.docx

上传人:b****0 文档编号:9039244 上传时间:2023-05-16 格式:DOCX 页数:81 大小:79.48KB
下载 相关 举报
C语言程序设计习题.docx_第1页
第1页 / 共81页
C语言程序设计习题.docx_第2页
第2页 / 共81页
C语言程序设计习题.docx_第3页
第3页 / 共81页
C语言程序设计习题.docx_第4页
第4页 / 共81页
C语言程序设计习题.docx_第5页
第5页 / 共81页
C语言程序设计习题.docx_第6页
第6页 / 共81页
C语言程序设计习题.docx_第7页
第7页 / 共81页
C语言程序设计习题.docx_第8页
第8页 / 共81页
C语言程序设计习题.docx_第9页
第9页 / 共81页
C语言程序设计习题.docx_第10页
第10页 / 共81页
C语言程序设计习题.docx_第11页
第11页 / 共81页
C语言程序设计习题.docx_第12页
第12页 / 共81页
C语言程序设计习题.docx_第13页
第13页 / 共81页
C语言程序设计习题.docx_第14页
第14页 / 共81页
C语言程序设计习题.docx_第15页
第15页 / 共81页
C语言程序设计习题.docx_第16页
第16页 / 共81页
C语言程序设计习题.docx_第17页
第17页 / 共81页
C语言程序设计习题.docx_第18页
第18页 / 共81页
C语言程序设计习题.docx_第19页
第19页 / 共81页
C语言程序设计习题.docx_第20页
第20页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言程序设计习题.docx

《C语言程序设计习题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题.docx(81页珍藏版)》请在冰点文库上搜索。

C语言程序设计习题.docx

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.C.>=D.!

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.下列程序的输出是_____。

#includemain(){printf("%d",null);}A.0B.变量无定义C.-1D.1

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.以下程序不用第三个变量,实现将两个数进行对调的操作。

#includemain(){inta,b;scanf("%d%d",&a,&b);printf("a=%db=%d\n",a,b);a=___

(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.下列程序的输出为_____。

#includemain(){intm=7,n=4;floata=38.4,b=6.4,x;x=m/2+n*a/b+1/2;printf("%f\n",x);}A.27.000000B.27.500000C.28.000000D.28.50000058.若给定条件表达式(M)?

(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=

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2