C练习题.docx
《C练习题.docx》由会员分享,可在线阅读,更多相关《C练习题.docx(5页珍藏版)》请在冰豆网上搜索。
C练习题
练习题:
1、已知二维数组p[6][4],k[5][5],编写程序实现求二维数组p中的最大值与k中的最大值之差,并将之输出。
#include
floatfind_max(float*x,intm,intn)
{inti,j;floatmax=*x;
for(i=0;ifor(j=0;jif(*(x+i*n+j)>max)max=*(x+i*n+j);returnmax;}voidmain(){floata[5][5],b[6][4];inti,j;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%f",&a[i][j]);for(i=0;i<6;i++)for(j=0;j<4;j++)scanf("%f",&b[i][j]);printf("%f\n",find_max(a[0],5,5)-find_max(b[0],6,4));} 2、从键盘中输入20个数放在数组a[20]中,编写程序使用选择排序的方式进行排序。#include"stdio.h"voidsort(inta[],intn){inti,k,m,t;for(i=0;ik=i;for(m=i+1;mif(a[m]t=a[i];a[i]=a[k];a[k]=t;}}voidmain(){intk,a[20];for(k=0;k<20;k++)scanf("%d",&a[k]);sort(a,10);for(k=0;k<20;k++)printf("%d",a[k]);}3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。#include"stdio.h"#include"string.h"voidmain(){chars1[]="abcdef";chars2[]="1234567";chars3[80];intn=0,k=0;while(s1[n]!='\0'&&s2[n]!='\0'){s3[k]=s1[n];s3[k+1]=s2[n];n++;k=k+2;}if(s1[n]=='\0')for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
for(j=0;jif(*(x+i*n+j)>max)max=*(x+i*n+j);returnmax;}voidmain(){floata[5][5],b[6][4];inti,j;for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%f",&a[i][j]);for(i=0;i<6;i++)for(j=0;j<4;j++)scanf("%f",&b[i][j]);printf("%f\n",find_max(a[0],5,5)-find_max(b[0],6,4));} 2、从键盘中输入20个数放在数组a[20]中,编写程序使用选择排序的方式进行排序。#include"stdio.h"voidsort(inta[],intn){inti,k,m,t;for(i=0;ik=i;for(m=i+1;mif(a[m]t=a[i];a[i]=a[k];a[k]=t;}}voidmain(){intk,a[20];for(k=0;k<20;k++)scanf("%d",&a[k]);sort(a,10);for(k=0;k<20;k++)printf("%d",a[k]);}3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。#include"stdio.h"#include"string.h"voidmain(){chars1[]="abcdef";chars2[]="1234567";chars3[80];intn=0,k=0;while(s1[n]!='\0'&&s2[n]!='\0'){s3[k]=s1[n];s3[k+1]=s2[n];n++;k=k+2;}if(s1[n]=='\0')for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
if(*(x+i*n+j)>max)max=*(x+i*n+j);
returnmax;
}
voidmain()
{floata[5][5],b[6][4];
inti,j;
for(i=0;i<5;i++)for(j=0;j<5;j++)scanf("%f",&a[i][j]);
for(i=0;i<6;i++)for(j=0;j<4;j++)scanf("%f",&b[i][j]);
printf("%f\n",find_max(a[0],5,5)-find_max(b[0],6,4));
2、从键盘中输入20个数放在数组a[20]中,编写程序使用选择排序的方式进行排序。
#include"stdio.h"
voidsort(inta[],intn)
{inti,k,m,t;
for(i=0;ik=i;for(m=i+1;mif(a[m]t=a[i];a[i]=a[k];a[k]=t;}}voidmain(){intk,a[20];for(k=0;k<20;k++)scanf("%d",&a[k]);sort(a,10);for(k=0;k<20;k++)printf("%d",a[k]);}3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。#include"stdio.h"#include"string.h"voidmain(){chars1[]="abcdef";chars2[]="1234567";chars3[80];intn=0,k=0;while(s1[n]!='\0'&&s2[n]!='\0'){s3[k]=s1[n];s3[k+1]=s2[n];n++;k=k+2;}if(s1[n]=='\0')for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
k=i;
for(m=i+1;mif(a[m]t=a[i];a[i]=a[k];a[k]=t;}}voidmain(){intk,a[20];for(k=0;k<20;k++)scanf("%d",&a[k]);sort(a,10);for(k=0;k<20;k++)printf("%d",a[k]);}3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。#include"stdio.h"#include"string.h"voidmain(){chars1[]="abcdef";chars2[]="1234567";chars3[80];intn=0,k=0;while(s1[n]!='\0'&&s2[n]!='\0'){s3[k]=s1[n];s3[k+1]=s2[n];n++;k=k+2;}if(s1[n]=='\0')for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
if(a[m]t=a[i];a[i]=a[k];a[k]=t;}}voidmain(){intk,a[20];for(k=0;k<20;k++)scanf("%d",&a[k]);sort(a,10);for(k=0;k<20;k++)printf("%d",a[k]);}3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。#include"stdio.h"#include"string.h"voidmain(){chars1[]="abcdef";chars2[]="1234567";chars3[80];intn=0,k=0;while(s1[n]!='\0'&&s2[n]!='\0'){s3[k]=s1[n];s3[k+1]=s2[n];n++;k=k+2;}if(s1[n]=='\0')for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
t=a[i];
a[i]=a[k];
a[k]=t;
{
intk,a[20];
for(k=0;k<20;k++)
scanf("%d",&a[k]);
sort(a,10);
printf("%d",a[k]);
3、输入两个字符串s1[],s2[],要求将这两个字符串交叉连接成为s3[]。
如串s1为“123456”,串s2为“abcdefg”,则合并后s3[]为“1a2b3c4d5e6fg”。
#include"string.h"
chars1[]="abcdef";
chars2[]="1234567";
chars3[80];
intn=0,k=0;
while(s1[n]!
='\0'&&s2[n]!
='\0')
s3[k]=s1[n];
s3[k+1]=s2[n];
n++;
k=k+2;
if(s1[n]=='\0')
for(;n{s3[k]=s2[n];k++;}elsefor(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
s3[k]=s2[n];
k++;
else
for(;n{s3[k]=s1[n];k++;}s3[k]='\0';k=0;//while(s3[k]!='\0')printf("%s",s3);}4、输入一个正整数n,求1+1/2!+1/3!+……1/n!的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。 5、从字符串s中删除所有小写字母c。主函数中已给出字符串:cabcdabcdabcxccc,输出结果应该是:abdabdabx.#include"stdio.h"#include"string.h"voidmain(){chars1[]="accgccdccsdccbcefgh";inti,j;j=0;i=0;while(s1[j]!='\0'){if(s1[j]=='c')j++;else{s1[i]=s1[j];i++;j++;}}s1[i]='\0';printf("%s\n",s1);}6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。例如:当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:“BDFHJ”。9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。30,56,-88,45,100,2010、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。请适当选择参数,使所求结果能传递到主调函数。
s3[k]='\0';
k=0;
//while(s3[k]!
printf("%s",s3);
4、输入一个正整数n,求1+1/2!
+1/3!
+……1/n!
的值,要求定义并调用函数fact(n)计算n的阶乘,函数返回值的类型是单精度浮点型。
5、从字符串s中删除所有小写字母c。
主函数中已给出字符串:
cabcdabcdabcxccc,输出结果应该是:
abdabdabx.
chars1[]="accgccdccsdccbcefgh";
j=0;
i=0;
while(s1[j]!
if(s1[j]=='c')
j++;
s1[i]=s1[j];
i++;
s1[i]='\0';
printf("%s\n",s1);
6、请在序列60,68,78,88,90,93,95,96,98,100这一有序数列中插入一个数,要求该数插入后,该数列仍然有序。
7、下面程序用于计算f(k,n)=1k+2k+…+nk,其中函数power(m,n)计算mn,函数sum(k,n)计算f(k,n)。
8、将字符串s中下标为偶数的字符删掉,将剩余的字符形成的新的字符串放到数组t中。
例如:
当字符串s为“ABCDEFGHIJK”时,则在数组t中的字符串应为:
“BDFHJ”。
9、请将下列一组数据读入到s数组中,然后从中找出最大的一个并与第一个数互换;再找出最小的一个与最后一个数互换,其余位置上的数均不动。
30,56,-88,45,100,20
10、编制函数,在主调函数的一维数组中查找最大值及该元素下标、最小值及该元素下标。
请适当选择参数,使所求结果能传递到主调函数。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1