C语言程序设计(第3版)何钦铭-颜-晖---回顾数据类型和表达式

上传人:豆*** 文档编号:201718218 上传时间:2023-04-20 格式:DOC 页数:17 大小:36KB
返回 下载 相关 举报
C语言程序设计(第3版)何钦铭-颜-晖---回顾数据类型和表达式_第1页
第1页 / 共17页
C语言程序设计(第3版)何钦铭-颜-晖---回顾数据类型和表达式_第2页
第2页 / 共17页
C语言程序设计(第3版)何钦铭-颜-晖---回顾数据类型和表达式_第3页
第3页 / 共17页
点击查看更多>>
资源描述
第章回忆数据类型和体现式【练习6-】 输入一种十进制数,输出相应的八进制数和十六进制数。例如:输入3,输出 3和F。解答:#include imain(id)in ;canf(%d, x);rntf(o %xn, x, x);eurn ;【练习6-】 在程序段:prnt(ipu a, b:);cf(%d,&a, &);prnt(d %dn,a, ); / %5指定变量 b 的输出宽度为 5 *中,如果将sanf(%o%, &a, &b) 改为 caf(%x%, &a,&b),仍然输入 _17 _7_,输出是什么?解答: 23 17(中间有三个空格)【练习6-3】 如果字符型变量 ch 的值是大写字母,如何的运算可以把它转换为小写字母?解答:ch=chA+a;【练习6-4】 证明下列等价关系。()a&(b|) 等价于a&b|a&c。()a|(b&)等价于(a|b)&(a|c)。(3)!(a&b)等价于 !a|!b。(4)!(a|c)等价于!a!b。解答:(1) a b c a&(b|c) &b a&c a&|&c 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 非0(真) 非 (真) 0(假) 1 0 1非 0(真) 非 0(真) 非 0(真) 1 () a c b&c |(b&c) a&b (a|b)&(a|c) 0(假) 0(假) (假) 0 0 0(假) 0(假) 非(真) 0 0 0 0 (假) 非0(真) (假) 0 0 1 0 0 (假) 非 0(真)非 0(真) 1 1非(真) 0(假) 0(假) 0 1 1 1 1非 (真) 0(假) 非 0(真) 0 1 1 非0(真) 非 (真) 0(假) 0 1 1 1 1非0(真) 非 0(真) 非 (真) 1 1 1 1 1(3) a b a&b !a&b ! !b !a|b0(假) 0(假) 1 1 1 1 (假) 非 (真) 0 1 1 0 非0(真) 0(假) 0 1 0 1非 0(真)非 0(真) 1 0 0 0 0 (4) a b a| !(a|) !a !b !a&!b (假) 0(假) 1 1 0(假) 非 (真) 1 0 非 0(真) 0(假) 1 0 0 1 非(真)非(真) 1 0 0习题61设 flt x., y=4.7; int a=7;,prnt(“%.f”, x+a%3*(nt) (x+)%/4)的成果为 A .5 2. .35 3.82.执行下列程序段的输出成果是 D 。int u =24,s=;whi(num!=) =num1; um/=10;pintf(%d, s);A. 321 B 23 C0 D103.设字符型变量的值是04,体现式“ x & x”的值是 A 。A.033 .333 0x333 20设 为整型变量,不能对的体现数学关系:0a5 的 语言体现式是 。A10a0 & a1 D!(a=5) 5设如下变量均为 it类型,体现式的值不为 9 的是 C 。 (=,x+y,x1)B (y=8,x+y,y+1)C. (,x+,y=8,x+y) D (y8,y+1,x=y,x+)二填空题1 .-127 的 原 码为11 、 反 码 为 0000 、 补 码为0。2. 逻辑体现式x&1 等价于关系体现式 x!=0 。3设 in a, b=; 则体现式(+a=b-)? +a: -的值是 7 。4.设 c,a =1, b,d -, 则体现式 x+c, y!c, -a-5*b=d+,b=(a=2)的值分别为 1 、 、 1 、 1 。5.运营如下程序后,如果从键盘上输入 china#,则输出成果为 c1=2,c2=5 。#iclu stdio.int main(void) int c1 =, 2 = ; cach; wh(c =getchr()!=#)swith(ch) se a:c h:c1+;eut: c2+;prinf(“c1=%d,c=%dn”, c, c2);retrn 0;三程序设计题1.分类记录字符个数:输入一行字符,记录出其中的英文字母、空格、数字和其她字符的个数。试编写相应程序。解答:#incuestdiohn main(oi)car op;nt eter,blnk,iit,or;pint(Inpt cratrs:);p=gecr();lett=blank0;diit=oe=0;wile(op!n)i(op= )blank+;le if(o=a&p=A&o)ettr+;ee if(p=&op9)dit+;els ther+;p=getchar();print(b=d,other=d,lette=%d,iit=d,blank,othr,ete,digit);return;2使用函数累加由n个a构成的整数之和:输入两个正整数a和 n,求 a+aaaa(n个a)之和。规定定义和调用函数fn(a,n),它的功能是返回aaa(n个a)。例如,fn(3,2)的返回值是33。试编写相应程序。解答:#include st.h ain(void)it , i, n; longn; long fn(int a, nt n); cf(%l%d, &a, &n); =0; for(;i =n; ) sn = s + fn(, i); printf(%ldn, sn);return 0;longfn(na,intn) nti; lon tn; t =; fo(i = 1; i =n; +) tn =1 * tn+; rern tn;3使用函数输出指定范畴内的函数:输入两个正整数m和n(1m,1000),输出之间的所有完数,完数就是因子和与它自身相等的数。规定定义并调用函数 actorsum(numb),它的功能是返回 nme 的因子和。例如,ftosu(12)的返回值是6(12+6)。试编写相应程序。解答:#icudnt fatorsu(i number);i mai(oi) in m,; pinf(nput m:); scnf(%,&m);rnt(nptn:); sanf(%,&n); print(完全数是:) for(;mn;m+) if(factrsu(m)1) prn(%d ,); rrn ;nt facorsum(int number) int i,sm; if(nmber=1) retrn 1; s0; (=1;i=numbe/;i+) if(nuber%i0) sm=sum+i; f(sum=umer)etur 1; retur0;4.使用函数输出指定范畴内的Fibonaci数:输入两个正整数m和n(=m,100),输出 mn之间所有的Fioncci数。Foai序列(第 项起): 1 5 8 1 21规定定义并调用函数 fi(),它的功能是返回第n 项 ibni 数。例如,fib()的返回值是 3。试编写相应程序。解答:includeit ib(t n);#includeath.nt min(id) nti,n,f; pitf(pu:); scaf(%,&);in(Inputn:); canf(%d,&n); =1; whie(f=m) rintf(%d ,f); i+; f=fib(i); et0;it fb(inn) t i,x1,x2,; if(n=|n=2) return 1; else x1=x2=; for(i;i=n;i+) x=x1+2; x1=x2; 2=x; return x;5. 使用函数验证哥德巴赫猜想:任何一种不不不小于 的偶数均可表达为两个奇素数之和。例如 63+3,8=+5,,18=513。将60 之间的偶数都表达到两个素数之和,打印时一行打印 5 组。试编写相应程序。解答:ncludeint pr(inm);in ai(vo) nt ount, ,numer; cont=; fr(nube=6;nmber=100;numberumbr+2) fr(i=3;m/2&m!=1)return 1; 6.使用函数输出一种整数的逆序数:输入一种整数,将它逆序输出。规定定义并调用函数reverse(numbe),它的功能是返回uber的逆序数。例如,reverse(12345)的返回值是 5321。试编写相应程序。解答:#incluestiohintreves(int nue);nt mai(void)int number;printf(Itnbe:);canf(%,nmer);printf(%d,reverse(numbe));return;int everse(itnumber)int re,;re=0;wile(ume!=)a=num;umber=uber%10;re=e*10+numbr;nuera/10; etrn res;7.简朴计算器:模拟简朴运算器的工作:输入一种算式(没有空格),遇等号阐明输入结束,输出成果。假设计算器只能进行加、减、乘、除运算,运算数和成果都是整数,4种运算符的优先级相似,按从左到右的顺序计算。例如,输入“1+2*1010/2=”后,输出 10。试编写相应程序。解答:nclueintmai(od) chr p; i oeand1,oead2,res; cnf(d,operand1); p=getch(); whle(op!=) canf(%d,operd2); switch(op) case +: res=opend+opernd2; break; cae -:reoprand1-oprand2; beak; cse*: es=oerand1*oerand; rea; case /: rsopran1oerand2; ea; defalt: rs=0; oerand1=rs; pgetchar(); printf(d,r); rtrn 0;8. 记录一行文本的单词个数:输入一行字符,记录其中单词的个数。各单词之间用空格分隔,空格数可以是多种,试编写相应程序。解答:#ilude ntman(voi) ca op; it coun,wr; print(Input wd:); opgchar(); coutword=0; whil(op!=n) if(op= ) word0; le if(word=0) cun+; wor; op=gtcar(); print(cntdn,cout); rurn 0;
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 解决方案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!