6.輸入一個字符串,將其中的所有大寫字母改為小寫字母,而所有小寫字母全部改為大寫字母,然后輸出。
【解】程序先輸入字符率,然后順序考察輸入字符串中的字符,當發(fā)現(xiàn)是大寫字母時,將它改寫成對應的小寫字母,而當它是小寫字母時,就將它改寫成對應的大寫字母。若變量ch中的字符是大寫字母,則與它對應的小寫字母的表達式可以寫成ch- ’A’+’a’ ;類似地,若變量ch中的字符是小寫字母,則與它對應的大寫字母的表達式可以寫成ch-’a’+’A’ 。完整程序如下:
# include
# define N 200
main()
{ char s[N] ;
int i;
printf(" Enter string! \n");
scanf ("%s" ,s);
for(i=0; s[i]!=’\0’;i++)
if(s[i] >=’A’&&s[i] <=’Z’ )
s[i]=s[i] -’x’+’a’ ;
else if(s[i] >=’a’&& s[i] <=’z’)
s[i]= s[i]-’a’ +’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
}
for(j=0;j
for(i=0;i< N; i++)
a[j]+= score[i][j];
a[j]/= N;
}
for(j=0;j
}
8.編一個程序,輸入一個整型數(shù)據(jù),輸出每位數(shù)字,其間用遠號分隔。例如,輸入整數(shù)為2345,則輸出應為: 2, 3, 4, 5。
【解】程序的主要工作是從輸入整數(shù)分拆出它的十進制整數(shù)的各位數(shù)字,將分拆出來的各位數(shù)字存于數(shù)組中,然后將這些數(shù)字自高位到低位的順序逐位輸出。要將一個整數(shù)按十進制數(shù)的要求分拆,需用一個循環(huán),每次循環(huán)求出被分拆數(shù)除以10的余數(shù)的辦法來求出它的個位,每分拆出一位就將被分拆的數(shù)除以10。循環(huán)過程直至被分拆的數(shù)為0結束。完整程序如下:
# include
main()
{int a[20],i,base=10;
int n;
printf("Enter a number! \n");
scanf("%d", &n);/*整數(shù)輸入*/
i=0;/*對n進行分拆,各位數(shù)字自低位到高位存于數(shù)組 a*/
do{
a[i++]=n% base;
n/= base;
} while(n) ;
for(i--;i>=0;i--)/*自高位到低位輸出*/
printf("%d%c",a[i], i? ’,’ :’\n’);
}
9.編一個程序,輸入一個字符串,將其中所有的大寫英文字母的代碼+3,小寫英文字母的代碼-3。然后輸出加密后的字符串。
【解】程序的主要工作是輸入字符串,并順序考察輸入字符率中的字符,分別對其中大小寫英文字母完成問題要求的更改,而跳過不是英文字母的字符。完整程序如下:
# include
# define N 200
main()
{char s[N]; int i;
printf("Enter string! \n");
scanf("%s", s);
for(i=0;s[i] !=’\0’; i++)
if(s[i] >=’A’ && s[i]=’Z’)
s[i]=3;
else if(s[i]=’a’&& s[i]=’z’ )
s[i]=3;
printf("s=%s\n",s);
}
10.編一個程序,將按第9題中加密的字符率(從鍵盤輸入)解密后輸出。
【解】本問題編寫的程序是完成上一程序的逆操作。同樣是順序考察輸入字符串,對滿足要求的字符作恢復更改。要求是當字符減3后是大寫英文字母時,則對其作減3處理的替換;當字符加3后是小寫英文字母時,則對它作加3的處理。如此做法是有錯誤的,程序未考慮原
先不是英文字母,而未被加3或減3處理,但對它減3或加3后是英文字母時,將被下面的程序轉(zhuǎn)換成英文字母。所以下面的程序不是完成上題程序的逆操作。但沒有簡單的辦法能避免這個錯誤。完整程序如下:
# include
# define N 200
main()
{char s[N]; int i;
printf("Enter string!\n");
scanf("%s",s);
for(i=0;s[i] !=’\0’;i++)
if(s[i]-3>=’A’&&s[i]-3<=’Z’)
s[i]-=3;
else if(s[i]+3>=’a’ && s[i]+3<= ’Z’)
s[i]+=3;
printf("s=%s\n",s);
}
更多軟考資料請訪問:考試吧軟件水平考試欄目
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |