網(wǎng)站首頁
分類導(dǎo)航
試題中心
下載中心
英語學習
繽紛校園
考試論壇
網(wǎng)站留言
客服中心
 南開C語言上機100題背誦版
【字體:
南開C語言上機100題背誦版
http://1glr.cn 來源:狂風論壇 點擊: 更新:2005-3-29

南開100題背誦版—舊版
---------------------------------------------------------------
來源:http://ddup.net 作者:張智勇

*******************************************************************************
個十百千位加減并大小排序問題:
  求出個位數(shù)上的數(shù)減千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)大于零的個數(shù)cnt, 再把所有滿足此條件的四位數(shù)依次存入數(shù)組b中, 然后對數(shù)組b的四位數(shù)按從大到小的順序進行排序。
{
int i,j,k,t;
for(i=0; i < 300; i++)
if(a[i]%10-a[i]/1000-a[i]/100%10-a[i]/10%10>0)
b[cnt++]=a[i];
for(i=0; i < cnt-1; i++)
{ k=i;
for(j=i+1; j < cnt; j++)
if(b[k] < b[j]) k=j;
if(k!=i) { t=b[k]; b[k]=b[i]; b[i]=t; }
}
}
*******************************************************************************
個十百千重新排列,符合條件的數(shù)大小排序問題:
  把千位數(shù)字和十位數(shù)字重新組成一個新的十位數(shù)ab(新十位數(shù)的十位數(shù)字是原四位數(shù)的千位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的十位數(shù)字), 以及把個位數(shù)字和百位數(shù)字組成另一個新的十位數(shù)cd (新十位數(shù)的十位數(shù)字是原四位數(shù)的個位數(shù)字,新十位數(shù)的個位數(shù)字是原四位數(shù)的百位數(shù)字), 如果新組成的兩個十位數(shù)ab>cd, ab必須是偶數(shù)且能被5整除, cd必須是奇數(shù),同時兩個新數(shù)的十位數(shù)字均不為零,則將滿足此條件的四位數(shù)按從大到小的順序存入數(shù)組b中, 并要計算滿足上述條件的四位數(shù)的個數(shù)cnt。
void jsVal()
{
int i,j,k,A,B,C,D;
for(i=0; i < MAX; i++)
{ A=a[i]/1000; B=a[i]/10%10; C=a[i]%10; D=a[i]/100%10;
if(A!=0&&C!=0&&(B==0)&&(D%2!=0)&&(10*A>10*C+D))
b[cnt++]=a[i];
}
for(i=0; i < cnt-1; i++)
{ k=i;
for(j=i+1; j < cnt; j++)
if(b[k] < b[j]) k=j;
if(k!=i) {A=b[k]; b[k]=b[i]; b[i]=A;}
}
}
*******************************************************************************
求符合條件的數(shù)的總和和平均值問題:
  求出千位數(shù)上的數(shù)減百位數(shù)上的數(shù)減十位數(shù)上的數(shù)減個位數(shù)上的數(shù)大于零的個數(shù)cnt, 再求出所有滿足此條件的四位數(shù)平均值pjz1, 以及所有不滿足此條件的四位數(shù)平均值pjz2。
{
int i;
for(i=0; i < 300; i++)
if(a[i]/1000-a[i]/100%10-a[i]/10%10-a[i]%10>0)
{ cnt++; pjz1+=a[i]; }
else pjz2+=a[i];
if(cnt) pjz1/=cnt;
if(cnt<300) pjz2/=300-cnt;
}
*******************************************************************************
求共有幾個數(shù)以及各位數(shù)相加為基數(shù)的個數(shù)并求平均值問題:
  1. 求出這文件中共有多少個正整數(shù)totNum; 2.求出這些數(shù)中的各位數(shù)字之和是奇
數(shù)的數(shù)的個數(shù)totCnt, 以及滿足此條件的這些數(shù)的算術(shù)平均值totPjz。
void Calvalue(void)
{
while(xx[totNum]!=0)
{
if((xx[totNum]/1000+xx[totNum]/100%10+xx[totNum]/10%10+xx[totNum]
%10)%2)
{ totCnt++; totPjz+=xx[totNum]; }
totNum++;
}
if(totCnt) totPjz/=totCnt;}
*******************************************************************************
報數(shù)出圈
void Josegh(void)
{
int i,j,s1,w;
s1=s;
for(i=1;i<=n;i++)
p[i-1]=i;
for(i=n;i>=2;i--)
{s1=(s1+m-1)%i;
if(s1==0)
s1=i;
w=p[s1-1];
for(j=s1;j<i;j++)
p[j-1]=p[j];
p[i-1]=w;
}
}
*******************************************************************************
以行為單位對行中以空格或標點符號為分隔的所有單詞進行倒排,同時去除標點符號,之后把已處理的字符串(應(yīng)不含標點符號)仍按行重新存入字符串數(shù)組xx中。
void StrOL(void)
{
int i,j,k,m,n,ll;
char yy[80];
for(i=0; i < maxline; i++)
{ ll=strlen(xx[i]); k=n=0;
for(j=ll-1; j>=0; j- -)
{ if(isalpha(xx[i][j])) k++;
else
{ for(m=1; m<=k; m++)
yy[n++]=xx[i][j+m];
k=0;
}
if(xx[i][j]==' ') yy[n++]=' ';
}
for(m=1; m<=k; m++)
yy[n++]=xx[i][j+m];
/* 上面兩行處理每行的第一個單詞。如果漏寫,結(jié)果顯然不正確,但并不影響得分。 */
yy[n]=0;
strcpy(xx[i],yy);
}/* 標準答案與此法結(jié)果相比,每行后面多一個空格。 */
}
*******************************************************************************
以行為單位把字符串中的第一個字符的ASCII值加第二個字符的ASCII值, 得到第一個新的字符, 第二個字符的ASCII值加第三個字符的ASCII值,得到第二個新的字符, 以此類推一直處理到最后第二個字符, 最后一個字符的ASCII值加原第一個字符的ASCII值, 得到最后一個新的字符, 得到的新字符分別存放在原字符串對應(yīng)的位置上,之后把已處理的字符串逆轉(zhuǎn)后仍按行重新存入字符串數(shù)組xx中。
void ChA(void)
{/
int i,j; char ch;
for(i=0; i < maxline; i++)
{ ch=xx[i][0];
for(j=0; j < strlen(xx[i])-1; j++)
xx[i][j]+=xx[i][j+1];
xx[i][j]+=ch;
strrev(xx[i]);
}
}
以行為單位依次把字符串中所有小寫字母o 左邊的字符串內(nèi)容移到該串的右邊存放, 然后并把小寫字母o刪除,余下的字符串內(nèi)容移到已處理字符串的左邊存放,之后把已處理的字符串仍按行重新存入字符串數(shù)組xx中。
void StrOR(void)
{
int i,j; char yy[80],*p;
for(i=0; i
for(j=0; j
if(xx[i][j]=='o')
{ p=&xx[i][j+1];
strcpy(yy,p);
strncat(yy,xx[i],j);
strcpy(xx[i],yy);
j=0;
}
}
以行為單位把字符串中的最后一個字符的ASCII值右移4位后加最后第二個字符的ASCII值, 得到最后一個新的字符, 最后第二個字符的ASCII值右移4位后加最后第三個字符的ASCII值,得到最后第二個新的字符, 以此類推一直處理到第二個字符, 第一個字符的ASCII值加原最后一個字符的ASCII值, 得到第一個新的字符, 得到的新字符分別存放在原字符串對應(yīng)的位置上,之后把已處理的字符串仍按行重新存入字符串數(shù)組xx中。
void CharConvA(void)
{/**/
int i,j,ll; char ch;
for(i=0; i < maxline; i++)
{ ll=strlen(xx[i]); ch=xx[i][ll-1];
for(j=ll-1; j; j--)
xx[i][j]=(xx[i][j]>>4)+xx[i][j-1];
xx[i][0]+=ch;
}
}
以行為單位把字符串中的所有小寫字母改寫成該字母的上一個字母, 如果是字母a, 則改寫成字母z,大寫字母和其它字符保持不變。把已處理的字符串仍按行重新存入字符串數(shù)組xx中。
void ConvertCharD(void)
{/**/
int i,j;
for(i=0; i < maxline; i++)
for(j=0; j < strlen(xx[i]); j++)
if(xx[i][j]=='a') xx[i][j]='z';
else if(islower(xx[i][j])) xx[i][j]-=1;
}
*******************************************************************************

文章錄入:ak48    責任編輯:ak48  
 版權(quán)聲明
   如果本網(wǎng)站所轉(zhuǎn)載內(nèi)容不慎侵犯了您的權(quán)益,請與我們聯(lián)系,我們將會及時處理。如轉(zhuǎn)載本網(wǎng)內(nèi)容,請注明出處。
 發(fā)表評論
關(guān)于本站 網(wǎng)站聲明 廣告服務(wù)  聯(lián)系方式  付款方式  站內(nèi)導(dǎo)航  客服中心  友情鏈接   
Copyright © 2004-2006 考試吧 (Exam8.com) All Rights Reserved 
中國科學院研究生院中關(guān)村園區(qū)(北京市海淀區(qū))