C教材习题答案.docx
- 文档编号:17112931
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:54
- 大小:35.86KB
C教材习题答案.docx
《C教材习题答案.docx》由会员分享,可在线阅读,更多相关《C教材习题答案.docx(54页珍藏版)》请在冰点文库上搜索。
C教材习题答案
C教材习题答案
习题1
一.填空题
1.C程序是由(函数)构成的,一个C程序中至少包含(main函数)。
因此,(函数)是C程序的基本单位。
2.C程序注释是由(/*)和(*/)所界定的文字信息组成的。
3.函数体一般包括(声明部分)和(执行部分)。
二.判断题
1.一个C程序的执行总是从该程序的main函数开始,在main函数最后结束。
(正确)
2.main函数必须写在一个C程序的最前面。
(错误)
3.一个C程序可以包含若干的函数。
(正确)
4.C程序的注释部分可以出现在程序的任何位置,它对程序的编译和运行不起任何作用。
但是可以增加程序的可读性。
(正确)
5.C程序的注释只能是一行。
(错误)
6.C程序的注释不能是中文文字信息。
(错误)
8.可以使用TurboC来编译和连接一个C程序。
(正确)
9.可以使用TurboC来运行一个C程序。
(正确)
10.可以使用TurboC来实时调试(即动态调试)一个C程序。
(正确)
三、在c++中输入如下的程序,编译、连接通过后显示结果
(1)#include“”
voidmain()
{
printf(“*”)
printf(“***”);
printf(“*****”);
printf(“*******”);
}
答案:
*
***
*****
*******
(2)已知底和高,计算三角形的面积。
#include“”
voidmain()
{intbottom,high,area;/*bottom表示底,high表示高,area表示面积*/
bottom=4;
high=6;
area=bottom*high/2;
printf(“theareais%d\n”,area);
}
答案:
theareais12
四、算法设计:
请试着分别用自然语言或、程序流程图和NS图描述如下算法。
1.设计一个程序在屏幕上显示如下的文字
HELLOWELCOMEYOU
2.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其个位数字立方和等于该数本身。
例如:
153是一个“水仙花数”,因为153=1的三次方+5的三次方+3的三次方。
3.对输入的某学生成绩,如果学习成绩>=90分的同学用A表示,60-89分之间的用B表示,60分以下的用C表示。
4.一个数如果恰好等于它的因子之和,这个数就称为“完数”。
例如6=1+2+3.编程找出1000以内的所有完数。
5.一只猴子摘了N个桃子第一天吃了一半又多吃了一个,第二天又吃了余下的一半又多吃了一个,到第十天的时候发现还有一个,问共有多少个桃子。
答案:
1.#include“”
main()
{
printf(“HELLOWELCOMEYOU”);
}
2.水仙花数产生在100到999之间,利用穷举法,对此范围之内的所有数一个个进行测试,关键是要对每一个三位数分离出它的三个数字。
具体的算法是:
n%10,得到个位,(n/10)%10,得到百位数字,n/100,得到个位数字。
再利用水仙花数的含义来判断该数是否满足条件。
#include“”
main()
{
intn,,i,j,k;
for(n=100;n<=999;n++)
{
i=n%10;
j=(n/10)%10;
k=n/100;
if(i*i*i+j*j*j+k*k*k==n)
printf(“%d\n”,n);
}
}
3.此题用if…elseif来实现。
对于每次输入的成绩,判断它属于哪个等级。
#include""
main()
{
intgrade;
printf("inputgrade=");
scanf("%d",&grade);
if(grade>=90)printf("A\n");
elseif(grade>=60&&grade<=89)printf("B\n");
elseprintf("C\n");
}
4.先考虑一个整数m,如何判断它是否为完数。
从数学知识可知:
一个数m除该数本身外的所有因子都在1~m/2之间。
算法中要取得因子之和,只要在1~m/2之间找到所有的整数m的数,将其累加起来即可。
如果累加起来与m本身相等,则表示m是一个完数,可以将m输出。
#include""
main()
{
intm,i,s;
for(m=2;m<=1000;m++)
{s=0;
for(i=1;i<=m/2;i++)
if(m%i==0)s+=i;
if(m==s)
printf("%d\t",m);
}
printf("\n");
}
5.找出前后两天的数量关系,然后用递推法求解。
设第十天的桃子数目为t,昨天的数为y,则t=y/2-1,得到y=2t+2,这样由今日数目可以求出昨日数目,从最后一天开始,倒退到第一天,倒退的循环次数比天数少1。
所以,若已知第n天只留下一个,问第一天有多少个时,则倒退循环n-1次得到结果。
天数:
10987654321
桃子数目:
14102246941903827661534
#include""
main()
{
inti,t,y,n;
t=1;
printf("\ninputnumbern:
\n");
scanf("%d",&n);
for(i=1;i<=n-1;i++)
{
y=2*t+2;
t=y;
}
printf("thetotalis:
%d\n",y);
}
习题2
一、选择题
C语言基本类型包括(D)
A)整型、实型、逻辑型B)整型、实型、字符型、逻辑型
C)整型、字符型、逻辑型D)整型、实型、字符型
下列四组选项中,均不是C语言关键字的选项是A。
A)defineIFtype
B)getccharprintf
C)includecasescanf
D)whilegopow
语言的字符型数据在内存中的存储形式是(D)
A)原码B)补码C)反码D)ASCII码
C语言的整型数据在内存中的存储形式是(B)
A)原码B)补码C)反码D)ASCII码
已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句c2=‘A’+‘6’-‘3’后,c2中的值为A。
A)DB)68C)不确定的值D)C
以下叙述正确的是C。
A)在C程序中,每行只能写一条语句
B)若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数
C)在C程序中,%是只能用于整数运算的运算符
D)在C程序中,无论是整数还是实数,都能被准确无误地表示
以下叙述不正确的是D。
A)在C程序中,逗号运算符的优先级最低
B)在C程序中,MAX和max是两个不同的变量
C)若a和b类型相同,在计算了赋值表达式a=b后,b中的值将放入a中,二b中的值不变
D)当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入实型数值
下面正确的字符常量是A。
A)“c”B)‘\\’’C)‘’D)‘K’
下列四组选项中,均是合法转义字符的选项是A。
A)‘\”’‘\\’‘\n’
B)‘\’‘\017’‘\”’
C)‘\018’‘\f’‘xab’
D)‘\\0’‘\101’‘xlf’
下列四组选项中,均是不合法的用户标识符的选项是B。
A)WP_0do
B)b-agotoint
C)floatla0_A
D)-123abcTEMP
若x、i、j、k都是int型变量,则计算下面表达式后,x的值为C。
x=(i=4,j=16,k=32)
A)4B)16C)32D)52
设有说明:
charw;intx;floaty;doublez;则表达式w*x+z-y值的数据类型为D。
A)floatB)charC)intD)double
设C语言中,一个int型数据在内存中占2个字节,则unsignedint型数据的取值范围为C。
A)0~255B)0~32767C)0~65535D)0~47
若运行时给变量x输入12,则以下程序的运行结果是。
(有错误,应为0)
main()
{intx,y;
scanf(“%d”,&x);
y=x>12?
x+10:
x-12;
printf(“%d\n”,y);
}
A)4B)3C)2D)1
若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达式的值为“假”。
则以下不能满足要求的表达式是C。
A)A%2==1B)!
(A%2==0)C)!
(A%2)D)A%2
设有:
inta=1,b=2,c=3,d=4,m=2,n=2;执行(m=a>b)&&(n=c>d)后n的值为B。
A)1B)2C)3D)4
以下程序的运行结果是B。
main()
{inta,b,d=241;
a=d/100%9;
b=(-1)&&(-1);
printf(“%d,%d”,a,b);
}
A)6,1B)2,1C)6,0D)2,0
已知intx=10,y=20,z=30;以下语句执行后x,y,z的值是B。
if(x>y)z=x;x=y;y=z;
A)x=10,y=20,z=30B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
以下程序的运行结果是C。
main()
{intm=5;
if(m++>5)
printf(“%d\n”,m);
else;
printf(“%d\n”,m--);
}
A)4B)5C)6D)7
判断char型变量ch是否为大写字母的正确表达式是C。
A)‘A’<=ch<=‘Z’B)(ch>=‘A’)&(ch<=‘Z’)
C)(ch>=‘A’)&&(ch<=‘Z’)D)(‘A’<=ch)AND(‘Z’>=ch)
逻辑运算符两侧运算对象的数据类型D。
A)只能是0和1B)只能是0或非0正数
C)只能是整型或字符型数据D)可以是任何类型的数据
sizeof(float)是B。
A)一个双精度型表达式B)一个整型表达式
C)一种函数表达式D)一个不合法的表达式
设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为C
A)4B)16C)32D)52
设有如下的变量定义:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1,42,y=;
则以下符合C语言语法的表达式是A
A)a+=a-=(b=4)*(a=3)
B)x%(-3);
C)a=a*3=2
D)y=float(i)
假定有以下变量定义:
intk=7,x=12;则能使值为3的表达式是D
A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)
设x和y均为int型变量,则以下语句:
x+=y,y=x-y;x-=y;的功能是D
A)把x和y按从大到小排列
B)把x和y按从小到大排列
C)无确定结果
D)交换x和y中的值
以下程序的输出结果是D
main()
{inta=12,b=12;
printf("%d,%d\n",--a,++b);
}
A)1010 B)1212 C)1110 D)1113
在C语言提供的合法的关键字是D
A)swicth B)cher C)CaseD)default
若已定义x和y为double类型,则表达式:
x=1,y=x+3/2的值是C
A)1 B)2 C) D)
C语言提供的合法的数据类型关键字是B
A)Double B)short C)integerD)Char
在C语言中,合法的长整型常数是A
A)0L
B)4962710
C)
D)
二、填空题
scanf函数的格式化字符串中,格式说明与输出项的个数必须相同。
如果格式说明的个数小于输出项的个数,则多余的输出项____忽略___。
如果格式说明的个数多于输出项的个数,则多余多余的格式将输出______。
以下程序的运行结果是。
#include<>
voidmain()
{inti=5,j=9;
floatx=,y=45.;
printf(“%8.2f\n”,i%(int)(x+y)*j/2/3+y);
}
若有定义:
charc=‘\010’;则变量c中包含的字符个数为___1个___。
若x和n均是int型变量,且x和n的初值均为5,则计算表达式x+=n++后x的值为___10___,n的值为____6__。
若a是int型变量,则计算下面表达式A=25/3%3后a的值为__2____。
若x和a均是int型变量,则计算表达式x=(a=4,6*2)后的x值为_12_____,计算表达式x=a=4,6*2后的x值为__4____。
若a是int型变量,则表达式(a=4*5,a*2),a+6的值为__26____。
若s是int型变量,且s=6,则表达式s%2+(s+1)%2的值为__1____。
在VC++中,一个int型数据在内存中占4个字节,则int型数据的取值范围为__-48~47___。
若有以下定义intm=5,y=2;,则计算表达式y+=y-=m*=y后的y值是___-16___。
设有定义语句:
inti=3;floatf=;则表达式+i+’A’+f值的数据类型是__double____。
三、思考以下问题
1.几种基本数据类型各占几个字节?
2.标识符分哪几类,各有什么用途?
3.为什么要定义符号常量?
4.变量名定义有什么规则?
5.C语言有哪些几类运算符号,又有哪几类表达式?
习题3
一、选择题
能正确表示a和b同时为正或同时为负的逻辑表达式是D
A)(a>=0||b>=0)&&(a<0||b<0)
B)(a>=0&&b>=0)&&(a<0&&b<0)
C)(a+b>0&&a+b<=0)
D)a*b>0
以下条件表达式中能完全等价于条件表达式x的是(B)。
A)(x==0)B)(x!
=0)
C)(x==1)D)(x!
=1)
设ch是char型变量,值为'A',则表达式ch=(ch>='A'&&ch<='Z')?
ch+32:
ch的值是:
B
A)ZB)a
C)zD)A
设a,b和c都是int型变量,且a=3,b=4,c=5,则下面的表达式中,值为0的表达式是D
A)'a'&&'b'B)a<=b
C)a||b+c&&b-cD)!
((a
c||1)
设a=5,b=6,c=5,d=8,m=2,n=2,执行(m=a>b)&&(n=c>d)后n的值为B
A)1B)2
C)3D)0
设x、y、z、t均为int型变量,则执行以下语句后,t的值为C
x=y=z=1;
t=++x||++y&&++z;
A)不定值B)4
C)1D)0
已知intx=10,y=20,z=30,则执行
if(x>y)
z=x;x=y;y=z;
语句后,x、y、z的值是(B)。
A)x=10,y=20,z=30B)x=20,y=30,z=30
C)x=20,y=30,z=10D)x=20,y=30,z=20
设a为整型变量,不能正确表达数学关系10 A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 教材 习题 答案