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