收藏 分享(赏)

C语言第一章习题带答案.doc

上传人:初中学霸 文档编号:21759109 上传时间:2024-04-22 格式:DOC 页数:43 大小:308.50KB
下载 相关 举报
C语言第一章习题带答案.doc_第1页
第1页 / 共43页
C语言第一章习题带答案.doc_第2页
第2页 / 共43页
C语言第一章习题带答案.doc_第3页
第3页 / 共43页
C语言第一章习题带答案.doc_第4页
第4页 / 共43页
C语言第一章习题带答案.doc_第5页
第5页 / 共43页
亲,该文档总共43页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

1、练习1-1答案选择题1下列4组字符串中都可以用作C语言程序中的标识符的是( D )。Aprint 3d oodbBIm one_half start$itCPxq mybook line#Dstr_1 Cpp into2下面的说法正确的是( C )。AC程序由符号构成BC程序由标识符构成CC程序由函数构成DC程序由C语句构成3与十进制数35相等的二进制数是( A )。A100011B01001C100110D1001014与47值相等的十六进制数是( A )。A2FB215C32FD1155(01101)2 + (101101)2的值是( B )。A(101010)2B(3A)16C(2A)1

2、6D576将15向左移动2位后的值是( D )。A(3C)16B(00111100)2C(60)10D都正确7将250与5进行按位与的结果是( A )。A0B1C(FF)16D(F0)168将(AF)16与(78)16进行按位异或的结果是( A )。A(D7)16B(28)16C(D8)16D(27)169将(717)8按位取反的结果是( B )。A(110001)2B(060)8C(60)10D都不正确练习2-1答案选择题1C语言中的简单数据类型包括( B )。A整型、实型、逻辑型B整型、实型、字符型C整型、字符型、逻辑型D整型、实型、逻辑型、字符型2在C语言中,错误的int类型的常数是(

3、A )。A32768B0C037D0Xaf3下列常数中不能作为C的常量的是( D )。A0x45B2.5e-2C3e2D05824设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是( B )。A0至255B065535C-3276832767D-2562555下面4个选项中,均是合法转义字符的选项是( A )。A,nB,017,C018,f,xabD0,101,x1f6在C语言中,数字029是一个( D )。A八进制数B十六进制数C.十进制数D非法数7下列可以正确表示字符型常数的是( B )。AaBtCnD2978以下( C )是错误的转义字符。ABC81D09C

4、语言中整数-8在内存中的存储形式是( A )。A1111 1111 1111 1000B100000000000 1000C000000000000 1000D1111 1111 1111 011110将字符g赋给字符变量c,正确的表达式是( C )。Ac=gBc=101Cc=147Dc=014711字符串22a,0n的长度是( C )。A8B7C6D512为求出s=10!的值,则变量s的类型应当为( D )。AintBunsignedClongD以上三种类型均可13已知:unsigned int x=65535;,则执行以下语句输出是( D )。printf(%dn, x);A65535B1

5、C无定值D-114下面4个选项中,均是合法整型常量的选项是( A )。A160,-0xffff,011B-0xcdf,01,0xeC-01,986,012,0668D-0x48a,2e5,0x15下面4个选项中,均是不合法的整型常量的选项是( D )。A-0f1,-0xffff,0011B-0Xcdf,01a,0xeC-018,999,5e2D-0x48eg,-068,03f16下面4个选项中,均是合法浮点数的选项是( B )。A+1e+1,5e-9.4,03e2B-.60,12e-4,-8e5C123e,1.2e-.4,+2e-1D-e3,.8e-4,5.e-0 练习2-2答案选择题1已知:

6、char a; int b; float c; double d;,执行语句c=a+b+c+d;后,变量c的数据类型是( C )。AintBcharCfloatDdouble2已知int j, i=1;,执行语句j=-i+;后,j的值是( C )。A1B2C-1D-23已知int i, a;,执行语句i=(a=2*3, a*5), a+6;后,变量i的值是( C )。A6B12C30D364已知int i=5;,执行语句i+=+i;,i的值是( C )。A10B11C12DA、B、C答案都不对5已知:float x=1, y;,则表达式y=+x*+x的结果为( B )。A9B6C1D表达式是错

7、误的6已知:int y; float x=-3;,执行语句:y=x%2;,则变量y的结果是( D )。A. 1B-1C0D语句本身是错误的7已知:char w; int x; float y; double z;,则表达式w*x+z-y结果的类型是( D )。AfloatBcharCintDdouble8已知:int x=10, y=3, z;,则下列语句的输出结果是( D )。printf(%dn, z=(x%y, x/y);A1B0C4D39已知:int i=6, j;,则执行语句j=(+i)+(i+);后的j的值是( B )。A4B14C13D1510已知:int x=1, y=-1;,

8、则语句printf(%dn, (x-&+y);的输出结果是( B )。A1B0C-1D211设a=2,b=3,计算表达式c=b*=a-1后,变量c的值是( B )。A5B3C2D412若定义了int x;,则将x强制转化成双精度类型应该写成( A )。A(double)x Bx(double)Cdouble(x)D(x)double13下述程序的输出是( A )。main()int x=023;printf(%f, 2.5+1*7%2/4); A2.500000B2.750000C3.375000D3.00000014若有定义:int a=7; float x=2.5, y=4.7;,则表达式

9、x+a%3*(int)(x+y)%2/4的值是( A )。A2.500000B2.750000C3.500000D0.00000015设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第3位进行四舍五入运算的表达式是( B )。An=(n*100+0.5)/100.0Bm=n*100+0.5, n=m/100.0Cn=n*100+0.5/100.0Dn=(n/100+0.5)*100.016已知ch是字符型变量,下面不正确的赋值语句是( A )。Ach=a+b;Bch=0;Cch=7+9;Dch=5+9;练习3-1答案一、选择题1在C语言库函数中,可以输出do

10、uble型变量x值的函数是( D )。AgetcharBscanfCputcharDprintf2执行语句:printf(The programs name is c:toolsbook.txt);后输出是( D )。AThe programs name is c:tools book.txtBThe programs name is c:tools book.txtCThe programs name is c:tools book.txtDThe programs name is c:toolook.txt3以下程序的输出结果是( D )。(注:表示空格)main()printf(n*s1

11、=%15s*, chinabeijing);printf(n*s2=%-5s*, chi);A*s1=chinabeijing*B*s1=chinabeijing *s2=*chi* *s2=chi*C*s1=*chinabeijing*D*s1=*chinabeijing* *s2=chi* *s2=chi*4选择程序的运行结果,是( B )、是( B )、是( D )、是( C )。#includemain()int a=-10, b=-3;printf(%dn, a%b);/*输出*/printf(%dn, a/b*b);/*输出*/printf(%dn, -a%b);/*输出*/pri

12、ntf(%dn, a-=b+1);/*输出*/ A-2B-1C0D1 A-10B-9C-8D0 A-2B-1C0D1 A-10B-9C-8D-75以下C程序正确的运行结果是( D )。(注:表示空格)main()int y=2456;printf(y=%3on, y);printf(y=%8on, y);printf(y=%#8on, y);Ay=2456By=4630 y=2456 y=4630 y=#2456 y=#4630Cy=2456Dy=4630 y=2456 y=4630 y=02456 y=04630二、填空题6以下程序的输出结果为( i:dec=-4, otc=177774,

13、hex=fffc, unsigned=65532 )。main()short i;i=-4;printf(ni:dec=%d, otc=%o, hex=%x, unsigned=%un, i, i, i, i);7以下程序的输出结果为( c:dec=120, oct=170, hex=78, ASCII=x )。main()char c=x;printf(c:dec=%d, oct=%o, hex=%x, ASCII=%cn, c, c, c, c);8已有定义int d=-2;,执行以下语句后的输出结果是:( *d(1)=-2*d(2)=-2*d(3)=-2* *d(4)=177776*d(

14、5)=177776*d(6)=177776* *d(4)=fffe*d(5)=fffe*d(6)=ffffe* )。(注:表示空格)printf(*d(1)=%d*d(2)=%3d*d(3)=%-3d*n, d, d, d, d);printf(*d(4)=%o*d(5)=%7o*d(6)=%-7o*n, d, d, d, d);printf(*d(4)=%x*d(5)=%6x*d(6)=%-6x*n, d, d, d, d);9以下程序的输出结果是: ( a=374 a=0374 a=fc a=0xfc )。#includemain()int a=252;printf(a=%o a=%#on

15、, a, a);printf(a=%x a=%#xn, a, a);练习3-2答案选择题1已知:int x, y, z, w;,为使以下语句的输出为:1234+123+12+1,正确的输入形式应当为( C )。scanf(%4d-%3d-%2d-%1d, &x, &y, &z, &w);printf(%4d+%3d+%2d+%1dn, x, y, z, w);A1234123121B1234 123 12 1C1234-123-12-1D1234+123+12+12已知:int x; float y;,所用的scanf调用语句格式为:scanf(x=%d, y=%f, &x, &y);为了将数

16、据10和66.6分别赋给x和y,正确的输入应当使( A )。Ax=10, y=66.6B10,66.6C1066.6Dx=10y=66.63已知:int x, y; double z;,以下语句中错误的函数调用是( D )。Ascanf(%d,%x,%1e, &x, &y, &z);Bscanf(%2d*%d%1f, &x, &y, &z);Cscanf(%x%*d%o, &x, &y);Dscanf(%x%o%6.2f, &x, &y, &z);4已有如下定义和输入语句,若要求a1、a2、c1、c2的值分别为10、20、A和B,当从第一列开始输入数据时,正确的数据输入方式是( AC )。(注

17、:表示空格,表示回车)int a1, a2; char c1, c2;scanf(%d%c%d%c, &a1, &c1, &a2, &c2);A10A20BB10A20BC10A20BD10A20B5已有定义int x; float y;,且执行scanf(%3d%f, &x, &y);语句时,输入数据12345678,则x的值为( B ),y的值为( B )。(注:表示空格) A12345B123C45D345 A无定义B45.000000C678.000000D123.0000006阅读以下程序,当输入数据的形式为:25,13,10,正确的输出结果为( D )。main()int x, y

18、, z;scanf(%d%d%d, &x, &y, &z);printf(x+y+z=%dn, x+y+z);Ax+y+z=48Bx+y+z=35Cx+z=35D不确定值7根据题目中已经给出的数据的输入和输出形式,程序中输入输出语句的正确内容是( B )。main()int x;float y;printf(enter x, y: );输入语句输出语句输入形式:enter x, y: 23.4输出形式:x+y=5.40Ascanf(%d,%f, &x, &y);Bscanf(%d%f, &x, &y); printf(nx+y=%4.2f, x+y); printf(nx+y=%4.2f, x

19、+y);Cscanf(%d%f, &x, &y);Dscanf(%d%3.1f, &x, &y); printf(nx+y=%6.1f, x+y); printf(nx+y=%4.2f, x+y);练习4-1答案一、选择题1已知:char c=A; int i=1, j;,执行语句j=!c&i+;,则i和j的值是( B )。A1,1B1,0C2,1D2,02已知:int x=1, y=2, z;,则执行z=xy?+x:+y;,则z的值为( C )。A1B2C3D43已知:int a=4, b=5, c;,则执行表达式c=a=ab后变量a的值为( A )。A0B1C4D54已知:char ch=

20、A;,则表达式ch=(ch=A&chx?w:y10?x+100:x-10);printf(%d,w+|z+);printf(%d,!wz);printf(%d,w&z);A0111B1111C0101D01007已知:a=b=c=1且a、b、c均为int型变量,执行以下语句:+a|+b&+c;则变量a值为( C ),b值为( A )。 A不正确B0C2D1 A1B2C不正确D08执行下面语句后x的值为( D )。int a=14, b=15, x;char c=A;x=(a&b)&(ca);ATRUEBFALSEC0D19要判断char型变量m是否是数字,可以使用下列表达式( B )。A0=m

21、&m=9B0=m&m=9C0=m&m=1)&(x=200)&(x=1)|(x=200)|(x=1)&(x=200)&(x=1)|(x=200)|(x=210)11设x、y和z是int型变量,且x=3, y=4, z=5,则下面表达式中值为0的是( D )。Ax&yBx=yCx|y+z&y-zD!(x=y&chB&!y的值是( C )。A0B语法错C1D“假”13判断char型变量c1是否为小写字母的正确表达式为( D )。Aa=c1=a)&(c1=c1)|(z=a)&(c1=z)二、读程序、写结果14下面程序的运行结果:( 17 )、( 102 )、( 9 )、( 127 )、( 00-1 )

22、。#include main()int i=16, j, x=6, y, z;j=i+1; printf(%dn, j);/*输出*/x*=i=j; printf(%dn, x);/*输出*/x=1; y=2; z=3;x+=y+=z;printf(%dn, z+=xy?x+:y+);/*输出*/x=0x02ff; y=0xff00;printf(%dn, (x&y)4|0x005f);/*输出*/x=y=z=-1;+x|+y&+z;printf(%d%d%dn, x, y, z);/* */- 8 - -练习4-2答案一、选择题1下面程序的输出是( A )。#include main()in

23、t x=1, y=0, a=0, b=0;switch (x)case 1:switch (y)case 0: a+; break;case 1:b+; break;case 2:a+; b+; break;printf(a=%d, b=%dn, a, b);Aa=2, b=1Ba=1, b=1Ca=1, b=0Da=2, b=22若有说明:int x ,y;,不能实现以下函数关系的程序段是( B )。Aif (x=0) else if (x=0) y=0; if (x!=0) if (x=0) if (x0) y=1; else y=1; if (x0) y=1; if (x0) y=1;

24、else y=0; else y=0; else y=-1; else y=-1;3已知:int x, a, b;,下列选项中错误的if语句是( B )。Aif (a=b) x+;Bif (a=b) x+;Cif (a-b) x+;Dif (x) x+;4若int i=10;,执行下列程序后,变量i的正确结果是( D )。switch (i)case 9: i+=1;case 10:i+=1;case 11:i+=1;default:i+=1;A10B11C12D135设有说明语句:int a=1, b=0;,则执行以下语句后输出为( B )。switch (a)case 1:switch (

25、b)case 0: printf(*0*); break;case 1: printf(*1*); break;case 2:printf(*2*); break;A*0*B*0*2*C*0*1*2*D有语法错误6阅读下列程序,其运行结果是( A )。#include main()char c=A;if (0=c=39) printf(YES);else printf(NO);AYESBNOCYESNOD语句错误7下列程序的运行结果为( C )。#include main()int a=2, b=-1, c=2;if (ab)if (b0) c=0;else c+=1;printf(%dn,

26、c);A0B1C2D38阅读程序,其运行结果是( C )。#include main()int a=-1, b=1, k;if (+a0)&(b-=0) printf(%d %dn, a, b);else printf(%d %dn, b, a);A-1 1B0 1C1 0D0 09选择运行结果。#include main()char ch;ch=getch();switch (ch)case 65: printf(%c, A);case 66: printf(%c, B);default:printf(%sn, other);如程序可以正常运行,当从键盘输入字母A时,输出结果为( B )。A

27、ABABotherCAotherD编译错误,无法运行10当a=1, b=3, c=5, d=4时,执行完成下面一段程序后x的值是( B )。if (ab)if (cd) x=1;elseif (ac)if (bd) x=2;else x=3;else x=6;else x=7;A1B2C3D6二、填空题11以下程序的输出结果是( -1 )。main()int a=100, x=10, y=20, ok1=5, ok2=0;if (xy)if (y!=10)if (!ok1) a=1;else if (ok2) a=10;a=-1;printf(%dn,a);12阅读以下程序:main()int

28、 t, h, m;scanf(%d, &t);h=(t/100)%12;if (h=0) h=12;printf(%d:, h);m=t%100;if (m10) printf(0);printf(%d,m);if (t1200|t=2400) printf(AM);else printf(PM);若运行时输入:1605,程序的运行结果是( 4:05PM )。13若运行时输入:3 5/,则以下程序的运行结果是( 0.600000 )。main()float x, y; char o; double r;scanf(%f%f%c, &x, &y, &o);switch (o)case +: r=

29、x+y; break;case -: r=x-y; break;case *: r=x*y; break;case /: r=x/y; break;printf(%f, r);练习4-3答案一、选择题1 以下不是死循环的语句为( D )。Afor ( ; ; x+=i)Bwhile (1) x+; Cfor (i=10; ; i-) sum+=i;Dfor (; (c=getchar()!=n; ) printf(%c, c);2执行语句for (i=0; i+3; );后,变量i的值为( C )。A2B3C4D53下面的for语句( C )。for (x=0, y=0; (y!=123)&(

30、x4); x+);A是无限循环B循环次数不定C循环执行4次D循环执行3次4与语句while (!x)等价的语句是( A )。Awhile (x=0)Bwhile (x!=0)Cwhile (x!=1)Dwhile (x)5定义int i=1;,执行语句while (i+5);后,i的值为( D )。A3B4C5D66若a=1, b=10为int型变量,则执行以下语句后b的值为( D ),a的值为( B )。dob-=a;a+; while(b-0); A9B2C1D8 A4B2C1D37若int a=5;,则执行以下语句后打印的结果为( A )。doprintf(%2dn,a-); while

31、(!a);A5B不打印任何内容C4D陷入死循环8若 int x;,且有下面的程序片段,则输出结果为( D )。for (x=3; x6; x+) printf(x%2)?*%d:#%dn, x);A*3B#3C#3D*3#4 #4 *3 *4#5 *5 *5 #59等比数列的第一项a=1,公比q=2,下面程序的功能是求满足前n项和小于100的最大n,请选择填空。( B ),( D )。#include main()int a, q, n, sum;a=1; q=2; n=sum=0;do;+n;a*=q; while (sum100);printf(%dn,n);Asum+Bsum+=aCsu

32、m*=aDa+=sumAn=n-2Bn=nCn+Dn-=1二、读程序,写结果10下列程序的运行结果为:i=( 5 ),j=( 4 ),k=( 6 )。#include main()int a=10, b=5, c=5, d=5;int i=0, j=0, k=0;for (; ab; +b) i+;while (a+c) j+;do k+;while (ad+);printf(%d,%d,%dn,i,j,k);11下面过程的运行结果:是( 8 ),是( 6 )。#include main()int i, j;for (i=0, j=10; ij; i+=2, j-);printf(%dn, i

33、 );/*输出*/printf(%dn, j);/*输出*/12下面程序的运行结果是( 15 )。#include main()int k, j, m;for (k=5; k=1; k-)m=0;for (j=k; j=5; j+) m=m+k*j;printf(%dn,m);练习4-4答案读程序,写结果1下面程序的运行结果是( 0,1,2,5 )。#include main()int i=0, j=0, k=0, m;for (m=0; m4; m+)switch (m)case 0: i=m+;case 1: j=m+;case 2: k=m+;case 3: m+;printf(n%d,

34、%d,%d,%d, i, j, k, m);2下面程序的运行结果是( 2 5 8 11 14 )。#include main()int i=1;while (i=15)if (+i%3!=2) continue;else printf(%d ,i);printf(n);3若运行以下程序时,从键盘输入Adescriptor(表示回车),则下面程序的运行结果是( v0=12,v1=4,v2=12 )。#include main()char c;int v0=0, v1=0, v2=0;doswitch (c=getchar()case a: caseA:case e: caseE:case i:

35、caseI:case o: caseO:case u: caseU: v1+=1;default: v0+=1; v2+=1; while (c!=n);printf(v0=%d,v1=%d,v2=%dn, v0, v1, v2);4下面程序段的输出结果是( 死循环 )。x=3;doy=x-;if (!y)printf(*);continue;printf(#); while (1=x=2);5下面程序的运行结果是( x=8 )。#include main()int i, j, x=0;for (i=0; i2; i+)x+;for (j=0; j=3; j+)if (j%2) continue;x+;x+;printf(x=%dn, x);练习5-1答案一、选择题1合法的数组说明语句是( B )。Aint a=string;Bint a=0,1,2,3,4,5;Cchar a=string;Dchar a5=0, 1,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高中资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:文库网官方知乎号:文库网

经营许可证编号: 粤ICP备2021046453号世界地图

文库网官网©版权所有2025营业执照举报