当前位置:文档之家› c语言知识学习第七章课后题

c语言知识学习第七章课后题

c语言知识学习第七章课后题
c语言知识学习第七章课后题

printf("%d\n",i);

return 0;

}

结果:

结果分析:

开头定义square()函数

功能:计算一个数的平方

入口参数:整数x

返回值:i*i

主函数:i=0;进入循环:

静态变量i=1;

i=i+square(1)=2;

输出2;

循环变量i=0+1=1;

i=1<3 成立

静态变量i=i+square(2)=2+4=6;

输出6;

second=0;

for(i=0;i<1000000;i++)

{

update(); /*利用循环控制时钟运行时间*/

display(); /*显示时,分,秒*/

delay(); /*模一尺时间为1秒*/

}

return 0;

}

结果:

自动跳出时间

7-3、

#include

scanf("%d,%d",&x,&y);

m=max(x,y);

printf("the max number is %d\n",m); }

结果:

7-4

#include

/*LCM()函数

功能:计算两个整数的最小公倍数

入口参数:两整数a,b

返回值:最小公倍数

*/

int LCM(int a,int b)

{

do{ /*输入整数的合法数据*/ printf("输入两个正整数:");

scanf("%d,%d",&x,&y);

}while(x<0 || y<0);

m = LCM(x,y);

printf("最小公倍数为:%d\n",m);

}

结果:

7-5、

#include

long fact(int n);

void main()

{

int i=0; /*循环变量*/

int n=0; /*输入的值*/

{

static long p=1;

p=p*n;

return p;

}

结果:

7-6、

#include

long fact(int n);

void main()

{

int i=0; /*循环变量*/

int n=0; /*输入的值*/

int m=0; /*接收fact()函数的返回值*/ long s=0; /*所求最终结果*/

static long p=1;

p=p*n;

return p;

}

结果:

7-7、

(1)穷举法:

#include

int Gcd(int a,int b);

void main()

{

int x=0; /*键盘键入两个数*/

int y=0;

int m=0; /*接收Gcd的返回值*/

for(i=t; i>=1; i--)

{

if(a%i==0 && b%i==0)

return i;

}

}

结果:

(2)欧几里得算法

#include

int Gcd(int a,int b);

void main()

{

int x=0; /*键盘键入两个数*/

int y=0;

int m=0; /*接收Gcd的返回值*/

if(r!=0)

{

do{

a=b;

b=r;

r=a%b;

}while(r!=0);

}

return b;

}

结果:

(3)递归方法:

#include int Gcd(int a,int b); void main()

if (a==b) /*递归出口*/ return a;

else

{

if(a>b)

return Gcd(a-b,b);

else

return Gcd(b,b-a);

}

}

结果:

7-9、

#include

/*old()函数

功能:计算第i个人的年龄

入口参数:人数i

c语言第二版第七章答案

7.1 写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 参考程序如下: #include int aa(int m,int n) //求最大公约数 { int k; if(m int aa(int n) { int i; int flag; // flag标志 for(i=2;i<=sqrt(n);i++) { if(n%i==0) break; } if(i>sqrt(n)) flag=1; else flag=0;

return(flag); } main() { int n,flag; // flag标志 printf("\nInput n:"); scanf("%d",&n); flag=aa(n); if(flag==1) printf("%d is a prime number.\n",n); else printf("%d is not a prime number.\n",n); } 7.4 写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。 参考程序如下: #include main() { int a[3][3]={{1,2,3},{4,5,6},{7,8,9}}; int b[3][3],i,j; printf("array a:\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",a[i][j]); printf("\n"); } printf("After switch:\n"); aa(a,b); for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%5d",b[i][j]); printf("\n"); } } void aa(int a[3][3],int b[3][3]) { int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++) b[j][i]=a[i][j]; } 说明:当数组名作函数参数时,形参也必须是同类型的数组名,形参数组名的实质是一个指针变量,存放的第0行第0列的元素的地址;这样,子函数中a[i][j]就是主函数中的a[i][j]; 7.11写一个函数,用“起泡法”对输入的10个字符按由小到大的顺序排列 参考程序如下: main()

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。两个整数由键盘输入。 hcf(u,v) int u,v; { int a,b,t,r; if(u>v) { t=u;u=v;v=t; } a=u;b=v; while((r=b%a)!=0) { b=a;a=r; } return(a); } lcd(u,v,h) int u,v,h; { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.d=%dn",l); return(u*v/h); } #include

void main() { int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%dn",h); l=lcd(u,v,h); printf("L.C.D=%dn",l); } 7.2 求方程根 float x1,x2,disc,p,q; greater_than_zero(a,b) float a,b; { x1=(-b+sqrt(disc))/(2*a); x2=(-b-sqrt(disc))/(2*a); } equal_to_zero(a,b) float a,b; { x1=x2=(-b)/(2*a);} smaller_than_zero(a,b) float a,b; { p=-b/(2*a);

q=sqrt(disc)/(2*a); } main() { float a,b,c; printf("n输入方程的系数a,b,c:n"); scanf("%f,%f,%f",&a,&b,&c); printf("n 方程是:% 5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c); disc=b*b-4*a*c; printf("方程的解是:n"); if(disc>0) { great_than_zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else if(disc==0) { zero(a,b); printf("X1=%5.2ftX2=%5.2fnn",x1,x2); } else { small_than_zero(a,b,c); printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

C语言程序设计第四版第七章答案 谭浩强

第七章函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; } return(t); } minbeishu(m,n) int m,n; {int j; if(m>=n) j=m; else j=n; for(;!(j%m==0&&j%n==0);j++); return j; } main() {int a,b,max,min; printf("enter two number is: "); scanf("%d,%d",&a,&b); max=maxyueshu(a,b); min=minbeishu(a,b); printf("max=%d,min=%d\n",max,min); } 7.2求方程的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include"math.h" float yishigen(m,n,k) float m,n,k; {float x1,x2; x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m); printf("two shigen is x1=%.3f and x2=%.3f\n",x1,x2); } float denggen(m,n) float m,n; {float x; x=-n/(2*m); printf("denggen is x=%.3f\n",x); }

C语言第七章复习题(不含答案)

1.下列对C语言字符数组的描述中错误的是( )。 (A)字符数组可以存放字符串 (B)字符数组中的字符串可以整体输入、输出 (C)可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值 (D)不可以用关系运算符对字符数组中的字符串进行比较 2.不能把字符串:Hello!赋给数组b的语句是( )。 (A)char b[10]={'H','e','l','l','o','!'}; (B)char b[10];b="Hello!"; (C)char b[10];strcpy(b,"Hello!"); (D)char b[10]="Hello!"; 3.若有以下说明: int a[12]={1,2,3,4,5,6,7,8,9,10,11,12}; char c='a',d,g; 则数值为4的表达式是( )。 (A)a[g-c] (B)a[4] (C)a['d'-'c'] (D)a['d'-c] 4.以下程序的输出结果是( ) (A) 20 (B) 21 (C) 22 (D)23 main() { int i, k, a[10], p[3]; k=5; for (i=0;i<10;i++) a[i ]=i; for (i=0;i<3;i++) p[i ]=a[i *(i+1)]; for (i=0;i<3;i++) k+=p[i] *2; printf("%d\n",k); 5.以下程序的输出结果是( )。 (A) 1,5,9 (B) 1,4,7 (C) 3,5,7 (D)3,6,9 main() { int i, x[3][3]={1,2,3,4,5,6,7,8,9}; for(i=0;i<3;i++) printf("%d,",x[i][2-i]); 6.下面程序运行的结果是( )。 (A) 2ba56 (B) 6521 (C) 6 (D) 62 main() { char ch[7]={“65ab21“}; int i,s=0 for(i=0;ch[i]>='0' && ch[i]<='9';i+=2) s=10*s+ch[i]-'0'; printf("%d\n",s); } 7.合法的数组定义是( )。 (A)int a[]="string"; (B)int a[5]={0,1,2,3,4,5}; (C)char s[6]="string"; (D)char a[]={0,1,2,3,4,5}; 8.函数调用:strcat(strcpy(str1,str2),str3)的功能是( )。 (A)将串str1复制到串str2中后再连接到串str3之后 (B)将串str1连接到串str2之后再复制到串str3之后 (C)将串str2复制到串str1中后再将串str3连接到串str1之后

C语言课后习题

习题 第三章 #include #include int main() { int d,p; double r,a,m; scanf("%d %d %lf",&d,&p,&r); a=(p/(p-d*r)); m=log(a)/log(1+r); if(p>0&&d>0) { if(d<=m*p) printf("%.1f",m); else printf("God"); } else printf("0.0"); return 0; } 勾股数 #include int main() { int a,b,c,n; scanf("%d",&n); for(a=1;a<=n;a++) { for(b=1;b<=n;b++) { for(c=1;c<=n;c++) { if(c*c==a*a+b*b) { if(a<=b) { printf("%d %d %d\n",a,b,c); } }

} } } return 0; } 第四章 计算分段函数值 #include int main() { float x,y; scanf("%f",&x); if(x<1) y=x; else if(x>=1&&x<10) y=2*x-1; else if(x>=10) y=3*x-11; printf("%.2f",y); return 0; } 找出三个数中最大的数 #include int main() { int a,b,c,max; scanf("%d%d%d",&a,&b,&c); max=a>b?a:b; if(c>max) max=c; printf("%d",max); return 0; } 10844成绩等级评分 #include int main() { int x; scanf("%d",&x); if(x>=0&&x<=100) { switch(x/10) { case 10:

C语言程序设计(何钦铭)课后习题作业

第一章习题 1、对C语言来说,下列标示符中哪些是合法的,哪些是不合法的 Total, _debug, Large&Tall, Counter1, begin_ 答:合法的:_debug、Counter1、begin_。 不合法的:Total、Large&Tall。 2、改写节中的流程图,求1—100中能被6整除的所有整数的和。 3、改写节中的程序,求1—100中能被6整除的所有整数的和,并在编程环境中验证该程序

的运行结果。 答:程序为: #include<> int main(void) { int i,sum=0; for(i=1;i<=100;i++) if(i%6==0)sum=sum+i; printf("sum=%d\n",sum); return 0; } 4、对于给定的整数n(n>1),请设计一个流程图判别n是否为一个素数(只能被1和自己整除的整数),并分析该流程图中哪些是顺序结构、哪些是分支结构和循环结构。

第二章作业 1.编写程序,输入两个整数num和num2,计算并输出她们的和、差、积、商。 答:程序: #include<> void main() { int num1,num2,y1,y2,y3,y5; double y4; printf("请输入两个数:num1,num2\n"); scanf("%d%d",&num1,&num2); y1=num1+num2; y2=num1-num2; y3=num1*num2; y4=num1*num2; y5=num1%num2; printf("num1,num2和y1=%d\nnum1,num2差y2=%d\nnum1,num2积y3=%d\nnum1,num2商y4=%lf\nnum1,num2余y5=%d\n",y1,y2,y3,y4,y5); } 2.为了倡导居民节约用电,某省电力公司执行“阶梯电价”,安装一户一表的居民用户电价分为两个“阶梯”:月用电量50千瓦时以内的,电价为元/千瓦时;超出50千瓦时的用电量,电价上调元/千瓦时。编写程序,输入用户的月用电量(千瓦时),计算并输出该用户应支付的电费(元)。 答:程序: #include<> void main()

C语言复习题及答案 第七章 数组

第七章数组 (8学时) 学习目的与要求: 1 、重点掌握一维数组的定义和引用; 2 、基本掌握二维数组的定义和引用; 3 、重点掌握字符型数组的定义与引用; 4 、能正确使用字符串处理函数; 5 、学会使用数组解决实际问题。 重点: 1 、一维数组的定义与引用; 2 、二维数组的定义与引用; 3 、字符数组的定义与引用; 第1讲 知识归纳: 1、一维数组的定义:类型说明符数组名[ 常量表达式] ; (1) (1)数组名后必须用方括弧[ ] ,用其他括弧均错误; (2) 方括弧中的常量表达式表示数组的元素个数; (3) 方括弧中的常量表达式,必须是能计算出具体数值,且不改变的常量,不能是变量; 2、一维数组的引用: 数组名[ 下标] //下标从0开始,可以是整型常量或整型表达式; (1) 注意:数组元素引用时,不要超出数组范围; 如int a[10] ; //可以引用的数组元素为a[0]……a[9] , a[10] 不是本数组元素; 3、一维数组的初始化: (1) (1)可以在定义数组后,立刻赋值;如int a [3] = { 1,3, 5} ; 但下面这样是错误的: int a[3] ; a = { 1,3, 5} ; (2) (2)可以给数组的部分元素赋值,不赋值的元素,默认值为int 0, char, …?, float 0.0 ; 如int a [3]= {1,3 } ; //a[0] =1 ; a[1]= 3 ; a[2]= 0 ; (3) 在对数组全部元素赋初值时,可以不指定元素个数; (4) 可以在循环控制下,给数组各元素赋值; 如:int a[10] ; for ( i=0 ; i <10 ;i ++ ) a [ i ] = i ; 基础训练(A) 一、选择题 1、在c语言中,引用数组元素时,其数组下标的数据类型允许是()。 A)整型常量B)整型表达式 C)整型常量或整型表达式D)任何类型的表达式 2、要说明一个有10个int元素的数组,应当选择语句()。 A) int a[10]; B) int a(10); C) int a[9] D) int a[11] 3、以下对数组的正确定义是:()。 A) float b[5.0] B) float b[5] C) float b(5) D) float b[] 4、对以下说明语句的正确理解是()。 int a[10]={6,7,8,9,10}; A)将5个初值依次赋给a[1]至a[5]

C语言程序设计第二版第四章第七章课后答案

1、输入函数scanf的参数错误,应该为:scanf("%f",&k); 2、|1234 1234 | 3、ff10 4、1,3,1 5、原字符串左边加空格再加字符串本省,字符个数总和为5个 6、scanf("%d,%d,%c,%c",&a1,&a2,&c1,&c2); 7、 printf("a+b=%d\n",a+b); printf("a-b=%d\n",a-b); printf("a*b=%d\n",a*b); printf("a/b=%d\n",a/b); printf("(float)a/b=%f\n",(float)a/b); printf("a%b=%d\n",a%b); 8、 void main() { float r; float s,c; printf("please input the number:"); scanf("%f",&r); if(r>=0) { s = 3.14*r*r; c = 2*3.14*r; printf("s = %f, c = %f\n",s,c); } else printf("you input number is error!"); } 9 void main() {int n; printf("please input the number:"); scanf("%d",&n); if(n>=100 && n <= 999) printf("%d%d%d",n%10,(n/10)%10,n/100); else printf("you input number is error!"); } 10、 void main() { int i,j,k; scanf("%d,%d,%d",&i,&j,&k); ((i%2 != 0?1:0) + (j%2 != 0?1:0)+(k%2 != 0?1:0)) == 2?printf("YES\n"):printf("NO\n"); } 11、 void main()

c语言第七章习题

第七章结构体 一、选择题 1、若有语句:char s1[]="string",s2[8],*s3,*s4="string2";则对库函数strcpy的错误调用是()A)strcpy(s1,"string2"); B)strcpy(s4,"string1"); C)strcpy(s3,"string1"); D)strcpy(s1,s2); 2、下面程序的运行结果是() fun(int **a,int p[2][3]) {**a=p[1][1];} main() {int x[2][3]={2,4,6,8,10,12},*p;p=(int *)malloc(sizeof(int));fun(&p,x);printf("%d\n",*p);} A)10 B)12 C)6 D)8 3、以下scanf函数调用语句中对结构体变量成员的不正确引用是()。 struct pupil { char name[20]; int age; int sex;} pup[5],*p; p=pup; A)scanf("%s",pup[0].name); B)scanf("%d",&pup[0].age); C)scanf("%d",&(p->sex)); D)scanf("%d",p->age); 4、以下对结构体变量stul中成员age的非法引用是()。 struc student { int age; int num; }stul,*P; p=&stul; A)stul.age B)student.age C)p->age D)(*p).age 5、设有以下说明和定义语句,则下面表达式中值为3的是()。 struct s { int i1; struct s *i2;}; struct s a[3]={1,&a[1],2,&a[2],3,&a[0]},*ptr; ptr=&a[1]; A)ptr->i1++ B)ptr++->i1 C)*ptr->i1 D)++ptr->i1 6、若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则《1》中应填入的内容是: int *p; p=《1》malloc(sizeof(int)); A)int B)int * C)(*int) D)(int *) 7、以下对C语言中共用体类型数据的叙述正确的是()。 A)可以对共有体变量名直接赋值B)一个共用体变量中可以同时存放其所有成员 C)一个共有体变量中不能同时存放其所有成员 D)共用体类型定义中不能出现结构体类型的成员 8、当说明一个共用体变量时系统分配给它的内存是()。

C语言 第七章课后答案

//7.1用筛选法求100之内的素数。#if 0 #include void main() { int i,k; for(i=0;i<100;i++) { k=i-1; while(k>0) { if(i%k==0) {break;} else {k--;} } if(k==1) { printf("%5d是素数\n",i); } } } #endif #if 0 //7.2 用选择法对10 个整数排序 #include void main() { int i,j,t,min; //int a[10]; // for(i=0;i<10;i++) // { // printf("a[%d]=",i); // scanf("%d",&a[i]); // } /// printf("\n");

int a[10] = {5,3,7,6,4,9,10,8,2,1}; for(i=0;i<=9;i++) { min=i; { for(j=i+1;j<=10;j++) if(a[min]>a[j]) { min=j; t=a[i]; a[i]=a[min]; a[min]=t; } } } printf("10个数由小到大排序"); for(i=0;i<10;i++) { printf("%5d",a[i]); } printf("\n"); } #endif #if 0 //7.3 求一个3x3的整型矩阵对角线元素之和#include void main() { int i,j,sum=0,sum1=0; int a[3][3]={{1,2,5},{45,56,3},{12,45,67} }; printf("输出矩阵:\n");

c语言第七章课后题

一、第七章习题7(p184-p187),全做,中选做两道,要求给出程序执行结果。7-1、 #include <> int Square(int i) { return i*i; } int main() { int i=0; i=Square(i); for(; i<3;i++) { static int i=1; i+=Square(i); printf("%d,",i); } printf("%d\n",i); return 0; } 结果: 结果分析: 开头定义square()函数 功能:计算一个数的平方 入口参数:整数x 返回值:i*i 主函数:i=0;进入循环: 静态变量i=1; i=i+square(1)=2; 输出 2; 循环变量i=0+1=1; i=1<3 成立

int i; second=0; for(i=0;i<1000000;i++) { update(); /*利用循环控制时钟运行时间*/ display(); /*显示时,分,秒*/ delay(); /*模一尺时间为1秒*/ } return 0; } 结果: 自动跳出时间 7-3、 #include <> /*max()函数 功能:找两个数的最大值 入口参数:两个整数a,b 返回值:两数的最大值 */ int max(int a, int b) { int max=0; max = (a>b)a:b; return max; }

void main() { int x=0; /*输入的两个数x,y*/ int y=0; int m=0; /*m用于接收max()函数的返回值*/ printf("input two integer numbers:"); scanf("%d,%d",&x,&y); m=max(x,y); printf("the max number is %d\n",m); } 结果: 7-4 #include <> /*LCM()函数 功能:计算两个整数的最小公倍数 入口参数:两整数a,b 返回值:最小公倍数 */ int LCM(int a,int b) { int i=0; /*循环变量*/ int min=0; /*循环寻找范围的最小值*/ int max=0; /*循环寻找范围的最大值*/ min = (a>b)a:b; /*最小值为a,b中的最大值*/ max = a*b; /*最大值为a*b*/ for (i=min; i<=max; i++) { if(i%a==0 && i%b==0) return i;

C语言课后习题答案

第四章选择结构 4.22 #include main() { int y0,m0,d0,y1,m1,d1,age; printf("please input your birthday(yyyy-mm-dd):\n"); scanf("%d-%d-%d",&y0,&m0,&d0); printf("please inpur current day(yyyy-mm-dd):\n"); scanf("%d-%d-%d",&y1,&m1,&d1); age=y1-y0; if(m1 main() { int i; printf("input a integer:\n"); scanf("%d",&i); if(i%2==0)printf("%d is a even\n",i); else printf("%d is a odd\n",i); } 4.24 #include main() { int a,b,c,max=0; printf("input 3 numbers:\n"); scanf("%d%d%d",&a,&b,&c); max=a; if(a main() { float x,y; scanf("%f",&x); if(x>-5&&x<0)printf("y=%f",x); if(x==0)printf("y=%f",x-1); if(x>0&&x<10)printf("y=%f",x+1); if(x<=-5||x>=10)printf("error"); }

C语言第七章课后习题答案

第七章数组 一、选择题: 1-5 A、A、D、C、C 6-10 B、D、D、B、A 11-15 D、D、D、D、A 16-20 A、C、C、D、B 21-25 C、D、C、C、D 二、填空题: 1、标识符 2、常量、符号常量、变量 3、m-1、n-1 4、字符数组 5、数组名 6、s[j++]=s[i] 7、C1!=C2&&C1= =′′ 三、阅读程序,写出结果 1、 1,2,3, 2、 2,3,4 3、 f 4、 -4 0 4 4 3 5、1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 四、编程题: 1、#include #include #define N 10 void main() { int a[N],i,max,min,m,n,t; clrscr(); for(i=0;imax) {max=a[i]; m=i; } else if(a[i]

2、#include #include #define M 10 #define N 6 void main() { float score[M][N],sum,i,j; clrscr(); for(i=0;i #include #define M 4 #define N 4 void main() {int a[M][N],i,j,sum=0; for(i=0;i

C语言第七章习题带答案

选择题 1.已知:int *p, a;,则语句“p=&a;”中的运算符“&”的含义是( D )。 A.位与运算B.逻辑与运算C.取指针内容D.取变量地址2.已知:int a, x;,则正确的赋值语句是( C )。 A.a=(a[1]+a[2])/2; B.a*=*a+1; C.a=(x=1, x++, x+2); D.a="good"; 3.已知:int a, *p=&a;,则下列函数调用中错误的是( D )。 A.scanf("%d", &a); B.scanf("%d", p); C.printf("%d", a); D.scanf("%d", *p); 4.已知:char *p, *q;,选择正确的语句( C )。 A.p*=3; B.p/=q; C.p+=3; D.p+=q; 5.已知:int x;,则下面的说明指针变量pb的语句( C )是正确的。 A.int pb=&x; B.int *pb=x; C.int *pb=&x; D.*pb=*x;

一、选择题 1.设有说明int (*ptr)[M];,其中的标识符ptr是( C )。 A.M个指向整型变量的指针 B.指向M个整型变量的函数指针 C.一个指向具有M列的二维数组的一行的指针 D.具有M个指针元素的一维数组的指针 2.已知:double *p[6];,它的含义是( C )。 A.p是指向double型变量的指针B.p是double型数组 C.p是指针数组D.p是数组指针 3.已知:char s[10], *p=s,则在下列语句中,错误的语句是( B )。 A.p=s+5; B.s=p+s; C.s[2]=p[4]; D.*p=s[0]; 4.已知:char s[100]; int i;,则在下列引用数组元素的语句中,错误的表示形式是( D )。 A.s[i+10] B.*(s+i) C.*(i+s) D.*((s++)+i) 5.已知:char b[5], *p=b;,则正确的赋值语句是( C )。 A.b="abcd"; B.*b="abcd"; C.p="abcd"; D.*p="abcd"; 6.下列对字符串的定义中,错误的是( A )。 A.char str[7]="FORTRAN"; B.char str[]="FORTRAN"; C.char *str="FORTRAN"; D.char str[]={'F', 'O', 'R', 'T', 'R','A','N',0}; 7.已知:char s[20]="programming", *ps=s;,则不能引用字母o的表达式是( A )。 A.ps+2 B.s[2] C.ps[2] D.ps+=2,*ps 8.已知:char **s;,正确的语句是( B )。 A.s="computer"; B.*s="computer"; C.**s="computer"; D.*s='A'; 9.已知:char c[8]="beijing", *s=c; int i;,则下面的输出语句中,错误的是( B )。 A.printf("%s\n", s); B.printf("%s\n", *s); C.for (i=0; i<7; i++) D.for(i=0; i<7; i++) printf("%c", c[i]); printf("%c", s[i]); 10.已知:char *aa[2]={"abcd", "ABCD"};,则以下说法正确的是( D )。 A.aa数组元素的值分别是"abcd"序列和"ABCD"序列 B.aa是指针变量,它指向含有两个数组元素的字符型一维数组 C.aa数组的两个元素分别存放的是含有4个字符的一维字符数组的首地址 D.aa数组的两个元素中各自存放了字符'a'和'A'的地址 11.已知:int a[3][4], *p=&a[0][0]; p+=6;,那么*p和( D )的值相同。 A.*(a+6) B.*(&a[0]+6) C.*a[1]+2 D.a[1][2] 12.已知:int a[]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12}, *p=a;,则值为3的表达式是( A )。 A.p+=2, *(p++) B.p+=2, *++p C.p+=3, *p++ D.*(&a[0][0]+6) 13.已知:int **p;,则变量p是( B )。 A.指向int的指针B.指向指针的指针 C.int型变量D.以上三种说法均是错误的 14.已知:int a[]={1, 2, 3, 4}, y, *p=&a[1];,则执行语句y=(*--p)++;之后,变量y的值为( A )。

C语言程序设计教程第三版(李凤霞)习题答案

教材习题答案 第一章 习题 一、单项选择题 1. C 2. B 3. B 4. C 5. D 6. A 7. C 8. A 二、填空题 1. 判断条件 2. 面向过程编程 3. 结构化 4. 程序 5. 面向对象的程序设计语言 6. 基本功能操作、控制结构 7. 有穷性 8. 直到型循环结构 9. 算法 10.可读性 11.模块化 12.对问题的分解和模块的划分

习题 一、单项选择题 1. B 2. D 3. C 4. B 5. A 6. A 7. B 8.C 二、填空题 1. 主 2. C编译系统 3. 函数、函数 4. 输入输出 5. 头 6. .OBJ 7. 库函数 8. 文本 第三章 习题 一、单项选择题 1. D 2. B 3. A

5. C 6. D 7. D 8. B 9. B 10.C 11.A 12.D 13.C 14.C 15.C 16.A 17.C 18.C 19.C 20.D 21.A 22.D 23.D 24.D,A 25.D 26.A 27.B 二、填空题 1. 补码 2. 308 10 - ±

~)308 10 ,15 —6 2. 308 10 - ± (~)308 10 ,15

6 3. 逻辑 4. 单目,自右向左 5. 函数调用 6. a 或 b ( 题目有错 , 小括号后面的 c<=98 改成( c>=97&&c<=98 )就可以得到所给的答案了) 7.

8. 65 , 89 第四章 习题 一、单项选择题 1. D 2. C 3. D 4. A 5. D 6. B 7. A 8. C 9. B 10.B 二、填空题 1. 一

C语言第七章课后答案

xt7-1-1 #include int main() {int hcf(int,int); int lcd(int,int,int); int u,v,h,l; scanf("%d,%d",&u,&v); h=hcf(u,v); printf("H.C.F=%d\n",h); l=lcd(u,v,h); printf("L.C.D=%d\n",l); return 0; } int hcf(int u,int v) {int t,r; if (v>u) {t=u;u=v;v=t;} while ((r=u%v)!=0) {u=v; v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } xt7-1-2 #include int Hcf,Lcd; int main() {void hcf(int,int); void lcd(int,int); int u,v; scanf("%d,%d",&u,&v); hcf(u,v); lcd(u,v);

printf("H.C.F=%d\n",Hcf); printf("L.C.D=%d\n",Lcd); return 0; } void hcf(int u,int v) {int t,r; if (v>u) {t=u;u=v;v=t;} while ((r=u%v)!=0) {u=v; v=r; } Hcf=v; } void lcd(int u,int v) { Lcd=u*v/Hcf; } xt7-2 #include #include float x1,x2,disc,p,q; int main() {void greater_than_zero(float,float); void equal_to_zero(float,float); void smaller_than_zero(float,float); float a,b,c; printf("input a,b,c:"); scanf("%f,%f,%f",&a,&b,&c); printf("equation: %5.2f*x*x+%5.2f*x+%5.2f=0\n",a,b,c); disc=b*b-4*a*c; printf("root:\n"); if (disc>0) { greater_than_zero(a,b); printf("x1=%f\t\tx2=%f\n",x1,x2); }

c语言第七章课后题教学文案

c语言第七章课后题

一、第七章习题7(p184-p187),7.1-7.7全做,7.8-7.12中选做两道,要求给 出程序执行结果。 7-1、 #include int Square(int i) { return i*i; } int main() { int i=0; i=Square(i); for(; i<3;i++) { static int i=1; i+=Square(i); printf("%d,",i); } printf("%d\n",i); return 0; } 结果: 结果分析: 开头定义square()函数 功能:计算一个数的平方 入口参数:整数x 返回值:i*i 主函数:i=0;进入循环: 静态变量i=1; i=i+square(1)=2; 输出 2; 循环变量i=0+1=1; i=1<3 成立 仅供学习与交流,如有侵权请联系网站删除谢谢2

仅供学习与交流,如有侵权请联系网站删除谢谢3

仅供学习与交流,如有侵权请联系网站删除 谢谢4 int main() { int i; second=0; for(i=0;i<1000000;i++) { update(); /*利用循环控制时钟运行时间*/ display(); /*显示时,分,秒*/ delay(); /*模一尺时间为1秒*/ } return 0; } 结果: 自动跳出时间 7-3、 #include /*max()函数 功能:找两个数的最大值 入口参数:两个整数a ,b 返回值:两数的最大值 */ int max(int a, int b) { int max=0; max = (a>b)?a:b; return max; }

C语言程序设计教程 第七章 课后习题参考答案

P198 3 求主、副对角线元素之和 #include #define M 4 #define N 4 int main() { int a[M][N]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16}; int i,j,m=0,n=0; for(i=0;i void input(int a[],int n); void reverse(int a[],int n);

int main() { int a[5]; int size=sizeof(a)/sizeof(int); input(a,size); reverse(a,size); printf("\n"); return 0; } void input(int a[],int n) { int i; printf("请输入%d个整数:\n",n); for(i=0;i void reverse(int a[],int n); void print(int a[],int n); int main() { int a[]={1,2,3,4,5,11,16,13}; int size=sizeof(a)/sizeof(int); print(a,size); reverse(a,size);

相关主题
文本预览
相关文档 最新文档