《2022年C语言程序设计项目教程教学课件C语言程序设计项目教程习题答案.docx》由会员分享,可在线阅读,更多相关《2022年C语言程序设计项目教程教学课件C语言程序设计项目教程习题答案.docx(74页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -习题答案模块 1 C 语言基础学问1. 挑选题(1)C 语言中运算对象必需是整型的运算符是 B ;A. %= B. / C. = D. = (2)以下所列的 C 语言常数中,错误选项 B ;A. 0xFF B. 1.2E0.5 C. 2L D. -.67 (3)以下选项中能作为用户标识符的是 C ;A. void B. 7_9 C. _3_ D. Dr.Tom (4)以下所列的 C 语言字符常量中,合法的是 B ;A. ”B” B. nC. 中国 D. d (5)以下选项中正确的定义语句是 D ;A. int
2、 a:b; B. int ,a,b; C. int a+b=6; D. int a=6,b; (6)以下关于 long、int、short 型数据占用内存大小的表达中正确选项 D ;A. 均占 4 个字节B. 依据数据的大小来打算所占内存的字节数C. 由用户自己定义 D. 由 C 语言编译系统打算(7)如有定义语句:int x=10; ,就表达式 x-=x+x 的值为 B ;A. -20 B. -10 C. 0 D. 10 (8)表达式 a=3*5,a+4,a+5 的值是 A ;A. 20 B. 29 C. 60 D. 90 (9)如有定义语句:int a=3,b=4,c=5; ,就以下表达式
3、中值为 0 的是 D ;A. a&b B. a=b C. a|b+c&b-c D. .ab&c|1 (10)设有以下定义:int i;char c;float f; ,以下结果为整型的表达式是 B ;A. i+f B. i*c C. c+f D. i+c+f 2. 填空题(1)设有 int n=12; ,就表达式( n+*1/3 )的值是 4 ;(2)定义以下变量:char c;int x;float y;double z;,就表达式 c*x+y-z ,所求得的数据类型为 double ;细心整理归纳 精选学习资料 (3)设变量 a 和 b 已正确赋初值,请写出a/=a+b 等价的赋值表达式a
4、=a/a+b ; 第 1 页,共 45 页 (4)如有语句double x=15.5;int y; ,当执行 y=intx/5%2; 之后 y 的值是1 ; - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(5)如有语句double y=3.6; ,就执行完 +y; 语句后,(+y )表达式的值是4.6 ,变量 y 的值是4.6 ;-2*a*b+40-4*a*c ;(6)代数式 -2ab+40-4ac 改写成 C 语言的表达式是(7)在运算机中,字符的比较是对它
5、们的ASCII 码值进行比较;(8)已知字母 a的 ASCII 码为十进制数97,且设 ch为字符型变量, 就表达式 ch=a+3的值为f ;3. 分析以下程序的运行结果(1)#include void main int a=21,b=11; printf%dn,-a+b,-b+a; 程序的运行结果:(2)#include void main printf nABCtDEnFGHn; printf nwhy is 31+31 equal to %d.nn,21+31; 程序的运行结果:细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 2 页,共 45
6、页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(3)#include void main char ch=65; printf%cn,ch; 程序的运行结果:(4)#include void main int x=10,y=20,z=30; z=x.=y; printf%dn,z; 程序的运行结果:(5)#include void main int x=10; printf%dn,x%3=0; 程序的运行结果:细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 4
7、5 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(6)#include void main int k=4,a=3,b=2,c=1; printf%dn ,ka.k:cb.c:a; 程序的运行结果:模块 2 次序结构1. 程序填空题(1)要得到以下输出结果:a,b A,B 97,98,65,66 请按要求填空,补充以下程序:#include void main char c1,c2; c1=a; c2=b; printf%c,%cn, c1,c2; printf%c,%cn, c1-32,c2-32 ; prin
8、tf%d,%d,%d,%dn, c1,c2,c1-32,c2-32 ; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(2)要得到以下输出结果:a=%2,b=%5 #include void main int a=2,b=5; printfa=%d,b=%dn ,a,b ; 2. 分析以下程序的运行结果(1)#include void main int n=5,m=5; printf%d,%dn,+m,n-
9、; 程序的运行结果 : (2)执行以下程序时输入:2468101 #include void main int x,y; scanf%2d%*2d%2d,&x,&y; printf%ldn,x+y; 细心整理归纳 精选学习资料 程序的运行结果: 第 5 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(3)执行以下程序时输入:ABCD #include void main char x,y; x=getchar ; y=getchar ; pu
10、tcharx;putcharn;putchary; 程序的运行结果 : (4)#include #include void main int a=1,b=2,c=2; float x=10.5,y=4.0,z; z=a+b/c+sqrtinty*1.2/c+x; printfz=%fn,z; 细心整理归纳 精选学习资料 程序的运行结果: 第 6 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -3. 编程实现以下功能(1)从键盘输入一个整数x,如
11、 x 大于 0,就显示“ 红”;如 x 等于 0,就显示“ 黄”;如 x 小于 0,就显示“ 绿”;#include void main int x; printf 请输入一个整数:; scanf%d,&x; printf%sn,x0. 红:x=0. 黄: 绿; (2)假设银行定期存款的年利率 rate 为 2.25%,并已知存款期为 n 年,存款本金为 capital n 年后可得到本利之和 deposit假设不运算复利) ;提示: 2.25%编写程序时 元,试编程运算 应写为 0.0225,本金和年数未知,从键盘输入;#include #include void main int n; f
12、loat capital,rate=0.0225,deposit; printf 请输入存款期和本金:; scanf%d%f,&n,&capital; deposit=capital*pow1+rate,n; printfdeposit=%fn,deposit; 细心整理归纳 精选学习资料 (3)编写程序,把700 分钟换算成用小时和分钟表示; 第 7 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -#include #include void
13、 main int n=700,x,f; x=n/60; f=n%60; printf700 分钟是 %d 小时, %d 分钟; n,x,f; 模块 3 挑选结构1. 分析以下程序的运行结果(1)#include void main int x=1,y=5,z=3; ifz=x printf%dn,z; else printf%d n,y; 程序的运行结果 : (2)#include void main int x=1,a=0,b=0; switchx case 0:b+; case 1:a+; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页
14、,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -case 2:b+,a+; printfa=%d,b=%dn,a,b; 程序的运行结果 : (3)#include void main int n=6; ifn+6 printf%dn,n; else printf%d n,n-; 程序的运行结果 : (4)#include void main int a=1,b=-1,c; ifa*b0 c=1; else ifa*b0 c=2; else c=3; printfc=%dn,c; 细心整理归纳 精选学习资料
15、 - - - - - - - - - - - - - - - 第 9 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - 程序的运行结果 : 2. 编程实现以下功能(1)从键盘输入一个整数,假如是偶数,输出“ Is Even ”;假如是奇数,输出“ Is Odd ”;#include void main int i; printf 请输入一个整数:; scanf%d,&i; ifi%2=0 printf%d %sn,i,Is Even; else printf%d %sn,i,Is Odd; (2)求解一
16、元二次方程ax2+bx+c=0 ;假如有实根,就输出;否就输出“ 无实根 ”(a、b、c 由键盘输入);#include #include void main float a,b,c,d; double f,x1,x2; ; printf 请输入三个系数:scanf%f%f%f,&a,&b,&c; d=b*b-4*a*c; ifd0 printf 无实根! n; else 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - -
17、- - - - f=sqrtd; x1=-b+f/2*a; x2=-b-f/2*a; iff=0 printfx1=x2=%lfn,x1; else printfx1=%lf,x2=%lfn,x1,x2; (3)编写可以完成加、减、乘、除、求余运算的简易运算器程序;#include #include #include void main char ch; int a,b,c; float div; printftt 简易运算器 nn; printft1. 加法运算 2.减法运算 nn; printft3. 乘法运算 4.除法运算 nn; printft5. 求余运算 0.减法运算 nn; pr
18、intft 请挑选( 0-5):; ch=getche; switchch case 0: exit0; case 1: printfnn请输入两个整数:; scanf%d%d,&a,&b; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -c=a+b; printf%d+%d=%dn,a,b,c; break; case 2: printfnn请输入两个整数:; scanf%d%d,&a,&b; c=a-b
19、; printf%d-%d=%dn,a,b,c; break; case 3: printfnn请输入两个整数:; scanf%d%d,&a,&b; c=a*b; printf%d*%d=%dn,a,b,c; break; case 4: printfnn请输入两个整数:; scanf%d%d,&a,&b; div=floata/b; printf%d/%d=%fn,a,b,div; break; case 5: printfnn请输入两个整数:; scanf%d%d,&a,&b; c=a%b; printf%d%d=%dn,a,b,c; break; default: printfnnt 挑
20、选错误! n; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - (4)某商场给顾客购物的折扣率如下:购物金额 200 元 不打折 200 元= 购物金额 500 元 9 折 500 元= 购物金额 =1000 元 输入一个购物金额,输出打折率、购物实际付款金额;要求:分别用 i f 语句和 switch 语句两种方法完成编程;方法一:用 i f 语句#include void main float gwj
21、e; printf 请输入购物金额:; scanf%f,&gwje; ifgwje=200&gwje=500&gwje1000 printf 折扣率为8 折,实际应对金额为:%fn,gwje*0.8; else printf 折扣率为 7.5 折,实际应对金额为:%fn,gwje*0.75; 方法二:用进制 switch 语句#include void main float gwje,zk,fkje; int n; printf 请输入购物金额:; scanf%f,&gwje; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 45 页
22、- - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -n=intgwje/100; switchn case 0: case 1: zk=1; break; case 2: case 3: case 4: zk=0.9; break; case 5: case 6: case 7: case 8: case 9: zk=0.8; break; default: zk=0.75; fkje=gwje*zk; %fn,zk,fkje; printf 折扣率为: %f, 应对购物金额为: (5)某市出租车计费,起步价 8 元,前 3
23、km 不计费;超过 3km 但不足 20km ,按单程 1.4 元/km 计费;从 20km 开头,一律按单程 1.0 元/km 计费;实际行驶里程不足 1km 的按 1km 计费;请为出租车写一个程序,当输入实际里程时,立刻输出乘客应对的出租车费;#include void main int jl; 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -printf 请输入实际里程(公里) :; scanf%d
24、,&jl; ifjl3&jl20 printf 应对车费为: %f 元 n,8+jl-3*1.4; else printf 应对车费为: %f 元 n,8+17*1.4+jl-20*1; 模块 4 循环结构程序设计1. 分析以下程序的运行结果(1)#include void main int x,n=0; float sum=0,ave; printfinput scores: ; scanf%d,&x; whilex.=-1 sum+=x; n+; scanf%d,&x; ave=sum/n; printfaverage score=%.2fn,ave; 程序的运行结果 : (2)#incl
25、ude 细心整理归纳 精选学习资料 void main 第 15 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - - int n=0,s=0; do n=n+1; s=s+n; whiles200; printfn=%d,sum=%dn,n-1,s-n; 程序的运行结果 : (3)#include void main float x,min; int i; scanf%f,&x; min=x; fori=1;i5; i+ scanf%f,&x;
26、ifxminmin=x; printfmin=%fn,min; 细心整理归纳 精选学习资料 程序的运行结果: 第 16 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -(4)#include void main int i,j; fori=1;i=5;i+ forj=1;j=20-i;j+ printf ; forj=1;j=2*i-1;j+ printf*; printfn; 程序的运行结果 : 2. 编程实现以下功能(1)编写程序,将110
27、0 之间个位数是6 的数据输出;#include void main int i,k=0; fori=1;i=100;i+ 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -ifi%10=6 printf%3d ,i; k+; ifk%10=0 printfn; printfn; (2)从键盘上连续输入字符,统计其中大写字母的个数,直到输入换行符终止;#include void main int n=0; c
28、har c; printf 请输入一串字符 ,以回车终止 :; whilec=getchar.=n ifc=A&c=Z n+; printf 大写字母有 %d 个; n,n; (3)输入 5 位同学 3 门课程成果,分别运算并输出每位同学#include void main int n; float cj1,cj2,cj3,pjf=0; forn=1;n=5;n+ 3 门课程成果的平均分;细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - -
29、- - - - - - - -printf 请输入第 %d 位同学的三门课成果:,n; scanf%f%f%f,&cj1,&cj2,&cj3; pjf=cj1+cj2+cj3/3; printf 第 %d 位同学的平均成果是 %f 分; nn,n,pjf; (4)100 匹马驮 100 担货,大马一匹驮3 担,中马一匹驮2 担,小马两匹驮1 担,试编程运算大、中、小马的数目;#include void main int i,j; for i=0;i34;i+ /* 大马 */ for j=0;j100-i*3/2+1;j+ /*中马 */ if 100-i-j%2=0 & 3*i+2*j+10
30、0-i-j/2 =100 printf 大马 %d 匹,中马 %d 匹,小马 %d 匹nn,i,j,100-i-j; (5)编写程序,判定从键盘输入的自然数是否为素数(质数);说明:1)所谓素数就是只能被 1 和它自身整除的大于 1 的整数;2)要判定 n 是否为素数,就要用 2、3、 、n-1 分别去除 n,假如都不能被整除,就n 就是素数,正常退出循环;假如其中某个数被 #include void main int i,num; printf 请输入一个自然数:; scanf%d,# n 整除,就 n 不是素数,需要退出循环;细心整理归纳 精选学习资料 ifnum=1 printf
31、%d为非素数 ,num; 第 19 页,共 45 页 - - - - - - - - - - - - - - - - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -else fori=2;inum;i+ ifnum%i=0 break; ifi=num printf%d 为素数 n,num; else printf%d 为非素数 n,num; 模块 5 数组1. 分析以下程序的运行结果(1)#include void main int a=1,2,3,4,i,s=0,j=1; fori=3;i=0;i- s=s+ai*j;
32、 j=j*10; printf “s=%dn ”,s; 程序的运行结果 : (2)#include 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 20 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -void main int i,j,s=0; int a33=1,2,3,4,5,6,7,8,9; s=0; fori=0;i3;i+ forj=0;j3;j+ s=s+aii; printfs=%dn,s; 程序的运行结果 : (3)#include void
33、 main char ch7=65ab21; int i,s=0; fori=0;chi=0&chi=9;i+=2 s=10*s+chi-0; printf%dn,s; 程序的运行结果 : (4)运行时输入“Hello. ”#include 细心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 21 页,共 45 页 - - - - - - - - - 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -void main char ss10=1,2,3,4,5; getsss; strcatss,6789; printf%sn,ss; 程序的运行结果 : (5)#include #include void main char arr24; strcpyarr0,you; strcpyarr1,me; arr03=&; printf%sn,arr0; 2. 编程实现以下功能(1)输入一个数,插入到某升序排列的一维数组中,使插入后的数组仍旧升序;#include void main int a11=1,4,6,9,13,16,19,28,40,100;