《C语言及程序设计》在线作业答案由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“c语言程序设计作业三”。
一、单选题(共 15 道试题,共 75 分。)V 1.合法的C语言标识符是()。A.abc B.2ab C._a1 D./n
满分:5 分
2.有两个字符数组a、b,则以下正确的输入
语句是()。A.gets(a,b);B.“scanf(”“%s%s”“,a,b);” C.“scanf(”“%s%s”“,a,b);” D.“gets(”“a”“),gets(”“b”“);”
满分:5 分
3.若运行以下程序时,从键盘输入25,13,10回车,则输出结果为()。
main(){inta1,a2,a3;scanf(“%d%d%d”,a1,a2,a3);printf(“a1+a2+a3=%
dn”,a1+a2+a3);} A.a1+a2+a3=48 B.a1+a2+a3=25 C.a1+a2+a3=10 D.不确定值
满分:5 分
4.以下为一维整型数组a的正确说明是
()。A.inta(10);B.“intn=10,a[n];” C.“intn;scanf(”“%d”“,n);” D.“#defineSIZE10;inta[SIZE];inta[n];”
满分:5 分
5.以下能对二维数组a进行正确初始化的语句是()。
A.inta[2][]={{1,0,1},{5,2,3}};B.“inta[][3]={{1,2,3},{4,5,6}};” C.“inta[2][4]={{1,2,3},{4,5},{6}};” D.“inta[][3]={{1,0,1},{},{1,1}};”
满分:5 分
6.函数rewind(fp)的作用是:使文件位置
指针()。A.重新返回文件的开头 B.返回到前一个字符的位置
C.指向文件的末尾
D.自动移至下一个字符的位置
满分:5 分
7.以下叙述中不正确的是()
A.在C程序中,调用函数时,只能把实参的值传送给形参,形参的值不
能传送给实参
B.在C程序的函数中,最好使用全局变量 C.在C程序中,形参只是局限于所在函数 D.在C程序中,函数名的存储类别为外部
满分:5 分
8.以下程序段()。intx=1,y=4;printf(x
B.输出:x=1 C.输出:y=1 D.输出:y=4
满分:5 分
9.下列四组选项中,均是不合法的用户标识符的选项是______。
A.AP_0do B.floatgoto_A C.b-agotoint D._123tempINT
满分:5 分
10.已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句
ch1='A'+'6'-'3';后,ch1中的值为()。
A.D B.68
C.一个不确定的值
D.C
满分:5 分
11.若x为float型变量,则以列程序段结果是()x=1234.6789;printf(“%-
2.1f”,x);
A.输出格式描述符的域宽度不够,不能输
出
B.输出为1234.7
C.输出为1234.6 D.输出为-1234.6
满分:5 分 12.sizeof(float)是()。A.双精度型表达式 B.一个整型表达式 C.一个函数调用 D.一个不合法的表达式
满分:5 分 13.071^052的结果是()
A.32 B.16 C.23 D.22
满分:5 分
14.若有定义:intx=7;floata=2.5,b=4.7;则表达式a+x%3*(int)(a+b)%2/4的值是()。
A.2.5 B.2.75 C.3.5
D.0
满分:5 分
15.有下列语句和赋值语句:(1)charstr[]=”iamaboy.”(2)charstr
[12]=”iamaboy.”(3)char*p=”iamaboy.”(4)p=”iamaboy.”下列说法正
确的是()A.只有(1)、(2)正确 B.只有(3)、(4)正确 C.只有(1)、(3)、(4)正确
D.只有(3)正确
满分:5 分
1c2c 3 D4d5b6a 7b8c9c 10a
11B12B13A14A15B
二、判断题(共 5 道试题,共 25 分。)V 1.声明语句int a[]={0};可以对
一维数组a进行正确初始化。
A.错误
B.正确
T满分:5 分
2.在c语言中,函数形参的存储类型是自
动类型的变量 A.错误 B.正确
F 满分:5 分
3.函数必须有返回值,否则不能使用函数
A.错误 B.正确
F 满分:5 分
4.已知int a[]={1,2,3,4},y,*p=&a[1];则执行语句y(*--p)++;变量y的值是3。
A.错误 B.正确
F 满分:5 分
5.C语言fread()函数的功能是从文件fp中读取n个字符存入指定的内存
。A.错误 B.正确
T 满分:5 分
第一章 程序设计算法概述
一.选择题
(一)基本概念
1、一个C语言程序总是从()。
A、主过程开始执行
B、主
函数开始执行
C、子程序开始执行
D、主
程序开始执行
【答案】B2、下面四个选项中,均是C语言关键字的选项是()。
A、auto enum include
B、switch typedef continue
C、signed union scanf
D、if
struct type
【答案】B3、下面四个选项中,均是合法整型常量的选项是()。
A、160-0xffff 01B、-0xcdf 01a 0xe
C、-01 986,012 0668
D、-0x48a 2e5 0x
【答案】A4、以下不正确的C语言标识符是()。
A、int
B、a_1_2
C、ab1exe
D、_x
【答案】A5、以下是正确的C语言标识符是()。
A、#define
B、_123
C、%d
D、n
【答案】B6、下列四组选项中,均不是C语言关键字的选项是()。
A、define IF type
B、getc
char printf
C、include scanf case
D、while
go pow
【答案】A7、下列不属于C语言关键字的是()。
A、default
B、register
C、enum
D、external
【答案】D8、合法的C语言标识符是()。
A、ab&c
B、2ab
C、_a1
D、/n
【答案】C9、下列四组选项中,均是不合法的用户标识符的选项是______。
A、A P_0 do
B、float goto _A
C、b-a goto int
D、_123 temp INT
【答案】C
二.填空题
1.在C语言中的实型变量分为两种类型,它们是
和。
【答案】单精度型(或float型)
双精度型(或:double型)
2.C语言规定,可执行程序的开始执行点是。
【答案】程序中的main()函数
3.C语言中三中基本的程序结构
是、和。
【答案】顺序结构;分支(选择)结构;循
环结构
4.一个C源程序必须包含一个。
【答案】main函数
5.在C语言中,char型数据在内存中的存
储形式是。
【答案】ASCII码
6.用计算机实现算法的过程称
为。
【答案】程序设计
7.C源程序的基本单位是。
【答案】函数
8.int型数据(2byte)可表示的数值范围
为。
【答案】-32768—32767
9.C语言的标识符只能由三种字符组成,它们是
【答案】字母、数字、下划线
三.判断题:(正确:T;错误:F)
1.在C程序中main函数必须位于程序的最
前面
【答案】F
2.C语言本身没有输入输出语句
【答案】T
3.一个C源程序可由一个或多个函数组成【答案】T
4.在C程序中,注释说明只能位于一条语
句的后面
【答案】F
四.简答-完善程序-分析程序
1、c语言程序的总体结构是怎样的。
【答案】
一个完整的c语言程序,是由一个、且只能由一个main()函数(又称主函数)和若
干个其他函数结合而成的,或仅由一个
main()函数构成。
2、c语言程序的基本单位是什么?它的结构
又如何?
【答案】
函数是c语言程序的基本模块单元。
任何函数(包括主函数main())都是由函数说明和函数体两部分组成。其一般结构如
下:
[函数类型]
函数名(函数参数表)
{ 说明语句部分;
执行语句部分;}
3、主函数main()在程序中的地位如何。程序总是从哪个函数开始执行,到哪个函数执
行完后结束?
【答案】
main()函数的作用相当于其他高级语言中的主程序;其他函数的作用相当于子程序。
一个c语言程序,总是从main()函数开始执行,而不论其在程序中的位置。当主函数执行完毕时,亦即程序执行完毕。习惯上,将主函数main()放在最前头。
4、C语言用户标识符的定义方式是什么?
【答案】
c语言规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线,同时c语言还规定标识符不能为
c语言的关键字。
5、说明算法可以采用哪几种控制结构组合。
【答案】
算法的控制结构给出了算法的基本框架,不仅决定了算法中各操作的执行顺序,也直接反映了算法的设计是否符合结构化原则。一个算法一般可以用顺序、选择、循环三种基本控制结构,通过顺序或嵌套组合而成。
6、算法的基本特征是什么?
【答案】
一个算法,一般应具有以下几个基本特征。可行性、确定性、有穷性、一个输入、零个
或多个输出。
7、常见的过程设计工具有哪些?为什么可以N-S图代替传统的程序流程图?
【答案】
常见的过程设计工具有:程序流程图、N-S图、PAD图和HIPO图。为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图
称为N-S图。
8、“在源文件的一行上可以有多条预处理命令”是否正确,为什么?
【答案】
通常,预处理命令位于源文件的开头,也可以写在函数与函数之间;不能在一行上写多条预处理命令:宏名一般习惯用大写字母表示,以便与变量名相区别,但这并非规定,也可用小写字母。
五.程序设计题
1.已知三角形的三边长,求其面积。假设输入的三边能构成三角形,三角形的面积公式
为:
Area=,其中S=(a+b+c)/2。
【参考答案】
#include “math.h”
Main()
{ Float a,b,c,s,area;
Printf(“请输入三角形的三边:”);
Scanf(“%f,%f,%f”,&a,&b,&c);
S=(a+b+c)/2.0;
Area=sqrt(s*(s-a)*(s-b)*(s-c));
Printf(“三角形的三边为:%7.2f, %7.2f, %7.2fn”,a,b,c);
Prinft(“三角形的面积为:%7.2fn”,area);
}
2.编写程序读入3个双精度数,求它们的平均值,并保留此平均值小数点一位,对小数点后第二位进行四舍五入,并输出结果。
【参考答案】
#include “stdio.h”
mian()
{ double x,y,z;
double aver;
long temp;
printf(“n请输入三个双精度数:”
scanf(“%lf%lf%lf”,&x,&y,&z);
aver=(x+y+z)/3;
temp=aver*10;
temp=(aver*10-temp)*2+temp;
aver=temp/10.0;);
printf(“n平均值为:%.1lf”,aver);
}
3.输入两个整数,求出它们的商数和余数并
进行输出。
【参考答案】
#include “stdio.h”
main()
{ int x,y;
int shang ,yu;
printf(“n请输入两个整数:”);
scanf(“%d%d”,&x,&y);”
shang=x/y;
yu=x%y;
printf(“%d%d的商为:%d,余数为%d”,x,y,shang,yu);
}
第二章 数据类型、运算符与表达式
一.选择题
1、若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=16,c=32)后num的值为()。
A、4B、16
C、32 C
D、52
【答案】C2、若有变量说明:int a=0,b=0,c=0;,以下符合C语言语法的赋值表达式是()。
A、a=9+b+c=a+9
B、a=9+b;c=a+9;
C、a=(9+b,b++)
D、a=9+b++=a+7
【答案】C3、若有以下类型说明语句:char a;int b;float c;double d;则表达式a*b-2*d+c的结果类型为()。
A、float
B、char
C、int
D、double
【答案】D4、下面四个选项中,均是合法浮点数的选
项是()。
A、+1e+1 5e-9.4 03e2
B、-.60
12e-4-8e5
C、123e 1.2e-.4 +2e-1
D、-e3.8e-4 5.e-0
【答案】B5、下面四个选项中,均是合法转义字符的选项是()。
A、''' '' 'n'
B、''
' 17' '“'
C、' 18' 'f' 'xab'
D、' '
'101' 'xlf'
【答案】A
6、下面正确的字符常量是()。
A、'X17'
B、'80'
C、''
D、”n“
【答案】C
7、下面四个选项中,均是正确的数值常量或字符常量的选项是()。
A、0.0 0f 8.9e '&'
B、”a“
3.9E-2.5 1e1 '”'
C、'3' 011 0xFF00 0a
D、+001
0xabcd 2e2 50.【答案】D8、已知字母A的ASCII码为(65)10,变量ch1为字符型,则执行语句ch1='A'+'6'-'3';后,ch1中的值为()。
A、D
B、68
C、一个不确定的值
D、C
【答案】A9、若有定义:int x=7;float a=2.5,b=4.7;则表达式a+x%3*(int)(a+b)%2/4的值是()。
A、2.500000
B、2.7500000
C、3.500000
D、0.000000
【答案】A10、sizeof(float)是()。
A、双精度型表达式
B、一个整型表达式
C、一个函数调用
D、一个不合法的表达式
【答案】B11、设int类型的数据长度为2个字节,则unsigned int类型数据的取值范围是()。
A、0~25
5B、0~65535
C、-32768~+32767
D、-256~+255
【答案】B12、若有以下定义:int m=7,n=12;则能得到值为3的表达式是()。
A、n%=(m%=5)
B、n%=(m-m%5)
C、n%=m-m%
5D、(n%=m)-(m%=5)
【答案】D13、若有说明:int a=1,b=2,c=3,d=4;则表达式a
)。
A、4B、C、D、1
【答案】D14、putchar函数可以向终端输出一个()。
A、整型变量值
B、实型变量值
C、字符串
D、字符或字符型变量值
【答案】D15、若运行以下程序时,从键盘输入25,13,10,则输出结果为()。
main()
{
int a1,a2,a3;
scanf(“%d%d%d”,&a1,&a2,&a3);
printf(“a1+a2+a3=%dn”,a1+a2+a3);
}
A、a1+a2+a3=48
B、a1+a2+a3=25
B、a1+a2+a3=10
D、不确定值
【答案】D
16.若有定义int a=2,b=9,k;k=a+b++/a++;则k的值是()
A、6.5
B、7
C、6
D、8
【答案】C
17.标有/* */语句的输出结果为()
int x=20;
printf(“%d,%o,%x”,x,x,x);/*
*/
A、20,20,20
B、20,24,14
C、20,14,24
D、20,024,14
【答案】B
18.若x为float型变量,则以列程序段结果
是()。
x=1234.6789;
printf(“%-2.1f”,x);
A、输出格式描述符的域宽度不够,不能输出
B、输出为1234.7
C、输出为1234.6
D、输出为-1234.6
【答案】B
19.下列语句中,符合语法的语句式()。
A、a+b=3
B、a=7
C、a=c+b+3=6;
D、a=8,b=a+7;
【答案】D
20.C语言中,逻辑“真”等价于()。
A、大于零的数
B、大于零的整数
C、非零的数
D、非零的整数
【答案】C
21.已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为()。
Char a=„a‟;
a--;
printf(“%d,%cn”,a+„2‟-„0‟,a+„3‟-„0‟);
A、a,c
B、a—运算不合法,故有语法错误
C、98,c
D、)格式描述和输出项不匹配,输出无定值
【答案】C
22.对于条件表达式(M)?(a++):(a--),其中的表达式M等价于()。
A、M= =0
B、M= =1
C、M!=0
D、M!=1
【答案】C
23.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是()。
A、(2>x>-2)||(4>x>8)
B、((x=2)||((x>4)||(x>=8))
C、(x=-2)&&(x>4)&&(x
D、(x>-2)&&(x>4)||(x
【答案】D
24.定义a为整型,下列表达式a=3>6的运行后,a的值为()。
A、0
B、1
C、3
D、表达式错误
【答案】A
25.若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式
()。
int a;float b;
scanf(“a=%d,b=%f”,&a,&b);
A、12 13.6
B、a=12, b=13.6
C、12, 13.6
D、a=12
b=13.6
【答案】B
26.以下程序段()。
int x=1,y=4;
printf(x
A、输出控制格式错误
B、输出:x=1
C、输出:y=1
D、输出:y=4
【答案】C
27.下面程序的输出是()。
main()
{
int x=10,y=3;
printf(“%dn”,y=x%y);
}
A、0
B、1
C、3
D、不
确定的值
【答案】B
二.填空题
1.若有定义int m=5,y=2;,则执行表达式y+=y-=m*=y后y的值是____
__。
【答案】-16.2.能表达“10
。
【答案】x>10&&x>200||x
3.表达整型变量a能被3整除但不被5整除的表达式是____
__。
【答案】a%3==0&&a%5!=0
4.C语言中唯一的三元运算符是。
【答案】?
5.设有:int a=1,b=2,c=3,则!(a>b)&&!c||
1的值为。
【答案】1
6. Sizeof(float)是。
【答案】一个整型表达式
7.当m=2,n=1,a=1,b=2,c=3时,执行完d =(m=a!=b)&&(n=b>c)后;n的值为,m的值为。
【答案】0 1
8.设I,J和K是int型变量,且I=3,J=4,K=5,则表达式!((I
是。
【答案】0
9.判断char型变量c1是否为小写字母的正确表达式为。
【答案】(c1>= ’a’)&&(c1
10.若a=5,b=2,c=1,则表达式a-b
。
【答案】0
11.若a是int型变量,且a的初值是6,则计算表达式a+=a-=a*a后a的值__
____。
【答案】-60
12.假设x=5,y=6,则表达式x++*++y的值为
______。
【答案】35
13.x2/(3x+5)的C表达式为。
【答案】x*x/(3*x+5)
14.若有说明:int m=5,y=2;则执行表达式y+=y-+m*=y后的y值是
【答案】y=-16
15.在C语言中,表示逻辑“真”值用
【答案】非0数字
16.若w=1,x=2,y=3,z=4,则条件表达式w
。
【答案】1
17.若a是int型变量,则计算表达式a = 25/3%3后a的值为。
【答案】 2
18.C语言提供的三种逻辑运算符是、和。
【答案】 && ||!
19.设ch是char类型变量,其值是A,则
表达式ch=(ch>='A'&&ch
是。
【答案】 a
20.若有定义:int a=8,b=5,c;,执行语句c=a/b+0.4;后,c的值为。
【答案】 2
21.设a=3,b=4,表达式a>b?b:a的值
是。
【答案】 3
22.表达式(int)3.6*3的值为。
【答案】9
23.标有/* */语句的输出结果为。
int x=20;
printf(“%d,%o,%x”,x,x,x);/*
*/
【答案】20,24,14
24.如果x、i、j和k都是int型变量,则计算表达式x=(i=4,j=16,k=32)后,x的值为
______。
【答案】32
三.判断题:(正确:T;错误:F)
1.当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实
型数值
【答案】F
2.在C程序中,逗号运算符的优先级最低
【答案】T
3.在C程序中,APA和apa是两个不同的变量
【答案】T
4.如果a和b类型相同,在计算了赋值表达式a=b后b中的值将放入a中,而b中的值
保持不变。
【答案】T
5.在C程序中,%是只能用于整数运算的运算符。
【答案】T
6.代数式2lnxcosx/3x,正确的c语言表达式是2*log(x)*cos(x)/(3*x)
【答案】T
7.sizeof(float)是一个整型表达式
【答案】T
8.有变量说明:int a=0,b=0,c=0;则表达式a=9+b++=a+7是符合c语言语法的赋值表达
式。
【答案】F
四.简答-完善程序-分析程序
1、c语言中不同数据类型的数据在运算是采用的规则是什么?
【答案】
c语言中,各类数值型数据在进行混合运算时,不同类型的数据要先转换成同一类型,然后进行运算。转换的规则为:总是转换为精度更大的数据类型,字符数据转换为整数,short型转为int型,float型数据在运算时转换成双精度型,以提高运算精度。
2、字符(char)型数据在微机内存中以什么形
式存储?
【答案】
将一个字符常量放到一个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的ASCII码值放到存储单元
中。
3、数据处理的最小单位是什么?
【答案】
数据处理的最小单位是数据项;由若干数据项组成数据元素;而数据是指能够被计算机识别、存储和加工处理的信息载体;数据结构是指数据之间的相互关系和数据运算。
4、若变量a是int类型,分析在执行了语句:a='A'+1.056;后a的值多少?
【答案】
在赋值表达式中,赋值符右边的值的类型会自动转换成赋值符左边的变量的类型。在本题中,先用“A”的ASCII码(65)值加上1.056得到66.056,将其强制转换成int型,实数的小数部分全部清除保留证书部分。所
以a的值为66。
5、c语言的基本类型数据有哪几种?
【答案】
[signed]char;unsigned char;[signed]short[int];unsigned short[int];[signed]long[int];unsigned long[int];float;
double.
6、分析下面程序的执行过程,给出输出结
果。
main()
{ int a=5,b=4,c=6,d;
printf(“%d\n”,d=a>c?(a>c?a:c):(b));
} 【答案】
本题最重要的语句在于d=a>c?(a>c?a:c):(b)),首先运算括号内的式子a>c?a:c,它的值是c的值6,即式子化成d=a>c?6:4。显然a=c,所以将4赋给d。
7、分析下面程序的执行过程,给出输出结
果。
main()
{ int a=4,b=8,c;
c=(“b==a)&&(a+b!=20);
printf(”%d,%d,%d\n“,a,b,c);
}
【答案】
如果在表达中出现多种运算符时,一定要按照他们的优先级别进行运算,否则其结果可能会产生错误。本题中,由于赋值表达中式c=(a/b==a)&&(a+b!=20)中有两个括号,而且两个括号是进行逻辑与运算。当第1个括号内的值为假时,不管后面括号内的值是否为假,两个括号内的值进行逻辑与(&&)运算时,其结果肯定为假。所以结果为:4,8,0
第三章 程序控制结构
一.选择题
1.对下面的程序说法正确的是(main()
{int x+3,y=0,z=0;
if(x=y+z)
printf(“****”);
else)。
printf(“####”);
}
A、有语法错误,不能通过编译
输出为****
C、输出为# # # #
通过编译,但是不能运行
【答案】C
2.程序的结果为()
main()
{
int a=3,b=4,t=1;
if(a>b)
B、D、