书签 分享 收藏 举报 版权申诉 / 66
上传文档赚钱

类型C习题和答案-谭浩强-著-C程序设计.doc

  • 上传人(卖家):2023DOC
  • 文档编号:5854663
  • 上传时间:2023-05-12
  • 格式:DOC
  • 页数:66
  • 大小:183.50KB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《C习题和答案-谭浩强-著-C程序设计.doc》由用户(2023DOC)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    习题 答案 谭浩强 程序设计
    资源描述:

    1、C语言程序设计习题及参考答案第一章 程序设计基本概念1.1 在TRUBO C环境中用RUN命令运行一个C程序时,所运行的程序的后缀是_。答案:.exe1.2 C语言源程序文件的后缀是_,经过编译后,生成文件的后缀是_,经过连接后,生成文件的后缀是_。答案:.c.obj.exe1.3 结构化程序由_、_、_三种基本结构组成。答案:顺序、选择、循环第二章 C程序设计的初步知识一、选择题2.1 以下选项中正确的整型常量是A)12.B)-20C)1,000D)456答案:B2.2 以下选项中正确的实型常量是A)0B)3. 1415 C)0.32910(2)(10的2次方)D).871答案:D2.3 以

    2、下选项中不正确的实型常量是A)2.607E-1B)0.8103e2C)-77.77D)456e-2答案:B2.4 以下选项中不合法的用户标识符是A)abc.cB)fileC)MainD)PRINTF答案:A2.5 以下选项中不合法的用户标识符是A)_123B)printfC)A$D)Dim答案:C2.6 C语言中运算对象必需是整型的运算符是A)%B)/C)!D)*答案:A2.7 可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:B2.8 若变量已正确定义并赋值,符合C语言语法的表达式是A)a=a+

    3、7;B)a=7+b+c,a+C)int(12.3%4)D)a=a+7=c+b答案:B2.9 以下叙述中正确的是A)a是实型变量,C允许进行以下赋值a=10,因此可以这样说:实型变量中允许存放整型值。B)在赋值表达式中,赋值号右边既可以是变量也可以是任意表达式。C)执行表达式a=b后,在内存中a和b存储单元中的原有值都将被改变,a的值已由原值改变为b的值,b的值由原值变为0。D)已有a=3,b=5。当执行了表达式a=b,b=a之后,已使a中的值为5,b中的值为3。答案:B2.10 以下叙述中正确的是A)在C程序中无论是整数还是实数,只要在允许的范围内都能准确无误的表示。B)C程序由主函数组成。C

    4、)C程序由函数组成。D)C程序由函数和过程组成。答案:C2.11 TURBO C中int类型变量所占字节数是A)1B)2C)3D)4答案:B2.12 不合法的八进制数是A)0B)028C)077D)01答案:B2.13 不合法的十六进制数是A)oxffB)0XabcC)0x11D)0x19答案:A二、填空题2.14 若k为int整型变量且赋值11。请写出运算k+后表达式的值A)_和变量的值B)_。答案:11、122.15 若x为double型变量,请写出运算x=3.2,+x后表达式的值A)_和变量的值B)_。答案:4.2、4.22.16 函数体由符号_开始,用符号_结束。函数体的前面是_部分,

    5、其后是_部分。答案:、定义、执行2.17 C语言中的标识符可分为_、_、和预定义标识符三类。答案:关键字、用户标识符2.18 在C语言程序中,用关键字_定义基本整型量,用关键字_定义单精度实型变量,用关键字_定义双精度实型变量。答案:int、float、double2.19 把a1、a2定义成单精度实型变量,并赋初值1的定义语句是_。答案:float a1=1.0,a2=1.0;2.20 C程序中定义的变量,代表内存中的一个_。答案:存储单元2.21 表达式3.5+1/2的计算结果是_。答案:3.52.22 对以下数学式,写出三个等价的C语言表达式_、_、_。ab c答案:a*b/c、a/c*

    6、b、b/c*a2.23 表达式s=10应当读做“_”。答案:将10赋给变量s2.24 计算机中内存储器的最小存储单位称_,其中能容纳的数是_。答案:位、0或12.25 通常一个字节包含_个二进制位。在一个字节中能存放的最大(十进制)整数是_,它的二进制数的形式是_;最小(十进制)整数是_,它的二进制数的形式是_。答案:8、255、1111 1111、-128、1000 00002.26 当计算机用两个字节存放一个整数时,其中能存放的最大(十进制)整数是_、最小(十进制)整数是_,它的二进制数的形式是_。答案:65535、-32768、1000 0000 0000 00002.27 在C语言中整

    7、数可用_进制数、_进制数和_进制数三种数制表示。答案:十、八、十六第三章、顺序结构一、选择题3.1 若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A) a=b=c=100;B) d+;C) c+b;D) d=(c=22)-(b+);答案:C3.2 以下选项中不是C语句的是A) int i; i+; printf(%dn, i); B) ;C) a=5,c=10D) ; 答案:C3.3 以下合法的C语言赋值语句是A) A=B=58B) k=int(a+b);C) a=58,b=58D) -i;答案:D3.4 以下程序的输出结果是A) 0 B) 1 C) 3 D)不确定

    8、的值main()int x=10,y=3;printf(%dn, y=x/y);答案:C3.5 若变量已正确说明为int类型,要给a、b、c输入数据,以下不正确的输入语句是A) read(a,b,c);B) scanf(%d%d%d,a,b,c);C) scanf(%D%D%D,&a,&b,&c);D) scanf(%d%d%d,&a,&b,&c);答案:D3.6 若变量已正确说明为float类型,要通过以下赋值语句给a赋予10、b赋予22、c赋予33,以下不正确的输入形式是A) 10 22 33B) 10.0,22.0,33.0C) 10.0 22.0 33.0D) 10 22 33scan

    9、f(%f %f %f, &a, &b, &c);答案:B3.7 若变量以正确定义,要将a和b中的数进行交换,下面不正确的语句组是A) a=a+b,b=a-b,a=a-b;B) t=a,a=b,b=t;C) a=t; t=b; b=a;D) t=b; b=a; a=t;答案:C3.8 若变量已正确定义,以下程序段的输出结果是A) 输出格式说明与输出项不匹配,输出无定值B) 5.17000C) 5.168000D) 5.169000x=5.16894;printf(%fn,(int)(x*1000+0.5)/(float)1000);答案:D3.9 若有以下程序段,c3中的值是A) 0B) 1/2

    10、C) 0.5D) 1int c1=1,c2=2,c3;c3=c1/c2;答案:A3.10 若有以下程序段,其输出结果是A) 0,0,-10B) 0,0,5C) -10,3,-10D) 3,3,-10int a=0,b=0,c=0;c=(a-=a-5),(a=b,b+3);printf(%d,%d,%dn,a,b,c);答案:B3.11 当运行以下程序时,在键盘上从第一列开始输入9876543210(此处代表Enter),则程序的输出结果是A) a=98,b=765,c=4321B) a=10,b=432,c=8765C) a=98,b=765.000000,c=4321.000000D) a=

    11、98,b=765,c=4321.0main()int a; float b,c;scanf(%2d%3f%4f,&a,&b,&c);printf(na=%d,b=%f,c=%fn,a,b,c);答案:C3.12 以下程序的输出结果是A) a=%2,b=%5B) a=2,b=5C) a=%d,b=%dD) a=%d,b=%dmain() int a=2,b=5;printf(a=%d,b=%dn,a,b);答案:D3.13 若int类型占两个字节,则以下程序段的输出是A) -1,-1B) -1,32767C) -1,32768D) -1,65535int a=-1;printf(%d,%un,a

    12、,a);答案:D3.14 以下程序段的输出是A) *496 *B) * 496*C) *000496* D)输出格式符不合法int x=496;printf(*%-06d*n,x);答案:A3.15 以下程序段的输出是A) |3.1415|B) | 3.0| C) |3|D) |3.|float a=3.1415;printf(|%6.0f|n,a);答案:C3.16 以下程序段的输出是A) |2345.67800|B) |12345.6780|C) |12345.67800|D) |12345.678|printf(|%10.5f|n,12345.678);答案:C3.17 以下程序段的输出

    13、是A) *0000057.66*B) *57.66*C) *0000057.67*D) *57.67*float a=57.666;printf(*%010.2f*n,a);答案:C3.18 若从终端输入以下数据,要给变量C赋以283.19,则正确的输入语句是A) scanf(%f,c);B) scanf(%8.4f,&c);C) scanf(%6.2f,&c);D) scanf(%8,&c);283.1900 表示Enter键答案:由于印刷错误,本题没有正确答案。改正意见:把选项A改为:scanf(%f,&c);或者把选项D改为:scanf(%8f,&c);则可分别选择A或者D为正确答案。3

    14、.19 若变量已正确说明,要求用以下语句给a赋予3.12、给b赋予9.0,则正确的输入形式是(代表空格)A) 3.129.0B) a=3.12b=9C) a=3.12,b=9 D) a=3.12,b=9scanf(a=%f,b=%f,&a,&b); 表示Enter键答案:C3.20 以下程序的输出结果是A) 98 B) 89 C) 66 D) 以上三个都不对#includemath.hmain() double a=-3.0, b=2;printf(%3.0f %3.0fn,pow(b,fabs(a),pow(fabs(a),b);答案:B二、填空题3.21 若有以下定义,请写出以下程序段中输

    15、出语句执行后的输出结果。(1)_(2)_(3)_int i=-200,j=2500;printf(1) %d %d,i,j);printf(2) i=%d, j=%dn,i,j);printf(3) i=%dn j=%dn,i,j);答案:-200 2500i=-200, j=2500i=-200 j=25003.22 变量i、j、k已定义为int类型并有初值0,用以下语句进行输入时scanf(%d,&i); scanf(%d,&j); scanf(%d,&k);当执行第一个输入语句,从键盘输入:12.3 表示Enter键则变量i、j、k的值分别是_、_、_。答案:12、0、03.23 复合语

    16、句在语法上被认为是_。空语句的形式是_。答案:一条语句、 ;3.24 C语句的最后用_结束。答案:;3.25 以下程序段,要求通过scanf语句给变量赋值,然后输出变量的值。写出运行时给k输入100,给a输入25.81,给x输入1.89234时的三种可能的输入形式_、_、_。int k; float a; double x;scanf(%d%f%lf,&k,&a,&x);printf(k=%d,a=%f,x=%fn,k,a,x);答案:(1) 10025.811.89234(2) 10025.811.89234(3) 100 25.81 1.892343.26 以下程序段的输出结果是_。int

    17、 x=0177;printf(x=%3d,x=%6d,x=$%6o,x=%6x,x=%6un,x,x,x,x,x);答案:x=127,x= 127,x= 177,x=7f,x= 1273.27 以下程序段的输出结果是_。int x=0177;printf(x=%-3d,x=%-6d,x=$%-06d,x=$%06d,x=%06dn,x,x,x,x,x);答案:27、x=127,x=127 ,x=$127 ,x=$000127,x=%06d3.28 以下程序段的输出结果是_。double a=513.789215;printf(a=%8.6f,a=%8.2f,a=%14.8f,a=%14.8lf

    18、n,a,a,a,a);答案:a=513.789215,a=513.79,a=513.78921500,a=513.78921500第四章、选择结构一、 选择题4.1 下列运算符中优先级最高的运算符是A) !B) %C) -=D) &答案:A4.2 下列运算符中优先级最低的运算符是A) |B) !=C) =y)&(y=z)B) (x=y)AND(y=z)C) (x=y=z) D) (x=y)&(y=z)答案:A4.4 设a、b和c都是int型变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是A) a&bB) a=bC) a|b+c&b-cD) !(ab)&!c|1)答案:D4.5

    19、 以下程序的输出结果是A) 0B) 1C) 2D) 3main() int a=2,b=-1,c=2;if(ab)if(b0)c=0;elsec+=1;printf(%dn,c);答案:C4.6 以下程序的输出结果是A)1B) 2C) 3 D) 4main() int w=4,x=3,y=2,z=1;printf(%dn,(wx?w:zy?z:x);答案:A4.7 若执行以下程序时从键盘上输入3和4,则输出结果是A) 14B) 16C) 18D) 20main() int a,b,s;scanf(%d%d,&a,&b);s=a;if(ab) s=b;s*=s;printf(%dn,s);答案:

    20、B4.8 下面的程序片段所表示的数学函数关系是 -1(x0) 1(x0) 0(x0) -1(x0)y=-1;if(x!=0) y=1;if(x0) y=1;else y=0;答案:本题没有正确答案。程序片段所表示的数学函数关系应该是 0(x0)4.9 运行以下程序后,输出A) *B) &C) #&D) 有语法错误不能通过编译main() int k=-3;if(k、=、=、=、!=4.13 C语言中的逻辑运算符按优先级别是_、_、_。答案:!、&、|4.14 C语言中的关系运算符和逻辑运算符的优先级别是_、_、_、_、_、_、_。答案:!、=、!=、&、|4.15 C语言中逻辑运算符_的优先级

    21、高于算术运算符。答案:!4.16 将下列数学式改写成C语言的关系表达式或逻辑表达式A)_B)_。A)a=b或a4答案:A)a=b|a4|x100)printf(%dn,a100);else printf(%dn,a0)B) !0答案:A) xc)b=a; a=c; c=b;答案:3、2、24.20 若变量已正确定义,以下语句段的输出结果是_。x=0; y=2; z=3;switch(x) case 0:switch(y=2) case 1: printf(*); break;case 2: printf(%); break; case 1:switch(z) case1: printf($);

    22、 case2: printf(*); break; default: printf(#); 答案:*#第五章、循环结构一、 选择题5.1 以下程序段的输出结果是A) 9B) 1C) 11D) 10int k,j,s;for(k=2; k6; k+,k+) s=1;for(j=k; j6; j+)s+=j;printf(%dn, s);答案:D5.2 以下程序段的输出结果是A) 12B) 15C) 20D) 25int i,j,m=0;for(i=1; i=15; i+=4)for(j=3; j7) n-;printf(%dn, n);答案:B5.4 以下程序段的输出结果是A) 1B) 3 0C

    23、) 1 -2D) 死循环int x=3;do printf(%3d,x-=2); while(!(-x);答案:C5.5 以下程序段的输出结果是A) 15B) 14C) 不确定D) 0main() int i,sum;for(i=1; i0; y-)if(y%3=0)printf(%d, -y); continue;答案:B5.7 若x是int型变量,以下程序段的输出结果是A) *3 #4 *5B) #3 *4 #5C) #3 *4#5D) *3#4 *5for(x=3; x6; x+)printf(x%2)?(*%d):(#%dn),x);答案:D5.8 以下程序的输出结果是A) *#*#*

    24、#$B) #*#*#*$C) *#*#$ D) #*#*$main() int i;for(i=1; i=5; i+) if(i%2)printf(*);else contionue;printf(#);printf($n);答案:A5.9 以下叙述正确的是A) do_while语句构成的循环不能用其它语句构成的循环来代替。B) do_while语句构成的循环只能用break语句退出。C) 用do_while语句构成循环时,只有在while后的表达式为非零时结束循环。D) 用do_while语句构成循环时,只有在while后的表达式为零时结束循环。答案:D5.10 以下程序的输出结果是A) 3

    25、9 81B) 42 84C) 26 68D) 28 70main() int x,i;for(i=1; ib; +b) i+;while(a+c) j+;do k+;while(ad+);答案:5、4、65.12 以下程序段的输出结果是_。int k,n,m;n=10; m=1; k=1;while(k=n)m*=2;printf(%dn,m);答案:死循环5.13 以下程序的输出结果是_。main() int x=2;while(x-);printf(%dn,x);答案:-15.14 以下程序段的输出结果是_。int i=0,sum=1;do sum+=i+; while(i5);print

    26、f(%dn,sum);答案:115.15 有以下程序段:s=1.0;for(k=1; k=n; k+) s=s+1.0/(k*(k+1);printf(%fn,s);请填空,使下面的程序段的功能完全与之等同。s=0.0;_;k=0;do s=s+d;_;d=1.0/(k*(k+1);while(_);printf(%fn,s);答案:d=1.0、k+、kamax)amax=x;if(_)amin=x;scanf(%f,&x);printf(namax=%fnamin=%fn,amax,amin);答案:x=0、xamin第六章、字符型数据一、选择题6.1 C语言中的简单数据类型有A) 整型、实

    27、型、逻辑型B) 整型、实型、字符型C) 整型、字符型、逻辑型D) 整型、实型、逻辑型、字符型答案:B6.2 C语言中,字符(char)型数据在微机内存中的存储形式是A) 反码B) 补码C) EBCDIC码D) ASCII码答案:D6.3 设有语句char a=72;,则变量aA) 包含1个字符B) 包含2个字符C) 包含3个字符D) 说明不合法答案:A6.4 C语言中不合法的字符常量是A) 0xffB) 65C) &D) 028答案:本题A)和D)选项都是不合法的字符常量。若A)选项改为xff,则正确。6.5 C语言中不合法的字符串常量是A) 121B) y=C) nnD) ABCDx6d答案:B6.6 判断char型变量c是否为大写字母的最简单且正确的表达式是A) A=c=A)&(c=Z)C) (A=c)D) (c=A)&(c=Z)答案:D6.7 以下程序的输出结果是A) 因输出格式不合法,无正确输出B) 65,90C) A,Y D) 65,89main() char c1=A,c2=Y;printf(%

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:C习题和答案-谭浩强-著-C程序设计.doc
    链接地址:https://www.163wenku.com/p-5854663.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库