南开C语言上机100练完整版Word文件下载.docx
《南开C语言上机100练完整版Word文件下载.docx》由会员分享,可在线阅读,更多相关《南开C语言上机100练完整版Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
i<
MAX;
{qw=a[i]/1000;
bw=a[i]/100%10;
sw=a[i]%100/10;
gw=a[i]%10;
if(qw&
&
qw%2==0&
bw%2==0&
sw%2==0&
gw%2==0)b[cnt++]=a[i];
cnt-1;
for(j=i+1;
cnt;
if(b[i]<
b[j]){qw=b[i];
b[i]=b[j];
b[j]=qw;
*****************************************************************************************
★☆题目3(无忧id133题;
捷成id59、99字符串位置倒置题)
voidStrOR(void)
{inti,righto,j,s,k;
chartem[80];
maxline;
i++)/*倒序循环*/
for(j=strlen(xx[i])-1;
j>
=0;
j--)
{k=0;
memset(tem,0,80);
/*初始化字符串数组tem*/
if(xx[i][j]=='
o'
)
/*如果当前字符为'
,进入以下语句*/
{righto=j;
/*则将此字符中位置j的值赋给righto*/
for(s=righto+1;
s<
strlen(xx[i]);
s++)
tem[k++]=xx[i][s];
/*从righto的下一跳开始将其后所有的字符都存入到tem中*/
for(s=0;
righto;
s++)/*从当前行首部开始到出现字符'
的位置(righoto)之前开始循环*/
if(xx[i][s]!
='
)tem[k++]=xx[i][s];
/*将不是字符'
的字符全存入到tem中*/
strcpy(xx[i],tem);
/*将当前已处理的字符重新存入当前行xx*/
elsecontinue;
}
相关库函数解释:
char*strncat(char*dest,constchar*src,size_tmaxlen)
功能:
将字符串src中前maxlen个字符连接到dest中
相关头文件:
string.h
char*strcpy(char*dest,constchar*src)
将字符串src拷贝到字符串dest中去
★☆题目4(无忧id24题捷成id9字符串单词倒置题)
/*在无忧及捷成版模拟系统中都通过测试(输入文件句末有标点的在输出文件中句前有空格*/
voidStrOL(void)
{inti,j,k,s,m,strl;
charstr[80];
{strl=strlen(xx[i]);
memset(str,0,80);
/*初始化这字符串数组str*/
s=k=0;
for(j=strl-1;
j--)/*从当前字符串尾部开始向前倒序循环,实现题意要求的倒排*/
{if(isalpha(xx[i][j]))k++;
/*如果当前字符是字母a~z或A~Z,则k加一*/
else{for(m=1;
m<
=k;
m++)/*否则将长度为k的单词顺序存入到字符串数组str中,s值加1*/
str[s++]=xx[i][j+m];
k=0;
}/*将k值清0,以方便下一个单词的长度计数*/
if(!
isalpha(xx[i][j]))str[s++]='
'
;
/*如果当前字符不是字母a~z或A~Z,则以空格代之存入到字符串数组str中,s值加一*/
for(m=1;
m++)/*此时的k值为当前行中第一个单词的长度,但在上一个for循环中没能存入到字符串数组str中,所以在这里将其存入到str中*/
str[s++]=xx[i][j+m];
str[s]='
\0'
/*在当前行尾加0以标记此行的结束*/
strcpy(xx[i],str);
/*将倒排好的当前字符串重新存回到当前行xx中*/
★题目7(无忧id15结构体操作题))
voidSortDat()
{inti,j;
PROxy;
99;
100;
if(strcmp(sell[i].dm,sell[j].dm)<
0||strcmp(sell[i].dm,sell[j].dm)==0&
sell[i].je<
sell[j].je)
{xy=sell[i];
sell[i]=sell[j];
sell[j]=xy;
★☆题目8(无忧id83字符替换题)
voidencryptChar()
{inti,j;
for(j=0;
if(xx[i][j]*11%256<
=32||xx[i][j]*11%256>
130)continue;
elsexx[i][j]=xx[i][j]*11%256;
★☆题目9(无忧id28;
id124;
捷成id16字符串排序题)
voidSortCharD(void)
{inti,j,k,strl;
charch;
{strl=strlen(xx[i]);
strl-1;
for(k=j+1;
k<
strl;
k++)
if(xx[i][j]<
xx[i][k])
{ch=xx[i][j];
xx[i][j]=xx[i][k];
xx[i][k]=ch;
题目10(无忧id68替换字符题)
voidConvertCharA(void)
{for(j=0;
z'
)xx[i][j]='
a'
elseif(xx[i][j]>
xx[i][j]<
y'
)xx[i][j]+=1;
☆题目11(无忧id93字符串字母移位题)
voidchg(char*s)
{while(*s)
if(*s=='
||*s=='
Z'
){*s-=25;
s++;
elseif(*s>
*s<
){*s+=1;
s++;
A'
Y'
elses++;
或者(非指针做法):
{inti,k;
k=strlen(s);
for(i=0;
k;
{if(s[i]=='
||s[i]=='
)
s[i]-=25;
else
if(isalpha(s[i]))
s[i]++;
★题目16(无忧id23字符替换题)
voidStrCharJR()
xx[i][j]+=(xx[i][j]>
>
4);
☆题目17(亲朋字符替换题)
voidChA(void)
{ch=xx[i][0];
strlen(xx[i])-1;
xx[i][j]+=xx[i][j+1];
xx[i][strlen(xx[i])-1]+=ch;
strrev(xx[i]);
题目19(无忧id144单词个数统计题)
intfindStr(char*str,char*substr)
{inti,j,len1,len2,cnt=0,flag;
len1=strlen(str);
len2=strlen(substr);
len1;
len2;
if(str[i+j]==substr[j])flag=1;
else{flag=0;
break;
if(flag==1)cnt++;
returncnt;
题目20(无忧id80Fibonacci数列题)
intjsValue(intt)
{intf0=0,f1=1,f