C C++程序设计课后答案(7)

2019-04-13 23:19

}

cout<<\cout<<\}

法三:

#define SIZE1 3 #define SIZE2 4

#include \#include \#include\

float max_value(float x[][4],int *ii,int *jj) {

float max=x[0][0];

for(int i=0;imax)

{max=x[i][j]; *ii=i; *jj=j; } return(max); }

void main() {

int i,j,t1,t2;float a[SIZE1][SIZE2]; srand(time(NULL));

cout<<\for(i=0;icout<<\cout<<\}

4. 编写函数,将两个字符串s和t的前n个字符拼接成新的字符串,结果存放在s中。如果s或t中字符串的长度不足n,按实际长度处理。例如,如果有\和\为3,则新的字符串为”ABCabc”,并加以调用。函数形式为: void mystrcat(char s[],char t[],int n); #include #include

void mystrcat(char s[],char t[],int n) {

int l1=strlen(s),l2=strlen(t); int k1=l1>n?n:l1,k2=l2>n?n:l2; for(int i=0;i

void main() { char s[30],t[30]; int n; cin>>s>>t; cin>>n; mystrcat(s,t,n); cout<

5. 编写函数,其功能是逐字符比较两个字符串s1和s2,并将s1中第一个与s2不相同字符的地址返回给主函数。再编写主函数调用该函数,并在主函数中输出s1从这个位置开始的子串。函数形式为:

char *dif(char s1[],char s2[]); #include #include \

char *dif(char s1[],char s2[]) { int i=0; while(s1[i]==s2[i]&&s1[i]!='\\0') i++; if(s1[i]!='\\0') return(&s1[i]); else return NULL; }

void main() { char s[30],t[30]; cin>>s>>t; char *p; if((p=dif(s,t))!=NULL) cout<

6. 用递归方法求正整数m,n的最大公约数。 #include int gcd(int m,int n) {

int r=m%n; if(r!=0) return gcd(n,r); else return(n); }

void main() { int m,n; cin>>m>>n; cout<

7. 编写四个同名函数max,分别求两个整数、三个整数,两个双精度数、三个双精度数的最大值。

#include int max(int a,int b) { return(a>b?a:b); }

int max(int a,int b,int c) { int t=max(a,b); return(max(t,c)); }

double max(double a,double b) { return(a>b?a:b); }

double max(double a,double b,double c) { double t=max(a,b); return(max(t,c)); }

void main() {double x,y,z; int a,b,c;

cin>>a>>b>>c; cin>>x>>y>>z;

cout<

第六章 一、选择题

1.有如下结构类型的定义,则系统为指向结构变量的指针p分配( )个存储单元。A(答

案有问题,指针变量的存储单元应同字长有关,在VC++中为4) struct student {

int num;

char name[8]; float score; }stud,*p;

A. 2 B.12 C.16 D.20

2.下面定义中,对成员变量x的引用正确的是( )。D struct a {

int x,y; };

struct aa {

char c; struct a p ; }b;

A.p.x B.b.a.x C.b.x D.b.p.x 3.若有如下说明: struct s {

int a ; int b;

}x[2]={{1,2},{3,4}},*p=x;

则表达式++p->a的值是( ),表达式(++p)->a的值是( )。B ,C A.1 B.2 C.3 D.4

4.下列程序的输出结果是( )。D void main() {

struct com {int x ; int y ;

}c[2]={1,3,5,7} ;

Cout<

A.0 B.1 C.3 D.15

5.若有如下说明,则对初值中字符b的引用方式为( )。 static struct {

char ch; int i; float x;

}a[2][3]={{?a?,1,1.23},{?b?,2,2.34 }};(原题此处有问题)

A. a[0][1].ch B. a[1][2].ch C. a[1][1].ch D. a[2][2].ch (没有标准答案:a[1][0].ch) 6.当说明一个结构体变量时,系统分配给它的内存是( )。A A.各成员所需要内存量的总和 B.结构中第一个成员所需内存量 C.结构中最后一个成员所需内存量 D.成员中内存量最大者所需内存

7.若要使p指向一个存储double类型变量的存储单元,下划线处应选择( )。C double *p;

p= malloc ( sizeof(double)) A.int B.double C.(double *) D.double *

8.若有如下定义,则要把a的值赋给b,应选择( )。B struct {

int i; char c[5]; }a={12,”345”},b;

A.b.i=a.i ;b.c=a.c B.b=a C.strcpy(a,b) ; D.b={a.i,a.c} ;

9.若已建立一个链表结构,假设指针域为next,则欲把s所指结点插到表中p所指结点的后面,应选择( )。A

A. s->next=p->next ;p->next=s ; B. p->next=s;s->next=p->next; C. p->next=s;s=s->next; D. p->next=s;p=s;s->next=p->next;

10. 在一个单链表中,假设指针域为next,若删除p所指的后续结点,则执行( )。A A. p->next=p->next->next; B.p= p->next; p->next=p->next->next; C. p->next=p ->next; D. p=p->next ->next; 二、程序填空题

1.下面程序用一个结构类型表示学生的学号和成绩,通过选择法对班中30名学生按成绩从高到低进行排序,并输出排序后的学号、成绩和全班的平均分。 #include \#include \#define STNUM 5 struct student { int num; int score; }stu[STNUM]; void main() {

struct student *ptemp,*p[STNUM];/* p为指向结构的指针数组*/ int i,j,k,sum=0; for(i=0;i>stu[i].num>>stu[i].score; p[i]=&stu[i]; sum+= ;


C C++程序设计课后答案(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:操作系统命令解释

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: