C语言程序设计习题参考题答案.docx
《C语言程序设计习题参考题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计习题参考题答案.docx(42页珍藏版)》请在冰豆网上搜索。
![C语言程序设计习题参考题答案.docx](https://file1.bdocx.com/fileroot1/2022-11/17/5b54891f-a216-4054-9853-3aaa19c7c378/5b54891f-a216-4054-9853-3aaa19c7c3781.gif)
C语言程序设计习题参考题答案
C语言程序设计习题参考答案
习题1
一、判断题
1.在计算机中,小数点和正负号都有专用部件来保存和表示。
2.二进制是由0和1两个数字组成的进制方式。
3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。
4.在整数的二进制表示方法中,0的原码、反码都有两种形式。
5.有符号数有三种表示法:
原码、反码和补码。
6.常用字符的ASCII码值从小到大的排列规律是:
空格、阿拉伯数字、大写英文字母、小写英文字母。
解:
1.F2.T3.T4.T5.T6.T
二、单选题
1.在计算机中,最适合进行数值加减运算的数值编码是。
A.原码B.反码C.补码D.移码
2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数。
A.112B.120C.121D.122
3.关于ASCII码,在计算机中的表示方法准确地描述是。
A.使用8位二进制数,最右边一位为1
B.使用8位二进制数,最左边一位为1
C.使用8位二进制数,最右边一位为0
D.使用8位二进制数,最左边一位为0
4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。
A.X∧Y=1000B.X∨Y=1111C.X⊕Y=0011D.ˉY=1000
5.下列叙述中正确的是()。
A.高级语言就是机器语言
B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序
C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种
D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果
6.用C语言编写的源程序经过编译后,若没有产生编译错误,则系统将()。
A.生成可执行文件B.生成目标文件
C.输出运行结果D.自动保存源文件
7.下列叙述中不正确的是()。
A.main函数在C程序中必须有且只有一个
B.C程序的执行从main函数开始,所以main函数必须放在程序最前面
C.函数可以带参数,也可以不带参数。
D.每个函数执行时,按函数体中语句的先后次序,依次执行每条语句
解:
1.C2.C3.D4.B5.B6.B7.B
三、填空题
1.()10=()2=()8=()16
2.(.10111)2=()8=()16=()10
3.输入三个数,计算并输出三个数的和与三个数的乘积。
程序如下:
#include<>
voidmain()
{
inta,b,c,s,z;
printf("Pleaseinputabc:
\n");
s=a+b+c;
printf("%d\n",s);
}
*4.输入三角形三条边的边长,计算并输出三角形的面积。
根据三条边的边长,计算三角形面积的公式如下:
程序如下:
#include<>
#include<>
voidmain()
{
doublex,y,z,s,dime;
scanf("%lf%lf%lf",&x,&y,&z);
dime=sqrt(s*(s-x)*(s-y)*(s-z));
}
解:
1.
2.
3.scanf("%f%f%f",&a,&b,&c);z=a*b*c;printf("%f",z);
4.s=(x+y+2)/2;printf("%f",dim);
四、编程题
1.仿照例,编程序在屏幕上显示:
*****************************
MerryChristmas!
HappyNewYear!
*****************************
解:
#include<>
voidmain()
{printf("*****************************\n");
printf("MerryChristmas!
\n");
printf("HappyNewYear!
\n");
printf("*****************************\n");
}
2.仿照例编程,输入一个整数,计算这个数的平方。
解:
#include<>
voidmain()
{inta,z;
printf("请输入一个整数:
\n");
scanf("%d",&a);
z=a*a;
printf("%d*%d=%d\n",a,a,z);
}
*3.仿照例编程,输入两个数后,输出其中较小值。
解:
#include<>
floatmin(floatx,floaty)
{floatm;
if(xelsem=y;
returnm;
}
voidmain()
{floata,b,c,mindata;
printf("请输入二个数:
\n");
scanf("%f%f",&a,&b);
mindata=min(a,b);
printf("较小数:
%f\n",mindata);
}
*4.仿照例编程,输入a、b后,输出一元一次方程ax+b=0的解。
解:
#include<>
voidmain()
{floata,b,x;
printf("请输入a、b:
\n");
scanf("%f%f",&a,&b);
x=-a/b;
printf("x=%f\n",x);
}
*5.仿照例编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。
解:
#include<>
voidmain()
{floatr,h,s,v;
printf("Pleaseinputrandh:
\n");
scanf("%f%f",&r,&h);
v=*r*r*h;
printf("V=%f\n",v);
}
习题2
一、判断题
1.任何变量都必须要定义其类型。
2.C语言的double类型数据在其数值范围内可以表示任何实数。
3.C语言的任何类型数据在计算机内都是以二进制形式存储的。
4.isdigit(‘5’)的结果为0。
5.printf函数中格式符“%c”对应的参数只能是字符类型。
6.按格式符“%d”输出float类型变量时,截断小数位取整后输出。
7.在C语言程序中,ABC与abc是两个相同的变量。
8.scanf函数中的格式符“%d”不能用于输入实型数据。
9.格式符“%f”不能用于输入double类型数据。
10.当格式符中指定宽度时,输出的信息完全取决于所指定的宽度。
解:
(1)T
(2)F(3)T(4)F(5)F(6)F(7)F(8)T(9)T(10)F
二、指出下列各项中哪些是C语言中的常量,并指出其类型
10,150007–0x3dπ1e0e1o7o8
‘x’‘xo’sin(3)0xf16‘\a’‘\009’
+2‘\\’‘a’+20x100h012810L
解:
合法的C常量有:
整型常量:
007–0x3d0xf1610L
实型常量:
1e0+2
字符型常量:
‘x’‘\a’‘\\’
三、指出下列各项中哪些是C语言中的用户标识符
x_1X_2Highprintfβ3DSi/j
e2-e2countIntnumber$23next_
sizeofIFsum_12_123#NO1:
doublefor
解:
C的用户标识符有:
x_1X_2Highe2countIntnumber
next_IFsum_12
四、单项选择题
1.C语言中,char型数据在内存中的存储形式是()。
A.原码B.反码C.补码D.ASCII码
2.若有定义语句“charc='\72';”则变量c()。
A.包含1个字符B.包含2个字符C.包含3个字符D.定义不合法
3.C语言中的基本数据类型包括()。
A.整型、实型、逻辑型B.整型、实型、字符型
C.整型、逻辑型、字符型D.整型、实型、逻辑型、字符型
4.设c1、c2为字符型变量,执行语句“c1=getchar();c2=getchar();”时,从键盘输入A↙,c1和c2的值分别为()。
A.都是‘A’B.c1是‘A’,c2未输入
C.c1未输入,c2是‘A’D.c1是‘A’,c2是‘\n’
5.a、b是整型变量,执行语句“scanf("a=%d,b=%d",&a,&b);”,使a和b的值分别为1和2,正确的输入是()。
A.12B.1,2C.a=1,b=2D.a=1b=2
6.设c为字符型变量值为‘A’,a为整型变量值为97,执行语句“putchar(c);putchar(a);”后,输出结果为()。
A.AaB.A97C.A9D.aA
7.已知字母A的ASCII码值为65,以下语句段的输出结果是()。
charc1='A',c2='Y';printf("%d,%d\n",c1,c2);
A.输出格式非法,输出错误信息B.65,90
C.A,YD.65,89
8.若要使用输入语句“scanf("%4d%4d%10f",&i,&j,&x);”,为i输入-10,为j输入12,为x输入,则正确的输入形式是()。
A.–↙B.–1012↙
C.–.67↙D.–10,12,↙
9.能正确地定义符号常量的是()。
A.#definen=10B.#definen10C.#definen10;D.#DEFINEN10
10.在C语言中,int、char、short三种类型数据在内存中所占的字节数()。
A.由用户自己定义B.均为2个字节C.是任意的D.由机器字长决定
解:
(1)D
(2)A(3)B(4)D(5)C(6)A(7)D(8)B(9)B(10)D
五、填空题
1.charch='$';floatx=;
语句“printf("%c%–\\n",ch,x);”的输出结果是。
解:
$\n
2.inti=123;floatx=–;
语句“printf("i=%5dx=%\n",i,x);”的输出结果是。
解:
i=123x=
3.charc='a';inta=65;
语句“putchar(c+1);putchar(a);”的输出结果是。
解:
bA
4.inta=98;
语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是。
解:
98,c,144,65
5.intk;floatf;
语句“scanf(“%3d%*4d%6f”,&k,&f);”执行时输入.43↙
则k=,f=。
解:
k=123