高职 C语言程序设计 习题答案Word下载.docx
- 文档编号:3234072
- 上传时间:2023-05-01
- 格式:DOCX
- 页数:104
- 大小:60.92KB
高职 C语言程序设计 习题答案Word下载.docx
《高职 C语言程序设计 习题答案Word下载.docx》由会员分享,可在线阅读,更多相关《高职 C语言程序设计 习题答案Word下载.docx(104页珍藏版)》请在冰点文库上搜索。
}
【探索】
1.从计算机语言的发展历程预测近10年计算机语言的发展趋势。
计算机语言的发展大致经历了机器语言、汇编语言和高级语言三个阶段,高级语言的出现,使计算机语言脱离了对计算机硬件的依赖,成为一种接近于人类自然语言的计算机语言,是计算机语言发展史上的一个飞跃。
目前,面向对象编程语言已经成为结构化高级语言之后日益成熟并得到广泛应用的计算机语言,将可视化、事件驱动等新技术与计算机语言结合在一起构建的各种集成开发环境已成为应用软件开发的重要工具。
从中可以看出,使计算机语言的发展正在从面向机器逐渐向面向人类转变,在近10年中,计算机语言将会朝着编码更容易、编程效率更高、可移植性更强、更接近自然语言、语言构成更符合人类思维方式的方向发展。
2.回文数字的判断问题。
回文数字是这样的一类数字,它们顺着看和倒着看是相同的数,例如121
、12321等。
回文数字的判断问题可以细化为2个子问题:
对给定数字进行变换、判断变换后的数字与原数字是否相等。
可以对子问题1进行进一步细化:
变换的一种方法是将该数的个位数字变换为最高位数字,十位数字变换成次高位数字,依此类推,变换完成后便得到变换后的新数。
第2章习题
1.下面的标识符哪些是合法的?
A.1_xB.IntC.ABCD.i_10
E.sum.aF.%abcG._stuH.abcd
CDG
2.C语言的数据类型有哪些?
C语言规定的数据类型较多,通常我们可以将其分为两大类:
基本类型和构造类型,具体数据类型分类如图所示。
3.下面是一段程序:
#defineN10
intmain()
{
intsum;
sum=(20+30)/N;
printf("
sum=%d\n"
sum);
printf("
resultis5\n"
);
return0;
}
在这段程序中,哪些是常量?
哪些是变量?
常量有:
2030N0
变量有:
sum
4.下面哪些写法是正确的,而且是常量?
A.12B.−.345C.1.23e4D.'
OPQ'
E.E10F.0678G.0xabcdefH."
\n\\\'
\123"
ABCGH
5.字符常量与字符串常量有什么区别?
用一对单引号括起来的单个字符称为字符常量。
字符常量有两种:
一般字符常量和特殊字符常量。
例如:
’a’就是一个字符常量。
用一对双引号括起来的字符序列称为字符串常量。
例如”ChangChun”就是一个字符串常量。
两者的区别:
(1)定界符不同,字符常量用单引号,字符串常量用双引号。
(2)一般来说,字符常量仅能表示单个字符,字符串常量可以表示多个字符。
(3)转义字符是字符常量而不是字符串常量。
6.简述转义字符的用途并用实例加以说明。
通常使用转义字符表示ASCII码字符集中不可打印的控制字符和特定功能的字符,其主要用法有以下三个方面:
(1)表示字符常量的单撇号(’)、用于表示字符串常量的双撇号(”)和反斜杠(\);
(2)用反斜杠(\)后面跟某些特定字符表示不可打印的控制字符和特定功能的字符;
(3)用反斜杠(\)后面跟一个八进制或十六进制数表示任意字符,其中八进制或十六进制数表示要表示字符的对应ASCII码值。
’\n’表示换行操作,’\\’表示要输出一个反斜杠“\”。
7.C语言为什么要规定对所有用到的变量要“先定义,后使用”?
这样做有什么好处?
C语言变量遵循“先定义,后使用”的原则,即变量在使用前,都要求先对其数据类型进行定义。
因为在变量定义时,系统会对变量分配固定的内存,然后按照变量名对其进行访问。
这样做有如下好处:
(1)便于系统对内存空间的管理与使用
(2)通过事先分配内存空间提高程序的运行效率。
8.下面哪个表达式的值为5?
A.19/4B.19.0/4C.(float)19/4D.(int)(19.0/4+0.5)
D
9.指出下面的表达式中,哪些是错误的?
(1)a+b=5
(2)56=a11
(3)i=i++
(4)12
(5)a=5,b=6,c=7
(1)
(2)
10.计算下列表达式的值。
已知int型变量a=5,b=6,c=7,char型变量ch='
0'
,float型变量f=2.1。
(1)(a-b*2)/3
(2)3.2*(a+b+c)
(3)ch+a+f
(4)a+b%3*(int)(b+c)%3/6
(1)-2
(2)57.60000(3)55.10000(4)5
11.写出下面表达式运算后x的值。
设x定义为整型变量,其初值为10。
(1)x+=10
(2)x−=10
(3)x*=5+10
(4)x/=x+x
(5)x+=x−=x*=x
(6)x+=x−=x*x
(1)20
(2)0(3)150(4)0(5)0(6)-180
12.设int型变量a=3,b=4,c=5,则表达式((a+b)>
c)&
&
(b==c)&
a||b+c&
b+c的值是()。
A.0B.1C.2D.3
B
13.如果int型变量i=1,j=2,k=3,l=4,则条件表达式i<
j?
i:
k<
l?
k:
l的值是()。
A.1B.2C.3D.4
A
1.写出完成下列要求的C语言的合法表达式。
(1)已知半径r,计算球的体积V。
(2)已知3条边长度a、b、c,计算三角形面积S。
(3)已知上底a、下底b和高h,计算梯形面积S。
(1)V=(3/4)*3.14*r*r*r
(2)l=(a+b+c)/2.0,S=sqrt((l-a)*(l-b)*(l-c))
(3)S=(a+b)*h/2.0
若变量f已说明为float类型,i为int类型,则下面哪些表达式(或语句)能够实现将f中的数值保留小数点后两位,第三位进行四舍五入的运算?
A.f=(f*100+0.5)/100.0;
B.i=f*100+0.5,f=i/100.0;
C.f=(int)(f*100+0.5)/100.0;
D.f=(f/100+0.5)*100.0;
BC
第3章习题
1.下面的语句段执行后,输出的值是()
inta=3,b=5;
printf("
%d,%d"
b,a);
A:
53B:
3,5C:
35D:
5,3
D
2.若x=4,y=-2,z=5,则表达式++x-y+z++的值为()
A.10B.11C.12D.13
C
3.以下给定程序的输出结果为()
#include"
stdio.h"
intmain()
intx=12;
while(x--);
printf("
%d"
x);
return0;
A.-1B.0C.11D.1
4.若inti=10;
则执行下列语句后,变量i的正确结果是()
switch(i)
{
case9:
i+=1;
case10:
case11:
default:
}
A.10B.11C.12D.13
D
5.C语言允许if-else语句嵌套使用,规定else总是和()配对。
A.其之前最近的ifB.第一个if
C.缩进位置相同的ifD.其之前最近的且尚未配对的if
6.把下面的程序补充完整。
程序的功能是交换x和y的值。
intx=5,y=3,temp;
(
);
(2);
(3);
%d%d"
x,y);
)temp=x
(2)x=y
(3)y=temp
7.阅读下面的程序:
intmain()
inta,b,c;
pleaseinput:
\n"
scanf("
%d,%d,%d"
&
a,&
b,&
c);
if(a<
b)
if(b<
c)
max=%d\n"
c);
else
b);
elseif(a<
a);
该程序的功能是:
。
找出三个数中的最大数并输出
8.阅读下面的程序:
#include<
stdio.h>
intcount,num,total;
count=0;
total=0;
while(count<
10)
{count++;
printf(“entertheNO.%d=”,count);
scanf(“%d”,&
num);
total+=num;
printf(“Total=%d\n”,total);
如果用户输入0123456789十个数,则输出结果是:
Total=45
1.输入一个字符,将其转换成小写字母后输出。
ctype.h>
charc;
请输入一个英文字母:
%c"
&
if(isupper(c))//判断是否为大写字母,是则转换为小写
c=tolower(c);
%c\n"
c);
return0;
}
2.编程求1+3+5+…+101的和。
inti=0,sum=0;
for(i=1;
i<
=101;
i+=2)
sum+=i;
%d\n"
3.输出下面的图形。
******
******
inti=0,j=0;
for(i=0;
3;
i++)//控制行数,此题打印3行
for(j=0;
j<
2-i;
j++)//控制打印的空格数
"
for(j=0;
6;
j++)//控制打印的*数
*"
4.输出9*9口诀。
inti=0,j=0,k=0;
for(i=1;
=9;
i++)//控制行数
for(j=1;
=i;
j++)//控制列数
%d*%d=%d"
j,i,i*j);
//打印没列的乘法口诀
//换行
1.爱因斯坦的阶梯问题。
爱因斯坦曾出过这样一道有趣的数学题:
有一个长阶梯,若每步上2阶,最后剩1阶;
若每步上3阶,最后剩2阶;
若每步上5阶,最后剩4阶;
最每步上6阶,最后剩5阶;
只有每步上7阶,最后刚好一阶不剩。
问该阶梯至少有多少阶?
编写一个C程序解决这个问题。
inti=0;
for(i=7;
;
i+=7)
if(i%2&
i%3==2&
i%5==4&
i%6==5)
i);
break;
2.百钱买百鸡问题。
100元钱买100只鸡,公鸡5元1只,母鸡3元1只,小鸡3个1元,编写一个C程序,给出该问题的解决方案。
intcock,hen,poult;
for(cock=0;
cock<
=20;
cock++)
for(hen=0;
hen<
=33;
hen++)
poult=100-cock-hen;
if((100-cock-hen)%3==0&
(cock*5+hen*3+poult/3==100))
cock=%d,hen=%d,poult=%d\n"
cock,hen,poult);
3.凯撒密码程序。
通过键盘输入一行字符,以@结束,对输入的字符串进行加密处理。
要求:
a->
b,b->
c,…,z->a和A->
b,B->
c,Z->
a,其他字符不变。
string.h>
charc[100],res[100];
voidchange(intlen)
len;
i++)
if(islower(c[i])&
c[i]<
'
z'
)
res[i]=c[i]+1;
if(isupper(c[i])&
Z'
if(c[i]=='
||c[i]=='
res[i]='
a'
;
inti=0,len=0;
chara;
for(i=0;
a);
if(a=='
@'
)break;
elsec[i]=a;
len=strlen(c);
change(len);
puts(res);
第4章习题
1.在下列关于C函数定义的叙述中,正确的是()。
A.函数可以嵌套定义,但不可以嵌套调用
B.函数不可以嵌套定义,但可以嵌套调用
C.函数不可以嵌套定义,也不可以嵌套调用
D.函数可以嵌套定义,也可以嵌套调用
B
2.以下描述错误的是()。
A.调用函数时,实参可以是表达式
B.调用函数时,实参与形参可以共用内存单元
C.调用函数时,将为形参分配内存单元
D.调用函数时,实参与形参的类型应该一致
3.在一个源文件中定义的全局变量的作用域为()。
A.本文件的全部范围
B.本程序的全部范围
C.本函数的全部范围
D.从定义该变量的位置开始到本文件结束为止
4.凡是函数中未指定存储类别的局部变量,其隐含的存储类别为()。
A.自动(auto)
B.静态(static)
C.外部(extern)
D.寄存器(register)
5.递归函数f(n)=f(n-1)+n(n>
1)的递归体是()。
A.f
(1)=0
B.f(0)=1
C.f(n)=f(n-1)+n
D.f(n)=n
6.下列程序的输出结果是()。
fun(inta,intb,intc)
c=a*b;
intmain()
intc;
fun(2,3,c);
A.0B.1C.6D.无法确定
8.下列程序的输出结果是()。
intx=1;
func(intx)
x=3;
func(x);
x);
A.3B.1C.0D.无法确定
9.阅读下面的程序:
intm=5;
intf1()
m=m+3;
return(m);
intm=3;
intm=10;
m++;
f1();
m+=1;
m);
该程序的运行结果是:
4
10.定义一个递归函数实现f=1+1/2+1/3+…1/n运算,该递归函数的递归出口是,递归体是。
递归出口:
f
(1)=1
递归体:
f(n)=1/n+f(n-1)
1.编写一个函数,实现两个字符串的连接。
voidmain()
voidlianjie(charc[100],chard[100]);
chara[100],b[100];
请输入第一个字符串:
gets(a);
请输入第二个字符串:
gets(b);
lianjie(a,b);
voidlianjie(charc[100],chard[100])
两个字符串进行连接后:
\n%s\n"
strcat(c,d));
2.设计一个函数,用于把数字字符串转换成整数,这里假设数
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 高职 C语言程序设计 习题答案 语言程序设计 习题 答案