自考“高級語言程序設計”習題答案詳解(22)

字號:

6.輸入一個字符串,將其中的所有大寫字母改為小寫字母,而所有小寫字母全部改為大寫字母,然后輸出。
    「解」程序先輸入字符率,然后順序考察輸入字符串中的字符,當發(fā)現(xiàn)是大寫字母時,將它改寫成對應的小寫字母,而當它是小寫字母時,就將它改寫成對應的大寫字母。若變量ch中的字符是大寫字母,則與它對應的小寫字母的表達式可以寫成ch- ‘A’+‘a(chǎn)’ ;類似地,若變量ch中的字符是小寫字母,則與它對應的大寫字母的表達式可以寫成ch-‘a(chǎn)’+‘A’ .完整程序如下:
    # include
    # define N 200
    main()
    { char s[N] ;
    int i;
    printf(“ Enter string! \n”);
    scanf (“%s” ,s);
    for(i=0; s?。健甛0’;i++)
    if(s >=‘A’&&s <=‘Z’ )
    s=s -‘x’+‘a(chǎn)’ ;
    else if(s >=‘a(chǎn)’&& s <=‘z’)
    s= s-‘a(chǎn)’ +‘A’ ;
    printf(“s=%s\n”,s);
    }
    7.設某班50名學生的三科成績表如下:
    課程一 課程二 課程三
    …… …… ……
    試編一個程序,輸入這50個學生的三科成績,計算并輸出每科成績的平均分。
    「解」程序定義一個50行3列的二維數(shù)組,用于存儲全班學生的成績。程序順序輸入各個學生的三科成績,然后按列的順序,累計各科總分,并計算平均分。完整程序如下:
    # include
    # define N 50
    # define M 3
    main()
    {int score[N][M], i,j,t;
    double a[M];
    printf(“Enter scores!\n”);
    for(i=0;i< N; i++)
    for(j=0;j    scanf(“%d”,&t);score[j]=t;
    }
    for(j=0;j    for(j=0;j< M;j++){
    for(i=0;i< N; i++)
    a[j]+= score[j];
    a[j]/= N;
    }
    for(j=0;j    printf(“課程%d的平均分是%.2f\n”, j+1,a[j]);
    }