自考“高級(jí)語(yǔ)言程序設(shè)計(jì)”習(xí)題答案詳解(32)

字號(hào):

7.輸入兩個(gè)字符串,將它們連接后輸出。
    「解」程序設(shè)有兩個(gè)存儲(chǔ)字符串的數(shù)組,先輸入兩個(gè)字符串,然后找到第一個(gè)字符串的末尾,接著將第二個(gè)字符串復(fù)制在第一個(gè)字符串的后面,然后輸出。程序如下:
    # include
    # define N 120
    main()
    { char s1[N+N],s2[N],*p,*q;
    printf(“輸入2個(gè)字符串\n”);
    scanf(“%s%s”,s1,s2);
    for(p=sl;* p?。健甛0’; p++);
    for(q=s2;*p++=*q++;);
    printf(“兩字符串連接后:%s\n” ,sl);
    }
    8.比較兩個(gè)字符串是否相等。
    「解」程序設(shè)兩個(gè)存儲(chǔ)字符串的數(shù)組,先輸入兩個(gè)字符串,兩字符率比較時(shí),直接用兩字符串的對(duì)應(yīng)字符比較來(lái)實(shí)現(xiàn)。完整程序如下:
    # include
    # define N 120
    main()
    { char sl[N] ,s2[N],*p,*q;
    char *result[]={“小于”,“相等” ,“大于”};
    int comp;
    printf(“輸入 2個(gè)字符串\n”);
    scanf(“%s%s”,s1,s2);
    for(p=sl,q=s2;*q!=‘\0’&& *p==*q; p++, q++);
    comp=*P <* q? 0:*P==*q? l:2;
    printf(“字符串1與字符串2比較:%s\n”,result[comp]);
    }
    9.輸入10個(gè)整數(shù),將其中數(shù)與最后一個(gè)數(shù)交換,最小數(shù)與第一個(gè)數(shù)交換。
    「解」程序設(shè)一個(gè)一維數(shù)組存儲(chǔ)輸入的10個(gè)整數(shù)。然后遍歷數(shù)組,找出元素和最小元素的指針。接著按要求先將元素與最后一個(gè)元素交換,然后將最小元素與第一個(gè)元素交換。最后,輸出數(shù)組中的全部整數(shù)。程序應(yīng)考慮到這樣一種特殊情況,即最后一個(gè)元素正是最小元素,它在與元素交換后,位置已移到原先存儲(chǔ)元素的位置。程序應(yīng)保證元素移到末尾,最小元素移到最前端。
    程序如下:
    # include
    # define N 10
    main()
    { int a[N],*maxp,*minp,*q,t;
    printf(“入%d個(gè)整數(shù)\n,N);
    for(q=a;q
    scanf(“%d”,&t);*q=t;
    }
    maxp= minp= a;
    for(q=a;q
    if(*maxp<*p) maxp=q;
    if(*minp>*q) minp=q;
    }
    t=*maxp; *maxp=a[N-1]; a[N-l]=t;
    if(minp==&a[N-l]) minp=maxp;
    t=* minp;*minp= a[0]; a[0]= t;
    for(q=a;q
    printf(“%d”,*q);
    printf(“\n”);
    }