admin 管理员组文章数量: 1086019
2024年3月11日发(作者:oracle10g安装教程完整版)
1.**打印HelloWorld**
练习:编写一个C程序,打印"Hello,World!"到屏幕上。
#include
intmain(){
printf("Hello,World!n");
return0;
}
2.**计算两个整数的和**
练习:编写一个程序,接受两个整数,然后计算它们的和并打印结果。
#include
intmain(){
inta=5,b=7;
intsum=a+b;
printf("Sum:%dn",sum);
return0;
}
3.**判断奇数或偶数**
练习:编写一个程序,接受一个整数,然后判断它是否为奇数或偶数。
#include
intmain(){
intnum=10;
if(num%2==0){
printf("%diseven.n",num);
}else{
printf("%disodd.n",num);
}
return0;
}
4.**计算阶乘**
练习:编写一个程序,计算给定整数的阶乘。
#include
intmain(){
intn=5;
intfactorial=1;
for(inti=1;i<=n;i++){
factorial*=i;
}
printf("Factorialof%dis%dn",n,factorial);
return0;
}
5.**反转字符串**
练习:编写一个程序,接受一个字符串,然后反转它并打印出来。
#include
#include
intmain(){
charstr[]="Hello,World!";
intlen=strlen(str);
for(inti=len-1;i>=0;i--){
printf("%c",str[i]);
}
printf("n");
return0;
}
6.**检查素数**
练习:编写一个程序,判断一个整数是否为素数。
#include
#include
intmain(){
intnum=13;
boolisPrime=true;
for(inti=2;i<=num/2;i++){
if(num%i==0){
isPrime=false;
break;
}
}
if(isPrime){
printf("%disaprimenumber.n",num);
}else{
printf("%disnotaprimenumber.n",num);
}
return0;
}
7.**计算平均值**
练习:编写一个程序,接受一组数字,计算它们的平均值。
#include
intmain(){
intn=5;
intnumbers[]={10,20,30,40,50};
intsum=0;
for(inti=0;i sum+=numbers[i]; } doubleaverage=(double)sum/n; printf("Average:%.2lfn",average); return0; } 8.**计算幂** 练习:编写一个程序,计算一个数的幂。 #include #include intmain(){ doublebase=2.0; intexponent=3; doubleresult=pow(base,exponent); printf("%.2lf^%d=%.2lfn",base,exponent,result); return0; } 9.**交换两个数的值** 练习:编写一个程序,交换两个整数变量的值。 #include intmain(){ inta=5,b=10; printf("Beforeswap:a=%d,b=%dn",a,b); inttemp=a; a=b; b=temp; printf("Afterswap:a=%d,b=%dn",a,b); return0; } 10.**找出两个整数的最大公约数** 练习:编写一个程序,找出两个整数的最大公约数。 #include intgcd(inta,intb){ if(b==0){ returna; } returngcd(b,a%b); } intmain(){ intnum1=48,num2=18; intresult=gcd(num1,num2); printf("GCDof%dand%dis%dn",num1,num2,result); return0; } 11.**计算斐波那契数列** 练习:编写一个程序,计算并打印斐波那契数列的前N个数字。 #include intmain(){ intn=10; intfirst=0,second=1,next; for(inti=0;i if(i<=1){ next=i; }else{ next=first+second; first=second; second=next; } printf("%d",next); } printf("n"); return0; } 12.**检查字符串是否是回文** 练习:编写一个程序,检查一个字符串是否是回文。 #include #include #include boolisPalindrome(charstr[]){ intlen=strlen(str); for(inti=0;i if(str[i]!=str[len-i-1]){ returnfalse; } } returntrue; } intmain(){ charstr[]="racecar"; if(isPalindrome(str)){ printf("%sisapalindrome.n",str); }else{ printf("%sisnotapalindrome.n",str); } return0; } 13.**冒泡排序** 练习:编写一个程序,实现冒泡排序算法来排序一个整数数组。 #include voidbubbleSort(intarr[],intn){ for(inti=0;i for(intj=0;j if(arr[j]>arr[j+1]){ inttemp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } intmain(){ intarr[]={64,34,25,12,22,11,90}; intn=sizeof(arr)/sizeof(arr[0]); bubbleSort(arr,n); printf("Sortedarray:"); for(inti=0;i printf("%d",arr[i]); } printf("n"); return0; } 14.**计算平方根** 练习:编写一个程序,计算一个数的平方根。 #include #include intmain(){ doublenum=25.0; doublesquareRoot=sqrt(num); printf("Squarerootof%.2lfis%.2lfn",num,squareRoot); return0; } 15.**计算阵列的和** 练习:编写一个程序,计算一个整数数组中所有元素的和。 #include intmain(){ intarr[]={1,2,3,4,5}; intn=sizeof(arr)/sizeof(arr[0]); intsum=0; for(inti=0;i sum+=arr[i]; } printf("Sumofarrayelements:%dn",sum); return0; } 16.**查找数组中的元素** 练习:编写一个程序,查找一个整数数组中是否存在特定元素。 #include #include boolsearch(intarr[],intn,inttarget){ for(inti=0;i if(arr[i]==target){ returntrue; } } returnfalse; } intmain(){ intarr[]={1,2,3,4,5}; intn=sizeof(arr)/sizeof(arr[0]); inttarget=3; if(search(arr,n,target)){ printf("%dexistsinthearray.n",target); }else{ printf("%ddoesnotexistinthearray.n",target); } return0; } 17.**计算字符串长度** 练习:编写一个程序,计算一个字符串的长度。 #include #include intmain(){ charstr[]="Hello,World!"; intlength=strlen(str); printf("Lengthofthestring:%dn",length); return0; } 18.**查找数组中的最大和最小值的索引** 练习:编写一个程序,查找一个整数数组中的最大和最小值的索引。 #include intfindMaxIndex(intarr[],intn){ intmaxIndex=0; for(inti=1;i if(arr[i]>arr[maxIndex]){ maxIndex=i; } } returnmaxIndex; } intfindMinIndex(intarr[],intn){ intminIndex=0; for(inti=1;i if(arr[i] minIndex=i; } } returnminIndex; } intmain(){ intarr[]={34,12,76,2,45,90}; intn=sizeof(arr)/sizeof(arr[0]); intmaxIndex=findMaxIndex(arr,n); intminIndex=findMinIndex(arr,n); printf("Maxvalueisatindex%d,Minvalueisatindex%dn",maxIndex,minIndex); return0; } 19.**矩阵乘法** 练习:编写一个程序,实现两个矩阵的乘法。 #include voidmatrixMultiply(intA[][3],intB[][3],intC[][3]){ for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ C[i][j]=0; for(intk=0;k<3;k++){ C[i][j]+=A[i][k]*B[k][j]; } } } } intmain(){ intA[][3]={{1,2,3},{4,5,6},{7,8,9}}; intB[][3]={{9,8,7},{6,5,4},{3,2,1}}; intC[3][3]; matrixMultiply(A,B,C); printf("ResultantmatrixC:n"); for(inti=0;i<3;i++){ for(intj=0;j<3;j++){ printf("%d",C[i][j]); } printf("n"); } return0; } 20.**查找字符串中的子串** 练习:编写一个程序,查找一个字符串中是否存在特定子串。 #include #include #include boolfindSubstring(charstr[],charsubstring[]){ if(strstr(str,substring)!=NULL){ returntrue; } returnfalse; } intmain(){ charstr[]="Hello,World!"; charsubstring[]="World"; if(findSubstring(str,substring)){ printf("'%s'isasubstringof'%s'n",substring,str); }else{ printf("'%s'isnotasubstringof'%s'n",substring,str); } return0; } 21.**计算一个数的阶乘使用递归** 练习:编写一个程序,使用递归计算一个数的阶乘。 #include intfactorial(intn){ if(n==0){ return1; } returnn*factorial(n-1); } intmain(){ intn=5; intresult=factorial(n); printf("Factorialof%dis%dn",n,result); return0; } 22.**查找数组中的重复元素** 练习:编写一个程序,查找一个整数数组中的重复元素。 #include #include boolhasDuplicates(intarr[],intn){ for(inti=0;i for(intj=i+1;j if(arr[i]==arr[j]){ returntrue; } } } returnfalse; } intmain(){ intarr[]={2,4,6,4,8,10}; intn=sizeof(arr)/sizeof(arr[0]); if(hasDuplicates(arr,n)){ printf("Arrayhasduplicateelements.n"); }else{ printf("Arrayhasnoduplicateelements.n"); } return0; } 23.**查找质数** 练习:编写一个程序,列出指定范围内的所有质数。 #include #include boolisPrime(intnum){ if(num<=1)returnfalse; if(num<=3)returntrue; if(num%2==0||num%3==0)returnfalse; for(inti=5;i*i<=num;i+=6){ if(num%i==0||num%(i+2)==0)returnfalse; } returntrue; } intmain(){ intlower=10,upper=50; printf("Primenumbersbetween%dand%dare:",lower,upper); for(inti=lower;i<=upper;i++){ if(isPrime(i)){ printf("%d,",i); } } printf("n"); return0; } 24.**二进制转十进制** 练习:编写一个程序,将二进制数转换为十进制数。 #include intbinaryToDecimal(intbinary){ intdecimal=0,base=1; while(binary>0){ intlastDigit=binary%10; decimal+=lastDigit*base; binary/=10; base*=2; } returndecimal; } intmain(){ intbinaryNum=1101; intdecimalNum=binaryToDecimal(binaryNum); printf("Binary:%d,Decimal:%dn",binaryNum,decimalNum); return0; } 25.**计算字符串中的单词数** 练习:编写一个程序,计算一个字符串中的单词数。 #include #include boolisWhitespace(charc){ return(c==''||c=='t'||c=='n'); } intcountWords(charstr[]){ intwordCount=0; boolinWord=false; for(inti=0;str[i]!='0';i++){ if(!isWhitespace(str[i])){ if(!inWord){ inWord=true; wordCount++; } }else{ inWord=false; } } returnwordCount; } intmain(){ chartext[]="Thisisasamplesentencewithsomewords."; intwords=countWords(text); printf("Numberofwords:%dn",words); return0; } 26.**计算两个时间的差值** 练习:编写一个程序,计算两个时间的差值,例如小时和分钟之间的差值。 #include structTime{ inthours; intminutes; }; structTimecalculateTimeDifference(structTimet1,structTimet2){ structTimedifference; inttotalMinutes1=*60+s; inttotalMinutes2=*60+s; intdiff=totalMinutes2-totalMinutes1; =diff/60; s=diff%60; returndifference; } intmain(){ structTimetime1={8,30}; structTimetime2={10,45}; structTimetimeDiff=calculateTimeDifference(time1,time2); printf("Timedifference:%dhours%dminutesn",,s); return0; } 27.**字符串反转不使用库函数** 练习:编写一个程序,反转一个字符串,但不使用标准库函数。 #include voidreverseString(charstr[]){ intstart=0; intend=strlen(str)-1; while(start chartemp=str[start]; str[start]=str[end]; str[end]=temp; start++; end--; } } intmain(){ charstr[]="Hello,World!"; reverseString(str); printf("Reversedstring:%sn",str); return0; } 28.**计算素数使用筛选法** 练习:编写一个程序,使用埃拉托斯特尼筛法找出指定范围内的所有素数。 #include #include voidsieveOfEratosthenes(intn){ boolisPrime[n+1]; memset(isPrime,true,sizeof(isPrime)); for(intp=2;p*p<=n;p++){ if(isPrime[p]){ for(inti=p*p;i<=n;i+=p){ isPrime[i]=false; } } } printf("Primenumbersupto%d:",n); for(intp=2;p<=n;p++){ if(isPrime[p]){ printf("%d,",p); } } printf("n"); } intmain(){ intn=50; sieveOfEratosthenes(n); return0; } 29.**计算阵列的中位数** 练习:编写一个程序,计算一个整数数组的中位数。 #include #include voidbubbleSort(intarr[],intn){ for(inti=0;i for(intj=0;j if(arr[j]>arr[j+1]){ inttemp=arr[j]; arr[j]=arr[j+1]; arr[j+1]=temp; } } } } floatcalculateMedian(intarr[],intn){ bubbleSort(arr,n); if(n%2==0){ return(float)(arr[n/2-1]+arr[n/2])/2; }else{ return(float)arr[n/2]; } } intmain(){ intarr[]={4,7,1,9,2,5}; intn=sizeof(arr)/sizeof(arr[0]); floatmedian=calculateMedian(arr,n); printf("Median:%.2fn",median); return0; } 30.**计算斐波那契数列使用递归** 练习:编写一个程序,使用递归计算斐波那契数列的第n个数字。 #include intfibonacci(intn){ if(n<=1){ returnn; } returnfibonacci(n-1)+fibonacci(n-2); } intmain(){ intn=10; intresult=fibonacci(n); printf("Fibonaccinumberatposition%dis%dn",n,result); return0; } 31.**判断闰年** 练习:编写一个程序,接受用户输入的年份,然后判断它是否是闰年。 #include intmain(){ intyear; printf("Enterayear:"); scanf("%d",&year); if((year%4==0&&year%100!=0)||year%400==0){ printf("%disaleapyear.n",year); }else{ printf("%disnotaleapyear.n",year); } return0; } 32.**计算字符串中的元音字母数** 练习:编写一个程序,计算一个字符串中元音字母(a,e,i,o,u)的数量。
版权声明:本文标题:C语言经典练习题50道(附答案) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1710149943a559696.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论