1、新113道C语言题目113道C语言题目,超经典的1.输入两个正整数,m和n,求其最大公约数和最小公倍数。#includevoid main()int hcf(int,int); /*函数声明*/int lcd(int,int,int); /*函数声明*/int u,v,h,l;printf(Please two numbers:n);scanf(%d,%d,&u,&v);h=hcf(u,v);printf(H.C.F=%dn,h);l=lcd(u,v,h);printf(L.C.D=%dn,l);int hcf(int u,int v)int t,r;if(vu)t=u;u=v;v=t;whi
2、le(r=u%v)!=0)u=v;v=r;return(v);int lcd(int u,int v,int h)return(u*v/h);91.编一个子函数GCD,求两个正整数的最大公约数,主程序输入n个自然数,调GCD,求出这n个数的最大公约数。#includeint GCD(int,int);void main()int a100,i,n,k;printf(请输入数组元素的个数:n);scanf(%d,&n);printf(请输入%d个正整数:n,n);for(i=0;in;i+)scanf(%d,&ai); k=GCD(a0,a1);for(i=2;in;i+)k=GCD(k,ai)
3、;printf(输入的%d个正整数的最大公约数是:%dn,n,k);int GCD(int x,int y)int i,min,p,q,gcd;if(x=y)min=x;elsemin=y;for(i=1;i=min;i+)p=x%i;q=y%i;if(p=0&q=0)gcd=i;return gcd;68.用for循环语句计算1到20的和,并将结果输出。#include void main()int i=1,sum=0;for (;i=20;)sum=sum+i;i+;printf(1到20的和是%dn,sum);3.输入一个正整数求出它是几位数;输出原数和位数。#includeint di
4、git;void main()void count(char);char text80;printf(Please numbers:n);gets(text);printf(Numbers:n);puts(text);digit=0;count(text);printf(digit:%dn,digit);void count(char str)int i;for(i=0;stri!=0;i+) if(stri=0&stri=9)digit+;4.输入一个正整数,输出原数并逆序打印出各位数字。#includevoid invertLongInt(long);void main()unsigned
5、 long iNumber;printf(Please a number:n);scanf(%ld,&iNumber);printf(The number is:%ldn,iNumber);printf(The inverse number is:);invertLongInt(iNumber);void invertLongInt(long x)if(x=0&x=9)printf(%dn,x);elseprintf(%d,x%10);invertLongInt(x/10);86.编一个函数实现将一个整型的一维数组中的数逆序存放,不使用辅助数组。主函数输入一个整型的一维数组,调用上述函数,将该
6、数组逆置,将结果输出。#include#define N 10void main()int aN,i,temp;printf(enter array a:n);for(i=0;iN;i+)scanf(%d,&ai);printf(array a:n);for(i=0;iN;i+)printf(%4d,ai);for(i=0;iN/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;printf(nNow,array a:n);for(i=0;iN;i+)printf(%4d,ai);printf(n);10.求下列试子的值:1-1/2+1/3-1/4+1/99-1/100,将
7、结果输出。#includevoid main()float sum=1.0,t,s=1;int i;for(i=1;i=100;i+)t=s/i;sum=sum+t;s=-s;printf(1-1/2+1/3-1/4+1/99-1/100=%5.4fn,sum);19.求一个3*3的整型矩阵对角线元素之和。将原矩阵和求出的和输出。#includevoid main() float a33,sum=0; int i,j; printf(请输入元素:n); for(i=0;i3;i+) for(j=0;j3;j+) scanf(%f,&aij); for(i=0;i3;i+) sum=sum+ai
8、i; printf(对角线之和是:%6.2fn,sum); for(i=0;i=3;i+)for(j=0;j=3;j+)printf(%5.2f,aij);printf(n); 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。#includeint letter,digit,space,others;void main()void count(char);char text80;printf(Please string:n);gets(text);printf(string:n);puts(text);letter=0;digit=0;space=0;others=0;cou
9、nt(text);printf(letter:%d,digit:%d,space:%d,others:%dn,letter,digit,space,others);void count(char str)int i;for(i=0;stri!=0;i+)if(stri=a&stri=A&stri=0&stri=9)digit+;else if(stri=32)space+;elseothers+;26.有一篇文章,有三行文字,每行有80个字符。要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。#includevoid main()int i,j,big=0,sma=0,num
10、=0,spa=0,oth=0;char text380;for(i=0;i3;i+)printf(请输入行%d:n,i+1);gets(texti);for(j=0;j=A&textij=a&textij=0&textij=9)num+;else if(textij= )spa+;elseoth+;printf(大写字母:%dn,big);printf(小写字母:%dn,sma);printf(数字:%dn,num);printf(空格:%dn,spa);printf(其它:%dn,oth);108.编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其他字符的个数,在主函数中输
11、入字符串以及输出上述的结果。#includeint letter,digit,space,others;void main()void count(char);char text80;printf(输入字符串:n);gets(text);printf(字符串是:);puts(text);letter=0;digit=0;space=0;others=0;count(text);printf(letter:%d,digit:%d,space:%d,others:%dn,letter,digit,space,others); void count(char str) int i; for(i=0;
12、stri!=0;i+) if(stri=a&stri=A&stri=0&stri=9)digit+; else if(stri=32)space+; elseothers+; 69.从键盘输入一行字符,统计出输入的字符个数(注:不要使用strlun函数编程)。#include void main() int alphabet=0,i=0;char str100;printf (请输入一个字符串n);gets(str);for (i=0;stri!=0;i+)+alphabet;printf (有%d个字母n,alphabet);27.将20个整数放到一维数组中,输出该数组的最大值和最小值。#i
13、ncludevoid main()int i,j,min,max,a21;printf(请输入数据:n);for(i=1;i=20;i+)printf(a%d=,i);scanf(%d,&ai);for(i=1;i=19;i+)min=i;for(j=2;jaj);amin=aj;for(i=1;i=19;i+)max=i;for(j=2;j=19;j+)if(amaxaj);amax=aj;printf(最大数为:%dn,amax);printf(最小数为:%dn,amin);42.编程序,输入4个整数,按由小到大的顺序输出。#include #define N 4void main()in
14、t aN,t,i,j;printf(输入四个整数:n);for (i=0;iN;i+)scanf(%d,&ai);printf(n);for (i=0;iN-1;i+)for (j=0;jaj+1)t=aj;aj=aj+1;aj+1=t;printf(排序后:n);for (i=0;iN;i+)printf(%dn,ai);93.编一函数使用冒泡法对若干个整数按从小到大的顺序排序,主函数中输入若干个整数到一个一维数组中,调用排序函数,将其排序,最后将原数组和排好序的数组输出。#include#define N 10void main()int aN,i,j,temp;printf(请输入10个
15、整数:n);for(i=0;iN;i+)scanf(%d,&ai);printf(n);printf(原始数据为:n);for(i=0;iN;i+)printf(%d,ai);for(i=1;i=N-1;i+)for(j=0;jaj+1)temp=aj;aj=aj+1;aj+1=temp;printf(n排序后的数据为:n);for(i=0;iN;i+)printf(%d,ai);printf(n);30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。#includevoid main()char str120,str220;int i=0,j=0;printf(请输入字符串1
16、:n);scanf(%s,str1);printf(请输入字符串2:n);scanf(%s,str2);while (str1i!=0)i+;while (str2j!=0)str1i+=str2j+;str1i=0;printf(合并之后的字符串为:%sn,str1);99.编写一个函数将给定的两个字符串连接成一个字符串: 格式为:strcat(ch1,ch2); 功能:将ch2复制到ch1的后面; 主函数中输入两个字符串,调用该子函数,求出连接之后的字符串,将两个原字符串及连接之后的结果串输出。#include#includevoid main()char str120,str28;get
17、s(str1);gets(str2);strcat(str1,str2);printf(%sn,str1);102.编程计算:1*2*3+3*4*5+99*100*101的值。#includevoid main()int i,j,k,sum=0;for(i=1,j=2,k=3;i100,j101,k102;i+=2,j+=2,k+=2)sum=sum+i*j*k;printf(%dn,sum);31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。#include#includevoid main()char a40,b40;int i;printf(请输入
18、a:n);scanf(%s,a);for(i=0;i=strlen(a);i+)bi=ai;printf(b:%sn,b);96.编写一个函数将给定字符串复制到另一个字符串中去,主函数中输入一个字符串,调用该子函数,复制出另一字符串,将两个串输出。#include#includevoid main()void copystr(char*,char*,int);int m;char str120,str220;printf(n string:);gets(str1);printf(which character that begin to copy?);scanf(%d,&m);if(strle
19、n(str1)m)printf( error!);elsecopystr(str1,str2,m);printf(result:%sn,str2);void copystr(char*p1,char*p2,int m)int n;n=0;while(nm-1)n+;p1+;while(*p1!=0)*p2=*p1;p1+;p2+;*p2=0;95.编写一个函数求给定字符串长度,主函数中输入一个字符串,调用该子函数,求出该字符串的长度,输出。#includevoid main()int length(char*p);int len;char str20;printf( string:);scan
20、f(%s,str);len=length(str);printf(The length of string is %d.n,len);int length(char*p)int n;n=0;while(*p!=0)n+;p+;return(n);104.编写一个程序,使输入的一个字符串按反序存放在一字符数组中,然后输出。要求: (1)在主调函数中输入字符串; (2)写函数完成由主调函数传递来的字符串按反序存放; (3)在主调函数中输出结果。#include#includevoid main()void inverse(char str);char str100;printf(输入字符串:n);
21、gets(str);inverse(str);printf(%sn,str); void inverse(char str) char t; int i,j; for(i=0,j=strlen(str);i(strlen(str)/2);i+,j-) t=stri; stri=strj-1; strj-1=t; 29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。#include #include#define N 10void main() int i,n;char str1N,str2N; gets(str1); for(n=0;nN;n+) i=
22、2*n; str2n=str1i; puts(str1); puts(str2);32.编写一个程序,找出3个字符串中的最大者,将它输出。#include#includevoid main()char string20;char str320;int i;for(i=0;i0)strcpy(string,str0);elsestrcpy(string,str1);if(strcmp(str2,string)0)strcpy(string,str2);printf(最大的字符串是:n%sn,string);36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。#include#includevoid main()float a,b,c,area;double s;printf(Please enter three sides of a triangle:n);scanf(%f,%f,%f,&a,&b,&c);s=(a+b+c)/2.0;area=sqrt(s*(s-a)*(s-b)*(s-c);if(a+bc|b+ca|a+cb)printf(They cant form a triangle.n);else printf(The area of the triangle is:%fn,area);#include #define N 10
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1