c语言新习题集答案解析.docx
- 文档编号:10725969
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:65
- 大小:56.38KB
c语言新习题集答案解析.docx
《c语言新习题集答案解析.docx》由会员分享,可在线阅读,更多相关《c语言新习题集答案解析.docx(65页珍藏版)》请在冰豆网上搜索。
c语言新习题集答案解析
习题答案
第1章
1.1填空题
1.1.1应用程序ONEFUNC.C中只有一个函数,这个函数的名称是__main。
1.1.2一个函数由__函数头__和__函数体__两部分组成。
1.1.3在C语言中,输入操作是由库函数__scanf完成的,输出操作是由库函数_printf_完成的。
1.1.4通过文字编辑建立的源程序文件的扩展名是_.c__;编译后生成目标程序文件,扩展名是__.obj__;连接后生成可执行程序文件,扩展名是_.exe_;运行得到结果。
1.1.5C语言程序的基本单位或者模块是__函数__。
1.1.6C语言程序的语句结束符是_;___。
1.1.7编写一个C程序,上机运行要经过的步骤:
______________________________。
1.1.8在一个C语言源程序中,注释部分两侧的分界符分别为_/*__和__*/__。
1.1.9C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线。
且第一个字符必须为字母或下划线。
1.1.10C语言中的标识符可分为关键字、预定义标识符和用户标识符3类。
1.2选择题
1.2.1一个C程序的执行是从(A)。
A)本程序的main函数开始,到main函数结束
B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束
C)本程序的main函数开始,到本程序文件的最后一个函数结束
D)本程序文件的第一个函数开始,到本程序main函数结束
1.2.2以下叙述不正确的是(C)。
A)一个C源程序可由一个或多个函数组成
B)一个C源程序必须包含一个main函数
C)在C程序中,注释说明只能位于一条语句的后面
D)C程序的基本组成单位是函数
1.2.3C语言规定:
在一个源程序中,main函数的位置(C)。
A)必须在程序的开头B)必须在系统调用的库函数的后面
C)可以在程序的任意位置D)必须在程序的最后
1.2.4C编译程序是(A)。
A)将C源程序编译成目标程序的程序
B)一组机器语言指令
C)将C源程序编译成应用软件
D)C程序的机器语言版本
1.2.5要把高级语言编写的源程序转换为目标程序,需要使用(D)。
A)编辑程序B)驱动程序C)诊断程序D)编译程序
1.2.6以下叙述中正确的是(C)。
A)C语言比其他语言高级
B)C语言可以不用编译就能被计算机识别执行
C)C语言以接近英语国家的自然语言和数学语言作为语言的表达形式
D)C语言出现的最晚,具有其他语言的一切优点
1.2.7以下叙述中正确的是(A)。
A)C程序中注释部分可以出现在程序中任意合适的地方
B)花括号“{”和“}”只能作为函数体的定界符
C)构成C程序的基本单位是函数,所有函数名都可以由用户命名
D)分号是C语句之间的分隔符,不是语句的一部分
1.2.8以下叙述中正确的是(B)。
A)C语言的源程序不必通过编译就可以直接运行
B)C语言中的每条可执行语句最终都将被转换成二进制的机器指令
C)C源程序经编译形成的二进制代码可以直接运行
D)C语言中的函数不可以单独进行编译
1.2.9用C语言编写的代码程序(B)。
A)可立即执行B)是一个源程序
C)经过编译即可执行D)经过编译解释才能执行
1.2.10以下叙述中正确的是(C)。
A)在C语言中,main函数必须位于程序的最前面
B)C语言的每行中只能写一条语句
C)C语言本身没有输入输出语句
D)在对一个C程序进行编译的过程中,可以发现注释中的拼写错误
1.2.11下列4组选项中,均不是C语言关键字的选项是(A)。
A)defineB)getcC)includeD)while
IFcharscanfgo
typeprintfcasepow
1.2.12下列4组选项中,均是C语言关键字的选项是(B)。
A)autoB)switchC)signedD)if
enumtypedefunionstruct
includecontinuescanftype
1.2.13C语言中的标识符只能由字母、数字和下划线3种字符组成,且第一个字符(C)。
A)必须为字母B)必须为下划线
C)必须为字母或下划线D)可以是字母、数字和下划线中任一种字符
1.3编程题
1.3.1参照本章例题,编写一个C程序,要求输出如下字符。
***************************************************************************
WelcometoExpo2010!
Shanghai2010
#include
voidmain()
{
printf(“***************************************************************************\n”);
printf(“WelcometoExpo2010!
\n”);
printf(“Shanghai2010\n”);
printf(“***************************************************************************\n”);
}
1.3.2设计一程序,输入3个整数,计算并显示输出这3个整数之和。
#include
voidmain()
{
inta,b,c;
printf(“inputa,b,c:
\n”);
scanf(“%d%d%d”,%a,%b,%c);
printf(“thesumofa,b,cis%5d\n”,a+b+c);
}
第2章
2.1填空题
2.1.1C程序中数据有常量和变量之分,其中,用一个标识符代表一个常量的,称为符号常量。
C语言规定在程序中对用到的所有数据都必须指定其数据类型,对变量必须做到先定义,后使用。
2.1.2C语言中,用关键字float定义单精度实型变量,用关键字double定义双精度实型变量,用关键字char定义字符型变量。
2.1.3在C语言中,以16位PC机为例,一个char型数据在内存中所占的字节数为1;一个int型数据在内存中所占的字节数为2,则int型数据的取值范围为-32768~32767。
一个float型数据在内存中所占的字节数为4;一个double型数据在内存中所占的字节数为8。
单精度型实数的有效位是6-7位,双精度型实数的有效位是15-16位。
2.1.4设C语言中的一个基本整型数据在内存中占2个字节,若欲将整数135791正确无误地存放在变量a中,应采用的类型说明语句是longinta=15791;。
2.1.5C的字符常量是用单引号括起来的1个字符,而字符串常量是用双引号括起来的字符序列。
2.1.6C语言中,用“\”开头的字符序列称为转义符。
转义符“\n”的功能是回车换行;转义符“\r”的功能是回车。
2.1.7若有定义:
charc=‘\010’;则变量c中包含的字符个数为1。
2.1.8负数在计算机中是以补码形式表示。
2.1.9C语言中,&作为双目运算符是表示的是按位与,而作为单目运算符时表示的是取地址。
2.1.10在C语言的赋值表达式中,赋值号左边必须是变量。
2.1.11自增运算符++、自减运算符--,只能用于变量,不能用于常量或表达式。
++和--的结合方向是“自右左至左”。
2.1.12若a是int型变量,则执行下面表达式后a的值为2。
a=25/3%3
2.1.13写出下列数所对应的其它进制数(D对应十进制,B对应二进制,o对应八进制,H对应十六进制)
32D=100000B=40O=20H
75D=1001011B=113O=4BH
2.1.14假设已指定i为整型变量,f为float变量,d为double型变量,e为long型变量,有式子10+'a'+i*f-d/e,则结果为double型。
2.1.15若有定义:
intx=3,y=2;floata=2.5,b=3.5;则下面表达式的值为1。
(x+y)%2+(int)a/(int)b
2.1.165/3的值为1,5.0/3的值为1.666667。
2.1.17若有以下定义,intm=5,y=2;则执行表达式y+=y-=m*=y后的y值是-16。
2.1.18若a是int型变量,则表达式(a=4*5,a+2),a+6的值为26。
2.1.19若x和n均为int型变量,且x的初值为12,n的初值为5,则执行表达式x%=(n%=2)后x的值为:
0。
2.1.20若有定义语句:
inte=1,f=4,g=2;floatm=10.5,n=4.0,k;,则执行表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后k的值是13.7。
2.2选择题
2.2.1逗号表达式"(a=3*5,a*4),a+15"的值是(C)。
A)15B)60C)30D)不确定
2.2.2若有以下定义和语句:
charc1='a',c2='f';
printf("%d,%c\n",c2-c1,c2-'a'+'B');
则输出结果是:
(D)
A)2,MB)5,!
C)2,ED)5,G
2.2.3sizeof(float)是( B )。
A)一个双精度型表达式B)一个整型表达式
C)一种函数调用D)一个不合法的表达式
2.2.4若有以下定义,则能使值为3的表达式是( D)。
intk=7,x=12;
A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)
2.2.5在C语言中,要求运算数必须是整型的运算符是(A)。
A)%B)/C) 2.2.6下面4个选项中,均是合法整型常量的选项是(A)。 A)160B)-0xcdfC)-01D)-0x48a -0xffff01a986,0122e5 0110xe06680x 2.2.7下面4个选项中,均是不合法浮点数的选项是(B)。 A)160.B)123C)-.18D)-e3 0.122e4.2123e4.234 E3.e50.01e3 2.2.8下面正确的字符常量是(C)。 A)”C”B)”\\”C)’W’D)’’ 2.2.9在C语言中,int、char和short三种类型数据在内存中所占用的字节数(D)。 A)由用户自己定义B)均为2个字节 C)是任意的D)由所用机器的机器字长决定 2.2.10假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)后x的值为(B)。 A)7B)8C)6D)2 2.2.11假设所有变量均为整型,则表达式x=(i=4,j=16,k=32)后x的值为(C)。 A)4B)16C)32D)52 2.2.12若有代数式 ,则正确的C语言表达式是(D)。 A)fabs(x*3+log(x))B)fabs(pow(x,3)+log(x)) C)abs(pow(x,3.0)+log(x))D)fabs(pow(x,3.0)+log(x)) 2.2.13设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是(B)。 A)n=(n*100+0.5)/100.0B)m=n*100+0.5,n=m/100.0 C)n=n*100+0.5/100.0D)n=(n/100+0.5)*100.0 2.2.14以下不正确的叙述是(D)。 A)在C语言中,逗号运算符的优先级最低 B)在C语言中,APH和aph是两个不同的变量 C)若a和b类型相同,在执行了赋值表达式a=b后b中的值将放入a中,而b中的值不变 D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值 2.2.15以下正确的叙述是(D)。 A)在C语言中,每行中只能写一条语句 B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数 C)在C程序中,无论是整数还是实数,都能被准确无误地表示 D)在C程序中,%是只能用于整数运算的运算符 2.3编程题 2.2.1编写一程序,求出给定半径r的圆的面积和周长,并输出计算结果。 其中,r的值由用户输入,用实型数据处理。 #include #definePI3.14159 voidmain() { floatr,c,s; printf("inputthe半径"); scanf("%f",&r); c=2*PI*r; s=PI*r*r; printf("周长为%5.2f,面积为%5.2f\n",c,s); } 2.2.2已知华氏温度和摄氏温度之间的转换关系是: C=5/9*(F-32)。 编写一程序,将用户输入的华氏温度转换为摄氏温度,并输出结果。 #include voidmain() { floatc,f; printf("inputthe华氏温度"); scanf("%f",&f); c=5.0/9*(f-32); printf("华氏温度为%5.2f,摄氏温度为%5.2f\n",f,c); } 习题三 3.1填空题 3.1.1程序的三种基本结构是顺序、选择、循环。 3.1.2执行(a=3.0+5,a*4),a+=-6;变量a及表达式的值分别为2.0,2.0 3.1.3下列语句被执行后的执行结果是1\abc\def。 inta=1; printf(“%d\\%s\\%s”,a,”abc”,”def”); 3.1.4getchar()函数的作用是从键盘上接收一个字符。 3.1.5运行以下程序后,用户输入123456abc,输出结果为123,45,6。 voidmain() {inta,b; charc; scanf("%3d%2d%3c",&a,&b,&c); printf("%d,%d,%c",a,b,c); } 3.1.6下面程序的输出结果是1112。 #include voidmain() {inti=10; {/*inti=20;*/ i++; printf(“%d”,i++); } printf(“%d\n”,i); } 3.1.7下面程序运行后,从键盘输入30,则程序的输出结果是a=31,Ha=1f,Oa=37。 voidmain() {inta; scanf(”%d”,&a); a++; printf(“a=%d,Ha=%x,Oa=%o”,a,a,a); } 3.1.8下面程序的输出结果是a=-3 b=’D’ “END”。 voidmain() {inta,b=68; a=-3; printf(“\ta=%d\n\tb=\’%c\’\n\”end\”\n”,a,b);} 3.1.9下面程序的输出结果是13.7000000。 #include #include main() {inta=1,b=4,c=2; floatx=10.5,y=4.0,z; z=(a+b)/c+sqrt((double)y)*1.2/c+x; printf(“%f\n”,z); } 3.1.10下面程序运行后,若输入a=2,b=3结果是x1=6.00 x2=0.67。 voidmain() {floata,b,x1,x2; scanf(“a=%f,b=%f“,&a,&b); x1=a*b; x2=a/b; printf(“x1=%5.2f\nx2=%5.2f\n”,x1,x2); } 3.2选择题 3.2.1指出下面正确的输入语句是(B)。 A)scanf(“a=b=%d”,&a,&b);B)scanf(“a=%d,b=%f”,&m,&f); C)scanf(“%3c”,c);D)scanf(“%5.2f”,&f); 3.2.2执行scanf(“%d%c%f”,&a,&b,&c)语句,若输入1234a12f56则变量a,b,c的值为(C)。 A)a=1234b=’a’c=12.56B)a=1b=’2’c=341256 C)a=1234b=’a’c=12.0D)a=1234b=’a12’c=56.0 3.2.3执行scanf(“a=%d,b=%d”,&a,&b)语句,若要使变量a和b的值分别为3和4,则正确的输入方法为(C)。 A)3,4B)a: 3b: 4C)a=3,b=4D)34 3.2.4设b=1234,执行printf(“%%d@%d”,b)语句,输出结果为: (D)。 A)1234B)%1234C)%%d@1234D)%d@1234 3.2.5若x是int型变量,y是float型变量,所用scanf语句为scanf(“x=%d,y=%f”,&x,&y);正确的输入操作是(A)。 A)x=10,y=66.6<回车>B)1066.6<回车> C)10<回车>66.6<回车>D)x=10<回车>y=66.6<回车> 3.2.6设a,b均是int型变量,则以下不正确的函数调用为(D)。 A)getchar();B)putchar(‘\108’); C)scanf(“%d,%2d”,&a,&b);D)putchar(‘\’); 3.2.7下列程序的执行结果是(C)。 #include voidmain() {inta=5; floatx=3.14; a*=x*(‘E’-‘A’); printf(“%f\n”,(float)a);} A)62.800000B)62C)62.000000D)63.000000 3.2.8若输入2.50,下列程序的执行结果是(A)。 voidmain() {floatr,area; scanf(“%f”,&r); printf(“area=%f\n”,area=1/2*r*r);} A)0B)3.125C)3.13D)程序有错 3.3编程题 3.3.1编写程序,从键盘上输入2个整数给变量a和b,交换a、b值然后输出。 //参考程序 #include voidmain() {inta,b,temp; scanf("%d%d",&a,&b); printf("\n交换前: a=%d,b=%d\n",a,b); temp=a;a=b;b=temp; printf("交换后: a=%d,b=%d\n",a,b); } 3.3.2试编写一个程序,任意输入一个小写字母,分别按八进制、十进制、十六进制、字符格式输出。 //参考程序: #include voidmain() {charc; printf("请输入1个小写字母: \n"); scanf("%c",&c); printf("八进制: %o\n十进制: %d\n",c,c); printf("十六进制: %x\n字符: %c\n",c,c); } 3.3.3输入一个华氏温度,要求输出摄氏温度,输出要有文字说明,取2位小数。 公式为: //参考程序: #include voidmain() {floatc,f; printf(“请输入一个华氏温度: \n”); scanf(“%f”,&f); c=5.0/9*(f-32); printf(“华氏温度F=%.2f\n”,f); printf(“摄氏温度c=%.2f\n”,c); } 3.3.4设圆半径r=3,圆柱高h=4,求圆周长、圆面积、圆球表面积、圆球体积、圆柱体积。 用scanf输入数据,输出计算结果,输出时要求有文字说明,取小数点后2位数字。 请编程序。 //参考程序: #include #definePI3.1415926 voidmain() {floatr,h,c,s1,s2,v1,v2; printf(“请输入圆半径,圆柱高: ”); scanf(“%f,%f”,&r,&h); c=2*PI*r;s1=PI*r*r;s2=4*PI*r*r; v1=4/3*PI*r*r*r;v2=s1*h; printf(“r=%.2f,h=%.2f\n”,r,h); printf(“圆周长=%.2f,圆面积=%.2f\n”,s1,s2); printf(“圆体积=%.2f,圆柱体积=%.2f\n”,v1,v2); } 习题四 4.1填空题 4.1.1表示条件: 10 4.1.2若要求在if后一对圆括号中表示a不等于0的关系,则能正确表示这一关系的表达式为a。 4.1.3若已知a=10,b=20,则表达式! a 4.1.4当a=3,b=2,c=1时,表达式f=a>b>c的值是0。 4.1.5设y为int型变量,请写出描述“y是奇数”的表达式y%2! =0。 4.1.6设x,y,z为int型变量,请写出描述“x或y中有一个小于z”的表达式x 4.1.7已知a=7.5,b=2,c=3.6,表达式a>b&&c>a||a c>b的值是1。 4.1.8假设a=5,b=2,c=4,以下表达式的值依次为: 0,1,1,1。 (1)a%b*c&&c%b*a (2)b%c*a&&
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 习题集 答案 解析