大学精彩资料C语言学习知识-编程试题.doc

收藏

编号:2596796    类型:共享资源    大小:138.02KB    格式:DOC    上传时间:2020-04-22
12
金币
关 键 词:
大学 精彩 资料 语言 学习 知识 编程 试题
资源描述:
1.输入两个正整数,m和n,求其最大公约数和最小公倍数。 #include void main() { int hcf(int,int); /*函数声明*/ int lcd(int,int,int); /*函数声明*/ int u,v,h,l; printf("Please input two numbers:\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); } int hcf(int u,int v) { int t,r; if(v>u) {t=u;u=v;v=t;} while((r=u%v)!=0) {u=v;v=r;} return(v); } int lcd(int u,int v,int h) { return(u*v/h); } 2.输入一行字符,分别统计出其中字母、空格、数字和其他字符的个数。 #include int letter,digit,space,others; void main() { void count(char[]); char text[80]; printf("Please input string:\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); } void count(char str[]) { int i; for(i=0;str[i]!=\0;i++) if((str[i]>=a&&str[i]<=z)||(str[i]>=A&&str[i]<=Z)) letter++; else if(str[i]>=0&&str[i]<=9) digit++; else if(str[i]==32) space++; else others++; } 3.输入一个正整数求出它是几位数;输出原数和位数。 #include int digit; void main() { void count(char[]); char text[80]; printf("Please input numbers:\n"); gets(text); printf("Numbers:\n"); puts(text); digit=0; count(text); printf("digit:%d\n",digit); } void count(char str[]) { int i; for(i=0;str[i]!=\0;i++) if(str[i]>=0&&str[i]<=9) digit++; } 4.输入一个正整数,输出原数并逆序打印出各位数字。 #include void invertLongInt(long); void main() { unsigned long iNumber; printf("Please input a number:\n"); scanf("%ld",&iNumber); printf("The input number is:%ld\n",iNumber); printf("The inverse number is:"); invertLongInt(iNumber); } void invertLongInt(long x) { if(x>=0&&x<=9) printf("%d\n",x); else { printf("%d",x%10); invertLongInt(x/10); } } 5.从键盘上输入若干学生的一门课成绩,统计并输出最高成绩和最低成绩及相应的序号,当输入负数时结束输入。 6.从键盘上输入若干学生的一门课成绩,计算出平均分,当输入负数时结束输入。将结果输出。 7.求1!+2!+3!+……+20!,将结果输出。 #include void main() { float s=0,t=1; int n; for(n=1;n<=20;n++) { t=t*n; s=s+t; } printf("1!+2!+3!+……+20!=%e\n",s); } 8.打印以下图案: * *** ***** ******* #include void main() { int i,j; printf("The picture is:\n"); static char picture[4][7]={{ , , ,*}, { , ,*,*,*},{ , *,*,*,*,*},{*,*,*,*,*,*,*}}; for(i=0;i<=3;i++) { for(j=0;j<=6;j++) printf("%c",picture[i][j]); printf("\n"); } } 9.打印以下图案: * ** *** **** #include void main() { int i,j; printf("The picture is:\n"); char picture[4][4]={{*}, {*,*},{ *,*,*},{*,*,*,*}}; for(i=0;i<=3;i++) { for(j=0;j<=3;j++) printf("%c",picture[i][j]); printf("\n"); } } 10.求下列试子的值:1-1/2+1/3-1/4+……+1/99-1/100,将结果输出。 #include void 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.4f\n",sum); } 11.打印出100~999之间的所有水仙花数。 #include void main() { int i,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由键盘输入。 #include void main() { int a,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.打印以下图案: ******* ******* ******* ******* #include void main() { char a[7]={*,*,*,*,*,*,*}; int i,j,k; char space= ; printf("The picture is:"); 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.打印以下图案: 1 121 12321 1234321 15. 打印以下图案: 1234321 12321 121 1 16.编写一个统计学生成绩程序,完成以下功能:输入4个学生的2门课成绩;求出全班的总平均分,将结果输出。 #include #define N 4 struct student { char num[3]; char name[4]; float score[2]; float avr; } stu[N]; void main() { int i,j; float sum,average; for(i=0;i void main() { char a[5]={*,*,*,*,*}; int i,j,k; char space= ; printf("The picture is:"); 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.给出年、月、日,计算该日是该年的第几天。 #include void main() { int sum_day(int,int); int leap(int year); int year,month,day,days; printf("input date(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("is the %dth day in this year.\n",days); } int sum_day(int month,int day) { int day_tab[13]={0,31,28,31,30,31,30,31,31,30,31,30,31}; int i; for(i=1;i void main() { float a[3][3],sum=0; int i,j; printf("请输入元素:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%f",&a[i][j]); for(i=0;i<3;i++) sum=sum+a[i][i]; printf("对角线之和是:%6.2f\n",sum); for(i=0;i<=3;i++) { for(j=0;j<=3;j++) printf("%5.2f",a[i][j]); printf("\n"); } } 20.求一个4*3的矩阵各行元素的平均值;将原矩阵和求出的平均值全部输出。 #include void main() { int a[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[i][j]; printf("第%d行的平均值是%d",i+1,k); printf("\n"); } } 21.求一个3*4的矩阵各列元素的平均值;将原矩阵和求出的平均值全部输出。 #include void main() { int a[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[i][j]; printf("第%d行的平均值是%d",i+1,k); printf("\n"); } } 22.求一个3*5的矩阵各列元素的最大值,将原矩阵和求出的最大值全部输出。 #include void main() { int a[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=%d Max=%d",j,s[j] ); printf("\n"); } } 23.求一个4*3的矩阵各行元素的最大值,将原矩阵和求出的最大值全部输出。 #include void main() { int a[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=%d Max=%d",i,s[i] ); printf("\n"); } } 24.求一个M*N的矩阵中元素的最大值,将原矩阵和求出的最大值全部输出。 #include #define N 10 #define M 10 void main() { int a ?[N],i,j,k ?,max,m,n; scanf("%d %d",&m,&n); for(i=0;i #define N 10 void main() { int a[N][N],i,j,k,n; scanf("%d",&n); for(i=0;i void main() { int i,j,big=0,sma=0,num=0,spa=0,oth=0; char text[3][80]; for(i=0;i<3;i++) { printf("请输入行%d:\n",i+1); gets(text[i]); for(j=0;j<80&&text[i][j]!=\0;j++) { if(text[i][j]>=A&&text[i][j]<=Z) big++; else if(text[i][j]>=a&&text[i][j]<=z) sma++; else if(text[i][j]>=0&&text[i][j]<=9) num++; else if(text[i][j]== ) spa++; else oth++; } } printf("大写字母:%d\n",big); printf("小写字母:%d\n",sma); printf("数字:%d\n",num); printf("空格:%d\n",spa); printf("其它:%d\n",oth); } 27.将20个整数放到一维数组中,输出该数组的最大值和最小值。 #include void main() { int i,j,min,max,a[21]; printf("请输入数据:\n"); for(i=1;i<=20;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } 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] void main() { int i,j,min,max,a[16],m,n; printf("请输入数据:\n"); for(i=1;i<=15;i++) { printf("a[%d]=",i); scanf("%d",&a[i]); } for(i=1;i<=14;i++) { max=i; for(j=2;j<=14;j++) if(a[max] #include #define N 10 void main() { int i,n; char str1[N],str2[N]; gets(str1); for(n=0;n void main() { char str1[20],str2[20]; int i=0,j=0; printf("请输入字符串1:\n"); scanf("%s",str1); printf("请输入字符串2:\n"); scanf("%s",str2); while (str1[i]!=\0) i++; while (str2[j]!=\0) str1[i++]=str2[j++]; str1[i]=\0; printf("合并之后的字符串为:%s\n",str1); } 31.编写一个程序,将字符数组a中的全部字符复制到字符数组b中。不要使用strcpy函数。 #include #include void main() { char a[40],b[40]; int i; printf("请输入a:\n"); scanf("%s",a); for(i=0;i<=strlen(a);i++) b[i]=a[i]; printf("b:%s\n",b); } 32.编写一个程序,找出3个字符串中的最大者,将它输出。 #include #include void main() { char string[20]; char str[3][20]; int i; for(i=0;i<3;i++) gets (str[i]); if(strcmp(str[0],str[1])>0) strcpy(string,str[0]); else strcpy(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。 #include void main() { int a; printf("输入一个整数:\n"); scanf("%d",&a); if(a==1) printf("Monday\n"); else if(a==2) printf("Tuesday\n"); else if(a==3) printf("Wendesday\n"); else if(a==4) printf("Thursday\n"); else if(a==5) printf("Friday\n"); else if(a==6) printf("Saturday\n"); else if(a==7) printf("Sunday\n"); else printf("错误\n"); } 34.编写程序,输入两个整数,和+、-、*、/之中的任意一个运算符,输出计算结果。 #include void main() { float a,b; char c; printf("请输入一个运算符:\n"); scanf("%c",&c); printf("请输入两个整数:\n"); scanf("%d,%d",&a,&b); switch(c) { case+:printf("%f\n",a+b);break; case-:printf("%f\n",a-b);break; case*:printf("%f\n",a*b);break; case/:printf("%f\n",a/b);break; default:printf("错误"); } } 35.输入年号,计算这一年的2月份的天数,将结果输出。 #include void main() { int year,leap; printf("请输入年份:\n"); scanf("%d",&year); if(year%4==0) { if(year%100==0) { if(year%400==0) leap=1; else leap=0; } else leap=1; } else leap=0; if(leap) printf("%d年的2月有29天",year); else printf("%d年的2月有28天",year); } 36.输入三角形的三边a,b,c,判断a,b,c,能否构成三角形,若能,计算面积。 #include #include void 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+b #define N 10 #define M 10 void main() { int i,j,k,m,n,flag1,flag2,a[N] ?,max,maxj; printf("输入行数n[n<10]:"); scanf("%d",&n); printf("输入列数m[m<10]:"); scanf("%d",&m); for(i=0;i #include void main() { float a,b,c; printf("请输入三角形边长:\n"); scanf("%f%f%f",&a,&b,&c); if((a-b>=c)||(b-c>=a)||(c-a>=b)) printf("不能够成三角形\n"); else if ((a*a+b*b==c*c)||(b*b+c*c==a*a)||(c*c+a*a==b*b)) if ((a==b)||(b==c)||(c==a)) printf("等腰直角三角形\n"); else printf("直角三角形\n"); else if ((a==b)&&(b==c)) printf("等边三角形\n"); else if ((a==b)&&(b!=c)||(c==b)&&(b!=a)||(a==c)&&(c!=a)) printf("等腰三角形\n"); else printf("一般三角形\n"); } 38.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用if语句编程) #include void main() { int a; float r,t,s; printf("请输入奖金数:\n"); scanf("%d",&a); if (a<500) r=0.00; else if (a<1000) r=0.05; else if (a<2000) r=0.08; else if (a<2000) r=0.10; else r=0.15; t=a*r; s=a-t; printf("税率:%7.2f\n",r); printf("税款:%7.2f\n",t); printf("实得奖金:%7.2f\n",s); } 39.输入奖金数a,计算并输出税率、应缴税款和实得奖金数。(用switch语句编程) #include void main() { int a,e; float r,t,s; printf("请输入奖金数:\n"); scanf("%d",&a); e=a/500; switch(e) {case 0:r=0.00;break; case 1:r=0.05;break; case 2: case 3:r=0.08;break; case 4: case 5: case 6: case 7: case 8: case 9:r=0.10;break; default:r=0.15;break; } t=a*r; s=a-t; printf("税率:%7.2f\n",r); printf("税款:%7.2f\n",t); printf("实得奖金:%7.2f\n",s); } 40.输入学生的成绩,利用计算机将学生的成绩划分出等级并输出: 90~100:A级; 80~89:B级; 70~79:C级; 60~69:D级; 0~59:E级; #include void main() { float m; printf("输入学生成绩:\n"); scanf("%f",&m); if ((m>100)||(m<0)) printf("数据有误\n"); else if (m>=90) printf("A级\n"); else if (m>=80) printf("B级\n"); else if (m>=70) printf("C级\n"); else if (m>=60) printf("D级\n")
展开阅读全文
提示  得力文库 - 分享文档赚钱的网站所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:大学精彩资料C语言学习知识-编程试题.doc
链接地址:https://www.deliwenku.com/p-2596796.html
关于得利文库 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com  

收起
展开