C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx

上传人:b****6 文档编号:17038930 上传时间:2022-11-28 格式:DOCX 页数:11 大小:18.36KB
下载 相关 举报
C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx_第1页
第1页 / 共11页
C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx_第2页
第2页 / 共11页
C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx_第3页
第3页 / 共11页
C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx_第4页
第4页 / 共11页
C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx

《C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx(11页珍藏版)》请在冰豆网上搜索。

C语言程序设计第3版何钦铭 颜 晖 第6章回顾数据类型和表达式Word格式.docx

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

0(假)非0(真)0(假)0000

0(假)非0(真)非0(真)0000

非0(真)0(假)0(假)0000

非0(真)0(假)非0(真)1011

非0(真)非0(真)0(假)1101

非0(真)非0(真)非0(真)1111

(2)

abcb&

ca||(b&

c)a&

ba||c(a||b)&

(a||c)

0(假)0(假)0(假)00000

0(假)0(假)非0(真)00010

0(假)非0(真)0(假)00100

0(假)非0(真)非0(真)11111

非0(真)0(假)0(假)01111

非0(真)0(假)非0(真)01111

非0(真)非0(真)0(假)01111

非0(真)非0(真)非0(真)11111

(3)

aba&

b!

a!

a||b

0(假)0(假)01111

0(假)非0(真)01101

非0(真)0(假)01011

非0(真)非0(真)10000

(4)

aba||b!

(a||b)!

!

b

0(假)非0(真)10100

非0(真)0(假)10010

习题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的原码为1、反码为0、补码为

1。

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)){

%d=%d+%d"

number,i,number-i);

count++;

if(count%5==0)printf("

\n"

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){

word=1;

count=%d\n"

count);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 政史地

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1