1、C语言程序设计习题参考答案 习 题 1 一、判断题 1.在计算机中,小数点和正负号都有专用部件来保存和表示。 2.二进制是由0和1两个数字组成的进制方式。 3.二进制数的逻辑运算是按位进行的,位与位之间没有进位和借位的关系。 4.在整数的二进制表示方法中,0的原码、反码都有两种形式。 5.有符号数有三种表示法:原码、反码和补码。 6.常用字符的ASCII码值从小到大的排列规律是:空格、阿拉伯数字、大写英文字母、小写英文字母。 解:1.F 2.T 3.T 4.T 5.T 6.T 二、单选题 1.在计算机中,最适合进行数值加减运算的
2、数值编码是 。 A. 原码 B. 反码 C. 补码 D. 移码 2.已知英文小写字母m的ASCII码为十进制数109,则英文小写字母y的ASCII码为十进制数 。 A. 112 B. 120 C. 121 D. 122 3.关于ASCII码,在计算机中的表示方法准确地描述是 。 A. 使用8位二进制数,最右边一位为1 B. 使用8位二进制数,最左边一位为1 C. 使用8位二进制数,最右边一位为0 D. 使用8
3、位二进制数,最左边一位为0 4.设在机器字长4位,X=0111B,Y=1011B,则下列逻辑运算中,正确的是___________。 A. X∧Y=1000 B. X∨Y=1111 C. X⊕Y=0011 D. ¯Y =1000 5.下列叙述中正确的是( )。 A.高级语言就是机器语言 B.汇编语言程序、高级语言程序都是计算机程序,但只有机器语言程序才是计算机可以直接识别并执行的程序 C.C语言因为具有汇编语言的一些特性,所以是汇编语言的一种 D.C源程序经过编译、连接,若正确,执行后就能得到正确的运行结果 6.用C语言编写的源程序经过编译后,若没
4、有产生编译错误,则系统将( )。 A.生成可执行文件 B.生成目标文件 C.输出运行结果 D.自动保存源文件 7.下列叙述中不正确的是( )。 A.main函数在C程序中必须有且只有一个 B. C程序的执行从main函数开始,所以main函数必须放在程序最前面 C. 函数可以带参数,也可以不带参数。 D. 每个函数执行时,按函数体中语句的先后次序,依次执行每条语句 解:1.C 2.C 3.D 4.B 5.B 6.B 7.B 三、填空题 1.(87.625)10=( )2=( )8=(
5、 )16
2.(1001010111001.10111)2=( )8=( )16=( )10
3.输入三个数,计算并输出三个数的和与三个数的乘积。
程序如下:
#include
6、
printf("%d\n",s);
}
*4. 输入三角形三条边的边长,计算并输出三角形的面积。
根据三条边的边长,计算三角形面积的公式如下:
程序如下:
#include
7、 dime=sqrt(s*(s-x)*(s-y)*(s-z)); } 解:1.1010111.101 127.5 57.A 2.11271.56 12B9.B8 4793.71875 3.scanf("%f%f%f",&a,&b,&c); z=a*b*c; printf("%f",z); 4.s=(x+y+2
8、)/2; printf("%f",dim);
四、编程题
1.仿照例1.1,编程序在屏幕上显示:
*****************************
Merry Christmas!
Happy New Year!
*****************************
解:#include
9、erry Christmas!\n");
printf(" Happy New Year!\n");
printf("*****************************\n");
}
2.仿照例1.2编程,输入一个整数,计算这个数的平方。
解:#include
10、 printf("%d*%d=%d\n",a,a,z);
}
*3.仿照例1.3编程,输入两个数后,输出其中较小值。
解:#include 11、canf("%f %f",&a,&b);
mindata=min(a,b);
printf("较小数:%f\n",mindata);
}
*4.仿照例1.2编程,输入a、b后,输出一元一次方程ax+b=0的解。
解:#include 12、"x=%f\n",x);
}
*5.仿照例1.2编程,输入圆柱体的半径和高,计算并输出圆柱体的体积。
解:#include 13、类型数据在其数值范围内可以表示任何实数。
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 14、 (7)F (8)T (9)T (10)F
二、指出下列各项中哪些是C语言中的常量,并指出其类型
10,150 007 –0x3d π 1e0 e1 o7o8
‘x’ ‘xo’ 1.52e0.5 sin(3) 0xf16 ‘\a’ ‘\009’
1.414E+2 2.54 ‘\\’ ‘a’+2 0x100h 0128 10L
解:合法的C常量有:
整型常量: 007 15、–0x3d 0xf16 10L
实型常量: 1e0 1.414E+2
字符型常量:‘x’ ‘\a’ ‘\\’
三、指出下列各项中哪些是C语言中的用户标识符
x_1 X_2 High printf β 3DS i/j
e2 -e2 count Int number $23 next_
sizeof IF sum_12 _123# NO 16、1: double for
解:C的用户标识符有:x_1 X_2 High e2 count Int number
next_ IF sum_12
四、单项选择题
1.C语言中,char型数据在内存中的存储形式是( )。
A.原码 B.反码 C.补码 D.ASCII码
2.若有定义语句“char c='\72';”则变量c( )。
A.包含1个字符 B.包含2个字符 C.包含3个字符 D.定义不合法
3.C语言中的基本数据类型包括( )。
A.整型、实型、逻辑型 17、 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.1 2 B.1,2 C.a=1,b=2 D.a=1 b=2
6.设c为字符 18、型变量值为‘A’,a为整型变量值为97,执行语句“putchar(c);putchar(a);”后,输出结果为( )。
A.Aa B.A97 C.A9 D.aA
7.已知字母A的ASCII码值为65,以下语句段的输出结果是( )。
char c1='A',c2='Y'; printf("%d,%d\n",c1,c2);
A.输出格式非法,输出错误信息 B.65,90
C.A,Y D.65,89
8.若要使用输入语句“scanf("%4d%4d%10f",&i,&j,&x);”,为i输入-10,为j输入12,为x输入345.67,则正确的输入形式是( )。 19、
A.–1012345.67↙ B.–10 12 345.67↙
C.–10001200345.67↙ D.–10,12,345.67↙
9.能正确地定义符号常量的是( )。
A.#define n=10 B.#define n 10 C.#define n 10; D.#DEFINE N 10
10.在C语言中,int、char、short三种类型数据在内存中所占的字节数( )。
A.由用户自己定义 B.均为2个字节 C.是任意的 D.由机器字长决定
解:(1) D (2) A (3) B (4) D (5) C (6) A (7) 20、D (8) B (9) B (10) D
五、填空题
1.char ch='$';float x=153.4523;
语句“printf("%c%–8.2f\\n",ch,x);”的输出结果是 。
解:$153.45 \n
2.int i=123;float x= – 1234.56789;
语句“printf("i=%5d x=%7.3f\n",i,x);”的输出结果是 。
解:i= 123 x=-1234.568
3.char c='a';int a=65;
语句“putchar(c+1);p 21、utchar(a);”的输出结果是 。
解:bA
4.int a=98;
语句“printf(“%d,%c,%o,%x”,a,a+1,a+2,a+3);”的输出结果是 。
解:98,c,144,65
5.int k; float f;
语句“scanf(“%3d%*4d%6f”,&k,&f);”执行时输入 12345678765.43↙
则 k= ,f= 。
解:k=123 f=8765.4
6.使用pow()函数时,程序的开头必须写一条预处 22、理命令: 。
解:#include 23、
解:-(a2+b2)×y4 的C表达式:-(a*a+b*b)*pow(y,4)
的C表达式:(sqrt(2)+10*10)/(pow(tan(x),-1)+3.141593)
的C表达式:sqrt(pow (fabs (sin(x)),3.5))
的C表达式:pow(x,6)-exp(5)
的C表达式:(1.0/2*a*b+c+d)/(a+2*b-(c+d)/c/d)
二、按照要求,写出下列C的表达式。
1.写出int类型变量x为“奇数”的表达式。
解:x%2==1
2.Int类型变量x、y、z,写出描述“x或y中有且仅有一个小 24、于z”的表达式。
解:x 25、32?1:0
7.int类型变量a、b均为两位正整数,写出判断a的个位数等于b的十位数、且b的个位数等于a的十位数的逻辑表达式。
解:a%10==b/10&&a/10==b%10
8.写出判断某个人是否是成年人(年龄大于21),且不是老年人(年龄大于65)的逻辑表达式。
解:y>21&&y<=65
9.写出取变量a、b、c中最大值的条件表达式。
解:(a>b?a:b)>c?(a>b?a:b):c
10.若字符变量ch为小写字母,则将其转换为对应的大写字母。
解:ch=ch>='a'&&ch<='z'?ch-32:ch
三、单项选 26、择题
1.设int x=3,y=4,z=5;,下列表达式中值为0的是( )。
A.'x'&&'y' B. x<=y C.x||y+z&&y–z D. !((x






