C语言题目.docx
《C语言题目.docx》由会员分享,可在线阅读,更多相关《C语言题目.docx(10页珍藏版)》请在冰豆网上搜索。
![C语言题目.docx](https://file1.bdocx.com/fileroot1/2022-12/1/224d1ef0-d8a2-48f2-8bb1-ac4a29184953/224d1ef0-d8a2-48f2-8bb1-ac4a291849531.gif)
C语言题目
1.输入两个正整数,m和n,求其最大公约数和最小公倍数。
#includevoidmain(){inthcf(int,int);/*函数声明*/intlcd(int,int,int);/*函数声明*/intu,v,h,l;printf("Pleaseinputtwonumbers:
\n");scanf("%d,%d",&u,&v);h=hcf(u,v);printf("H.C.F=%d\n",h);l=lcd(u,v,h);printf("L.C.D=%d\n",l);}inthcf(intu,intv){intt,r;if(v>u){t=u;u=v;v=t;}while((r=u%v)!
=0){u=v;v=r;}return(v);}intlcd(intu,intv,inth){return(u*v/h);}
2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。
#includeintletter,digit,space,others;voidmain(){voidcount(char[]);chartext[80];printf("Pleaseinputstring:
\n");gets(text);printf("string:
\n");puts(text);letter=0;digit=0;space=0;others=0;count(text);printf("letter:
%d,digit:
%d,space:
%d,others:
%d\n",letter,digit,space,others);}voidcount(charstr[]){inti;for(i=0;str!
='\0';i++)if((str>='a'&&str<='z')||(str>='A'&&str<='Z'))letter++;elseif(str>='0'&&str<='9')digit++;elseif(str==32)space++;elseothers++;}
3.输入一个正整数求出它是几位数;输出原数和位数。
#includeintdigit;voidmain(){voidcount(char[]);chartext[80];printf("Pleaseinputnumbers:
\n");gets(text);printf("Numbers:
\n");puts(text);digit=0;count(text);printf("digit:
%d\n",digit);}voidcount(charstr[]){inti;for(i=0;str!
='\0';i++)if(str>='0'&&str<='9')digit++;}
4.输入一个正整数,输出原数并逆序打印出各位数字。
#includevoidinvertLongInt(long);voidmain(){unsignedlongiNumber;printf("Pleaseinputanumber:
\n");scanf("%ld",&iNumber);printf("Theinputnumberis:
%ld\n",iNumber);printf("Theinversenumberis:
");invertLongInt(iNumber);}voidinvertLongInt(longx){if(x>=0&&x<=9)printf("%d\n",x);else{printf("%d",x%10);invertLongInt(x/10);}}
5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。
6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。
将结果输出。
7.求1!
+2!
+3!
+……+20!
,将结果输出。
#includevoidmain(){floats=0,t=1;intn;for(n=1;n<=20;n++){t=t*n;s=s+t;}printf("1!
+2!
+3!
+……+20!
=%e\n",s);}
8.打印以下图案:
***************#includevoidmain(){inti,j;printf("Thepictureis:
\n");staticcharpicture[4][7]={{'','','','*'},{'','','*','*','*'},{'','*','*','*','*','*'},{'*','*','*','*','*','*','*'}};for(i=0;i<=3;i++){for(j=0;j<=6;j++)printf("%c",picture[j]);printf("\n");}}
9.打印以下图案:
**********#includevoidmain(){inti,j;printf("Thepictureis:
\n");charpicture[4][4]={{'*'},{'*','*'},{'*','*','*'},{'*','*','*','*'}};for(i=0;i<=3;i++){for(j=0;j<=3;j++)printf("%c",picture[j]);printf("\n");}}
10.求下列试子的值:
1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。
#includevoidmain(){floatsum=1.0,t,s=1;inti;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.4f\n",sum);}
11.打印出100~999之间的所有水仙花数。
#includevoidmain(){inti,j,k,n;printf("100~999之间的所有水仙花数are:
\n");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");}
12.求Sn=a+aa+aaa+…+aa…a之值,n,a由键盘输入。
#includevoidmain(){inta,n,i=1,sn=0,tn=0;printf("a,n=:
");scanf("%d,%d",&a,&n);while(i<=n){tn=tn+a;sn=sn+tn;a=a*10;++i;}printf("a+aa+aaa+…+aa…a=%d\n",sn);}
13.打印以下图案:
****************************#includevoidmain(){chara[7]={'*','*','*','*','*','*','*'};inti,j,k;charspace='';printf("Thepictureis:
");for(i=0;i<4;i++){printf("\n");printf("");for(j=1;j<=i;j++)printf("%c",space);for(k=0;k<7;k++)printf("%c",a[k]);}printf("\n");}
14.打印以下图案:
1121123211234321
15.打印以下图案:
1234321123211211
16.编写一个统计学生成绩程序,完成以下功能:
输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。
#include#defineN4structstudent{charnum[3];charname[4];floatscore[2];floatavr;}stu[N];
voidmain(){inti,j;floatsum,average;for(i=0;i\n",i+1);printf("name:
");scanf("%s",stu.name);for(j=0;j<2;j++){printf("score%d:
",j+1);scanf("%f",&stu.score[j]);}}
average=0;/*计算*/for(i=0;i17.打印以下图案:
*************************#includevoidmain(){chara[5]={'*','*','*','*','*'};inti,j,k;charspace='';printf("Thepictureis:
");for(i=0;i<5;i++){printf("\n");printf("");for(j=1;j<=i;j++)printf("%c",space);for(k=0;k<5;k++)printf("%c",a[k]);}printf("\n");}
18.给出年、月、日,计算该日是该年的第几天。
#includevoidmain(){intsum_day(int,int);intleap(intyear);intyear,month,day,days;printf("inputdate(year,month,day):
");scanf("%d,%d,%d",&year,&month,&day);printf("%d/%d/%d",year,month,day);days=sum_day(month,day);if(leap(year)&&month>=3)days=days+1;printf("isthe%dthdayinthisyear.\n",days);}intsum_day(intmonth,intday){intday_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31};inti;for(i=1;i=0||year%400==0;return(leap);}
19.求一个3*3的整型矩阵对角线元素之和。
将原矩阵和求出的和输出。
#includevoidmain(){floata[3][3],sum=0;inti,j;printf("请输入元素:
\n");for(i=0;i<3;i++)for(j=0;j<3;j++)scanf("%f",&a[j]);for(i=0;i<3;i++)sum=sum+a;printf("对角线之和是:
%6.2f\n",sum);for(i=0;i<=3;i++){for(j=0;j<=3;j++)printf("%5.2f",a[j]);printf("\n");}}
20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。
#includevoidmain(){inta[4][3],s[4],i,j,k;for(i=0;i<4;i++)for(j=0;j<3;j++)scanf("%d",*(a+i)+j);
for(i=0;i<4;i++){k=0;for(j=0;j<3;j++)k+=a[j];printf("第%d行的平均值是%d",i+1,k);printf("\n");}}
21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。
#includevoidmain(){inta[4][3],s[4],i,j,k;for(i=0;i<4;i++)for(j=0;j<3;j++)scanf("%d",*(a+i)+j);
for(i=0;i<4;i++){k=0;for(j=0;j<3;j++)k+=a[j];printf("第%d行的平均值是%d",i+1,k);printf("\n");}}
22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。
#includevoidmain(){inta[3][5],s[3],i,j,k;for(i=0;i<3;i++)for(j=0;j<5;j++)scanf("%d",*(a+i)+j);
for(i=0;i<3;i++){*(s+i)=*(*(a+j));for(j=1;j<5;j++)if(*(s+i)<*(*(a+i)+j))*(s+i)=*(*(a+i)+j);}
for(i=0;i<3;i++){printf("Line=%dMax=%d",j,s[j]);printf("\n");}}
23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。
#includevoidmain(){inta[4][3],s[4],i,j,k;for(i=0;i<4;i++)for(j=0;j<3;j++)scanf("%d",*(a+i)+j);
for(i=0;i<4;i++){*(s+i)=*(*(a+i));for(j=1;j<3;j++)if(*(s+i)<*(*(a+i)+j))*(s+i)=*(*(a+i)+j);}
for(i=0;i<4;i++){printf("Row=%dMax=%d",i,s);printf("\n");}}
24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。
#include#defineN10#defineM10voidmain(){inta[N],i,j,k,max,m,n;scanf("%d%d",&m,&n);for(i=0;i25.判断一个N*N的矩阵是否为对称矩阵,将原矩阵输出,判断结果输出。
#include#defineN10voidmain(){inta[N][N],i,j,k,n;scanf("%d",&n);for(i=0;i26.有一篇文章,有三行文字,每行有80个字符。
要求统计出其中英文大写字母、消协字母、数字、空格以及其他字符的个数。
#includevoidmain(){inti,j,big=0,sma=0,num=0,spa=0,oth=0;chartext[3][80];for(i=0;i<3;i++){printf("请输入行%d:
\n",i+1);gets(text);for(j=0;j<80&&text[j]!
='\0';j++){if(text[j]>='A'&&text[j]<='Z')big++;elseif(text[j]>='a'&&text[j]<='z')sma++;elseif(text[j]>='0'&&text[j]<='9')num++;elseif(text[j]=='')spa++;elseoth++;}}printf("大写字母:
%d\n",big);printf("小写字母:
%d\n",sma);printf("数字:
%d\n",num);printf("空格:
%d\n",spa);printf("其它:
%d\n",oth);}
27.将20个整数放到一维数组中,输出该数组的最大值和最小值。
#includevoidmain(){inti,j,min,max,a[21];printf("请输入数据:
\n");for(i=1;i<=20;i++){printf("a[%d]=",i);scanf("%d",&a);}for(i=1;i<=19;i++){min=i;for(j=2;j<=19;j++)if(a[min]>a[j]);a[min]=a[j];}for(i=1;i<=19;i++){max=i;for(j=2;j<=19;j++)if(a[max]%d\n",a[max]);printf("最小数为:
%d\n",a[min]);}
28.将15个整数放到一维数组中,输出该数组中的最大值它的下标,然后将它和数组中的最前面的元素对换。
#includevoidmain(){inti,j,min,max,a[16],m,n;printf("请输入数据:
\n");for(i=1;i<=15;i++){printf("a[%d]=",i);scanf("%d",&a);}for(i=1;i<=14;i++){max=i;for(j=2;j<=14;j++)if(a[max]%d,%d\n",m,n);}
29.将字符数组str1种下标为偶数的元素赋给另一字符数组str2,并输出str1和str2。
#include#include#defineN10voidmain(){inti,n;charstr1[N],str2[N];gets(str1);for(n=0;n30.编写一个程序,将两个字符串连接起来,不要使用strcat函数。
#includevoidmain(){charstr1[20],str2[20];inti=0,j=0;printf("请输入字符串1:
\n");scanf("%s",str1);printf("请输入字符串2:
\n");scanf("%s",str2);while(str1!
='\0')i++;while(str2[j]!
='\0')str1[i++]=str2[j++];str1='\0';printf("合并之后的字符串为:
%s\n",str1);}
31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。
不要使用strcpy函数。
#include#includevoidmain(){chara[40],b[40];inti;printf("请输入a:
\n");scanf("%s",a);for(i=0;i<=strlen(a);i++)b=a;printf("b:
%s\n",b);}
32.编写一个程序,找出3个字符串中的最大者,将它输出。
#include#includevoidmain(){charstring[20];charstr[3][20];inti;for(i=0;i<3;i++)gets(str);if(strcmp(str[0],str[1])>0)strcpy(string,str[0]);elsestrcpy(string,str[1]);if(strcmp(str[2],string)>0)strcpy(string,str[2]);printf("最大的字符串是:
\n%s\n",string);}
33.编写程序,输入任意一个1~7之间的整数,将他们转换成对应的英文单词。
例如:
1转换成Monday,7转换成Sunday。
#includevoidmain(){inta;printf("输入一个整数:
\n");scanf("%d",&a);if(a==1)printf("Monday\n");elseif(a==2)printf("Tuesday\n");elseif(a==3)printf("Wendesday\n");elseif(a==4)printf("Thursday\n");elseif(a==5)printf("Friday\n");elseif(a==6)printf("Saturday\n");elseif(a==7)printf("Sunday\n");elseprintf("错误\n");}
34.编写程序,输入两