c语言考试必备.docx

上传人:b****6 文档编号:7946276 上传时间:2023-01-27 格式:DOCX 页数:28 大小:21.86KB
下载 相关 举报
c语言考试必备.docx_第1页
第1页 / 共28页
c语言考试必备.docx_第2页
第2页 / 共28页
c语言考试必备.docx_第3页
第3页 / 共28页
c语言考试必备.docx_第4页
第4页 / 共28页
c语言考试必备.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

c语言考试必备.docx

《c语言考试必备.docx》由会员分享,可在线阅读,更多相关《c语言考试必备.docx(28页珍藏版)》请在冰豆网上搜索。

c语言考试必备.docx

c语言考试必备

使用此答案的同学们注意了!

为了在老师改变数据的情况下也能快速做好,

我把题目一一列出,为大家争取时间!

(记住不要管字下面的线条,争取好成绩,加油!

1.输入两个正整数M和N,求其最大公约数和最小公倍数。

2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

3.输出所有水仙花数,即一个3位数,其各位数字立方和等于该数本身。

4.输出1000以内所有的完数。

5.有一个分数列,2/1,3/2,5/3,8/5,13/8,求这个数列前20项之和。

6.用迭代法求X=根号A。

7.用牛顿迭代法求2X3-4X2+3X-6=0在1.5附近的根。

8.用二分法求2X3-4X2+3X-6=0在(-10,10)之间的根。

9.用筛选法求100以内的素数。

10.用选择法对10个整数排序。

11.找出一个二维数组中的鞍点。

12.编译程序,将两个字符转连接起来,不要用STRCAT函数。

13.编译程序,将字符数组S2中的全部字符复制到字符数组S1中,不要用STRCPY函数。

14.写一个函数,使给定的一个3×3的二维整形数组转置,即行列互换。

15.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

16.写一个函数,将两个字符串连接起来。

17.写一个函数,用起泡法对输入的10个字符按由小到大顺序排列。

18.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写3个函数,1输入10个数,2进行处理3输出10个数。

19.有N个整数,使前面各数顺序向后移M个位置,最后M个数变成最前面M个数

20.在主函数中输入10个等长的字符串,用另一函数对他们排序,然后在主函数中输出。

21.用指针数组处理上一题目,字符串不等长。

22.用指向指针的指针的方法对5个字符串排序并输出。

//指针指向的方法

23.求ax2+bx+c=0方程的解。

24.有10个地区的面积,要求对他们按由小到大的顺序排列。

25.输入一行字符,统计其中有多少个单词,单词之间用空格分隔开。

26.有5个学生坐在一起,问第5个学生多少岁,他说比第4个学生大2岁......第一个学生是10岁,问第5个学生多大?

27.用递归方法求N的阶乘。

28.输入10个数,要求输出其中值最大的元素和该数是第几个数。

29.用选择法对数组中10个整数按由小到大顺序排列。

30.将数组中N个整数按相反顺寻存放。

31.用指针方法对10个整数按由大到小顺序排序。

32.将若干字符串按字母顺序(由小到大)输出。

33.输出以下矩阵。

12345246810369121548121620

*1.输入两个正整数M和N,求其最大公约数和最小公倍数。

#include

intmain()

{

intp,r,n,m,temp;

printf("请输入两个正整数n,m:

");

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

if(n

{

temp=n;

n=m;

m=temp;

}

p=n*m;

while(m!

=0)//辗转相除法

{

r=n%m;

n=m;

m=r;

}

printf("它们的最大公约数为:

%d\n",n);

printf("它们的最小公约数为:

%d\n",p/n);

return0;

}

2.输入一行字符,分别统计出其中英文字母,空格,数字和其他字符的个数。

#include

intmain()

{

charc;

intletters=0,space=0,digit=0,other=0;

printf("请输入一行字符:

\n");

while((c=getchar())!

='\n')

{

if(c>='a'&&c<='z'||c>='A'&&c<='Z')

letters++;

elseif(c=='')

space++;

elseif(c>='0'&&c<='9')

digit++;

else

other++;

}

printf("字母数:

%d\n空格数:

%d\n数字数:

%d\n其它字符数:

%d\n",letters,space,digit,other);

return0;

}

3.输出所有水仙花数,即一个3位数,其各位数字立方和等于该数本身。

#include

intmain()

{

inti,j,k,n;

printf("parcissusnumbersare");

for(n=100;n<1000;n++)

{

i=n/100;

j=n/10-i*10;//找出百位十位个位上各自的数字

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

return0;

}

4.输出1000以内所有的完数。

#include

intmain()

{intm,s,i;

for(m=2;m<1000;m++)//由于

{s=0;

for(i=1;i

if((m%i)==0)s=s+i;

if(s==m)

{printf("%d,itsfactorsare",m);

for(i=1;i

if(m%i==0)printf("%d",i);

printf("\n");

}

}

return0;

}

5.有一个分数列,2/1,3/2,5/3,8/5,13/8,求这个数列前20项之和。

#include

intmain()

{

inti,n=20;//可变数据20

doublea=2,b=1,s=0,t;

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

{

s=s+a/b;

t=a,

a=a+b,

b=t;

}

printf("sum=%16.10f\n",s);

return0;

}

6.用迭代法求X=根号A。

#include

#include

intmain()

{

floata,x0,x1;

printf("enterapositivenumber:

");

scanf("%f",&a);

x0=a/2;

x1=(x0+a/x0)/2;

do

{x0=x1;

x1=(x0+a/x0)/2;

}while(fabs(x0-x1)>=1e-5);

printf("Thesquarerootof%5.2fis%8.5f\n",a,x1);

return0;

}

7.用牛顿迭代法求2X3-4X2+3X-6=0在1.5附近的根。

#include

#include

intmain()

{doublex1,x0,f,f1;

x1=1.5;

do

{x0=x1;

f=((2*x0-4)*x0+3)*x0-6;

f1=(6*x0-8)*x0+3;

x1=x0-f/f1;

}while(fabs(x1-x0)>=1e-5);

printf("Therootofequationis%5.2f\n",x1);

return0;

}

8.用二分法求2X3-4X2+3X-6=0在(-10,10)之间的根。

#include

#include

intmain()

{floatx0,x1,x2,fx0,fx1,fx2;

do

{printf("enterx1&x2:

");

scanf("%f,%f",&x1,&x2);

fx1=x1*((2*x1-4)*x1+3)-6;

fx2=x2*((2*x2-4)*x2+3)-6;

}while(fx1*fx2>0);

do

{x0=(x1+x2)/2;

fx0=x0*((2*x0-4)*x0+3)-6;

if((fx0*fx1)<0)

{x2=x0;

fx2=fx0;

}

else

{x1=x0;

fx1=fx0;

}

}while(fabs(fx0)>=1e-5);

printf("x=%6.2f\n",x0);

return0;

}

9.用筛选法求100以内的素数。

#include

#include

intmain()

{inti,j,n,a[101];

for(i=1;i<=100;i++)

a[i]=i;

a[1]=0;

for(i=2;i

for(j=i+1;j<=100;j++)

{if(a[i]!

=0&&a[j]!

=0)

if(a[j]%a[i]==0)

a[j]=0;

}

printf("\n");

for(i=2,n=0;i<=100;i++)

{if(a[i]!

=0)

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

n++;

}

if(n==10)

{printf("\n");

n=0;

}

}

printf("\n");

return0;

}

10.用选择法对10个整数排序。

#include

intmain()

{inti,j,min,temp,a[11];

printf("enterdata:

\n");

for(i=1;i<=10;i++)

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

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

}

printf("\n");

printf("Theorginalnumbers:

\n");

for(i=1;i<=10;i++)

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

printf("\n");

for(i=1;i<=9;i++)

{min=i;

for(j=i+1;j<=10;j++)

if(a[min]>a[j])min=j;

temp=a[i];

a[i]=a[min];

a[min]=temp;

}

printf("\nThesortednumbers:

\n");

for(i=1;i<=10;i++)

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

printf("\n");

return0;

}

11.找出一个二维数组中的鞍点。

#include

#defineN4

#defineM5

intmain()

{

inti,j,k,a[N][M],max,maxj,flag;

printf("pleaseinputmatrix:

\n");

for(i=0;i

for(j=0;j

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

for(i=0;i

{max=a[i][0];

maxj=0;

for(j=0;j

if(a[i][j]>max)

{max=a[i][j];

maxj=j;

}

flag=1;

for(k=0;k

if(max>a[k][maxj])

{flag=0;

continue;}

if(flag)

{printf("a[%d][%d]=%d\n",i,maxj,max);

break;

}

}

if(!

flag)

printf("Itisnotexist!

\n");

return0;

}

12.编译程序,将两个字符转连接起来,不要用STRCAT函数。

#include

intmain()

{chars1[80],s2[40];

inti=0,j=0;

printf("inputstring1:

");

scanf("%s",s1);

printf("inputstring2:

");

scanf("%s",s2);

while(s1[i]!

='\0')

i++;

while(s2[j]!

='\0')

s1[i++]=s2[j++];

s1[i]='\0';

printf("\nThenewstringis:

%s\n",s1);

return0;

}

13.编译程序,将字符数组S2中的全部字符复制到字符数组S1中,不要用STRCPY函数。

#include

#include

intmain()

{chars1[80],s2[80];

inti;

printf("inputs2:

");

scanf("%s",s2);

for(i=0;i<=strlen(s2);i++)

s1[i]=s2[i];

printf("s1:

%s\n",s1);

return0;

}

14.写一个函数,使给定的一个3×3的二维整形数组转置,即行列互换。

#include

#defineN3

intarray[N][N];

intmain()

{voidconvert(intarray[][3]);

inti,j;

printf("inputarray:

\n");

for(i=0;i

for(j=0;j

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

printf("\noriginalarray:

\n");

for(i=0;i

{for(j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

convert(array);

printf("convertarray:

\n");

for(i=0;i

{for(j=0;j

printf("%5d",array[i][j]);

printf("\n");

}

return0;

}

voidconvert(intarray[][3])

{inti,j,t;

for(i=0;i

for(j=i+1;j

{t=array[i][j];

array[i][j]=array[j][i];

array[j][i]=t;

}

}

15.写一个函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。

#include

#include

intmain()

{voidinverse(charstr[]);

charstr[100];

printf("inputstring:

");

scanf("%s",str);

inverse(str);

printf("inversestring:

%s\n",str);

return0;

}

voidinverse(charstr[])

{chart;

inti,j;

for(i=0,j=strlen(str);i<(strlen(str)/2);i++,j--)

{t=str[i];

str[i]=str[j-1];

str[j-1]=t;

}

}

16.写一个函数,将两个字符串连接起来。

#include

intmain()

{voidconcatenate(charstring1[],charstring2[],charstring[]);

chars1[100],s2[100],s[100];

printf("inputstring1:

");

scanf("%s",s1);

printf("inputstring2:

");

scanf("%s",s2);

concatenate(s1,s2,s);

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

return0;

}

voidconcatenate(charstring1[],charstring2[],charstring[])

{inti,j;

for(i=0;string1[i]!

='\0';i++)

string[i]=string1[i];

for(j=0;string2[j]!

='\0';j++)

string[i+j]=string2[j];

string[i+j]='\0';

}

17.写一个函数,用起泡法对输入的10个字符按由小到大顺序排列。

#include

#include

#defineN10

charstr[N];

intmain()

{voidsort(char[]);

inti,flag;

for(flag=1;flag==1;)

{printf("inputstring:

\n");

scanf("%s",&str);

if(strlen(str)>N)

printf("stringtoolong,inputagain!

");

else

flag=0;

}

sort(str);

printf("stringsorted:

\n");

for(i=0;i

printf("%c",str[i]);

printf("\n");

return0;

}

voidsort(charstr[])

{inti,j;

chart;

for(j=1;j

for(i=0;(i

='\0');i++)

if(str[i]>str[i+1])

{t=str[i];

str[i]=str[i+1];

str[i+1]=t;

}

}

18.输入10个整数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换,写3个函数,1输入10个数,2进行处理3输出10个数。

#include

intmain()

{voidinput(int*);

voidmax_min_value(int*);

voidoutput(int*);

intnumber[10];

input(number);

max_min_value(number);

output(number);

return0;

}

voidinput(int*number)

{inti;

printf("input10numbers:

");

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

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

}

voidmax_min_value(int*number)

{int*max,*min,*p,temp;

max=min=number;

for(p=number+1;p

if(*p>*max)max=p;

elseif(*p<*min)min=p;

temp=number[0];number[0]=*min;*min=temp;

if(max==number)max=min;

temp=number[9];number[9]=*max;*max=temp;

}

voidoutput(int*number)

{int*p;

printf("Now,theyare:

");

for(p=number;p

printf("%d",*p);

printf("\n");

}

19.有N个整数,使前面各数顺序向后移M个位置,最后M个数变成最前面M个数

#include

intmain()

{voidmove(int[20],int,int);

intnumber[20],n,m,i;

printf("howmanynumbers?

");

scanf("%d",&n);

printf("input%dnumbers:

\n",n);

for(i=0;i

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

printf("howmanyplaceyouwantmove?

");

scanf("%d",&m);

move(number,n,m);

printf("Now,theyare:

\n");

for(i=0;i

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

printf("\n");

return0;

}

voidmove(intarray[20],intn,intm)

{int*p,array_end;

array_end=*(array+n-1);

for(p=array+n-1;p>array;p--)

*p=*(p-1);

*array=array_end;

m--;

if(m>0)move(array,n,m);

}

20.在主函数中输入10个等长的字符串,用另一函数对他们排序,然后在主函数中输出。

#include

#include

intmain()

{voidsort(chars[][6]);

inti;

charstr[10][6];

printf("input10strings:

\n");

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

scanf("%s",str[i]);

sort(str);

printf("Now,thesequenceis:

\n");

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

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

return0;

}

voidsort(chars[10][6])

{inti,j;

char*p,temp[10];

p=temp;

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

for(j=0;j<9-i;j++)

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

{strcpy(p,s[j]);

str

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

当前位置:首页 > 解决方案 > 营销活动策划

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

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