C语言程序设计第3版何钦铭颜晖第6章回顾数据类型和表达式Word格式.docx
- 文档编号:16766563
- 上传时间:2022-11-25
- 格式:DOCX
- 页数:13
- 大小:61.92KB
C语言程序设计第3版何钦铭颜晖第6章回顾数据类型和表达式Word格式.docx
《C语言程序设计第3版何钦铭颜晖第6章回顾数据类型和表达式Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第3版何钦铭颜晖第6章回顾数据类型和表达式Word格式.docx(13页珍藏版)》请在冰豆网上搜索。
b),仍然输入__17___17__,输出是什么?
2317(中间有三个空格)
【练习6-3】如果字符型变量ch的值是大写字母,怎样的运算可以把它转换为小写字母?
ch=ch-‘A’+‘a’;
【练习6-4】证明下列等价关系。
(1)a&
&
(b||c)等价于a&
b||a&
c。
(2)a||(b&
c)等价于(a||b)&
(a||c)。
(3)!
(a&
b)等价于!
a||!
b。
(4)!
(a||c)等价于!
a&
!
(1)
abca&
(b||c)a&
ba&
ca&
c
0(假)0(假)0(假)0000
0(假)0(假)非0(真)0000
aba||b!
(a||b)!
a!
b!
!
b
0(假)0(假)01111
0(假)非0(真)10100
非0(真)0(假)10010
非0(真)非0(真)10000
习题6
1.设floatx=2.5,y=4.7;
inta=7;
,printf(“%.1f”,x+a%3*(int)(x+y)%2/4)的结果为A
A.2.5B.2.8C.3.5D.3.8
2.执行下列程序段的输出结果是D。
intnum=1234,s=0;
while(num!
=0){
s+=num%10;
num/=10;
s);
A.4321B.1234C.0D.10
3.设字符型变量x的值是064,表达式“~x^x<
<
2&
x”的值是A。
A.0333B.333C.0x333D.020
4.设a为整型变量,不能正确表达数学关系:
10<
a<
15的C语言表达式是A。
A.10<
15
B.a==11||a==12||a==13||a==14
C.a>
10&
a<
D.!
(a<
=10)&
!
(a>
=15)
5.设以下变量均为int类型,表达式的值不为9的是C。
A.(x=y=8,x+y,x+1)
B.(x=y=8,x+y,y+1)
C.(x=8,x+1,y=8,x+y)
D.(y=8,y+1,x=y,x+1)
二.填空题
1.-127的原码为1000000001111111、反码为1111111110000000、补码为
1111111110000001。
2.逻辑表达式x&
1等价于关系表达式x!
=0。
3.设inta=5,b=6;
则表达式(++a==b--)?
++a:
--b的值是7。
4.设c='
w'
a=1,b=2,d=-5,则表达式'
x'
+1>
c,'
y'
=c+2,-a-5*b<
=d+1,b==(a=2)的值分别为1、0、1、1。
5.运行以下程序后,如果从键盘上输入china#<
回车>
,则输出结果为c1=2,c2=5。
intc1=0,c2=0;
charch;
while((ch=getchar())!
=’#’)
switch(ch)
{case‘a’:
case‘h’:
c1++;
default:
c2++;
printf(“c1=%d,c2=%d\n”,c1,c2);
三.程序设计题
1.分类统计字符个数:
输入一行字符,统计出其中的英文字母、空格、数字和其他字符的个数。
试编写相应程序。
#include<
charop;
intletter,blank,digit,other;
printf("
Inputcharacters:
"
op=getchar();
letter=blank=0;
digit=other=0;
while(op!
='
\n'
){
if(op=='
'
)blank++;
elseif(op>
a'
op<
z'
||op>
A'
Z'
)letter++;
0'
9'
)digit++;
elseother++;
op=getchar();
}
blank=%d,other=%d,letter=%d,digit=%d"
blank,other,letter,digit);
return0;
2.使用函数累加由n个a构成的整数之和:
输入两个正整数a和n,求a+aa+aaa+aa…a(n个a)之和。
要求定义和调用函数fn(a,n),它的功能是返回aa……a(n个a)。
例如,fn(3,2)的返回值是33。
inta,i,n;
longsn;
longfn(inta,intn);
scanf("
%ld%d"
n);
sn=0;
for(i=1;
i<
=n;
i++)
sn=sn+fn(a,i);
%ld\n"
sn);
longfn(inta,intn)
inti;
longtn;
tn=0;
for(i=1;
i<
tn=10*tn+a;
returntn;
3.使用函数输出指定范围内的函数:
输入两个正整数m和n(1<
=m,n<
=1000),输出m~n之间的所有完数,完数就是因子和与它本身相等的数。
要求定义并调用函数factorsum(number),它的功能是返回number的因子和。
例如,factorsum(12)的返回值是16(1+2+3+4+6)。
intfactorsum(intnumber);
intm,n;
Inputm:
&
m);
Inputn:
完全数是:
)
for(;
m<
=n;
m++)
if(factorsum(m)==1)
%d"
m);
intfactorsum(intnumber)
inti,sum;
if(number==1)return1;
sum=0;
i<
=number/2;
i++)
if(number%i==0)
sum=sum+i;
if(sum==number)return1;
4.使用函数输出指定范围内的Fibonacci数:
=10000),输出m~n之间所有的Fibonacci数。
Fibonacci序列(第1项起):
1123581321……要求定义并调用函数fib(n),它的功能是返回第n项Fibonacci数。
例如,fib(7)的返回值是13。
intfib(intn);
math.h>
inti,m,n,f;
i=f=1;
while(f<
=n){
if(f>
=m)printf("
f);
i++;
f=fib(i);
}
intfib(intn)
{
inti,x1,x2,x;
if(n==1||n==2)return1;
else{
x1=x2=1;
for(i=3;
i++){
x=x1+x2;
x1=x2;
x2=x;
returnx;
5.使用函数验证哥德巴赫猜想:
任何一个不小于6的偶数均可表示为两个奇素数之和。
例如6=3+3,8=3+5,…,18=5+13。
将6~100之间的偶数都表示成两个素数之和,打印时一行打印5组。
intprime(intm);
intcount,i,number;
count=0;
for(number=6;
number<
=100;
number=number+2){
i=i+2)
if(prime(i)&
prime(number-i)){
printf("
%d=%d+%d"
number,i,number-i);
count++;
if(count%5==0)printf("
\n"
}
return0;
intprime(intm)
intk,i;
for(i=2;
=m/2;
if(m%i==0)return0;
if(i>
m/2&
m!
=1)return1;
6.使用函数输出一个整数的逆序数:
输入一个整数,将它逆序输出。
要求定义并调用函数reverse(number),它的功能是返回number的逆序数。
例如,reverse(12345)的返回值是54321。
intreverse(intnumber);
intnumber;
Inputnumber:
number);
reverse(number));
intreverse(intnumber)
intres,a;
res=0;
while(number!
a=number;
number=number%10;
res=res*10+number;
number=a/10;
}
returnres;
7.简单计算器:
模拟简单运算器的工作:
输入一个算式(没有空格),遇等号"
="
说明输入结束,输出结果。
假设计算器只能进行加、减、乘、除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。
例如,输入“1+2*10-10/2=”后,输出10。
intoperand1,operand2,res;
operand1);
operand2);
switch(op){
case'
+'
:
res=operand1+operand2;
break;
-'
res=operand1-operand2;
*'
res=operand1*operand2;
/'
res=operand1/operand2;
default:
operand1=res;
res);
8.统计一行文本的单词个数:
输入一行字符,统计其中单词的个数。
各单词之间用空格分隔,空格数可以是多个,试编写相应程序。
intcount,word;
Inputwords:
count=word=0;
if(op=='
word=0;
elseif(word==0){
count++;
word=1;
count=%d\n"
count);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 钦铭颜晖第 章回 数据类型 表达式