华南农业大学C语言上机实验答案
华农数据结构上机实验答案

华农数据结构上机实验答案数据结构上机答案1.1顺序线性表的基本操作#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));L.length=0;L.listsize=LIST_INIT_SIZE;return OK;}int Load_Sq(SqList &L){int i;if(L.length==0)printf("The List is empty!");else{printf("The List is:");for(i=0;i<L.length;i++)printf("% d",L.elem[i]);}printf("\n");return OK;}int ListInsert_Sq(SqList &L,int i,int e){if(i<1||i>L.length+1)return ERROR;ElemType *newbase,*q,*p;if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*size of(ElemType));L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;--p)*(p+1)=*p;*q=e;++L.length;return OK;}int ListDelete_Sq(SqList &L,int i,int &e){ElemType *q,*p;if(i<1||i>L.length)return ERROR;p=&(L.elem[i-1]);e=*p;q=L.elem+L.length-1;for(++p;p<=q;p++)*(p-1)=*p;L.length--;return OK;}int main(){SqList T;int a,i;ElemType e,x;if(InitList_Sq(T)){printf("A Sequence List Has Created.\n");}while(1){printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1: scanf("%d%d",&i,&x);if(!ListInsert_Sq(T,i,x))printf("Insert Error!\n");elseprintf("The Element %d is Successfully Inserted!\n",x);break;case 2: scanf("%d",&i);if(!ListDelete_Sq(T,i,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3: Load_Sq(T);break;case 0: return 1;}}}1.2合并顺序表#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));L.length=0;L.listsize=LIST_INIT_SIZE;return OK;}int Load_Sq(SqList &L){int i;for(i=0;i<L.length;i++)printf("%d ",L.elem[i]);printf("\n");return OK;}int ListLength(SqList L){return L.length;}int GetElem(SqList L,int i,ElemType &e){e=L.elem[i-1];return OK;}int ListInsert_Sq(SqList &L,int i,int e){if(i<1||i>L.length+1)return ERROR;ElemType *p,*q,*newbase;if(L.listsize<=L.length){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*size of(ElemType));L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;p--)*(p+1)=*p;*q=e;L.length++;return OK;}void MergeList(SqList La,SqList Lb,SqList &Lc){int i,j,k,La_len,Lb_len,ai,bj;i=j=1;k=0;InitList_Sq(Lc);La_len=ListLength(La);Lb_len=ListLength(Lb);while((i<=La_len)&&(j<=Lb_len)){GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai<=bj){ListInsert_Sq(Lc,++k,ai);i++;}else{ListInsert_Sq(Lc,++k,bj);j++;}}while(i<=La_len){GetElem(La,i++,ai);ListInsert_Sq(Lc,++k,ai);}while(j<=Lb_len){GetElem(Lb,j++,bj);ListInsert_Sq(Lc,++k,bj);}Load_Sq(Lc);}int main(){int an,bn,i,e;SqList La,Lb,Lc;InitList_Sq(La);scanf("%d",&an);for(i=1;i<=an;i++){scanf("%d",&e);ListInsert_Sq(La,i,e);}printf("List A:");Load_Sq(La);InitList_Sq(Lb);scanf("%d",&bn);for(i=1;i<=an;i++){scanf("%d",&e);ListInsert_Sq(Lb,i,e);}printf("List B:");Load_Sq(Lb);printf("List C:");MergeList(La,Lb,Lc);return 0;}1.3顺序表逆置#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));if(!L.elem){printf("NO1");return ERROR;}L.length=0;L.listsize=LIST_INIT_SIZE;return OK;}int Load_Sq(SqList &L){int i;if(!L.length){printf("This List is empty!\n");return ERROR;}else{for(i=0;i<L.length;i++)printf("%d ",L.elem[i]);}printf("\n");return OK;}int ListInsert_Sq(SqList &L,int i,int e){ElemType *newbase,*p,*q;if(L.length>=L.listsize){newbase=(ElemType*)realloc(L.elem,(L.listsize+LISTINCREMENT)*size of(ElemType));if(!newbase){printf("NO2");return ERROR;}L.elem=newbase;L.listsize+=LISTINCREMENT;}q=&(L.elem[i-1]);for(p=&(L.elem[L.length-1]);p>=q;p--)*(p+1)=*p;*q=e;L.length++;return OK;}int swap(SqList &L,int n){int i,j,temp;for(i=0,j=n-1;j>i;i++,j--){temp=L.elem[i];L.elem[i]=L.elem[j];L.elem[j]=temp;}return OK;}int main(){SqList T;int n,i;ElemType x;scanf("%d",&n);InitList_Sq(T);for(i=1;i<n+1;i++){scanf("%d",&x);ListInsert_Sq(T,i,x);}printf("The List is:");Load_Sq(T);swap(T,n);printf("The turned List is:");Load_Sq(T);return 0;}1.4链式线性表的基本操作#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define ElemType inttypedef struct LNode{int data;struct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n){LinkList p,q;int i;ElemType e;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=(LinkList)malloc(sizeof(LNode));q=L;for(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}return OK;}int LoadLink_L(LinkList &L){LinkList p=L->next;if(!p)printf("The List is empty!");else{printf("The LinkList is:");while(p){printf("%d ",p->data);p=p->next;}}printf("\n");return OK;}int LinkInsert_L(LinkList &L,int i,ElemType e) {LNode *p=L,*s;int j=0;while(p&&j<i-1){p=p->next;j++;}if(!p||j>i-1)return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;return OK;}int LinkDelete_L(LinkList &L,int i,ElemType &e){LNode *p=L,*q;int j=0;while(p->next&&j<i-1){p=p->next;j++;}if(!(p->next)||j<i-1)return ERROR;q=p->next;p->next=q->next;e=q->data;free(q);return OK;}int main(){LinkList T;int a,n,i;ElemType x,e;printf("Please input the init size of the linklist:\n");scanf("%d",&n);printf("Please input the %d element of the linklist:\n",n);if(CreateLink_L(T,n)){printf("A Link List Has Created.\n");LoadLink_L(T);}while(1){printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1:scanf("%d%d",&i,&x);if(!LinkInsert_L(T,i,x))printf("Insert Error!\n");elseprintf("The Element %d is Successfully Inserted!\n",x);break;case 2:scanf("%d",&i);if(!LinkDelete_L(T,i,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3:LoadLink_L(T);break;case 0:return 1;}}}1.5合并链表#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define ElemType inttypedef struct LNode{int data;struct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n){LinkList p,q;int i;ElemType e;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=(LinkList)malloc(sizeof(LNode));q=L;for(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}return OK;}int LoadLink_L(LinkList &L){LinkList p=L->next;if(!p)printf("The List is empty!");else{while(p){printf("%d ",p->data);p=p->next;}}printf("\n");return OK;}void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc) {LinkList pa,pb,pc;pa=La->next;pb=Lb->next;Lc=pc=La;while(pa&&pb){if(pa->data<=pb->data){pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next;}}pc->next=pa?pa:pb;free(Lb);}int main(){LinkList La,Lb,Lc;int n;scanf("%d",&n);CreateLink_L(La,n);printf("List A:");LoadLink_L(La);scanf("%d",&n);CreateLink_L(Lb,n);printf("List B:");LoadLink_L(Lb);MergeList_L(La,Lb,Lc);printf("List C:");LoadLink_L(Lc);return 0;}1.6线性链表逆置#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define ElemType inttypedef struct LNode{int data;struct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n){LinkList p,q;int i;ElemType e;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=(LinkList)malloc(sizeof(LNode));q=L;for(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}return OK;}int LoadLink_L(LinkList &L){LinkList p=L->next;if(!p)printf("The List is Empty!");elsewhile(p){printf("%d ",p->data);p=p->next;}printf("\n");return OK;}int inversion(LinkList &L){LinkList p=L->next,q;L->next=NULL;while(p){q=p->next;p->next=L->next;L->next=p;p=q;}return OK;}int main(){LinkList T;int n;scanf("%d",&n);CreateLink_L(T,n);printf("The List is:");LoadLink_L(T);inversion(T);printf("The turned List is:");LoadLink_L(T);return 0;}2.1顺序栈的基本操作#include<stdio.h>#include<malloc.h>#include<stdlib.h>#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef int Status;struct SqStack{SElemType *base;SElemType *top;int stacksize;};Status InitStack(SqStack &S){S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*si zeof(SElemType));if(S.base)return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,SElemType &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}Status GetTop(SqStack S,SElemType &e){if(S.top==S.base)return ERROR;e=*(S.top-1);return OK;}int StackLength(SqStack S){int i=0;while(S.top!=S.base){i++;S.top--;}return i;}Status StackTraverse(SqStack S){SElemType *p=(SElemType*)malloc(sizeof(SElemType));p=S.top;if(S.top==S.base)printf("The Stack is Empty!");else{printf("The Stack is:");p--;S.base--;while(p!=S.base){printf("% d",*p);p--;}}printf("\n");return OK;}int main(){int a;SqStack S;SElemType x,e;if(InitStack(S))printf("A Stack Has Created.\n");while(1){printf("1:Push\n2:Pop\n3:Get the Top\n4:Return the Length of the Stack\n5:Load the Stack\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1:scanf("%d",&x);if(!Push(S,x))printf("Push Error!\n");elseprintf("The Element %d is Successfully Pushed!\n",x);break;case 2:if(!Pop(S,e))printf("Pop Error!\n");elseprintf("The Element %d is Successfully Poped!\n",e);break;case 3:if(!GetTop(S,e))printf("GetTop Error!\n");elseprintf("The Top Element is %d!\n",e);break;case 4:printf("The Length of the Stack is %d!\n",StackLength(S));break;case 5:StackTraverse(S);break;case 0:return 1;}}}2.2循环队列的基本操作#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;#define MAXQSIZE 100typedef struct{QElemType *base;int front;int rear;}SqQueue;Status InitQueue(SqQueue &Q){Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));if(!Q.base)return ERROR;Q.front=Q.rear=0;return OK;}Status EnQueue(SqQueue &Q,QElemType e){if((Q.rear+1)%MAXQSIZE==Q.front)return ERROR;Q.base[Q.rear]=e;Q.rear=(Q.rear+1)%MAXQSIZE;return OK;}Status DeQueue(SqQueue &Q,QElemType &e){if(Q.front==Q.rear)return ERROR;e=Q.base[Q.front];Q.front=(Q.front+1)%MAXQSIZE;return OK;}Status GetHead(SqQueue Q,QElemType &e){if(Q.front==Q.rear)return ERROR;e=Q.base[Q.front];return OK;}int QueueLength(SqQueue Q){return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE; }Status QueueTraverse(SqQueue Q){int i;i=Q.front;if(Q.front==Q.rear)printf("The Queue is Empty!");else{printf("The Queue is:");while(i!=Q.rear){printf("% d",Q.base[i]);i=i+1;}}printf("\n");return OK;}int main(){int a;SqQueue S;QElemType x,e;if(InitQueue(S))printf("A Queue Has Created.\n");while(1){printf("1:Enter \n2:Delete \n3:Get the Front \n4:Return the Length of the Queue\n5:Load the Queue\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1: scanf("%d",&x);if(!EnQueue(S,x))printf("Enter Error!\n");elseprintf("The Element %d is Successfully Entered!\n",x);break;case 2: if(!DeQueue(S,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3: if(!GetHead(S,e))printf("Get Head Error!\n");elseprintf("The Head of the Queue is %d!\n",e);break;case 4: printf("The Length of the Queue is %d!\n",QueueLength(S));break;case 5: QueueTraverse(S);break;case 0: return 1;}}}2.3栈的应用——进制转换#include<stdio.h>#include<malloc.h>#define ERROR 0#define OK 1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef int Status;struct SqStack{SElemType *base;SElemType *top;int stacksize;};Status InitStack(SqStack &S){S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*si zeof(SElemType));if(S.base)return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,SElemType &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}Status StackEmpty(SqStack &S){if(S.top==S.base)return 0;elsereturn 1;}int main(){int N,e;SqStack S;InitStack(S);scanf("%d",&N);while(N){Push(S,N%8);N=N/8;}while(StackEmpty(S)){Pop(S,e);printf("%d",e);}return 0;}2.4括号匹配检验typedef char SElemType;#include<malloc.h>#include<stdio.h>#include<math.h>#include<process.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;#define STACK_INIT_SIZE 10#define STACKINCREMENT 2struct SqStack{SElemType *base;SElemType *top;int stacksize;};Status InitStack(SqStack &S){S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)return 0;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status StackEmpty(SqStack S){if(S.top==S.base)return TRUE;elsereturn FALSE;}Status Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*si zeof(SElemType));if(!S.base)return 0;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,SElemType &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}void check(){SqStack s;SElemType ch[80],*p,e;if(InitStack(s)){gets(ch);p=ch;while(*p)switch(*p){case '(':case '[':Push(s,*p++);break;case ')':case ']':if(!StackEmpty(s)){Pop(s,e);if(*p==')'&&e!='('||*p==']'&&e!='[') {printf("isn't matched pairs\n");return ;}else{p++ ;break;}}else{printf("lack of left parenthesis\n");return ;}default: p++;}if(StackEmpty(s))printf("matching\n");elseprintf("lack of right parenthesis\n");}}int main(){check();return 1;}2.5行编辑程序typedef char SElemType;#include<malloc.h>#include<stdio.h>#include<math.h>#include<process.h>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;#define STACK_INIT_SIZE 10#define STACKINCREMENT 2struct SqStack{SElemType *base;SElemType *top;int stacksize;};FILE *fp;Status InitStack(SqStack &S){S.base=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));if(!S.base)return 0;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status StackEmpty(SqStack S){if(S.top==S.base)return TRUE;elsereturn FALSE;}Status ClearStack(SqStack &S){S.top=S.base;return OK;}Status DestroyStack(SqStack &S){free(S.base);S.base=NULL;S.top=NULL;S.stacksize=0;return OK;}Status Push(SqStack &S,SElemType e){if(S.top-S.base>=S.stacksize){S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*si zeof(SElemType));if(!S.base)return 0;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}Status Pop(SqStack &S,SElemType &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}Status StackTraverse(SqStack S,Status(*visit)(SElemType)) {while(S.top>S.base)visit(*S.base++);printf("\n");return OK;}Status visit(SElemType c){printf("%c",c);return OK;}void LineEdit(){SqStack s;char ch,c;int n,i;InitStack(s);scanf("%d",&n);ch=getchar();for(i=1;i<=n;i++){ch=getchar();while(ch!='\n'){switch(ch){case '#': Pop(s,c);break;case '@': ClearStack(s);break;default:Push(s,ch);}ch=getchar();}StackTraverse(s,visit);ClearStack(s);}DestroyStack(s);}int main(){LineEdit();return 1;}2.6表达式求值#include<stdio.h>#include<malloc.h>#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;struct SqStack_T{char *base;char *top;int stacksize;};struct SqStack_N{int *base;int *top;int stacksize;};Status InitStack_T(SqStack_T &S){S.base=(char*)malloc(STACK_INIT_SIZE*sizeof(char));if(!S.base)return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}Status InitStack_N(SqStack_N &S){S.base=(int*)malloc(STACK_INIT_SIZE*sizeof(int));if(!S.base)return ERROR;S.top=S.base;S.stacksize=STACK_INIT_SIZE;return OK;}int Push_T(SqStack_T &S,char e){if(S.top-S.base>=S.stacksize){S.base=(char*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof( char));if(!S.base)return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}int Push_N(SqStack_N &S,int e){if(S.top-S.base>=S.stacksize){S.base=(int*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(i nt));if(!S.base)return ERROR;S.top=S.base+S.stacksize;S.stacksize+=STACKINCREMENT;}*S.top++=e;return OK;}int Pop_T(SqStack_T &S,char &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}int Pop_N(SqStack_N &S,int &e){if(S.top==S.base)return ERROR;e=*--S.top;return OK;}char GetTop_T(SqStack_T S){char e;if(S.top==S.base)return ERROR;e=*(S.top-1);return e;}int GetTop_N(SqStack_N S){int e;if(S.top==S.base)return ERROR;e=*(S.top-1);return e;}char Precede(char theta1,char theta2) {int a,b;switch(theta1){case '+': a=2; break;case '-': a=2; break;case '*': a=4; break;case '/': a=4; break;case '(': a=0; break;case ')': a=6; break;case '=': a=-1; break;}switch(theta2){case '+': b=1; break;case '-': b=1; break;case '*': b=3; break;case '/': b=3; break;case '(': b=6; break;case ')': b=0; break;case '=': b=-1; break;}if(a<b)return '<';elseif(a==b)return '=';elsereturn '>';}char precede(char e,char c){if(c=='+'||c=='-'){if(e=='+'||e=='-'||e==')'||e=='=') return '>';elsereturn '<';}if(c=='*'||'/'){if(e=='(')return '<';elsereturn '>';}if(c=='('){if(e==')')return '=';elsereturn '<';}if(c==')')return '>';if(c=='='){if(e=='=')return '=';elsereturn '<';}}int In(char c){if(c>='0'&&c<='9')return 1;elsereturn 0;}int Operate(int a,char theta,int b){int s;switch(theta){case '+': s=a+b; break;case '-': s=a-b; break;case '*': s=a*b; break;case '/':if(b!=0)s=a/b;elseprintf("Input error");break;}return s;}int main(){int k=0,m,y,a,b;SqStack_T OPTR;SqStack_N OPND;char c,theta;InitStack_T(OPTR); Push_T(OPTR,'=');InitStack_N(OPND); c=getchar();while(c!='='||GetTop_T(OPTR)!='='){if(In(c)){m=c-'0';if(k==1){Pop_N(OPND,y);y=m+y*10;Push_N(OPND,y);k=1;c=getchar();}else{y=m;Push_N(OPND,y);c=getchar();k=1;}}else{k=0;switch(Precede(GetTop_T(OPTR),c)){case '<': Push_T(OPTR,c); c=getchar(); break;case '=': Pop_T(OPTR,c); c=getchar(); break;case '>':Pop_T(OPTR,theta);Pop_N(OPND,b);Pop_N(OPND,a);Push_N(OPND,Operate(a,theta,b));break;}}}printf("%d",GetTop_N(OPND));return 0;}2.7队列的应用——银行客户平均等待时间#include<malloc.h>#include<stdio.h>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;#define MAXQSIZE 100typedef struct{QElemType *base;int front;int rear;}SqQueue;Status InitQueue(SqQueue &Q){Q.base=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));if(!Q.base)return ERROR;Q.front=Q.rear=0;return OK;}Status EnQueue(SqQueue &Q,QElemType e){if((Q.rear+1)%MAXQSIZE==Q.front)return ERROR;Q.base[Q.rear]=e;Q.rear=(Q.rear+1)%MAXQSIZE;return OK;}Status DeQueue(SqQueue &Q,QElemType &e){if(Q.front==Q.rear)return ERROR;e=Q.base[Q.front];Q.front=(Q.front+1)%MAXQSIZE;return OK;}Status GetHead(SqQueue Q,QElemType &e){if(Q.rear==Q.front)return ERROR;e=Q.base[Q.front];return OK;}int QueueLength(SqQueue Q){return (Q.rear-Q.front+MAXQSIZE)%MAXQSIZE; }Status QueueTraverse(SqQueue Q){int i;i=Q.front;if(Q.rear==Q.front)printf("The Queue is Empty!");else{printf("The Queu is:");while(i!=Q.rear){printf("%d",Q.base[i]);i=(i+1)%MAXQSIZE;}}printf("\n");return OK;}int main(){int i,a;SqQueue S;int p,q,e,r;float t,s=0;InitQueue(S);scanf("%d",&a);getchar();for(i=1;i<=a*2;i++){scanf("%d",&e);getchar();EnQueue(S,e);}p=S.base[S.front];while(S.rear>S.front){q=p+S.base[S.front+1];DeQueue(S,e);DeQueue(S,e);if(S.front==S.rear)break;r=q-S.base[S.front];if(r<0){r=0;p=S.base[S.front];continue;}s=s+r;p=q;}t=s/a;printf("%.2f\n",t);return OK;}3.1计算next值#include<stdio.h>#include<stdlib.h>#include<iostream.h>#define MAXSTRLEN 255typedef unsigned char SString[MAXSTRLEN+1];void get_next(SString T,int next[]){int i=1,j=0;next[1]=0;while(i<T[0]){if(j==0||T[i]==T[j]){i++;j++;next[i]=j;}elsej=next[j];}}。
华南农业大学C语言实验上机实验第四版参考答案

华南农业大学C语言实验上机实验第四版参考答案c语言程序设计上机实验指导与习题参考答案(第四版)实验1c语言程序初步一、实验目的(1)了解所用的计算机系统的基本操作方法,学会独立使用该系统。
(2)了解在该系统上如何编辑、编译、连接和运行一个c程序。
(3)通过运行简单的c程序,初步了解c程序的特点。
(4)在教师的指导下,学会使用在线评判系统。
二、实验内容1.运行第一个c程序[题目:thefirstcprogram]将下列程序输入visualc++,编译、连接和运行该程序。
#include\main(){printf(\}[具体操作步骤](1)在编辑窗口中输出程序。
(2)留存程序,取名为a1.c。
(3)按照第一章中介绍的方法,编译、连接和运行程序。
(4)按照第三章了解的方法,将代码递交至在线评判系统,系统回到“通过”,则该题顺利完成。
2.在在线评判系统中提交实现了计算a+b功能的程序[题目1001:排序a+b]由键盘输入两个整数,计算并输出两个整数的和。
实现该功能的程序如下,#include\main(){inta,b;scanf(\printf(\}(1)在程序编辑窗口中输出程序。
(2)留存程序,取名为a2.c。
(3)按照前二章中介绍的方法,编译、连接和运行程序。
(4)在程序运行过程中,输入1530l(l则表示输出回车符)(5)如果看到如下输出结果,则表明15+30的结果正确,如果得不到如下结果,则需检查并更正程序。
45(6)按照第三章中了解的方法步入在线评判系统。
(7)显示题目列表,点击题号为1001,题名为“计算a+b”的题目。
(8)查阅回去题目建议后,页面页面下端的“sumbit”,参考第二章递交程序的方法递交程序a2.c。
(9)查看评判结果,如果得到“accepted”则该题通过,否则返回第一步检查程序是否正确。
3实验2基本数据类型、运算和表达式一、实验目的(1)掌握c语言数据类型,熟悉如何定义一个整型和实型的变量,以及对它们赋值的方法。
C语言程序设计 上机实验指导与习题 参考答案

C 语言程序设计上机实验指导与习题参考答案仅供教师内部参考华南农业大学目录上机实验1实验1 C 语言程序初步1一实验目的1二实验内容1实验2 基本数据类型运算和表达式3一实验目的3二实验内容3实验3 基本输入与输出5一实验目的5二实验内容5实验4 选择结构程序设计4一实验目的4二实验内容4实验5 循环结构程序设计一9一实验目的9二实验内容9实验6 循环结构程序设计二15一实验目的15二实验内容15实验7 数组17一实验目的17二实验内容17实验8 字符数组的应用22一实验目的22二实验内容22实验9 函数的基本应用24 一实验目的24二实验内容24实验10 指针与结构体26一实验目的26二实验内容26*实验11 链表29一实验目的29二实验内容29*实验12 文件32一实验目的32二实验内容32上机实验实验1 C 语言程序初步一实验目的1了解所用的计算机系统的基本操作方法学会独立使用该系统2 了解在该系统上如何编辑编译连接和运行一个C 程序3 通过运行简单的C 程序初步了解C 程序的特点4 在教师的指导下学会使用JudgeOnline 实验系统二实验内容1 运行第一个C 程序[题目The first C Program]将下列程序输入TC 或VC编译连接和运行该程序void mainprintf "The first C Program\n"[具体操作步骤]以Turbo C 上的操作为例1Windows 进入后按照第一章中介绍的方法进入Turbo C2在编辑窗口中输入程序3保存程序取名为a1c4按照第一章中介绍的方法编译连接和运行程序2 在JudgeOnline 系统中提交实现了计算ab 功能的程序[题目1001计算ab]由键盘输入两个整数计算并输出两个整数的和实现该功能的程序如下void mainint a bscanf "dd" a b1 printf "d" a b1在程序编辑窗口中输入程序2保存程序取名为a2c3按照前二章中介绍的方法编译连接和运行程序4在程序运行过程中输入15 30↙↙表示输入回车符5 如果看到如下输出结果则表明1530 的结果正确如果得不到如下结果则需检查并更正程序456 按照第三章中介绍的方法进入JudgeOnline 实验系统7 显示题目列表点击题号为1001题名为计算ab的题目8 查看完题目要求后点击页面下端的sumbit 参照第二章提交程序的方法提交程序a2c9 查看评判结果如果得到accepted则该题通过否则返回第一步检查程序是否正确2实验2 基本数据类型运算和表达式一实验目的1掌握C 语言数据类型熟悉如何定义一个整型和实型的变量以及对它们赋值的方法2 掌握不同的类型数据之间赋值的规3 学会使用C 的有关算术运算符以及包含这些运算符的表达式特别是自加和自减-- 运算符的使用4 进一步熟悉C 程序的编辑编译连接和运行的过程二实验内容1 变量的定义[题目1117变量定义按要求完成程序]下面给出一个可以运行的程序但是缺少部分语句请按右边的提示补充完整缺少的语句void mainint a b 定义整型变量a 和bint i j 定义实型变量i 和ja 5b 6i 314 j iabprintf "a db di fj f\n" a b i j[具体操作步骤]1将代码补充完整2在TC 或VC上运行通过3在JudgeOnline 实验系统上提交2 赋值表达式与赋值语句[题目1118赋值表达式与赋值语句写出程序运行结果] 阅读下面程序写出运行结果void mainfloat aint b cchar d ea 35b ac 330d c3e \\printf "fddcc" abcde运行结果为35000003330J\[提示]赋值语句具有类型转换的功能但可能会改变数据3 基本运算[题目1119基本运算写出程序运行结果]阅读下面程序写出运行结果void mainint a b cfloat d 15 e fa 357b 1510c be 1510f d10printf "dddfff" abcdef运行结果为0211500000010000001500000[提示]除法分整除与普通除法之分4实验3 基本输入与输出一实验目的1熟练掌握putchargetcharprintf scanf 函数的使用方法2 掌握各种类型数据的输入输出的方法能正确使用各种格式转换符二实验内容[题目1126字符的输入与输出]编程实现由键盘输入一个字符后在屏幕上输出该字符[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]a↙↙[正确输出] [正确输出]a参考程序include "stdioh"mainchar chch getcharputchar ch[题目1127计算加法]编程实现由键盘输入一个加法式输出正确的结果两个加数均为整数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]1020 ↙- 1560↙[正确输出] [正确输出]30 45参考程序include "stdioh"mainint a bscanf "dcd" abprintf "d" ab[题目1014求圆面积]由键盘输入圆半径r 请计算该圆的面积注取314159结果保留两位小数位另外程序只要能对r 在0 到10000 范围的情况输出正确答案即可[第一组自测数据] [键盘输入]5652 ↙[键盘输入][正确输出] 112↙1335502 [正确输出][第二组自测数据] 39408[提示]结果保留两位小数可采用printf 函数的格式控制字符来实现参考程序include "stdioh"mainfloat arearscanf "f"rarea 314159rrprintf "02f"area2[题目1015计算摄氏温度值]从键盘输入一个华氏温度值要求按格式输出其对应的摄氏温度值精确到小数点后两位数学公式描述为5C F 329[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]100↙100↙[正确输出] [正确输出]3778 3778[提示]注意公式中的除为普通除法参考程序includevoid mainfloat fcscanf "f"fc 509 f-32printf "2f"c3实验4 选择结构程序设计一实验目的1了解C 语言表示逻辑的方法以0 代表假以非0 代表真2 学会正确使用逻辑运算符和逻辑表达式3 熟练掌握if 语句和switch 语句4 结合程序掌握一些简单的算法二实验内容[题目1120判断点是否在圆]由键盘输入一个点的坐标要求编程判断这个点是否在单位圆上点在圆上输出Y 不在圆上输出N 使用小数点后3 位精度进行判断[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]07070707 ↙8>0505↙[正确输出] [正确输出]Y N[提示] 1平面上的点与圆的关系分为在圆内在圆上在圆外三种本题要求判断是否在圆上2判断两实数相等采用判断这两实数的差的绝对值小于规定误差精度本题为0001 的方法实现参考程序include "stdioh"include "mathh"void mainfloat abscanf "ff"abif fabs aabb-1 1e-3printf "Y\n"else printf "N\n"[题目1017求数的位数]由键盘输入一个不多于9 位的正整数要求输出它是几位数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]349213 ↙10000↙[正确输出] [正确输出]6 5[提示]划定一位数二位数九位数的范围后用if else if else 语句实现判断4参考程序mainint nplacescanf "ld"nif n 99999999 place 9else if n 9999999 place 8else if n 999999 place 7else if n 99999 place 6else if n 9999 place 5else if n 999 place 4else if n 99 place 3else if n 9 place 2else place 1printf "ld\n"place[题目1018数的排序]由键盘输入三个整数a b c按从小到大的顺序输出这三个数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]654590 ↙963 ↙[正确输出] [正确输出]456590 369参考程序includemainint abctscanf "ddd"abcif a b t aa bb tif a c t aa cc tif b c t bb cc tprintf "ddd"abc[题目1016字符变换]由键盘输入5 个字符将其中的大写字母变成小写其它类型的字符不变并按输入顺序逐个输出[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]ApPLe ↙aB 5 ↙[正确输出] [正确输出]apple ab 5[提示]下面代码实现由键盘读入一个字符并按题意处理后输出char aa getcharif a A a Z a a32putchar a5现在题目要求处理5 个字符怎么做呢请自己思考参考程序includemainchar abcdescanf "ccccc"abcdeif a Za A a a32if b Zb A b b32if c Zc A c c32if d Zd A d d32if e Ze A e e32printf "ccccc"abcde[题目1019数的整除]由键盘输入5 个整数逐个判断它们能否被27 整除能的输出YES不能的输出NO 注意输出时一个判断结果占一行5 个数的判断共占5 行[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]8 27 17577 325 54 ↙8 27 17577 325 54 ↙[正确输出] [正确输出]NO NOYES YESYES YESNO NOYES YES[提示]整除即除得余数为0参考程序include "stdioh"mainint abcdescanf "d d d d d"abcdeif a27 0 printf "YES\n" else printf "NO\n"if b27 0 printf "YES\n" else printf "NO\n"if c27 0 printf "YES\n" else printf "NO\n"if d27 0 printf "YES\n" else printf "NO\n"if e27 0 printf "YES\n" else printf "NO\n"[题目1020正负奇偶判断]由键盘输入非零整数x 判断该数正负正数输出positive 负数输出negative 接着判断该数的奇偶性奇数输出odd偶数输出even[第一组自测数据] negative[键盘输入] odd-43 ↙[第二组自测数据][正确输出] [键盘输入]698 ↙positive[正确输出] even参考程序include "stdioh"mainint nscanf "d"nif n 0 printf "negative\n"else printf "positive\n"if n2 0 printf "even\n"else printf "odd\n"[题目1023简单计算器]下面程序是实现一个简单的运算器保留两位小数点如果由键盘输入1050计算机可以输出结果6000如果输入8 *6计算机输出4800如果输入204 计算机输出500 如果输入8-6计算机输出200 请在空处填上适当的代码运行通过后并提交include "stdioh"void mainfloat abcscanf "fcf"switch opcasecase - _case _case __default printf "error"returnprintf "result " c[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]452↙501-23 ↙[正确输出] [正确输出]90 27107参考程序includeint mainchar opscanf "fcf"aopbswitch opcase c abbreakcase -c a-bbreakcase c abbreakcase c abbreakdefaultprintf "error"breakprintf "result 2f"c8实验5 循环结构程序设计一一实验目的1熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中用循环实现一些常用算法如穷举迭代递推等二实验内容[题目1024计算阶乘]输入正整数n计算n 结果用长整型数表示注n 123n[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]5 ↙8 ↙[正确输出] [正确输出]120 40320参考程序includemainlong in 1ascanf "ld"afor i 1i ai n niprintf "ld\n"n[题目1025计算数列和]有数列1357911现要求由键盘输入n计算输出该数列的前n 项和[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]2 ↙ 5 ↙[正确输出] [正确输出]4 259参考程序includemainlong nsum 0it 1scanf "ld"nfor i 1i nisum sumtt t2printf "ld\n"sum或includemainlong nsumscanf "ld"nsum nnprintf "ld"sum注评判系统不对程序实现细节进行分析只对运行结果进行评测[题目1026 加一行字符中的数字]由键盘输入一行字符总字符个数从1 个至80 个均有可能以回车符表示结束将其中每个数字字符所代表的数值累加起来输出结果[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]abc123↙A6H7T65↙[正确输出] [正确输出]6 24[提示] 1可以使用下面程序段逐个读入键盘输入的一行字符char chwhile ch getchar \n2 数字字符转为对应的数值可用a ch-0参考程序includemainchar cint s 0awhile c getchar \nif c 0c 9a c-48s saprintf "d"s10[题目1029求最大公约数]由键盘输入两个正整数mn mn 用长整数表示计算它们的最大公约数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]1624↙1725↙[正确输出] [正确输出]8 1[提示]公约数是既能整除m 又能整除n 的数题目要求满足这一条件的最大的一个参考程序includemainlong rmntempscanf "ldld"mnwhile m 0r nmn mm rprintf "ld\n"n或includemainlong mntisscanf "ldld"mnt m nnmfor i t-1i 1i--if mi 0ni 0s i breakprintf "d"s[题目1030字符变换]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束将其中的大写字符变成小写其它类型的字符不变最后输出变换后的句子[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙ThiS IS My fIrSt C ProgrAm ↙[正确输出] [正确输出]how are you this is my first c program11参考程序includemainchar cwhile c getchar \nif c Ac Zc c32putchar c[题目1037计算数列和]有数列编程实现由键盘输入n计算输出数列前n 项和结果保留四位小数[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]20 ↙30 ↙[正确输出] [正确输出]326603 880403参考程序includemainint itnfloat a 2b 1s 0scanf "d"nfor i 1i nis sabt aa abb tprintf "4f\n"s[题目1044输出最小值]从键盘输入十个整数输出最小值[ 自测数据][键盘输入]12 45 76 87 5 87 43 55 99 21 ↙[正确输出]512参考程序include "stdioh"mainint itminscanf "d" minfor i 1i 10iscanf "d" tif t min min tprintf "d\n"min*[题目1031统计单词个数]由键盘输入一个句子总字符个数从1 个至80 个均有可能以回车符表示结束以空格分割单词要求输出单词的个数[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]How Are You ↙There are many students and many[正确输出] trees↙3 [正确输出]7参考程序includemainint inum 0word 0char cfor i 0 c getchar \niif c word 0else if word 0word 1numprintf "d"num*[题目1042百万富翁]一个百万富翁遇到一个陌生人陌生人找他谈了一个换钱的计划该计划如下我每天给你m 元而你第一天只需给我一分钱第二天我仍给你m 元你给我2 分钱第三天我仍给你m 元你给我4分钱依次类推你每天给我的钱是前一天的两倍直到一个月38 天百万富翁很高兴欣接受这个契约现要求编写一个程序由键盘输入m计算多少天后百万富翁开始亏钱[第一组自测数据] 18[键盘输入] [第二组自测数据]100↙[键盘输入][正确输出] 10000↙13[正确输出] 25参考程序includeincludemainint nmiscanf "d"mfor i 1i 38iif 001 pow 2i-1 -1 -im 0 breakprintf "d"i-114实验6 循环结构程序设计二一实验目的1进一步熟悉掌握用while 语句do-while 语句和for 语句实现循环的方法2 掌握在程序设计中使用多重循环二实验内容[题目1028求素数]输出2 到200 之间包括2 200 的所有素数注要求1 行1 个素数按由小到大的顺序输出[提示]采用双重循环外层循环产生2 到200 之间的数内层循环对数进行判断是否为素数参考程序includeincludemainint mkifor m 2m 200mk sqrt mfor i 2i kiif mi 0 breakif i k printf "d\n"m[题目1035打印菱形]由键盘输入正数n要求输出2n1 行的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据] [键盘输入] [键盘输入]3 ↙ 2 ↙[正确输出] [正确输出]15参考程序include "stdioh"include "mathh"mainint nijkscanf "d"nfor i 1i 2n1ik abs n1-ifor j 1j kj printf " "for j 1j 2n1-2kj printf ""printf "\n"[题目1038打印图案]由键盘输入正数n要求输出中间数字为n 的菱形图案要求菱形左边紧靠屏幕左边[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]4 ↙ 3[正确输出] [正确输出]1 1121 121 12321 12321 1234321 121 12321 1 1211参考程序includeincludemainint nijkhscanf "d"nfor i -n1i n-1ifor j 0j abs i jprintf " "for k 1k n-abs i k printf "d"kfor h n-abs i -1h 1h-- printf "d"hprintf "\n"16实验7 数组一实验目的1掌握一维数组和二维数组的定义赋值和输入输出方法2 掌握与数组有关的算法二实验内容[题目1039倒序]由键盘输入10 个整数倒序输出数字间由一个空格分隔[ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]66 13 67 99 2 19 20 14 5 70参考程序includemainint a [10]int ifor i 0i 10i scanf "d"a[i]for i 9i 0i-- printf "d\n"a[i][题目1040统计不同数字个数]由键盘输入20 个整数统计不同数字的个数[ 自测数据][键盘输入]70 5 14 22 19 2 99 67 13 66 5 93 44 38 22 11 39 22 33 11↙[正确输出]16[提示]上述答案中因为5 有1 个重复数字11 有1 个重复数字22 有2 个重复数字故不同数字有16个分别是70 5 14 22 19 2 99 67 13 66 93 44 38 11 39 3317参考程序include"stdioh"mainint a [20]int itp 0for i 0i 20iscanf "d"a[i]for t 0t itif a[t] a [i] breakif t ipprintf "d"p[题目1062打印矩阵]由键盘输入一个3×4 的矩阵要求输出它的转置矩阵[ 自测数据][键盘输入] [正确输出] 1 6 9 3 1 1 11 1 02 6 1 91 9 8 9 9 0 83 2 9参考程序includemainint a [3][4]b[4][3]ijfor i 0i 3ifor j 0j 4jscanf "d"a[i][j]b[j][i] a [i][j]for i 0i 4ifor j 0j 3jprintf "d "b[i][j]printf "\n"*[题目1047冒泡排序]由键盘输入10 个数用冒泡法对10 个数从小到大排序并按格式要求输出代码如下请填充完整数字间由一个空格分隔incude "stdioh"mainint a[10] i j t18for i 0i 10iscanf "d"___________for ___________for j 0j ____jif ______________________for i 0i 10iprintf "d "a[i][ 自测数据][键盘输入]70 5 14 20 19 2 99 67 13 66 ↙[正确输出]2 5 13 14 19 20 66 67 70 99参考程序includemainint a [10]int ijtfor i 0i 10iscanf "d"a[i]for i 0i 9ifor j 0j 9-ijif a[j] a [j1]t a [j] a [j] a[j1] a[j1] tfor i 0i 10iprintf "d "a[i]*[题目1046计算高精度加法]由键盘输入两个位数很长的整数一行一个数每个数最长不超过80 位试计算并输出这两个数的和[ 自测数据][键盘输入]1XXXXXXXXXX23456789 ↙987654321098765 ↙[正确输出]1XXXXXXXXXX4455555419参考程序include "stdioh"include "stringh"mainint a [100] 0 b[100] 0 c[100] 0char s[101]int i 0n1 0n2 0 0e 0gets sn1 strlen sfor i n1-1i 0i-- a[n1-1-i] s[i]-0gets sn2 strlen sfor i n2-1i 0i-- b[n2-1-i] s[i]-0if n1 n2 n1else n2for i 0i ic[i] a[i]b[i]e 10e a[i]b[i]e 10if c[] 0 printf "d"c[]for i -1i 0i--printf "d"c[i]*[题目找矩阵中的鞍点]由键盘输入一个3 ×4 3 行4 列的矩阵输出矩阵中的鞍点即在矩阵行中最大列中最小的数若没有鞍点输出NO 字样[ 自测数据][键盘输入]87 90 110 98 ↙70 97 210 65 ↙98 45 120 30 ↙[正确输出]11020参考程序includemainint ijka[3][4]jflagfor i 0i 3ifor j 0j 4jscanf "d"a[i][j] for i 0i 3ia [i][0]j 0for j 0j 4jif a[i][j]a [i][j] j jflag 1for k 0k 3kif a [k][j]flag 0 breakif flagprintf "d" breakif flagprintf "NO"21实验8 字符数组的应用一实验目的1掌握字符数组和字符串函数的使用2 掌握与字符串处理有关的算法二实验内容[题目1121定义存贮字符串的字符数组]在下面程序中填充定义字符数组的语句使程序完整include "stringh"void mainchar s[80] 定义字符数组sstrcpy s "abcdefghij klmn"printf "s" s参考程序[题目1123字符串的输入与输出]下面程序实现从键盘读入字符串后输出到屏幕请填充必要的语句include "stdioh"void mainchar s[50]printf "Whats your name"gets s 由键盘读入字符串printf "Your name is "printf "s" s 打印字符串参考程序[题目1122字符串的合并]从键盘输入3 个字符串每个字符串以回车符做为结束标志将3 个字符串以输入先后顺序合并到字符串s 中请填空使用程序完整include "stdioh"include "stringh"mainchar s[100] ""char a [30]gets a strcat s a22gets a strcat s agets a strcat s a可以写多行代码printf "s" s[ 自测数据][键盘输入] [正确输出]123 123abc456abc456参考程序[题目1050寻找字符串]由键盘输入两个字符串假设第一个字符串必包含第二个字符串如第一个字符串为ABCDEF第二个为CDE则CDE 包含在ABCDEF 中现要求编程输出第二字符串在第一行字符串中出现的位置如果第二个字符串在第一个字符串中出现多次则以最前出现的为准[第一组自测数据] [第二组自测数据][键盘输入] [键盘输入]ABCDEFG ↙hellhello ↙DE ↙hello ↙[正确输出] [正确输出]4 5[提示]方法1建立双重循环外层循环变量指示第一个串的查找起始位置内层循环从起始位置开始判断第二个字符中是否出现在此处方法2 使用字符串函数strstr参考程序include "stdioh"mainint ijchar a [80] b[80]gets a gets bfor i 0a[i] \0ifor j 0b[j] \0jif a[ij] b[j] breakif b[j] \0 breakif a[i] \0 printf "d"i1else printf "Not Found"23实验9 函数的基本应用一实验目的1掌握定义函数的方法2 掌握函数实参与参的对应关系以及值传递的方式3 掌握函数的嵌套调用和递归调用的方法4 掌握全局变量和局部变量动态变量静态变量的概念和使用方法二实验内容[题目1059函数定义]下面是使用辗转相除法求最大公约数的程序请补充完整程序中函数的定义与调用include "stdioh"int f int m int nint rwhile r mn 0m nn rreturn nmainint a b nscanf "dd" a bprintf "d\n" f a b[题目1083编写函数计算阶乘]下面程序实现由键盘读入整数n计算并输出n 请补充完整计算阶乘的函数long fanc int along in 1for i 1i ai n nireturn nvoid mainint nscanf "d" n24printf "ld" fanc n[题目1124函数中的变量]写出下面程序的运行结果int f1 int xstatic int z 3y 0yzreturn xyzmainint a 1kfor k 0k 3k printf "4d"f1 a 程序运行结果为6 8 10*[题目1084编写递归调用函数实现十进制数转二进制数]下面程序实现由键盘输入一个正整数不大于100000000 输出其对应的二进制数原码表示请填空include "stdioh"void fun int iif i 1fun i2printf "d" i2mainint nscanf "d" nfun n25实验10 指针与结构体一实验目的1通过实验进一步掌握指针的概念会定义和使用指针变量2 能正确使用数组的指针和指向数组的指针变量3 能正确使用字符串的指针和指向字符中的指针变量4 掌握结构体类型变量的定义和使用二实验内容[题目1091交换两数由大到小输出]下面程序交换两数使两数由大到小输出请填空include "stdioh"void swap int p1 int p2int temptemp p1p1 p2p2 tempint mainint ab int papbscanf "dd" a bpa a pb bif a b swap pa pbprintf "d d\n"ab[题目1065数组中的指针]设有如下数组定义int a[3][4] 1357 9111315 17192123计算下面各项的值设数组a 的首地址为2000一个int 类型数占四个字节注意地址则输出地址变量则输出变量值要求一行一个答案不允许多余空行及空格1a[2][1] 2 a[1] 3 a 4 a 15 a 16 a 17 a[2] 18 a 1 19 a2 226参考程序include "stdioh"mainprintf "19\n"printf "2016\n"printf "2000\n"printf "2016\n"printf "2004\n"printf "2016\n"printf "2036\n"printf "2020\n"printf "21"[题目1092函数实现求字符串长度]下面程序以指针方式传递参数由函数实现求字符串长度请填空完成include "stdioh"include "stringh"int f char preturn strlen pint mainchar s[80]int iscanf "s" si f sprintf "d" i[题目1125定义结构体类型]要求定义一个名为student 的结构体类型其包含如下成员1字符数组name 最多可存放10 个字符2 字符变量sex用于记录性别3 整数类型变量num用于记录学号4 float 类型变量score 用于记录成绩并使下列代码完整定义结构体类型struct studentchar name[20]char sex。
大学大一c语言程序设计实验室上机题全部代码答案(实验报告)

大学大一c语言程序设计实验室上机题全部代码答案(实验报告)大学大一C语言程序设计实验室上机题全部代码答案(实验报告)实验目的:本实验旨在让大一学生通过实际操作掌握C语言的基本语法和常见程序设计题型,提高编程能力。
实验要求:1. 学生需要在实验室中完成上机题,并编写相应的代码。
2. 要求代码具有良好的结构和规范,能够正确运行,并符合题目要求。
3. 学生需要记录代码的思路和过程,并在实验报告中进行详细说明。
实验过程:本次实验共包括以下几个上机题,分别是:1. 题目:输入两个整数,计算它们的和。
实现思路:- 首先,定义两个整型变量a和b,用来保存输入的两个整数。
- 然后,使用scanf函数分别读取两个整数的值。
- 接下来,定义一个整型变量sum,用来保存两个整数的和。
- 使用sum = a + b计算两个整数的和。
- 最后,使用printf函数将结果输出到屏幕上。
2. 题目:输入一个整数n,计算1到n之间所有整数的和。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个整型变量sum,用来保存1到n之间所有整数的和。
- 使用for循环语句,从1循环到n,累加每个整数的值。
- 最后,使用printf函数将结果输出到屏幕上。
3. 题目:输入一个整数n,判断它是否是质数。
实现思路:- 首先,定义一个整型变量n,用来保存输入的整数。
- 然后,使用scanf函数读取整数n的值。
- 接下来,定义一个布尔型变量isPrime,用来保存n是否是质数的判断结果。
- 使用for循环语句,从2循环到n-1,判断n是否能被其中任意一个整数整除。
- 如果n能被任意一个整数整除,则将isPrime设为假;否则,将isPrime设为真。
- 最后,根据isPrime的值,使用printf函数输出相应的判断结果。
4. 题目:输入一个正整数n,输出n的所有因子。
实现思路:- 首先,定义一个整型变量n,用来保存输入的正整数。
c语言上机实验题及参考答案

5、两个乒乓球队进行比赛,各出3人,甲队为A,B,C 3人,乙队为X,Y,Z 3人。已抽签决定比赛名单。有人向队员打听比赛的名单。A说他不和X比,C说他不和X、Z比。请编程序找出3队赛手的名单。(C语言源程序文件名为45.c,本程序运行结果:A--Z B--X C--Y)
2 14 14
5 10 15
8 6 16
11 2 17)
2、编写程序:输入两个正整数,求其最大公约数和最小公倍数。(如输入12和8,则最大公约数为4,最小公倍数为24)(C语言源程序文件名为42.c。要求求最大公约数用欧几里得的辗转相除法实现)。
3、编写程序实现以下功能:输入一个正整数,打印出它是否素数。(C语言源程序文件名为43.c)
例如:有定义int a=3;执行输出语句:printf(“a=%3d”,a);则输出结果显示为:a= 3(3左边有两个空格)
n(代表一个正整数)
对实数,表示输出n位小数。
例如:有定义float x=1.2;执行输出语句:printf(“x=%6.2f”,x);则输出结果显示为:x= 1.20(数字左边有两个空格)。
三、附加题:
9、编程实现:从键盘上输入一个三位正整数m,输出将m的个位,十位,百位反序而成的三位数(例如:输入m的值123,则输出m的值为321)(要求:文件名为15.c,提示:可用算术运算符“/”和“%”先分离出m的各个位数,再重新组合成新的数,例如用表达式“123%10”就能求出123的个位数3)。
三、实验题目:
if语句基本形式:if(条件){语句一;}
C语言上机实验 答案

C语言上机实验答案c语言上机实验答案实验一上机操作初步(2学时)一、实验方式:一人一机二、实验目的:1、熟悉vc++语言的上机环境及上机操作过程。
2、了解如何编辑、编译、连接和运行一个c程序。
3、初步了解c程序的特点。
三、实验内容:表明:前三为题必搞题目,后两为题Suippes题目。
1、输出入下信息:(实验指导书p79)*************************verygood*************************2、排序两个整数的和与内积。
(实验指导书p81)3、从键盘输入一个角度的弧度值x,计算该角度的余弦值,将计算结果输出到屏幕。
(书p3)4、在屏幕上表明一个文字菜单模样的图案:=================================1输入数据2修改数据3查询数据4打印数据=================================5、从键盘上输入两个整数,交换这两个整数。
四、实验步骤与过程:五、实验调试记录:六、参考答案:1、#includevoidmain(){printf(“********************\\n”);printf(“verygood\\n”);printf(“********************\\n”);}2、#includevoidmain(){inta,b,c,d;printf(“pleaseentera,b:”);scanf(“%d,%d”,&a,&b);c=a+b;d=a*b;printf(“%d+%d=%d\\n”,a,b,c);printf(“%d*%d=%d\\n”,a,b,d);}3、#include#includevoidmain(){doublex,s;printf(“pleaseinputvalueofx:”);scanf(“%lf”,&x);s=cos(x);printf(“cos(%lf)=%lf\\n”,x,s);}4、#includevoidmain(){printf(“==================================\\n”);printf(“1输出数据2修正数据\\n”);printf(“3查阅数据4列印数据\\n”);printf(“===================================\\n”);}5、#includevoidmain(){intx,y,t;printf(“pleaseenterxandy:”);scanf(“%d%d”,&x,&y);t=x;x=y;y=t;printf(“afterswap:x=%d,y=%d\\n”,x,y);}实验二直观的c程序设计(4学时)一、实验方式:一人一机二、实验目的:1、掌控c语言的数据类型。
华南农业大学数据结构上机实验答案

华南农业大学实验一实验一实验一实验一实验一实验一实验一实验一实验一实验一实验一实验一实验一#include<>#include<>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));=0;=LIST_INIT_SIZE;r eturn OK;}int Load_Sq(SqList &L){i nt i;i f==0)printf("The List is empty!");{printf("The List is:");for(i=0;i<;i++)printf("% d",[i]);}p rintf("\n");r eturn OK;}int ListInsert_Sq(SqList &L,int i,int e){i f(i<1||i>+1)return ERROR;E lemType *newbase,*q,*p;i f>={newbase=(ElemType*)realloc,+LISTINCREMENT)*sizeof(ElemType));=newbase;+=LISTINCREMENT;}q=&[i-1]);f or(p=&[]);p>=q;--p)*(p+1)=*p;*q=e;++;r eturn OK;}int ListDelete_Sq(SqList &L,int i,int &e)E lemType *q,*p;i f(i<1||i>return ERROR;p=&[i-1]);e=*p;q=+;f or(++p;p<=q;p++)*(p-1)=*p;;r eturn OK;}int main(){S qList T;i nt a,i;E lemType e,x;i f(InitList_Sq(T)){printf("A Sequence List Has Created.\n");}w hile(1){printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1: scanf("%d%d",&i,&x);if(!ListInsert_Sq(T,i,x))printf("Insert Error!\n");elseprintf("The Element %d is Successfully Inserted!\n",x);break;case 2: scanf("%d",&i);if(!ListDelete_Sq(T,i,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3: Load_Sq(T);break;case 0: return 1;}}}222222#include<>#include<>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100#define LISTINCREMENT 10#define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType)); =0;=LIST_INIT_SIZE;r eturn OK;}int Load_Sq(SqList &L){i nt i;f or(i=0;i<;i++)printf("%d ",[i]);p rintf("\n");r eturn OK;}int ListLength(SqList L){r eturn ;}int GetElem(SqList L,int i,ElemType &e){e=[i-1];r eturn OK;}int ListInsert_Sq(SqList &L,int i,int e){i f(i<1||i>+1)return ERROR;E lemType *p,*q,*newbase;i f<={newbase=(ElemType*)realloc,+LISTINCREMENT)*sizeof(ElemType));=newbase;+=LISTINCREMENT;}q=&[i-1]);f or(p=&[]);p>=q;p--)*(p+1)=*p;*q=e;++;r eturn OK;}void MergeList(SqList La,SqList Lb,SqList &Lc){i nt i,j,k,La_len,Lb_len,ai,bj;i=j=1;k=0;I nitList_Sq(Lc);L a_len=ListLength(La);L b_len=ListLength(Lb);w hile((i<=La_len)&&(j<=Lb_len)){GetElem(La,i,ai);GetElem(Lb,j,bj);if(ai<=bj){ListInsert_Sq(Lc,++k,ai);i++;}else{ListInsert_Sq(Lc,++k,bj);j++;}}w hile(i<=La_len){GetElem(La,i++,ai);ListInsert_Sq(Lc,++k,ai);}w hile(j<=Lb_len){GetElem(Lb,j++,bj);ListInsert_Sq(Lc,++k,bj);}L oad_Sq(Lc);}int main(){i nt an,bn,i,e;S qList La,Lb,Lc;I nitList_Sq(La);s canf("%d",&an);f or(i=1;i<=an;i++){scanf("%d",&e);ListInsert_Sq(La,i,e);}p rintf("List A:");L oad_Sq(La);I nitList_Sq(Lb);s canf("%d",&bn);f or(i=1;i<=an;i++){scanf("%d",&e);ListInsert_Sq(Lb,i,e);}p rintf("List B:");L oad_Sq(Lb);p rintf("List C:");M ergeList(La,Lb,Lc);r eturn 0;}333333#include<>#include<>#define OK 1#define ERROR 0#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 #define ElemType inttypedef struct{int *elem,length,listsize;}SqList;int InitList_Sq(SqList &L){=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));i f(!{printf("NO1");return ERROR;}=0;=LIST_INIT_SIZE;r eturn OK;}int Load_Sq(SqList &L){i nt i;i f(!{printf("This List is empty!\n");return ERROR;}e lse{for(i=0;i<;i++)printf("%d ",[i]);}p rintf("\n");r eturn OK;}int ListInsert_Sq(SqList &L,int i,int e){E lemType *newbase,*p,*q;i f>={newbase=(ElemType*)realloc,+LISTINCREMENT)*sizeof(ElemType));if(!newbase){printf("NO2");return ERROR;}=newbase;+=LISTINCREMENT;}q=&[i-1]);f or(p=&[]);p>=q;p--)*(p+1)=*p;*q=e;++;r eturn OK;}int swap(SqList &L,int n){i nt i,j,temp;f or(i=0,j=n-1;j>i;i++,j--) {temp=[i];[i]=[j];[j]=temp;}r eturn OK;}int main(){S qList T;i nt n,i;E lemType x;s canf("%d",&n);I nitList_Sq(T);f or(i=1;i<n+1;i++){scanf("%d",&x);ListInsert_Sq(T,i,x); }p rintf("The List is:");L oad_Sq(T);s wap(T,n);p rintf("The turned List is:"); L oad_Sq(T);r eturn 0;}444444#include<>#include<>#define ERROR 0#define OK 1#define ElemType inttypedef struct LNode{i nt data;s truct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n){L inkList p,q;i nt i;E lemType e;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=(LinkList)malloc(sizeof(LNode));q=L;f or(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}r eturn OK;}int LoadLink_L(LinkList &L){L inkList p=L->next;i f(!p)printf("The List is empty!");e lse{printf("The LinkList is:");while(p){printf("%d ",p->data);p=p->next;}}p rintf("\n");r eturn OK;}int LinkInsert_L(LinkList &L,int i,ElemType e) {L Node *p=L,*s;i nt j=0;w hile(p&&j<i-1){p=p->next;j++;}i f(!p||j>i-1)return ERROR;s=(LinkList)malloc(sizeof(LNode));s->data=e;s->next=p->next;p->next=s;r eturn OK;}int LinkDelete_L(LinkList &L,int i,ElemType &e) {L Node *p=L,*q;i nt j=0;w hile(p->next&&j<i-1){p=p->next;j++;}i f(!(p->next)||j<i-1)return ERROR;q=p->next;p->next=q->next;e=q->data;f ree(q);r eturn OK;}int main(){L inkList T;i nt a,n,i;E lemType x,e;p rintf("Please input the init size of the linklist:\n");s canf("%d",&n);p rintf("Please input the %d element of the linklist:\n",n);i f(CreateLink_L(T,n)){printf("A Link List Has Created.\n");LoadLink_L(T);}w hile(1){printf("1:Insert element\n2:Delete element\n3:Load all elements\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1:scanf("%d%d",&i,&x);if(!LinkInsert_L(T,i,x))printf("Insert Error!\n");elseprintf("The Element %d is Successfully Inserted!\n",x);break;case 2:scanf("%d",&i);if(!LinkDelete_L(T,i,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3:LoadLink_L(T);break;case 0:return 1;}}}555555#include<>#include<>#define ERROR 0#define OK 1#define ElemType inttypedef struct LNode{i nt data;s truct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n){L inkList p,q;i nt i;E lemType e;L=(LinkList)malloc(sizeof(LNode));L->next=NULL;q=(LinkList)malloc(sizeof(LNode));q=L;f or(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}r eturn OK;}int LoadLink_L(LinkList &L){L inkList p=L->next;i f(!p)printf("The List is empty!");e lse{while(p){printf("%d ",p->data);p=p->next;}}p rintf("\n");r eturn OK;}void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc) {L inkList pa,pb,pc;p a=La->next;p b=Lb->next;L c=pc=La;w hile(pa&&pb){if(pa->data<=pb->data){pc->next=pa;pc=pa;pa=pa->next;}else{pc->next=pb;pc=pb;pb=pb->next;}}p c->next=pa?pa:pb;f ree(Lb);}int main(){L inkList La,Lb,Lc;i nt n;s canf("%d",&n);C reateLink_L(La,n);p rintf("List A:");L oadLink_L(La);s canf("%d",&n);C reateLink_L(Lb,n);p rintf("List B:");L oadLink_L(Lb);M ergeList_L(La,Lb,Lc);p rintf("List C:");L oadLink_L(Lc);r eturn 0;}666666#include<>#include<>#define OK 1#define ERROR 0#define ElemType inttypedef struct LNode{i nt data;s truct LNode *next;}LNode,*LinkList;int CreateLink_L(LinkList &L,int n) {L inkList p,q;i nt i;E lemType e;L=(LinkList)malloc(sizeof(LNode)); L->next=NULL;q=(LinkList)malloc(sizeof(LNode)); q=L;f or(i=0;i<n;i++){scanf("%d",&e);p=(LinkList)malloc(sizeof(LNode));p->data=e;p->next=q->next;q->next=p;q=q->next;}r eturn OK;}int LoadLink_L(LinkList &L){L inkList p=L->next;i f(!p)printf("The List is Empty!");e lsewhile(p){printf("%d ",p->data);p=p->next;}p rintf("\n");r eturn OK;}int inversion(LinkList &L){L inkList p=L->next,q;L->next=NULL;w hile(p){q=p->next;p->next=L->next;L->next=p;p=q;}r eturn OK;}int main(){L inkList T;i nt n;s canf("%d",&n);C reateLink_L(T,n);p rintf("The List is:");L oadLink_L(T);i nversion(T);p rintf("The turned List is:");L oadLink_L(T);r eturn 0;}实验二实验二实验二实验二实验二实验二实验二实验二实验二实验二实验二实验二实验二#include<>#include<>#include<>#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef int Status;struct SqStack{S ElemType *base;S ElemType *top;i nt stacksize;};Status InitStack(SqStack &S){=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));i f(!return ERROR;=;=STACK_INIT_SIZE;r eturn OK;}Status Push(SqStack &S,SElemType e){i f {=(SElemType*)realloc,+STACKINCREMENT)*sizeof(SElemType));ifreturn ERROR;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}Status Pop(SqStack &S,SElemType &e) {i f==return ERROR;e=*;r eturn OK;}Status GetTop(SqStack S,SElemType &e) {i f==return ERROR;e=*;r eturn OK;}int StackLength(SqStack S){i nt i=0;w hile!={i++;;}r eturn i;}Status StackTraverse(SqStack S){S ElemType *p=(SElemType*)malloc(sizeof(SElemType)); p=;i f==printf("The Stack is Empty!");e lse{printf("The Stack is:");p--;;while(p!={printf("% d",*p);p--;}}p rintf("\n");r eturn OK;}int main(){i nt a;S qStack S;S ElemType x,e;i f(InitStack(S))printf("A Stack Has Created.\n");w hile(1){printf("1:Push\n2:Pop\n3:Get the Top\n4:Return the Length of the Stack\n5:Load the Stack\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1:scanf("%d",&x);if(!Push(S,x))printf("Push Error!\n");elseprintf("The Element %d is Successfully Pushed!\n",x);break;case 2:if(!Pop(S,e))printf("Pop Error!\n");elseprintf("The Element %d is Successfully Poped!\n",e);break;case 3:if(!GetTop(S,e))printf("GetTop Error!\n");elseprintf("The Top Element is %d!\n",e);break;case 4:printf("The Length of the Stack is %d!\n",StackLength(S));break;case 5:StackTraverse(S);break;case 0:return 1;}}222222#include<>#include<>#define ERROR 0#define OK 1#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int SElemType;typedef int Status;struct SqStack{S ElemType *base;S ElemType *top;i nt stacksize;};Status InitStack(SqStack &S){=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));i f(!return ERROR;=;=STACK_INIT_SIZE;r eturn OK;}Status Push(SqStack &S,SElemType e)i f {=(SElemType*)realloc,+STACKINCREMENT)*sizeof(SElemType));ifreturn ERROR;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}Status Pop(SqStack &S,SElemType &e){i f==return ERROR;e=*;r eturn OK;}Status StackEmpty(SqStack &S){i f==return 0;e lsereturn 1;}int main(){i nt N,e;I nitStack(S);s canf("%d",&N);w hile(N){Push(S,N%8);N=N/8;}w hile(StackEmpty(S)){Pop(S,e);printf("%d",e);}r eturn 0;}333333typedef char SElemType;#include<>#include<>#include<>#include<>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;#define STACK_INIT_SIZE 10 #define STACKINCREMENT 2{S ElemType *base;S ElemType *top;i nt stacksize;};Status InitStack(SqStack &S){=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));i f(!return 0;=;=STACK_INIT_SIZE;r eturn OK;}Status StackEmpty(SqStack S){i f==return TRUE;e lsereturn FALSE;}Status Push(SqStack &S,SElemType e){i f {=(SElemType*)realloc,+STACKINCREMENT)*sizeof(SElemType));if(!return 0;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}Status Pop(SqStack &S,SElemType &e) {i f==return ERROR;e=*;r eturn OK;}void check(){SqStack s;SElemType ch[80],*p,e;if(InitStack(s)){gets(ch);p=ch;while(*p)switch(*p){case '(':case '[':Push(s,*p++);break;case ')':case ']':if(!StackEmpty(s)){Pop(s,e);if(*p==')'&&e!='('||*p==']'&&e!='['){printf("isn't matched pairs\n");return ;}else{p++ ;break;}}else{printf("lack of left parenthesis\n");return ;}default: p++;}if(StackEmpty(s))printf("matching\n");elseprintf("lack of right parenthesis\n");}}int main(){c heck();r eturn 1;}444444typedef char SElemType;#include<>#include<>#include<>#include<>#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0typedef int Status;#define STACK_INIT_SIZE 10#define STACKINCREMENT 2struct SqStack{S ElemType *base;S ElemType *top;i nt stacksize;};FILE *fp;Status InitStack(SqStack &S){=(SElemType*)malloc(STACK_INIT_SIZE*sizeof(SElemType));i f(!return 0;=;=STACK_INIT_SIZE;r eturn OK;}Status StackEmpty(SqStack S){i f==return TRUE;e lsereturn FALSE;}Status ClearStack(SqStack &S){=;r eturn OK;}Status DestroyStack(SqStack &S){f ree;=NULL;=NULL;=0;r eturn OK;}Status Push(SqStack &S,SElemType e) {i f {=(SElemType*)realloc,+STACKINCREMENT)*sizeof(SElemType));if(!return 0;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}Status Pop(SqStack &S,SElemType &e){i f==return ERROR;e=*;r eturn OK;}Status StackTraverse(SqStack S,Status(*visit)(SElemType)){w hile>visit(*++);p rintf("\n");r eturn OK;}Status visit(SElemType c){p rintf("%c",c);r eturn OK;}void LineEdit(){S qStack s;c har ch,c;i nt n,i;I nitStack(s);s canf("%d",&n);c h=getchar();f or(i=1;i<=n;i++){ch=getchar();while(ch!='\n'){switch(ch){case '#': Pop(s,c);break;case '@': ClearStack(s);break;default:Push(s,ch);}ch=getchar();}StackTraverse(s,visit);ClearStack(s);}D estroyStack(s);}int main()L ineEdit();r eturn 1;}555555#include<>#include<>#define OK 1#define ERROR 0#define STACK_INIT_SIZE 100#define STACKINCREMENT 10typedef int Status;struct SqStack_T{c har *base;c har *top;i nt stacksize;};struct SqStack_N{i nt *base;i nt *top;i nt stacksize;};Status InitStack_T(SqStack_T &S){=(char*)malloc(STACK_INIT_SIZE*sizeof(char));return ERROR;=;=STACK_INIT_SIZE;r eturn OK;}Status InitStack_N(SqStack_N &S){=(int*)malloc(STACK_INIT_SIZE*sizeof(int));i f(!return ERROR;=;=STACK_INIT_SIZE;r eturn OK;}int Push_T(SqStack_T &S,char e){i f {=(char*)realloc,+STACKINCREMENT)*sizeof(char));if(!return ERROR;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}int Push_N(SqStack_N &S,int e)i f {=(int*)realloc,+STACKINCREMENT)*sizeof(int));if(!return ERROR;=+;+=STACKINCREMENT;}*++=e;r eturn OK;}int Pop_T(SqStack_T &S,char &e){i f==return ERROR;e=*;r eturn OK;}int Pop_N(SqStack_N &S,int &e){i f==return ERROR;e=*;r eturn OK;}char GetTop_T(SqStack_T S){c har e;i f==return ERROR;e=*;r eturn e;}int GetTop_N(SqStack_N S){i nt e;i f==return ERROR;e=*;r eturn e;}char Precede(char theta1,char theta2) {i nt a,b;s witch(theta1){c ase '+': a=2; break;c ase '-': a=2; break;c ase '*': a=4; break;c ase '/': a=4; break;c ase '(': a=0; break;c ase ')': a=6; break;c ase '=': a=-1; break;}s witch(theta2){c ase '+': b=1; break;c ase '-': b=1; break;c ase '*': b=3; break;c ase '/': b=3; break;c ase '(': b=6; break;c ase ')': b=0; break;c ase '=': b=-1; break;}i f(a<b)return '<';e lseif(a==b)return '=';elsereturn '>';}char precede(char e,char c){i f(c=='+'||c=='-'){if(e=='+'||e=='-'||e==')'||e=='=') return '>';elsereturn '<';}i f(c=='*'||'/'){if(e=='(')return '<';elsereturn '>';}i f(c=='('){if(e==')')return '=';elsereturn '<';}i f(c==')')return '>';i f(c=='='){if(e=='=')return '=';elsereturn '<';}}int In(char c){i f(c>='0'&&c<='9')return 1;e lsereturn 0;}int Operate(int a,char theta,int b){i nt s;s witch(theta){c ase '+': s=a+b; break;c ase '-': s=a-b; break;c ase '*': s=a*b; break;c ase '/':if(b!=0)s=a/b;elseprintf("Input error");break;}r eturn s;}int main(){i nt k=0,m,y,a,b;S qStack_T OPTR;S qStack_N OPND;c har c,theta;I nitStack_T(OPTR); Push_T(OPTR,'=');I nitStack_N(OPND); c=getchar();w hile(c!='='||GetTop_T(OPTR)!='=') {if(In(c)){m=c-'0';if(k==1){Pop_N(OPND,y);y=m+y*10;Push_N(OPND,y);k=1;c=getchar();}else{y=m;Push_N(OPND,y);c=getchar();k=1;}}else{k=0;switch(Precede(GetTop_T(OPTR),c)){case '<': Push_T(OPTR,c); c=getchar(); break;case '=': Pop_T(OPTR,c); c=getchar(); break;case '>':Pop_T(OPTR,theta);Pop_N(OPND,b);Pop_N(OPND,a);Push_N(OPND,Operate(a,theta,b));break;}}}p rintf("%d",GetTop_N(OPND));r eturn 0;}实验三实验三实验三实验三实验三实验三实验三实验三实验三实验三实验三实验三实验三#include<>#include<>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;#define MAXQSIZE 100typedef struct{Q ElemType *base;i nt front;i nt rear;}SqQueue;Status InitQueue(SqQueue &Q){=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));i f(!return ERROR;==0;r eturn OK;Status EnQueue(SqQueue &Q,QElemType e) {i f(+1)%MAXQSIZE==return ERROR;[]=e;=+1)%MAXQSIZE;r eturn OK;}Status DeQueue(SqQueue &Q,QElemType &e) {i f==return ERROR;e=[];=+1)%MAXQSIZE;r eturn OK;}Status GetHead(SqQueue Q,QElemType &e) {i f==return ERROR;e=[];r eturn OK;}int QueueLength(SqQueue Q){r eturn QueueTraverse(SqQueue Q)i nt i;i=;i f==printf("The Queue is Empty!");e lse{printf("The Queue is:");while(i!={printf("% d",[i]);i=i+1;}}p rintf("\n");r eturn OK;}int main(){i nt a;S qQueue S;Q ElemType x,e;i f(InitQueue(S))printf("A Queue Has Created.\n");w hile(1){printf("1:Enter \n2:Delete \n3:Get the Front \n4:Return the Length of the Queue\n5:Load the Queue\n0:Exit\nPlease choose:\n");scanf("%d",&a);switch(a){case 1: scanf("%d",&x);if(!EnQueue(S,x))printf("Enter Error!\n");elseprintf("The Element %d is Successfully Entered!\n",x);break;case 2: if(!DeQueue(S,e))printf("Delete Error!\n");elseprintf("The Element %d is Successfully Deleted!\n",e);break;case 3: if(!GetHead(S,e))printf("Get Head Error!\n");elseprintf("The Head of the Queue is %d!\n",e);break;case 4: printf("The Length of the Queue is %d!\n",QueueLength(S));break;case 5: QueueTraverse(S);break;case 0: return 1;}}}222222#include<>#include<>#define OK 1#define ERROR 0typedef int Status;typedef int QElemType;#define MAXQSIZE 100typedef struct{Q ElemType *base;i nt front;i nt rear;}SqQueue;Status InitQueue(SqQueue &Q){=(QElemType*)malloc(MAXQSIZE*sizeof(QElemType));i f(!return ERROR;==0;r eturn OK;}Status EnQueue(SqQueue &Q,QElemType e){i f(+1)%MAXQSIZE==return ERROR;[]=e;=+1)%MAXQSIZE;r eturn OK;}Status DeQueue(SqQueue &Q,QElemType &e){i f==return ERROR;e=[];=+1)%MAXQSIZE;r eturn OK;}Status GetHead(SqQueue Q,QElemType &e) {i f==return ERROR;e=[];r eturn OK;}int QueueLength(SqQueue Q){r eturn QueueTraverse(SqQueue Q){i nt i;i=;i f==printf("The Queue is Empty!");e lse{printf("The Queu is:");while(i!={printf("%d",[i]);i=(i+1)%MAXQSIZE;}}p rintf("\n");r eturn OK;}int main(){i nt i,a;S qQueue S;i nt p,q,e,r;f loat t,s=0;I nitQueue(S);s canf("%d",&a);g etchar();f or(i=1;i<=a*2;i++){scanf("%d",&e);getchar();EnQueue(S,e);}p=[];w hile>{q=p+[+1];DeQueue(S,e);DeQueue(S,e);if==break;。
华农C语言教材习题答案

注:答案仅供参考分期还款:#include <stdio.h>#include <math.h>int main(){double d, p,r;scanf("%lf%lf%lf",&d,&p,&r);printf("%.1f", log10(p/(p-d*r))/log10(1+r));return 0;}计算分段函数函数值:#include <stdio.h>int main(){double x;scanf("%lf",&x);if(x<1) printf("%.2f", x);else if(x>=1 && x<10) printf("%.2f", 2*x-1);else printf("%.2f", 3*x-11);}成绩等级评分:#include <stdio.h>#include <math.h>int main(){int score;scanf("%d", &score);if(score>100 || score<0)printf("error");else if(score>=90)printf("A");else if(score>=80)printf("B");else if(score>=70)printf("C");else if(score>=60)printf("D");elseprintf("E");return 0;}20秒后时间:#include <stdio.h>#include <stdlib.h>int main(){int h,m,s;scanf("%d:%d:%d", &h,&m,&s);s=s+20;if(s>59){s=s%60;m++;if(m>59){m=m%60;h++;if(h>23)h=0;}}printf("%02d:%02d:%02d\n", h, m, s);return 0;}分期还款(加强版):#include <stdio.h>#include <math.h>int main(){double d, p,r;scanf("%lf%lf%lf",&d,&p,&r);if(d==0)printf("0.0\n");else if(d*(1+r)-p>d)printf("God\n");else{printf("%.1f", log10(p/(p-d*r))/log10(1+r));}return 0;}字母分类统计:#include <stdio.h>#include <math.h>int main(){char ch;int nL=0, nN=0, nS=0, nO=0;while((ch=getchar())!='\n'){if(ch>='a'&&ch<='z'||ch>='A'&&ch<='Z')nL++;else if (ch>='0'&&ch<='9')nN++;else if (ch==' ')nS++;elsenO++;}printf("%d %d %d %d\n", nL, nN, nS, nO);return 0;}计算数列和:#include<stdio.h>main(){ int i,n;double a=2,b=1,s=0;scanf("%d",&n);for(i=1;i<=n;i++){ s=s+a/b;a=a+b;b=a-b;}printf("%.4f\n",s);}自由落体:#include <stdio.h>#include <math.h>int main(){double sum=-100, d=100;int i,n;scanf("%d", &n);for(i=1; i<=n; i++){sum+=2*d;d/=2;}printf("%.3f %.3f", sum, d);return 0;}迭代法求平方根:#include <stdio.h>#include <math.h>int main(){double a, x0, x1=1;scanf("%lf", &a);do{x0=x1;x1=1.0/2*(x1+a/x1);}while(fabs(x1-x0)>=1e-5);printf("%.4lf\n", x1);return 0;}打印三角形:#include <stdio.h>#define abs(x) ((x)>=0?(x):-(x))int main(){int n,i,j;scanf("%d", &n);for(i=-(n-1); i<=(n-1); i++){for(j=0; j<abs(i); j++)printf(" ");for(j=0; j<n-abs(i); j++)printf("*");printf("\n");}return 0;}勾股数:#include <stdio.h>#include <math.h>int main(){int i,j,k,n;scanf("%d", &n);for(i=1; i<=n; i++)for(j=i; j<=n; j++){k=(int)sqrt(i*i+j*j);if(k*k==i*i+j*j && k<=n)printf("%d %d %d\n", i,j,k);}return 0;}插入数据:int n,i;scanf("%d", &n);for(i=14; i>=0; i--)if(a[i]>n) a[i+1]=a[i];else break;a[i+1]=n;输出不同的数:#include"stdio.h"main(){ int a[20];int i,t,p=0;for(i=0;i<10;i++){ scanf("%d",&a[i]);for(t=0;t<i;t++)if(a[t]==a[i])break;if(t==i)printf("%d\n", a[i]);}}鞍点:#include <stdio.h>#include <stdlib.h>int main(){int i,j,a[3][4],flag=0,col,r;for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){col=0;for(j=1;j<4;j++)if(a[i][j]>a[i][col]) col=j;for(j=0;j<4;j++){if(a[i][j]==a[i][col]){for(r=0;r<3;r++)if(a[r][j]<a[i][j]) break;if(r==3){printf("%d\n", a[i][j]);flag=1;}}}}if(!flag)printf("NO\n");return 0;}回文串:#include "stdio.h"#include "string.h"main(){ int i, j;char buf[100];scanf("%s",buf);for(i=0, j=strlen(buf)-1;i<j; i++, j--)if(buf[i]!=buf[j]) break;if(i>=j)printf("Y");elseprintf("N");}ASCII码值之和的差:#include <stdio.h>int sum(char *s){int t=0,i=0;while(s[i]!='\0')t+=s[i++];return t;}int main(){char s1[81],s2[82];gets(s1);gets(s2);printf("%d", sum(s1)-sum(s2));return 0;}所有数字之和:#include "stdio.h"int sum(int n){int ret=0;while(n>0){ret+=n%10;n/=10;}return ret;}main(){int n;scanf("%d", &n);printf("%d", sum(n));}元音字母:#include "stdio.h"void yuan(char *s,char *s2){while(*s!='\0'){if(*s=='a' ||*s=='o' ||*s=='e' ||*s=='i' ||*s=='u' || *s=='A' ||*s=='O' ||*s=='E' ||*s=='I' ||*s=='U'){*s2=*s; s2++;}s++;}*s2='\0';}main(){char str[81], str2[81];gets(str);yuan(str,str2);printf("%s", str2);}字符统计:#include <stdio.h>#include <string.h>#include <math.h>int nL=0, nN=0;int statistics(char *s){int ret=0;while(*s!='\0'){if(*s>='a'&&*s<='z'||*s>='A'&&*s<='Z')nL++;else if (*s>='0'&&*s<='9')nN++;else if (*s==' ')ret++;s++;}return ret;}int main(){char s[81];int nS;gets(s);nS = statistics(s);printf("%d %d %d\n", nL, nN, nS);return 0;}选择排序:#include <stdio.h>int sort(int a[], int n){int i,j,k,tmp;for(i=0;i<n-1; i++){k=i;for(j=i+1; j<n; j++)if(a[k]>a[j]) k=j;tmp=a[k];a[k]=a[i];a[i]=tmp;}}int main(){int a[10];int i;for(i=0; i<10; i++) scanf("%d", &a[i]);sort(a,10);for(i=0; i<10; i++) printf("%d\n", a[i]);return 0;}x的n次方:#include <stdio.h>int F(int x, int n){if(n==1) return x;else return F(x, n-1)*x;}int main(){int x, n;scanf("%d%d", &x, &n);printf("%d", F(x, n));return 0;}行列互换:#include <stdio.h>void s *a, int *b){int temp;temp=*a;*a=*b;*b=temp;}void col(int a[][4], int i, int j){int k;for(k=0; k<4; k++)s[k][i], &a[k][j]);}void row(int a[][4], int i, int j){int k;for(k=0; k<4; k++)s[i][k], &a[j][k]);}int main(){int a[4][4];int i,j;for(i=0; i<4; i++)for(j=0; j<4; j++)scanf("%d", &a[i][j]);col(a,0,2);row(a,0,2);col(a,1,3);row(a,1,3);col(a,0,3);row(a,0,3);for(i=0; i<4; i++){for(j=0; j<4; j++)printf("%d ", a[i][j]);printf("\n");}return 0;}学生信息统计:#include <stdio.h>void average(double a[][5], int n) {int i,j;double sum;for(i=0; i<n; i++){sum=0;for(j=0; j<5; j++)sum+=a[i][j];printf("%.2f ", sum/5);}printf("\n");}void average2(double a[][5], int n){int i,j;double sum;for(j=0; j<5; j++){sum=0;for(i=0; i<n; i++)sum+=a[i][j];printf("%.2f ", sum/n);}printf("\n");}void top(double a[][5], int n){int i,j; double max;for(j=0; j<5; j++){max=a[0][j];for(i=1; i<n; i++)if(a[i][j]>max) max = a[i][j];printf("%.2f ", max);}printf("\n");}int main(){double a[10][5];int i, j;for(i=0; i<10; i++)for(j=0; j<5; j++)scanf("%lf", &a[i][j]);average(a,10);average2(a,10);top(a,10);return 0;}一年的第几天:#include <stdio.h>struct DATE{int year;int month;int day;};int days(struct DATE date){int day,sum;if(date.year%4==0&&date.year%100!=0||date.year%400==0) {day=29;}else{day=28;};switch(date.month){case 1:sum=0;break;case 2:sum=31;break;case 3:sum=31+day;break;case 4:sum=62+day;break;case 5:sum=92+day;break;case 6:sum=123+day;break;case 7:sum=153+day;break;case 8:sum=184+day;break;case 9:sum=215+day;break;case 10:sum=245+day;break;case 11:sum=276+day;break;case 12:sum=306+day;break;};return(sum+date.day);}int main(){struct DATE d;scanf("%d-%d-%d", &d.year, &d.month, &d.day);printf("%d", days(d));}学生成绩表:#include <stdio.h>struct data{int num;char name[20];double score[3];double average;};int main(){int i,j;struct data stu[10],tmp;for(i=0; i<10; i++){scanf("%d%s%lf%lf%lf", &stu[i].num, stu[i].name, stu[i].score, stu[i].score+1, stu[i].score+2);stu[i].average=stu[i].score[0]+stu[i].score[1]+stu[i].score[2]; } for(i=0; i<9; i++)for(j=0; j<9-i; j++){if(stu[j].average<stu[j+1].average){tmp=stu[j];stu[j]=stu[j+1];stu[j+1]=tmp;} }for(i=0; i<10; i++){printf("%d %s %.0lf %.0lf %.0lf\n", stu[i].num, stu[i].name, stu[i].score[0], stu[i].score[1], stu[i].score[2]);}return 0;}。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
格式:一题号一答案,相对应1001#include "stdio.h"int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);}1007#include "stdio.h"int main(){int a,b;scanf("%d%d",&a,&b);printf("%d",a+b);}1014#include"stdio.h"void main(){float area,r;scanf("%f",&r);area=3.14159*r*r;printf("%0.2f",area);}1015#include<stdio.h>void main(){float f,c;scanf("%f",&f);c=5.0/9*(f-32);printf("%.2f",c);}1016#include<stdio.h>main(){char a,b,c,d,e;scanf("%c%c%c%c%c",&a,&b,&c,&d,&e); if(a<='Z'&&a>='A')a=a+32;if(b<='Z'&&b>='A')b=b+32;if(c<='Z'&&c>='A')c=c+32;if(d<='Z'&&d>='A')d=d+32;if(e<='Z'&&e>='A')e=e+32;printf("%c%c%c%c%c",a,b,c,d,e);}1017#include "stdio.h"void main(){int n,place;scanf("%ld",&n);if(n>99999999)place=9;else if(n>9999999)place=8;else if(n>999999)place=7;else if(n>99999)place=6;else if(n>9999)place=5;else if(n>999)place=4;else if(n>99)place=3;else if(n>9)place=2;else place=1;printf("%ld\n",place);}1018#include<stdio.h>main(){int a,b,c,t;scanf("%d,%d,%d",&a,&b,&c);if(a>b){t=a;a=b;b=t;}if(a>c){t=a;a=c;c=t;}if(b>c){t=b;b=c;c=t;}printf("%d,%d,%d",a,b,c);}1019#include"stdio.h"main(){int a,b,c,d,e;scanf("%d%d%d%d%d",&a,&b,&c,&d,&e);if(a%27==0)printf("YES\n");else printf("NO\n"); if(b%27==0)printf("YES\n");else printf("NO\n"); if(c%27==0)printf("YES\n");else printf("NO\n"); if(d%27==0)printf("YES\n");else printf("NO\n");if(e%27==0)printf("YES\n");else printf("NO\n"); }1020#include"stdio.h"main(){int n;scanf("%d",&n);if(n<0)printf("negative\n");else printf("positive\n");if(n%2==0)printf("even\n");else printf("odd\n");}1023#include<stdio.h>int main(){float a,b,c;char op;scanf("%f%c%f",&a,&op,&b);switch(op){case'+':c=a+b;break;case'-':c=a-b;break;case'*':c=a*b;break;case'/':c=a/b;break;default:printf("error");break;}printf("result=%.2f",c);}1024#include<stdio.h>void main(){long i,n=1,a;scanf("%ld",&a);for(i=1;i<=a;i++)n=n*i;printf("%ld\n",n);}1025#include<stdio.h>void main(){long n,sum=0,i,t=1;scanf("%ld",&n);for(i=1;i<=n;i++){sum=sum+t;t=t+2;}printf("%ld\n",sum);}1026#include<stdio.h>void main(){char c;int s=0,a;while((c=getchar())!='\n') {if(c>='0'&&c<='9'){a=c-48;s=s+a;}}printf("%d",s);}1028#include<stdio.h>#include<math.h>main(){int m,k,i;for(m=2;m<=200;m++) {k=sqrt(m);for(i=2;i<=k;i++)if(m%i==0)break;if(i>k)printf("%d\n",m); }}1029#include<stdio.h>void main(){long r,m,n;scanf("%ld,%ld",&m,&n); while(m!=0){r=n%m;n=m;m=r;}printf("%ld\n",n);}1030#include<stdio.h>void main(){char c;while((c=getchar())!='\n'){if(c>='A'&&c<='Z')c=c+32;putchar(c);}}1031#include <stdio.h>void main(){int i,num=0,word=0;char c;for(i=0;(c=getchar())!='\n';i++)if(c==' ')word=0;else if(word==0){word=1;num++;}printf("%d",num);}1035#include"stdio.h"#include"math.h"void main(){int n,i,j,k;scanf("%d",&n);for(i=1;i<=2*n+1;i++){k=abs(n+1-i);for(j=1;j<=k;j++)printf("");for(j=1;j<=2*n+1-2*k;j++)printf("*"); printf("\n");}}1037#include<stdio.h>main(){int i,t,n;float a=2,b=1,s=0;scanf("%d",&n);for(i=1;i<=n;i++){s=s+a/b;t=a;a=a+b;b=t;}printf("%.4f\n",s);}1038#include<stdio.h>#include<math.h>main(){int n,i,j,k,h;scanf("%d",&n);for(i=-n+1;i<=n-1;i++){for(j=0;j<abs(i);j++)printf(" ");for(k=1;k<=n-abs(i);k++)printf("%d",k); for(h=n-abs(i)-1;h>=1;h--)printf("%d",h); printf("\n");}}1039#include<math.h>main(){int a[10];int i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=9;i>=0;i--)printf("%d\n",a[i]);}1040#include"stdio.h"main(){int a[20];int i,t,p=0;for(i=0;i<20;i++){scanf("%d",&a[i]);for(t=0;t<i;t++)if(a[t]==a[i])break;if(t==i)p++;}printf("%d",p);}1042#include<stdio.h>#include<math.h>void main(){int m,i;scanf("%d",&m);for(i=1;i<=38;i++)if(0.01*(pow(2,i-1)-1)-i*m>=0)break; printf("%d",i-1);}1044#include"stdio.h"main(){int i,t,min;scanf("%d",&min);for(i=1;i<10;i++){scanf("%d",&t);if(t<min)min=t;}printf("%d\n",min);}1046#include"stdio.h"#include"string.h"main(){int a[100]={0},b[100]={0},c[100]={0}; char s[101];int i=0,n1=0,n2=0,max=0,e=0;gets(s);n1=strlen(s);for(i=n1-1;i>=0;i--)a[n1-1-i]=s[i]-'0'; gets(s);n2=strlen(s);for(i=n2-1;i>=0;i--)b[n2-1-i]=s[i]-'0';if(n1>n2)max=n1;else max=n2;for(i=0;i<=max;i++){c[i]=(a[i]+b[i]+e)%10;e=(a[i]+b[i]+e)/10;}if(c[max]>0)printf("%d",c[max]); for(i=max-1;i>=0;i--)printf("%d",c[i]);}1047#include<stdio.h>main(){int a[10];int i,j,t;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<9;i++){for(j=0;j<9-i;j++)if(a[j]>a[j+1]){t=a[j];a[j]=a[j+1];a[j+1]=t;}}for(i=0;i<10;i++)printf("%d",a[i]);}1050#include"stdio.h"main(){int i,j;char a[80],b[80];gets(a);gets(b);for(i=0;a[i]!='\0';i++){for(j=0;b[j]!='\0';j++)if(a[i+j]!=b[j])break;if(b[j]=='\0')break;}if(a[i]!='\0')printf("%d",i+1); else printf("Not Found");}1051#include<stdio.h>main(){int i,j,k,a[3][4],max,maxj,flag; for(i=0;i<3;i++)for(j=0;j<4;j++)scanf("%d",&a[i][j]);for(i=0;i<3;i++){max=a[i][0];maxj=0;for(j=0;j<4;j++)if(a[i][j]>max){max=a[i][j];maxj=j;}flag=1;for(k=0;k<3;k++)if(max>a[k][maxj]){flag=0;break;}if(flag){printf("%d",max);break;}}if(!flag)printf("NO");}1059#include"stdio.h"int f(int m,int n){int r;while((r=m%n)!=0){m=n;n=r;}return n;}main(){int a,b,n;scanf("%d%d",&a,&b);printf("%d\n",f(a,b));}1062#include<stdio.h>void main(){int a[3][4],b[4][3],i,j; for(i=0;i<3;i++)for(j=0;j<4;j++) {scanf("%d",&a[i][j]); b[j][i]=a[i][j];}for(i=0;i<4;i++){for(j=0;j<3;j++) printf("%d",b[i][j]); printf("\n");}}1065#include"stdio.h" main(){printf("19\n");printf("2016\n");printf("2000\n");printf("2016\n");printf("2004\n");printf("2016\n");printf("2036\n");printf("2020\n");printf("21");}1083long fanc(int a) {long i,n=1;for(i=1;i<=a;i++)n=n*i; return n;}void main(){int n;scanf("%d",&n);printf("%ld",fanc(n)); }1084#include"stdio.h"void fun(int i){if(i>1)fun(i/2);printf("%d",i%2);}main(){int n;scanf("%d",&n);fun(n);}1091#include"stdio.h"void swap(int*p1,int*p2){int temp;temp=*p1;*p1=*p2;*p2=temp;}int main(){int a,b;int*pa,*pb;scanf("%d%d",&a,&b);pa=&a;pb=&b;if(a<b)swap(pa,pb);printf("%d%d\n",a,b);}1092#include"stdio.h"#include"string.h"int f(char*p){return strlen(p);}int main(){char s[80];int i;scanf("%s",s);i=f(s);printf("%d",i);}1117#include"stdio.h"void main(){int a,b;/*定义整型变量a和b*/ int i,j;/*定义实型变量i和j*/b=6;i=3.14;j=i*a*b;printf("a=%d,b=%d,i=%f,j=%f\n",a,b,i,j); }1118#include "stdio.h"void main(){ float a;int b, c;char d, e;a=3.5;b=a;c=330;d=c;e='\\';printf("%f,%d,%d,%c,%c", a,b,c,d,e);}1119#include"stdio.h"void main(){int a,b,c;float d=15,e,f;a=35%7;b=15/10;c=b++;e=15/10;f=d/10;printf("%d,%d,%d,%f,%f,%f",a,b,c,d,e,f); }1120#include"stdio.h"#include"math.h"void main(){float a,b;scanf("%f,%f",&a,&b);if(fabs(a*a+b*b-1)<1e-3)printf("Y\n");else printf("N\n");}}#include"string.h"void main(){char s[80];/*定义字符数组s*/ strcpy(s,"abcdefghijklmn");printf("%s",s);}1122#include"stdio.h"#include"string.h"main(){char s[100]="";char a[30];gets(a);strcat(s,a);gets(a);strcat(s,a);gets(a);strcat(s,a);/*可以写多行代码*/printf("%s",s);}1123#include"stdio.h"void main(){char s[50];printf("What's your name?");gets(s);/*由键盘读入字符串*/ printf("Your name is",);printf("%s",s);/*打印字符串*/}1124int f1(int x){static int z=3,y=0;y++;z++;return(x+y+z);}main(){int a=1,k;for(k=0;k<3;k++)printf("%4d",f1(a)); }/*定义结构体类型*/struct student{char name[20];char sex;int num;float score;}main(){struct student stu;scanf("%s",);scanf("%*c%c",&stu.sex);scanf("%d",&stu.num);scanf("%f",&stu.score);printf("%s\n",);printf("%c\n",stu.sex);printf("%d\n",stu.num);printf("%f\n",stu.score);}1126#include "stdio.h"void main(){ char ch;ch = getchar();putchar(ch);}1127#include "stdio.h"void main(){int a,b;scanf("%d%*c%d",&a,&b); printf("%d", a+b);}1145/*判断一个数是否是回文数;*/#include<stdio.h>int main(void){int val;int m,sum=0;printf("请输入数字:");scanf("%d",&val);m=val;while(m){sum=sum*10+m%10;m/=10;}if(val==sum)printf("Y\n");elseprintf("N\n");return 0;}6567#include "stdio.h"main(){printf("The first C Program\n"); }6568#include <stdio.h>main(){printf("C:\\ABC.TXT");}11126#include <stdiio.h>int max(int x,int y){if(x>y)return x;else return y;}int main(){int a,b;scanf("%d%d",&a,&b);printf("%d\n",max(a,b));}结束!资源提供出处/bbs2/bbs2/forum.php。