C语言程序设计实例教程(第三版)练习题答案1_第1页
C语言程序设计实例教程(第三版)练习题答案1_第2页
C语言程序设计实例教程(第三版)练习题答案1_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

练习1一、选择题1、一个C程序是由(B 。A.一个主程序和若干子程序组成 B.一个或多个函数组C.若干过程组成 D.若干子程序组成解析:C语言称为函数式语言,其程序是由至少一个主函数main,和其他更多的函数组成,答案选B;2、一个C程序的执行是从(A 。A.main函数开始,直到main函数结束 B.第一个函数开始,直到最后一个函数结C.第一个语句开始,直到最后一个语句结束 D.main函数开始,直到最后一个函数结束解析:C语言执行都是从主函数main函数开始,不论main函数放置的位置,答案选A;3、C语言语句的结束符是( B 。A.回车符 B.分号 C.句号 D.逗解析:C语言语句是以分号结束,答案选B;4、下面标识符中(D )不是C语言的关键字。A.char B.goto C.case D.include解析:charswitch句关键字,在C语言中include不属于关键字,属于预处理命令,故答案选D;5、以下说法正确的是( A )A.C程序的注释可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。B.C程序的注释只能是一行。C.C程序的注释不能是中文文字信息。D.C程序的注释中存在的错误会被编译器检查出来。解析:在C程序中注释只是起到增加程序的可读性,编译器并不会对注释进行检查,且C多行注释。故答案选A6、以下说法正确的是( D )A.C程序中的所有标识符都必须小写 B.C程序中关键字必须小写,其他标识符不区分大小写C.C程序中所有标识符都不区分大小写 D.C程序中关键字必须小写,其他标识符区分大小写。解析:C程序中的关键字均是小写定义的,且标识符定义可以使用大写和小写,但是严格区分大小写故答案选D。7、设x、y均为float型变量,则以下不合法的赋值语句是( B )A.++x; B.y=(x%2)/10; C.x*=y+8; D.x=y=0;解析:运算符%要求两端的操作数必须为整型,而在答案B中%号两端的操作数为x和2,x为实型,所以是错误的。8、下列不正确的转义字符是(C)A.'\\' B.'\''C.'\19'D.'\0'来代表某个字符,而这些数字只包括两种:八进制位)和十六进制位。十六进制前面要加(或X,这里的C答案反斜线后是数字,但不是x开头,所以应该是八进制数,但是数值里有9,和八进制数不符,所以是错误的。9、下列不是C语言常量的是( A )A.e-2 B.074 C."a" D.'\0'整型常量的书写形式分为十进制、八进制和十0~90开头,0~70x(0X)开头,0~9与a~f(或表示。实型常量点的形式,如:0.056300.57;指数形式只指用包含e(E)的书写形式,要求e(E)的前面必字符型常量字符串常量Ae前面必须有数值,后面必须是整数,而这里所以是错误的。10、设int类型的数据长度为2个字节,则unsignedint类型数据的取值范围是( B )A.0~255 B.0~65535 C.-32768~32767 D.-256~255解析:2个字节为16个二进制位,且是无符号型,故范围为0到216-1=65535,故答案选B;、若定义了intx;则将x强制转化成双精度类型应该写成( A )A(doubl)x B.xdoubl) C.doublx) D(x)double解析:A为C语言强制转换的标准书写形式;12、在C语言中,要求参加运算的数必须是整数的运算符是( C )。A./ B.* C.% D.=解析:C选型的%为求余运算符,其要求两端的运算数必须为整型。13、为了计算s=10(即10的阶乘,则s变量应定义为( D )。A.int B.unsigned C.long D.以上三种类型均可:TCCVC6.0Dint配的大小不一样,在TC2字节,在VC6.04字节,所以取值范围也就不一样。14、putchar(函数可以向终端输出一个( D )。A、整型变量表达式值 、实型变量值C、字符串 D、字符或字符型变量值码表中显示的字符;答案选D;15、已有如下定义和输入语句,若要求a1,a2,c1,c2的值分别为和B,当从第一列开始输入据时,正确的数据输入方式是(D )(代表空格,↙代表Enter)inta1,a2;charc1,c2;scanf("%d%c%d%c",&a1,&c1,&a2,&c2);A10A20B↙ B10A20B↙ 、10A20B↙ D10A20B↙解析:空格是有效字符,所以会被scanfA10送给a1,空格送给c1A符不属于a2与后面的c210送给送给a2,空格送给c2,然后scanfB答案与A答案类似;只有D10送给a1,Ac1,20送给a2,B送给c2,然后scanf16、执行下列程序片段时输出结果是(C 。intx=13,y=5;printf("%d",x%=(y/=2));A3 B、2 C、1 D0解析:这是一个表达式的运算,x%=()先运算表达式y/=2,其运算结果是y=2,再将表达式转换为x%=2,运算此表达式得到最后结果为117已有如下定义和输入语句若要求a1,a2,c1,c2的值分别为10,20,A和B,当从第一列开始输入数据时正确的输入方式是(D (代表空格,↙代表Enter)inta1,a2;charc1,c2;scanf("%d%d",&a1,&a2);scanf("%c%c",&c1,&c2);A1020AB↙ 、1020↙ C、1020AB↙ 、1020AB↙AB↙解析:此题与15题类似,这里的回车符也属于有效字符,所以会被scanfA答案中的1020A,不属于数值,第一个scanf1020看成一个整体送给a1A不属于a2获取类型,这个scanfscanfA,c2获取到字符。B10scanf10a1,再将空20a2,第一个scanfscanf函数将回车符送给了c1,Ac2,scanfC10scanf10后面是字符A,20a2,第一个scanf时的缓冲区中首先是函数将A送给后面的空格送给c2,第二个scanfD答案10scanf10送给a1,20后面是字符A20送给a2,scanfA,scanfAc1,A后面的B送给,第二个scanfD18、若运行时输入:12345678↙,则下列程序运行结果为(A。#include<stdio.h>intmain(){inta,b;scanf("%2d%2d%3d",&a,&b);printf("%d\n",a+b);return0;}A46 B、579 C、5690 D、出错2是指读取数值的位数,所以scanf12送给34b567函数执行结束,所以a+b=12+34=4646。19、已知i,j,kinti2,k3,以下选项中正确的输入语句是(C(代表空格,↙代表Enter)A、scanf("%2d%2d%2d",&i,&j,&k); B、scanf("%d%d%d",&i,&j,&k);C、scanf("%d,%d,%d",&i,&j,&k); D、scanf("i=%d,j=%d,k=%d",&i,&j,&k);解析:根据键盘输入时数据只是用逗号进行分隔的,所以scanf函数中格式符之间的分隔符也必须要用分号,故答案选C。20、有输入语句:scanf("a=%d,b=%d,c=%d",&a,&b,&c);为使变量a的值为1,b的值为3,c的值为2,则正确的数据输入方式是( D (代表空格,↙代表Enter)A132↙ 、1,3,2↙ 、a=1b=3c=2↙ D、解析:scanf函数要求非格式字符必须原样键入,所以根据scanf语句,答案应该是D。二、填空题1C语言源程序文件的后缀.c 经过编译后生成目标文件的扩展名.obj 经过连接后成可执行文件的扩展名.exe 。2、C程序注释是/* 和 */ 所界定的文字信息组成的。3、源程序的执行要经编辑、 编译、 连接 运行 四个步骤。4、在C语言中,一个char数据在内存中所占字节数为1,其数值范围为-128~+127;一个int数据在内存中所占字节数为2,其数值范围为-32768~+32767;一个long数据在内存中所占字节数为4,其数值范围为-2147483648~+2147483647;一个float数据在内存中所占字节数为4,其数值范围为0~4294967295。5C语言的标识符只能由大小写字母,数字和下划线三种字符组成,而且第一个字符必须为母或下划线。6、字符常量使用一对单引号界定单个字符,而字符串常量使用一对双引号来界定若干个字符的序列。7、在C语言中,不同运算符之间运算次序存在优先级的区别,同一运算符之间运算次序存在性的规则。8、字符"\the\v\\\034Will\n"的长度12 。9、已知有如下定义,写出下列表达式的值。inta=17,b=5①a/b 3 ②a%b 2 ③a&&b 1 ④a&b 1 ⑤a^b 20 ⑥!a⑦a>>2⑧a||b⑨a|b⑩~a<<2 0 4 1 21 -72 解析:第①题考点是数据自动类型转换,整型与整型的运算最后结果仍为整型;10、printf函数和scanf函数的格式说明都使用% 字符开始。1scanf处理输入数据时遇到下列情况时该数据认为结束()空格)回车()TAB 12、已有inti,j;float为将-10赋给赋给赋给x;则对应以下scanf函数调用语句的数据输入形式是 scanf("%d%d%f",&i,&j,&x); 。13C语言本身不提供输入输出语句,其输入输出操作是由函数 来实现的。14、一般地,调用标准字符或格式输入输出库函数时,文件开头应有以下预编译命#nclude<stdio.h。三、程序阅读,写出程序运行结果。1、#include<stdio.h>intmain(){charc1='a',c2='b',c3='c',c4='\101',c5='\116';printf("a%cb%c\tc%c\tabc\n",c1,c2,c3);printf("\t\b%c%c",c4,c5);return0;}运行结果:aabb cc AN2、用下面的scanf函数输入数据,使a=3,b=7,x=8.5,y=71.82,c1='A',c2='a',问在键盘上如何输入?#include<stdio.h>intmain(){inta,b;floatx,y;charc1,c2;scanf("a=%db=%d",&a,&b);scanf("%f%e",&x,&y);scanf("%c%c",&c1,&c2);return0;}代表空格,↙代表Ente)a=3b=7↙8.57.182e1Aa↙3、#include<stdio.h>intmain(){inty=3,x=3,z=1;printf("%d%d\n",(++x,y++),z+2);return0;}运行结果:334、#include<stdio.h>intmain(){inta=12345;floatb=-198.345,c=6.5;printf("a=%4d,b=%-10.2e,c=%6.2f\n",a,b,c);return0;}运行结果:a=12345,b=-1.98e+002,c= 6.505、#include<stdio.h>intmain(){intx=-2345;floaty=-12.3;printf("%6d,%6.2f",x,y);return0;}运行结果:-2345,-12.306#include<stdio.h>intmain(){inta=12;doubleb=3.1415926;printf("%6d##,%-6d##\n",a,a);printf("a=%oa=%x\n",a,a);printf("%14.10lf\n",b);return0;}运行结果:12##,12 ##a=14a=c3.1415926000四、编程题1、已知intx=10,y=12;写出将xy表达式:x=x+y,y=x-y,x=x-y;xx+yx-yxyyx,第x-y,注意这时xx+y的和,但是yx,故x-yy值,x,故实现了xy的互换。扩展:也可以定义一个中间代换量intt;t=x,x=y,y=t;执行之后x与y也能互换;2、若a=3,b=4,c=5,x=1.2,y=2.4,z=3.6,u=51274,n=128765,c1=’a’,2b请写出程序(包括定义变量类型和设计输出。a=3b=4c=5x+y=3.60 y+z=-1.20 z+x=-2.40u=51274 n=128765c1='a'or97(ASCII)c2='b'or98(ASCII)编程:#include<stdio.h>intmain(){inta=3,b=4,c=5;doublex=1.2,y=2.4,z=-3.6;unsignedintu=51274,n=128765;charc1='a',c2='b';printf("a=%db=%dc=%d\n",a,b,c);圆球体积公式:πr圆球体积公式:πr3圆柱体积公式:πr2hprintf("x+y=%.2lf y+z=%.2lf printf("u=%un=%u\n",u,n);printf("c1='%c'or%d(ASCII)\n",c1,c1);printf("c2='%c'or%d(ASCII)\n",c2,c2);return0;}3、设圆半径r=1.5,圆柱高h=3,求圆周长,圆面积,圆球表面积,圆球体积,圆柱体积。用scanf入数据,输出计算结果;输出时要求有文字说明,取小数点后2位数字,请编写程序。分析:给出几种图形的求解公式,下面程序将按公式进行计算并输出计算结果圆周长公式圆面积公式圆球表面积公式编程:#include<stdio.h>intmain(){floath,r,l,s,sq,vq,vz;floatpi=3.141526;printf("请输入圆半径r,圆柱高h:");scanf("%f,%f",&r,&h);l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=(3.0/4.0)*pi*r*r*r;vz=pi*r*r*h;printf("圆周长为: l=%.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论