while((ch=getchar())!=EOF) { if(ch==' ') continue; else
printf(\} }
—————————————————————————————————————— 6.22 请编写程序统计输入的行数,输入用EOF结束输入。 ※程序如下※ #include main() { char ch; int i=0;
while((ch=getchar())!=EOF) {
if(ch=='\\n') i++; }
printf(\}
—————————————————————————————————————— 6.23 请编写程序统计输入的一行中小写字母的个数。
※程序如下※ #include main() { int i=0; char ch;
while((ch=getchar())!='\\n') {
if((ch>='a')&&(ch<='z')) i++; }
printf(\}
—————————————————————————————————————— 6.24 请编写输出以下图案的程序,图案的行数由输入的值确定。
A BBB CCCCC
DDDDDDD EEEEEEEEEEE ※程序如下※ #include main() { int i,j,k,n;
printf(\scanf(\for(i=1;i<=n;i++) {
for(j=n;j>i;j--) printf(\
for(k=1;k<=2*i-1;k++) printf(\printf(\} }
***************End of Chapter 6******************* 第七章 函 数
************************************************** 一、选择题
(1) C (2) C (3) B (4)C (5) A (6) D (7) A 二、填空题 (8) 12 (9) 9.000000 (10) 4 (11) n=1 ,s
(12) z=1 ; i<= y , z = z * x (13) 1 , s * i , 0 ,f ( k ) 三、程序设计和编程题
—————————————————————————————————————— 7.14 以下fun函数用以判断n是否是素数,fun函数中有逻辑错,请调试改正。 fun(int n) { int k,yes;
for(k=2;k<=n/2;k++) if(n%k==0) return yes=0; return yes=1; }
※正确答案是: fun(int n) {
int k,yes=1; for(k=2;k<=n/2;k++) if(n%k==0) return yes=0; return yes; } main() { int n,yes;
printf(\scanf(\yes=fun(n);
if(yes==1)printf(\else printf(\}
—————————————————————————————————————— 7.15 编写函数 int mymod(int a, int b)用以求a被b除之后的余数。 ※程序如下※ #include
int mymod( int a, int b ) {
int remainder; remainder=a%b; return remainder; } main() { int a,b;
printf(\scanf(\printf(\余数=%d\}
—————————————————————————————————————— 7.16 编写程序求:1-1/2+1/3-1/4+1/5-1/6+1/7-...1/n ※程序如下※ main() { int n; float a;
float sum(int n); scanf(\a=sum(n); printf(\}
float sum(int n) { float s=0; int i,t=1; for(i=1;iBR> { s=s+1/i*t; t=-t; } return s; }
—————————————————————————————————————— 7.17 编写函数,根据整型形参m的值,计算如下公式的值。 t=1-1/(2 x 2)-1/(3 x 3)-...-1/(m x m) 例如:若m=5,则应输出0.536389。 ※程序如下※ main() { float t=1; float f2(int); int i,m;
scanf(\for(i=2;i<=m;i++) t=t-f2(i); printf(\}
float f2(int m) { float s; s=1.0/(m*m); return s; }
—————————————————————————————————————— 7.18 编写函数用以求表达式x2-5x+4,x作为参数传给函数,调用此函数求: y1=22-5*2+4
y2=(x+15)2-5*(x+15)+4 y3=sin2x-5*sinx+4 ※程序如下※ #include #include float fun(float x) { float y;
y=pow(x,2)-5*x+4;
return y; } main() {
float x,y1,y2,y3; clrscr();
printf(\scanf(\ y1=fun(2); y2=fun((x+15)); y3=fun(sin(x));
printf(\}
***************End of Chapter 7******************* 第八章 指 针
************************************************** 一、选择题
(1) A (2) B (3) B (4) C (5) B (6) B (7) C (8) D+ (9) B (10)C (11)C (12)C 二、填空题 (13) 110 (14) 7, +1
(15) char * p , p=&ch , scanf (“%c”, p ) , * p ='a ', printf (“%o”, * p)
(16) s = p + 4 , s= s -2 , 50 , * (s+1) , 2 , 10,20,30,40,50 三、编程题
——————————————————————————————————————
8.17 请编写函数,其功能是对传送过来的两个浮点数求出和值与差值,并通过形参传送回调用函数。 ※程序如下※ #include
sum_sub(float a,float b,float *sum, float *sub) {
*sum=a+b; *sub=a-b; } main() {
float a,b,sum,sub; /*定义变量sum求和,变量sub求差*/ printf(\scanf(\sum_sub(a,b,&sum,&sub); printf(\