《2022年C语言程序设计项目教程教学课件C语言程序设计项目教程习题答案 .pdf》由会员分享,可在线阅读,更多相关《2022年C语言程序设计项目教程教学课件C语言程序设计项目教程习题答案 .pdf(45页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、习题答案模块 1 C 语言基础知识1. 选择题(1)C 语言中运算对象必须是整型的运算符是(B )。A. %= B. / C. = D. = (2)以下所列的C 语言常数中,错误的是(B )。A. 0 xFF 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. n C. 中国 D. d (5)以下选项中正确的定义语句是( D ) 。A. int a:b; B. int ,a,b; C. int a+b=6;
2、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; ,则以下表达式中值为0 的是 ( D )。A. a&b B. a
3、=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=a/(a+b) 。(4)若有语句double x=15.5;int y
4、; ,当执行y=(int)(x/5)%2; 之后 y 的值是1 。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 1 页,共 45 页 - - - - - - - - - (5)若有语句double y=3.6; ,则执行完 +y;语句后,(+y)表达式的值是4.6 ,变量 y 的值是4.6 。(6)代数式 -2ab+40-4ac 改写成 C 语言的表达式是-2*a*b+40-4*a*c 。(7)在计算机中,字符的比较是对它们的ASCII 码值进行比较。(8) 已知
5、字母 a的 ASCII 码为十进制数97, 且设 ch为字符型变量, 则表达式 ch=a+8-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); 程序的运行结果:名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - -
6、 - - - - - - - - - - - - - 第 2 页,共 45 页 - - - - - - - - - (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); 程序的运行结果:名师归纳总结 精品学习资料 - - - - - - - - - - - - - -
7、-精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 3 页,共 45 页 - - - - - - - - - (6)#include void main( ) int k=4,a=3,b=2,c=1; printf(%dn ,(ka?k:(cb?c:a); 程序的运行结果:模块 2 顺序结构1. 程序填空题(1)要得到下列输出结果:请按要求填空,补充以下程序:#include void main( ) char c1,c2; c1=a; c2=b; printf(%c,%cn, c1,c2); printf(%c,%cn, c1-32,c2-32 );
8、 printf(%d,%d,%d,%dn, c1,c2,c1-32,c2-32 ) ; a,b A,B 97,98,65,66 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 4 页,共 45 页 - - - - - - - - - (2)要得到下列输出结果:#include void main( ) int a=2,b=5; printf(a=%d,b=%dn ,a,b ); 2. 分析下列程序的运行结果(1)#include void main( ) int n
9、=5,m=5; printf(%d,%dn,+m,n-); 程序的运行结果: (2)执行下列程序时输入:2468101#include void main( ) int x,y; scanf(%2d%*2d%2d,&x,&y); printf(%ldn,x+y); 程序的运行结果: a=%2,b=%5 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 5 页,共 45 页 - - - - - - - - - (3)执行下列程序时输入:ABCD#include void
10、 main( ) char x,y; x=getchar( ); y=getchar( ) ; putchar(x);putchar(n);putchar(y); 程序的运行结果: (4)#include #include void main( ) int a=1,b=2,c=2; float x=10.5,y=4.0,z; z=(a+b)/c+sqrt(int)y)*1.2/c+x; printf(z=%fn,z); 程序的运行结果: 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - -
11、- - - - 第 6 页,共 45 页 - - - - - - - - - 3. 编程实现以下功能(1)从键盘输入一个整数x,若 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(假设不计算复利) 。提示:
12、2.25%编写程序时应写为 0.0225,本金和年数未知,从键盘输入。#include #include void main() int n; float capital,rate=0.0225,deposit; printf( 请输入存款期和本金:); scanf(%d%f,&n,&capital); deposit=capital*pow(1+rate,n); printf(deposit=%fn,deposit); (3)编写程序,把700 分钟换算成用小时和分钟表示。名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - -
13、 - - - - - - - - - - - - - 第 7 页,共 45 页 - - - - - - - - - #include #include void main() int n=700,x,f; x=n/60; f=n%60; printf(700 分钟是 %d 小时, %d 分钟。 n,x,f); 模块 3 选择结构1. 分析下列程序的运行结果(1)#include void main( ) int x=1,y=5,z=3; if(z=x) printf(%dn,z); else printf(%d n,y); 程序的运行结果: (2)#include void main( ) i
14、nt x=1,a=0,b=0; switch(x) case 0:b+; case 1:a+; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 8 页,共 45 页 - - - - - - - - - case 2:b+,a+; printf(a=%d,b=%dn,a,b); 程序的运行结果: (3)#include void main( ) int n=6; if(n+6) printf(%dn,n); else printf(%d n,n-); 程序的运行结果:
15、 (4)#include void main() int a=1,b=-1,c; if(a*b0) c=1; else if(a*b0) c=2; else c=3; printf(c=%dn,c); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 9 页,共 45 页 - - - - - - - - - 程序的运行结果: 2. 编程实现以下功能(1)从键盘输入一个整数,如果是偶数,输出“Is Even ”;如果是奇数,输出“Is Odd ”。#include vo
16、id main() int i; printf( 请输入一个整数:); scanf(%d,&i); if(i%2=0) printf(%d %sn,i,Is Even); else printf(%d %sn,i,Is Odd); (2)求解一元二次方程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; if(d0) p
17、rintf( 无实根! n); else 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 10 页,共 45 页 - - - - - - - - - f=sqrt(d); x1=(-b+f)/(2*a); x2=(-b-f)/(2*a); if(f=0) printf(x1=x2=%lfn,x1); else printf(x1=%lf,x2=%lfn,x1,x2); (3)编写可以完成加、减、乘、除、求余运算的简易计算器程序。#include #include #
18、include void main() char ch; int a,b,c; float div; printf(tt 简易计算器 nn); printf(t1. 加法运算2.减法运算 nn); printf(t3. 乘法运算4.除法运算 nn); printf(t5. 求余运算0.减法运算 nn); printf(t 请选择( 0-5) :); ch=getche(); switch(ch) case 0: exit(0); case 1: printf(nn请输入两个整数:); scanf(%d%d,&a,&b); 名师归纳总结 精品学习资料 - - - - - - - - - - -
19、- - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 11 页,共 45 页 - - - - - - - - - c=a+b; printf(%d+%d=%dn,a,b,c); break; case 2: printf(nn请输入两个整数:); scanf(%d%d,&a,&b); c=a-b; printf(%d-%d=%dn,a,b,c); break; case 3: printf(nn请输入两个整数:); scanf(%d%d,&a,&b); c=a*b; printf(%d*%d=%dn,a,b,c); break; case 4
20、: printf(nn请输入两个整数:); scanf(%d%d,&a,&b); div=(float)a/b; printf(%d/%d=%fn,a,b,div); break; case 5: printf(nn请输入两个整数:); scanf(%d%d,&a,&b); c=a%b; printf(%d%d=%dn,a,b,c); break; default: printf(nnt选择错误! n); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 12 页,共
21、 45 页 - - - - - - - - - (4)某商场给顾客购物的折扣率如下:购物金额 200 元不打折200 元=购物金额 500 元9 折500 元=购物金额 =1000 元7.5 折输入一个购物金额,输出打折率、购物实际付款金额。要求:分别用i f 语句和 switch 语句两种方法完成编程。方法一:用i f 语句#include void main() float gwje; printf( 请输入购物金额:); scanf(%f,&gwje); if(gwje=200&gwje=500&gwje1000) printf( 折扣率为8 折,实际应付金额为:%fn,gwje*0.8
22、); else printf( 折扣率为7.5 折,实际应付金额为:%fn,gwje*0.75); 方法二:用进制switch 语句#include void main() float gwje,zk,fkje; int n; printf( 请输入购物金额:); scanf(%f,&gwje); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 13 页,共 45 页 - - - - - - - - - n=(int)gwje/100; switch(n) case
23、 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; printf( 折扣率为: %f,应付购物金额为:%fn,zk,fkje); (5)某市出租车计费,起步价8 元,前 3km 不计费;超过3km 但不足 20km,按单程1.4元/km 计费;从 20km 开始,一律按单程1.0 元/km 计费;实际行驶里程不足1km 的按 1km计费。请为出租车
24、写一个程序,当输入实际里程时,立即输出乘客应付的出租车费。#include void main() int jl; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 14 页,共 45 页 - - - - - - - - - printf( 请输入实际里程(公里):); scanf(%d,&jl); if(jl3&jl20) printf( 应付车费为:%f 元 n,8+(jl-3)*1.4); else printf( 应付车费为:%f 元 n,8+17*1.4+(
25、jl-20)*1); 模块 4 循环结构程序设计1. 分析下列程序的运行结果(1)#include void main( ) int x,n=0; float sum=0,ave; printf(input scores: ); scanf(%d,&x); while(x!=-1) sum+=x; n+; scanf(%d,&x); ave=sum/n; printf(average score=%.2fn,ave); 程序的运行结果: (2)#include void main( ) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习
26、资料 - - - - - - - - - - - - - - - 第 15 页,共 45 页 - - - - - - - - - int n=0,s=0; do n=n+1; s=s+n; while(s200); printf(n=%d,sum=%dn,n-1,s-n); 程序的运行结果: (3)#include void main( ) float x,min; int i; scanf(%f,&x); min=x; for(i=1;i5; i+) scanf(%f,&x); if(xmin)min=x; printf(min=%fn,min); 程序的运行结果: 名师归纳总结 精品学习资
27、料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 16 页,共 45 页 - - - - - - - - - (4)#include void main( ) int i,j; for(i=1;i=5;i+) for(j=1;j=20-i;j+) printf( ); for(j=1;j=2*i-1;j+) printf(*); printf(n); 程序的运行结果: 2. 编程实现以下功能(1)编写程序,将1100 之间个位数是6的数据输出。#include void main() int
28、 i,k=0; for(i=1;i=100;i+) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 17 页,共 45 页 - - - - - - - - - if(i%10=6) printf(%3d ,i); k+; if(k%10=0) printf(n); printf(n); (2)从键盘上连续输入字符,统计其中大写字母的个数,直到输入换行符结束。#include void main() int n=0; char c; printf( 请输入一串字符,以
29、回车结束 :); while(c=getchar()!=n) if(c=A)&(c=Z) n+; printf( 大写字母有 %d 个。 n,n); (3)输入 5 位同学 3 门课程成绩,分别计算并输出每位同学3 门课程成绩的平均分。#include void main() int n; float cj1,cj2,cj3,pjf=0; for(n=1;n=5;n+) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 18 页,共 45 页 - - - - - -
30、- - - 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;j(100-i*3)/2+1;j+) /*中马 */ if (100-i-j)%2=0 & 3*i+
31、2*j+(100-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 就是素数,正常退出循环;如果其中某个数被n 整除,则n 不是素数,需要退出循环。#include void main() int i,num; printf( 请输入一个自然数:); scanf(%d,&num); if(num=1) printf(%d为
32、非素数 ,num); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 19 页,共 45 页 - - - - - - - - - else for(i=2;inum;i+) if(num%i=0) break; if(i=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
33、; for(i=3;i=0;i-) s=s+ai*j; 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; for(i=0;i3;i+) for(j=0;j3;j+) s=s+aii; print
34、f(s=%dn,s); 程序的运行结果: (3)#include void main( ) char ch7=65ab21; int i,s=0; for(i=0;chi=0&chi=9;i+=2) s=10*s+chi-0; printf(%dn,s); 程序的运行结果: (4)运行时输入“Hello! ”#include 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 21 页,共 45 页 - - - - - - - - - void main( ) char
35、 ss10=1,2,3,4,5; gets(ss); strcat(ss,6789); printf(%sn,ss); 程序的运行结果: (5)#include #include void main( ) char arr24; strcpy(arr0,you); strcpy(arr1,me); arr03=&; printf(%sn,arr0); 2. 编程实现以下功能(1)输入一个数,插入到某升序排列的一维数组中,使插入后的数组仍然升序。#include void main() int a11=1,4,6,9,13,16,19,28,40,100; int num,i,j; printf
36、( 数组 a:n); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 22 页,共 45 页 - - - - - - - - - for(i=0;ia9) a10=num; /*num 比 a9大则 num 插入到最后 */ else for(i=0;inum) /* 只到 num 比 ai小则将 num 插入到 ai*/ for(j=9;j=i;j-) /*要把 num 插入到 ai 就必须把ai到 a9的所有数依次后移一位*/ aj+1=aj; ai=num;
37、break; printf( 插入后的数组a:n); for(i=0;i11;i+) printf(%5d,ai); printf(n); (2)从键盘上输入一行由小写英文组成的字符串,用置换法(置换规律:按字母表逆序)对其加密。#include void main() char list27=zyxwvutsrqponmlkjihgfedcba; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 23 页,共 45 页 - - - - - - - - - char
38、str80; int i,j; printf( 请输入一小写字母串(长度小于80) :); scanf(%s,&str); i=0; while(stri!=0) j=stri-97; stri=listj; i+; printf( 加密成为: %sn,str); (3)输入一行简单英文句子,统计其中单词的个数。#include void main() char s80,c; int i,n=0,word=0; printf( 请输入一句英语:); gets(s); for(i=0;(c=si)!=0;i+) if(c= ) word=0; else if(word=0) word=1; n+
39、; printf( 这个句子里包含%d 个单词。 n,n); 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 24 页,共 45 页 - - - - - - - - - /*单词的数目可以由空格出现的次数决定,连续若干个空格作为出现一次空格;一行开头的空格不统计在内.如果测出某一个字符为非空格,它的前面的字符是空格,则表示新的单词开始了,此时n+.若当前字符为非空格而其前面的字符也是非空格,则意味着仍然是原来那个单词的继续,n 不加 1.若 word=0,则表示前一
40、个字符是空格;.若 word=1,则表示前一个字符不是空格;*/ (4)编写程序,输入10 个整数放入数组a 中,求数组中最小值min 及其下标k 并输出。#include void main() int a10,i,min,k; printf( 请输入 10 个整数 :); for(i=0;i10;i+) scanf(%d,&ai); min=a0; k=0; for(i=1;i10;i+) if(aimin) min=ai; k=i; for(i=0;i10;i+) printf(%d ,ai); printf(n 最小值是 %d,其下标是 %dn,min,k); (5)求一个3*3 矩阵
41、对角线元素之和。#include void main() int a33,i,j,s=0; printf( 请输入一个3x3 的矩阵 :); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%d,&aij); for(i=1;i10;i+) for(j=0;j3;j+) if(i=j) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 25 页,共 45 页 - - - - - - - - - s=s+aij; for(i=0;i3;i+) f
42、or(j=0;j3;j+) printf(%4d,aij); printf(n); printf(n 对角线之和是:%dn,s); (6)编程打印出图5-2 所示的杨辉三角形。(10 行) 规律:除两侧元素均为1 之外,其余每个位置上的元素的值为其左上角元素与其正上方元素之和。1 1 1 1 2 1 13 31 146 4 1 1510105 1 1 6 15 20 15 6 1 图 5-2 杨辉三角形#include #define N 10 void main() int i,j,n; int aNN; a00=1;a10=1;a11=1; for (i=2;iN;i+) for (j=0
43、;j=i;j+) if (j=0) aij=1; else if (i=j) aij=1; else aij=ai-1j-1+ai-1j; for (i=0;iN;i+) for (j=0;j=i;j+) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 26 页,共 45 页 - - - - - - - - - printf(%dt,aij); printf(n); 模块 6 函数1. 程序填空题 (请按要求填空,补充以下程序) (1)下列程序功能是统计从键盘上输入
44、的字符中大写字母的个数,输入时用 “ *” 作为输入结束标志。#include #include void main( ) char c1; int count=0; scanf(%c,&c1); while( c1 ) != * ) if (isupper(c1) count+; scanf(%c,&c1); printf(“ %dn ” ,count); (2)下列程序的功能是求101000 之间的所有素数。#include void main( ) int i; for (i=10;i=1000);i+) if (isprime( i ) printf(“ %d, ” ,i);print
45、f(“n” );名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 27 页,共 45 页 - - - - - - - - - #include isprime(int n) int i; for (i=2;i=sqrt(n);i+) if(n%i=0) return( 0 ); return( 1 ); 2. 分析下列程序的运行结果( 1)#include int d=1; f(int p) int d=1; d+=p+; void main() int a=5; f
46、(a); d+=a+; printf( “ %dn” ,d); 程序的运行结果: (2)#include 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 28 页,共 45 页 - - - - - - - - - void main( ) int k=4,m=1,p; p=fun(k,m); printf(%d ,p); p=fun(k,m); printf( “ %d” ,p); fun(int a,int b) static int m=0,i=2; i+=m+
47、1; m=i+a+b; return (m); 程序的运行结果: (3)#include void main( ) int a=2,i; for (i=0;i3;i+); printf( “ %d” ,func(a); func(int a) int b=0; static c=3; 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 29 页,共 45 页 - - - - - - - - - b+;c+; return (a+b+c); 程序的运行结果: 3. 编程实
48、现以下功能(1)编写一个函数,统计一个字符串中所含字母、数字、空格和其他字符的个数。#include #include int letter,digit,space,other; void count(char str); main() char str100; letter=digit=space=other=0; printf( 请输入一个字符串:n); scanf(%n,str); /请注意这里的正规写法!意思即匹配任意非换行符n的字符count(str); printf( 所输入字符串中有字母%d 个,数字 %d 个,空格 %d 个,其他字符 %d 个。n,letter,digit,s
49、pace,other); void count(char str) int i; for(i=0;i=a&stri=A&stri=0&stri=9) 名师归纳总结 精品学习资料 - - - - - - - - - - - - - - -精心整理归纳 精选学习资料 - - - - - - - - - - - - - - - 第 30 页,共 45 页 - - - - - - - - - digit+; else if(stri=32) space+; else other+; (2)某班(假设有10 人)期中考试共有5 门成绩,分别用函数求:每个学生的平均分;每门课程的平均分;按每个学生的平均分
50、排序。#include int m=0,n=0;/* 定义全局变量m,n*/ float average (float score6,int i)/* 求每个学生平均分*/ int j; float ave=0,sum=0; for (j=1;j6;+j) sum+=scoreij; ave=sum/5; return ave; float perave (float score6,int j)/*求每门课程平均分*/ int i; float aveper=0,sums=0; for (i=1;i11;+i) sums+=scoreij; aveper=sums/10; return ave