C语言基础题.docx

上传人:b****7 文档编号:10865312 上传时间:2023-02-23 格式:DOCX 页数:92 大小:31.43KB
下载 相关 举报
C语言基础题.docx_第1页
第1页 / 共92页
C语言基础题.docx_第2页
第2页 / 共92页
C语言基础题.docx_第3页
第3页 / 共92页
C语言基础题.docx_第4页
第4页 / 共92页
C语言基础题.docx_第5页
第5页 / 共92页
点击查看更多>>
下载资源
资源描述

C语言基础题.docx

《C语言基础题.docx》由会员分享,可在线阅读,更多相关《C语言基础题.docx(92页珍藏版)》请在冰豆网上搜索。

C语言基础题.docx

C语言基础题

四十一.在N个学生姓名中查找输入的姓名。

#include

#include

intmain(void)

{

charname[100][20],find[20];

intN,count=0,i;

printf("PleaseinputintN:

");

scanf("%d",&N);

printf("PleaseinputNnames:

\n");

for(i=0;i<=N;i++)

gets(name[i]);

printf("Pleaseinputthenamewhitchyouwanttofind:

\n");

gets(find);

for(i=0;i<=N;i++)

if(strcmp(find,name[i])==0)

{

printf("Findit!

\nThenumberis%d\n",i);

count++;

}

if(count==0)

{

printf("Notfound!

Pleasecheckyourinput!

\n");

return-1;

}

return0;

}

四十二、使用选择排序对数组inta[N]进行排序并输出。

#include

voidbubble_sort(int*a,intN);

intmain(void)

{

inta[100];

intN,i;

printf("PleaseinputthevalueofN:

\n");

scanf("%d",&N);

printf("pleaseinputinta[N]:

\n");

for(i=0;i

scanf("%d",&a[i]);

bubble_sort(a,N);

printf("Theresultis\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

return0;

}

voidbubble_sort(int*a,intN)

{

inti,j,box;

for(i=0;i

for(j=0;j

if(a[j]>a[j+1])

{

box=a[j+1];

a[j+1]=a[j];

a[j]=box;

}

}

四十三、使用冒泡排序对数组inta[N]进行排序并输出。

#include

voidselect_sort(int*a,intn);

intmain(void)

{

intN,i;

inta[100];

printf("PleaseinputthevalueofN:

\n");

scanf("%d",&N);

printf("Pleaseinputyournumber:

\n");

for(i=0;i

scanf("%d",&a[i]);

select_sort(a,N);

printf("Theresultis\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

return0;

}

voidselect_sort(int*a,intn)

{

inti,m,x;

intmin,min_m;

for(m=0;m

{

min=a[m];

min_m=m;

for(i=m;i

if(a[i]

{

min=a[i];

min_m=i;

x=a[min_m];

a[min_m]=a[m];

a[m]=x;

}

}

}

44、使用插入排序对数组inta[N]进行排序并输出。

#include

voidinsert_sort(int*a,intn);

intmain(void)

{

inta[100],i,N;

printf("PleaseinputthevalueofN:

\n");

scanf("%d",&N);

printf("Pleaseinputyournumber:

\n");

for(i=0;i

scanf("%d",&a[i]);

insert_sort(a,N);

printf("Theresultis\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

return0;

}

voidinsert_sort(int*a,intn)

{

inti,j;

intt;

for(i=1;i

{

t=*(a+i);

for(j=i;j>0&&*(a+j-1)>t;j--)

*(a+j)=*(a+j-1);

*(a+j)=t;

}

}

45、将N个国家的英文名字,按字典顺序输出。

#include

#include

voidsort(char*a[],intn);

intmain(void)

{

inti,N;

charname[100][30],*p[100];

printf("PleaseinputintN:

");

scanf("%d",&N);

printf("PleaseinputNnames:

\n");

for(i=0;i<=N;i++)

{

gets(name[i]);

p[i]=name[i];

}

sort(p,N);

printf("Theresultofsortis");

for(i=0;i<=N;i++)

printf("%s\n",p[i]);

return0;

}

voidsort(char*a[],intn)

{

inti,j,k;

char*t;

for(i=0;i<=n-1;i++)

for(j=0;j<=n-i-1;j++)

if(strcmp(a[j],a[j+1])>0)

{

t=a[j+1];

a[j+1]=a[j];

a[j]=t;

}

}

46、在有序(升序)数组inta[N]插入一个输入的整数num,使数组仍有序。

#include

voidinsert_sort(int*a,intN);

voidinsert(int*a,intN,intx);

intmain(void)

{

inta[100];

intN,i,num;

printf("PleaseinputthevalueofN:

\n");

scanf("%d",&N);

printf("pleaseinputinta[N]:

\n");

for(i=0;i

scanf("%d",&a[i]);

insert_sort(a,N);

printf("Theresultis\n");

for(i=0;i

printf("%d",a[i]);

printf("\n");

printf("Pleaseinputtheintnumberwhitchyouwanttoinsert\n");

scanf("%d",&num);

insert(a,N,num);

printf("Theresultis\n");

for(i=0;i<=N;i++)

printf("%d",a[i]);

return0;

}

voidinsert_sort(int*a,intn)

{

inti,j;

intt;

for(i=1;i

{

t=*(a+i);

for(j=i;j>0&&*(a+j-1)>t;j--)

*(a+j)=*(a+j-1);

*(a+j)=t;

}

}

voidinsert(int*a,intN,intx)

{

a[N]=x;

insert_sort(a,N+1);

}

47、删除字符串中指定的字符。

#include

#include

intmain(void)

{

intcount=0,i,j,k,l1,l2;

charc[20],s[200];

puts("Inputstring");

gets(s);

puts("Inputthecharacterswhichyouwanttodelete");

gets(c);

l1=strlen(s);

l2=strlen(c);

for(i=0;i

for(j=0;j

if(c[j]==s[i])

{

for(k=i+1;k

s[i]=s[k];

count++;

i=0;

}

s[l1-count]=0;

printf("Theresultis\n%s\n",s);

return0;

}

48、在有序数组inta[N]中折半查找输入的整数num。

#include

intmain(void)

{

inta[100],N,x,i,top,end,count=0;

printf("InputintN\n");

scanf("%d",&N);

printf("PleaseinputNnumbers\n");

for(i=0;i

scanf("%d",&a[i]);

printf("pleaseenterthenumberwhichyouwanttofind\n");

scanf("%d",&x);

for(top=0,end=N-1;top<=end;)

{

i=top+(end-top)/2;

if(x==a[i])

{

printf("Findit!

Thepositionis%d",i+1);

count++;

break;

}

else

if(x>a[i])

end=i-1;

else

top=i+1;

}

if(count==0)

{

printf("Notfound!

\n");

return-1;

}

return0;

}

49、编写函数计算字符串长度。

#include

intslen(char*s);

intmain(void)

{

chars[20];

printf("Inputstring:

\n");

scanf("%s",s);

printf("Lengthis%d\n",slen(s));

return0;

}

intslen(char*s)

{

inti=0,n=0;

while(s[i++]!

=0)

n++;

returnn;

}

50、编写函数实现两个字符串连接。

#include

voidcats(char*s1,char*s2);

intmain(void)

{

chars1[100],s2[100];

printf("Inputstring1\n");

scanf("%s",s1);

printf("Inputstring2\n");

scanf("%s",s2);

cats(s1,s2);

printf("Theresultis\n%s\n",s1);

return0;

}

voidcats(char*s1,char*s2)

{

while(*s1)

*s1++;

while(*s1++=*s2++);

}

51、编写函数实现字符串复制。

#include

voidscopy(char*s1,char*s2);

intmain(void)

{

chars1[100],s2[100];

printf("Inputstring\n");

scanf("%s",s2);

scopy(s1,s2);

printf("Theresultis\n%s\n",s1);

return0;

}

voidscopy(char*s1,char*s2)

{

while(*s1++=*s2++);

 

52、编写函数两个字符串比较。

#include

intscmp(char*s1,char*s2);

intmain(void)

{

chars1[100],s2[100],c;

intr;

printf("Inputstring1\n");

scanf("%s",s1);

printf("Inputstring2\n");

scanf("%s",s2);

r=scmp(s1,s2);

switch(r)

{

case-1:

c='<';break;

case0:

c='=';break;

case1:

c='>';break;

}

printf("Theresultis\nstring1%cstring2\n",c);

return0;

}

intscmp(char*s1,char*s2)

{

inti;

while(*s1&&*s2)

{

if(*s1>*s1)

return1;

else

if(*s1<*s2)

return-1;

else

{

*s1++;

*s2++;

}

}

if(*s1==*s2)

return0;

else

if(*s1>*s1)

return1;

else

if(*s1<*s2)

return-1;

}

53、删除字符串中指定的一个字符。

#include

#include

intmain(void)

{

intcount=0,i,j,l;

charc,s[20];

puts("Inputstring");

gets(s);

puts("Inputthecharacterwhichyouwanttodelete");

scanf("%c",&c);

l=strlen(s);

for(i=0;i

{

if(c==s[i])

{

for(j=i+1;j

s[i]=s[j];

count++;

i=0;

}

}

s[l-count]=0;

printf("Theresultis\n%s\n",s);

return0;

}

54、判断一个字符串是否为回文(顺读和倒读相同)。

#include

#include

intmain(void)

{

chars1[20],s2[20];

inti,j=0,l;

puts("Inputastring:

");

gets(s1);

l=strlen(s1);

for(i=l-1,j=0;i>=0&&j

s2[j]=s1[i];

s2[j]=0;

if(strcmp(s1,s2)==0)

puts("Thestringisapalindrome");

else

puts("Thestringisnotapalindrome");

return0;

}

55、编写一个函数,将第一个字符串中有而第二个字符串中无的字串返回。

#include

#include

char*delret(char*s1,char*s2);

intmain(void)

{

chars1[20],s2[20],*s;

puts("Inputstring1");

gets(s1);

puts("Inputstring2");

gets(s2);

s=delret(s1,s2);

printf("Theresultis\n%s\n",s);

return0;

}

char*delret(char*s1,char*s2)

{

intcount=0,i,j,k,l1,l2;

l1=strlen(s1);

l2=strlen(s2);

for(i=0;i

for(j=0;j

if(s2[j]==s1[i])

{

for(k=i+1;k

s1[i]=s1[k];

count++;

i=0;

}

s1[l1-count]=0;

returns1;

}

56、编写一个函数,将两个字符串的字符排序后输出

#include

#include

voidstrcat_sort(char*s1,char*s2);

intmain(void)

{

chars1[20],s2[20];

puts("Inputstring1");

gets(s1);

puts("Inputstring2");

gets(s2);

strcat_sort(s1,s2);

return0;

}

voidstrcat_sort(char*s1,char*s2)

{

inti,j,N;

charbox;

strcat(s1,s2);

N=strlen(s1);

for(i=0;i

for(j=0;j

if(s1[j]>s1[j+1])

{

box=s1[j+1];

s1[j+1]=s1[j];

s1[j]=box;

}

puts("Theresultis:

");

puts(s1);

}

57、统计字符串中的单词(单词之间用一个或多个空格分隔)。

#include

#include

intcnt_wrd(char*s);

intmain(void)

{

chars[100];

puts("Inputastring:

");

gets(s);

printf("Thequantityofwordsis%d",cnt_wrd(s));

return0;

}

intcnt_wrd(char*s)

{

inti=1,c=1;

while(s[i])

{

if(s[i]==''&&s[i-1]!

='')

c++;

i++;

}

returnc;

}

58、找出二维数组的鞍点(鞍点是指行上最大,在列上最小的元素),如果有输出鞍点数据和位置。

#include

structsaddle_point

{

intflag;

inti;

intj;

intvalue;

};

intmain(void)

{

structsaddle_pointsp;

inta[100][100];

inti,j,m,n,k;

printf("请输入行数和列数:

");

scanf("%d%*c%d",&m,&n);

printf("请输入%d×%d二维数组:

\n",m,n);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

{

sp.value=a[i][0];

sp.j=0;

for(j=0;j

if(a[i][j]>sp.value)

{

sp.value=a[i][j];

sp.j=j;

}

sp.flag=1;

for(k=0;k

if(sp.value>a[k][sp.j])

{

sp.flag=0;

break;

}

if(sp.flag==1)

{

sp.i=i;

printf("鞍点为a[%d][%d]=%d\n",sp.i+1,sp.j+1,sp.value);

break;

}

}

if(sp.flag!

=1)

printf("没有鞍点\n");

return0;

}

59、实现inta[M][N]矩阵的转置。

#include

intmain(void)

{

inta[100][100];

intM,N;

inti,j,t;

printf("PleaseinputintMN:

\n");

scanf("%d%*c%d",&M,&N);

printf("Pleaseinput%d*%dMatrix:

\n",M,N);

for(i=0;i

for(j=0;j

scanf("%d",&a[i][j]);

for(i=0;i

for(j=i+1;j

{

t=a[i][j];

a[i][j]=a[j][i];

a[j][i]=t;

}

printf("Theresultis:

\n");

for(i=0;i

{

for(j=0;j

printf("%d\t",a[i][j]);

printf("\n");

}

return0

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 成人教育 > 成考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1