ImageVerifierCode 换一换
格式:DOCX , 页数:12 ,大小:18.24KB ,
资源ID:5234496      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/5234496.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Get清风C语言程序设计第3何钦铭颜晖第6章回顾数据类型和表达式.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

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

1、Get清风C语言程序设计第3何钦铭颜晖第6章回顾数据类型和表达式C语言程序设计(第3版)何钦铭-颜-晖-第6章-回顾数据类型和表达式第6章 回忆数据类型和表达式【练习6-1】 输入一个十进制数,输出相应的八进制数和十六进制数。例如:输入 31,输出 37 和 1F。解答:#include int main(void)int x;scanf(%d, &x);printf(%o %xn, x, x);return 0;【练习6-2】 在程序段:printf(input a, b: );scanf(%o%d, &a, &b); printf(%d %5dn, a, b); /* %5d 指定变量 b

2、 的输出宽度为 5 */中,如果将scanf(%o%d, &a, &b) 改为 scanf(%x%d, &a, &b),仍然输入 _17 _17_,输出是什么?解答: 23 17(中间有三个空格)【练习6-3】 如果字符型变量 ch 的值是大写字母,怎样的运算可以把它转换为小写字母?解答:ch=ch-A+a;【练习6-4】 证明以下等价关系。1a&(b|c) 等价于a&b|a&c。2a|(b&c)等价于a|b&(a|c)。3!a&b等价于 !a|!b。4!a|c等价于!a&!b。解答:(1) a b c a&(b|c) a&b a&c a&b|a&c 0(假) 0(假) 0(假) 0 0 0

3、0 0(假) 0(假) 非 0(真) 0 0 0 0 0(假) 非 0(真) 0(假) 0 0 0 0 0(假) 非 0(真) 非 0(真) 0 0 0 0 非 0(真) 0(假) 0(假) 0 0 0 0 非 0(真) 0(假) 非 0(真) 1 0 1 1 非 0(真) 非 0(真) 0(假) 1 1 0 1 非 0(真) 非 0(真) 非 0(真) 1 1 1 1 (2) a b c b&c a|(b&c) a&b a|c (a|b)&(a|c) 0(假) 0(假) 0(假) 0 0 0 0 0 0(假) 0(假) 非 0(真) 0 0 0 1 0 0(假) 非 0(真) 0(假) 0

4、0 1 0 0 0(假) 非 0(真) 非 0(真) 1 1 1 1 1 非 0(真) 0(假) 0(假) 0 1 1 1 1 非 0(真) 0(假) 非 0(真) 0 1 1 1 1 非 0(真) 非 0(真) 0(假) 0 1 1 1 1 非 0(真) 非 0(真) 非 0(真) 1 1 1 1 1 (3) a b a&b !a&b !a !b !a|b 0(假) 0(假) 0 1 1 1 1 0(假) 非 0(真) 0 1 1 0 1 非 0(真) 0(假) 0 1 0 1 1 非 0(真) 非 0(真) 1 0 0 0 0 (4) a b a|b !(a|b) !a !b !a&!b

5、0(假) 0(假) 0 1 1 1 1 0(假) 非 0(真) 1 0 1 0 0 非 0(真) 0(假) 1 0 0 1 0 非 0(真) 非 0(真) 1 0 0 0 0 习题61设 float x=2.5, y=4.7; int a=7;,printf(“%.1f, x+a%3*(int) (x+y)%2/4)的结果为 A B2.8 C3.5 2执行以下程序段的输出结果是 D 。int num =1234,s=0;while(num!=0) s+=num%10; num/=10;printf(%d, s);A4 321 B1 234 C0 D103设字符型变量x的值是064,表达式“ x

6、 x 2 & x的值是 A 。A0333 B333 C0x333 D0204设 a 为整型变量,不能正确表达数学关系:10a15 的 C 语言表达式是 A 。A10a10 & a15 D!(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)二填空题2. 逻辑表达式 x & 1 等价于关系表达式 x!=0 。3设 int a=5, b=6; 那么表达式(+a=b-)? +a : -b 的值是 7 。4设 c = w, a =

7、 1, b = 2, d = -5, 那么表达式 x+1c, y!=c+2, -a-5*b=d+1, b=(a=2)的值分别为 1 、 0 、 1 、 1 。5运行以下程序后,如果从键盘上输入 china#,那么输出结果为 c1=2,c2=5 。#include int main(void) int c1 = 0, c2 = 0; char ch; while(ch = getchar() !=#)switch(ch) case a:case h: c1+;default: c2+;printf(“c1=%d,c2=%dn, c1, c2);return 0;三程序设计题1.分类统计字符个数:

8、输入一行字符,统计出其中的英文字母、空格、数字和其他字符的个数。试编写相应程序。解答:#includeint main(void) char op; int letter,blank,digit,other; printf(Input characters:); op=getchar(); letter=blank=0; digit=other=0; while(op!=n) if(op= )blank+; else if(op=a&op=A&op=0&op=9)digit+; else other+; op=getchar(); printf(blank=%d,other=%d,letter

9、=%d,digit=%d,blank,other,letter,digit); return 0;2.使用函数累加由n个a构成的整数之和:输入两个正整数 a 和 n,求 a+aa+aaa+aaa(n个a)之和。要求定义和调用函数fna,n,它的功能是返回aaan个a。例如,fn3,2的返回值是33。试编写相应程序。解答:#include int main(void)int a, i, n; long sn; long fn(int a, int n); scanf(%ld%d, &a, &n); sn=0; for(i=1;i = n; i+) sn = sn + fn(a, i); prin

10、tf(%ldn, sn);return 0;long fn(int a, int n) int i; long tn; tn = 0; for(i = 1; i = n; i+) tn = 10 * tn + a; return tn;3.使用函数输出指定范围内的函数:输入两个正整数m和n(1=m,n=1000),输出mn之间的所有完数,完数就是因子和与它本身相等的数。要求定义并调用函数 factorsum(number),它的功能是返回 number 的因子和。例如,factorsum(12)的返回值是161+2+3+4+6。试编写相应程序。解答:#includeint factorsum(

11、int number);int main(void) int m,n; printf(Input m:); scanf(%d,&m); printf(Input n:); scanf(%d,&n); printf(完全数是:) for(;m=n;m+) if(factorsum(m)=1) printf(%d ,m); return 0;int factorsum(int number) int i,sum; if(number=1) return 1; sum=0; for(i=1;i=number/2;i+) if(number%i=0) sum=sum+i; if(sum=number)

12、return 1; return 0;4.使用函数输出指定范围内的Fibonacci数:输入两个正整数m和n(1=m,n=10000),输出 mn之间所有的Fibonacci数。Fibonacci序列第 1 项起:1 1 2 3 5 8 13 21要求定义并调用函数 fib(n),它的功能是返回第 n 项 Fibonacci 数。例如,fib(7)的返回值是 13。试编写相应程序。解答:#includeint fib(int n);#includeint main(void) int i,m,n,f; printf(Input m:); scanf(%d,&m); printf(Input n

13、:); scanf(%d,&n); i=f=1; while(f=m) printf(%d ,f); i+; f=fib(i); return 0;int fib(int n) int i,x1,x2,x; if(n=1|n=2) return 1; else x1=x2=1; for(i=3;i=n;i+) x=x1+x2; x1=x2; x2=x; return x;5. 使用函数验证哥德巴赫猜想:任何一个不小于 6 的偶数均可表示为两个奇素数之和。例如 6=3+3,8=3+5,18=5+13。将 6100 之间的偶数都表示成两个素数之和,打印时一行打印 5 组。试编写相应程序。解答:#i

14、ncludeint prime(int m);int main(void) int count, i,number; count=0; for(number=6;number=100;number=number+2) for(i=3;i=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); return 0;int prime(int m) int k,i; for(i=2;im/2&m!=1)return 1; 6.使用函

15、数输出一个整数的逆序数:输入一个整数,将它逆序输出。要求定义并调用函数 reverse(number),它的功能是返回 number 的逆序数。例如,reverse(12345)的返回值是 54321。试编写相应程序。解答:#includeint reverse(int number);int main(void) int number; printf(Input number:); scanf(%d,&number); printf(%d,reverse(number); return 0;int reverse(int number) int res,a; res=0; while(num

16、ber!=0) a=number; number=number%10; res=res*10+number; number=a/10; return res;7.简单计算器:模拟简单运算器的工作:输入一个算式没有空格,遇等号=说明输入结束,输出结果。假设计算器只能进行加、减、乘、除运算,运算数和结果都是整数,4种运算符的优先级相同,按从左到右的顺序计算。例如,输入“1+2*10-10/2=后,输出 10。试编写相应程序。解答:#include int main(void) char op; int operand1,operand2,res; scanf(%d,&operand1); op=g

17、etchar(); while(op!=) scanf(%d,&operand2); switch(op) case +: res=operand1+operand2; break; case -: res=operand1-operand2; break; case *: res=operand1*operand2; break; case /: res=operand1/operand2; break; default: res=0; operand1=res; op=getchar(); printf(%d,res); return 0;8.统计一行文本的单词个数:输入一行字符,统计其中单词的个数。各单词之间用空格分隔,空格数可以是多个,试编写相应程序。解答:#include int main(void) char op; int count,word; printf(Input words:); op=getchar(); count=word=0; while(op!=n) if(op= ) word=0; else if(word=0) count+; word=1; op=getchar(); printf(count=%dn,count); return 0;

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

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