收藏 分销(赏)

c语言上机题.doc

上传人:w****g 文档编号:2492658 上传时间:2024-05-30 格式:DOC 页数:14 大小:124.05KB 下载积分:8 金币
下载 相关 举报
c语言上机题.doc_第1页
第1页 / 共14页
c语言上机题.doc_第2页
第2页 / 共14页


点击查看更多>>
资源描述
C语言上机程序题 //vc1 //prog1.cpp //设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。 #include <stdio.h> main() { int a,b,c,temp; scanf("%d%d%d",&a,&b,&c); if(a>b) { temp=a; a=b; b=temp; } if(b>c) { temp=b; b=c; c=temp; } if(a>c) { temp=a; a=c; c=temp; } printf("%d %d %d\n",a,b,c); } //vc1 //prog2.cpp //求1+3+5+...+95+97+99的和。 #include <stdio.h> main() { int i,s=0; for(i=1;i<100;i=i+2) s+=i; printf("%d",s); } //vc1 //prog3.cpp //写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数) #include <stdio.h> int fun(int m) { int i,j=1; for(i=2;i<=m/2;i++) { if(!(m%i)) {j=0;break;} else j=1; } return j; } main() { int m; while(1) { scanf("%d",&m); if(fun(m)) printf("此整数为素数"); else printf("整数非素数"); } } //vc2 //prog1.cpp //从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。 #include <stdio.h> main() { int a[10],i,s=0; for(i=0;i<10;i++) { scanf("%d",&a[i]); s+=a[i]; } for(i=9;i>=0;i--) printf("%d ",a[i]); printf("\n%d",s); } //vc2 //prog2.cpp //输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。 #include<stdio.h> #include<string.h> void main() { char a[100][100]={0},b[100]={0}; int n,i,j; for(n=0;n<100;n++) { gets(a[n]); if(a[n][0]=='0') break; } for(i=1;i<=n;i++) for(j=0;j<n-i;j++) { if(strcmp(a[j],a[j+1])) { strcpy(b,a[j]); strcpy(a[j],a[j+1]); strcpy(a[j+1],b); } } for(i=0;i<n;i++) puts(a[i]); } //vc2 //prog2.cpp //输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。 #include<stdio.h> #include<string.h> void main() { char a[100][100]={0},b[100]={0}; int n,i,j; for(n=0;n<100;n++) { gets(a[n]); if(a[n][0]=='0') break; } for(i=1;i<n;i++) for(j=0;j<n-i;j++) { if(strcmp(a[j],a[j+1])>0) { strcpy(b,a[j]); strcpy(a[j],a[j+1]); strcpy(a[j+1],b); } } for(i=0;i<n;i++) puts(a[i]); } //vc2 //prog3.cpp /*某年级共有4个班,每班各有30名学生, 有6个科目的考试成绩,要求输出每门课程最高分的学生、 学号和姓名,并计算各班每个学生的平均成绩并输出。*/ #include<stdio.h> #define cla 4 #define stu 30 #define sub 6 main() { int i,j,k,m,n,h; float a[cla][stu][sub],ave[cla][stu],t,max; for(i=0;i<cla;i++) { for(j=0;j<stu;j++) { t=0; for(k=0;k<sub;k++) { printf("请输入第%d个班学号为%d的学生的第%d科的成绩\n",i+1,j+1,k+1); scanf("%f",&a[i][j][k]); t=t+a[i][j][k]; } ave[i][j]=t/sub; } } for(k=0;k<sub;k++) { max=0.0; for(i=0;i<cla;i++) { for(j=0;j<stu;j++) { if(a[i][j][k]>max) { max=a[i][j][k]; m=i,n=j,h=k; } } } printf("第%d科成绩的最高分是第%d个班学号为%d的人,成绩为%f",h+1,m+1,n+1,max); } for(i=0;i<cla;i++) { for(j=0;j<stu;j++) { printf("第%d班学号为%d的学生的平均分为%f",i+1,j+1,ave[i][j]); } } } //vc3 //prog1.cpp //求从键盘上输入的10个数据(实数)中的最大值,并求和。 #include <stdio.h> main() { int a[10],i,m=0,s=0; for(i=0;i<10;i++) { scanf("%d",&a[i]); if(m<a[i]) m=a[i]; s+=a[i]; } printf("最大值是%d\n总和是%d\n",m,s); } //vc3 //prog2.cpp //给出三角形的三边A,B,C,求三角形的面积。(应先判断三边是否构成三角形) #include <stdio.h> #include <math.h> int check(float a,float b,float c) { int j; if((a+b>c)&&(a-b<c)&&(b-a<c)) j=1; else j=0; return j; } main() { float a,b,c; float s,p; scanf("%f%f%f",&a,&b,&c); if(check(a,b,c)) { p=(a+b+c)/2; s=sqrt(p*(p-a)*(p-b)*(p-c)); printf("%f\n",s); } else printf("不能构成三角形"); } //vc3 //prog3.cpp //编写程序求一个字符串的第n个字符开始、长度为m的子串 #include <stdio.h> main() { char a[100],b[100]={'0'}; int m,n,i,j; gets(a); printf("请输入首位数,位数\n"); scanf("%d%d",&m,&n); for(i=m-1,j=0;i<n+m-1;i++,j++) b[j]=a[i]; puts(b); } //vc4 //prog1.cpp //猜数游戏,假如设定一个整数m=123,然后让其他人从键盘上猜该数字,如果猜对,输出“RUGHT”,如果猜错,则输出“WRONG”,并且指出设定的数字比输入的数字大还是小 #include <stdio.h> main() { int m=123,a; while(1) { printf("请输入您的猜测:\n"); scanf("%d",&a); if(a==m) { printf("RIGHT"); break; } else { printf("WRONG"); if(a>m) printf("\n该数字比您输入的小!"); else printf("\n该数字比您输入的大!"); } } } //vc4 //prog2.cpp //编写程序,用于统计从键盘输入的字符串中的元音字母的个数。 #include <stdio.h> #include <string.h> main() { char a[100]; int i,s=0; gets(a); for(i=0;i<strlen(a);i++) { if(a[i]=='a'||a[i]=='e'||a[i]=='i'||a[i]=='o'||a[i]=='u'||a[i]=='A'||a[i]=='E'||a[i]=='I'||a[i]=='O'||a[i]=='U') s++; } printf("%d",s); } //vc4 //prog3.cpp //编写程序求1-100中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如25^2=625) #include <stdio.h> main() { int i,j=0; for(i=1;i<=100;i++) { if((i*i)%1000%100==i||(i*i)%1000%100%10==i) {printf("%d ",i); j++;} } printf("\n%d",j); } //vc5 //prog1.cpp //从键盘接受一个整数X,判断X是否为含有因子7的整数,如是,则输出“YES”,否则输出“NO” #include <stdio.h> main() { int x; scanf("%d",&x); if(x%7||x==0) printf("NO"); else printf("YES"); } //vc5 //prog2.cpp //编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。 #include <stdio.h> #include <string.h> #include<stdlib.h> int cmp(char a[],char b[]) { int i,j,n; i=strlen(a)>strlen(b)?strlen(a):strlen(b); for(n=0;n<i;n++) { if(a[n]==b[n]) j=1; else j=0; } return j; } main() { char a[100],b[100]; int i; printf("请设定密码:\n"); gets(a); system("CLS"); system("PAUSE"); for(i=0;i<3;i++) { printf("请输入密码:\n"); gets(b); if(cmp(a,b)) { printf("口令正确!"); break; } else { printf("口令错误!您还有%d次机会!",2-i); } } } //vc5 //prog3.cpp //编写实现求1!+2!+...+10!. #include <stdio.h> int fun(int n) { long i,s=1; for(i=1;i<=n;i++) s*=i; return s; } main() { int i,n=0; for(i=1;i<=10;i++) n+=fun(i); printf("1!+2!+...+10!=%d",n); } //vc6 //prog1.cpp //编写程序,能对一给定的3*4的矩阵,求出其中的最大元素之及所在的行列号。 #include<stdio.h> main() { int a[3][4]={{23,4,15,98},{122,-3441,29,33},{123,1,-99,21}};//这里自己修改 int i,j,s=a[0][0],m=0,n=0; for(i=0;i<3;i++) { for(j=0;j<4;j++) printf("%d\t",a[i][j]); printf("\n"); } for(i=0;i<3;i++) { for(j=0;j<4;j++) { if(s<a[i][j]) s=a[i][j],m=i,n=j; } } printf("最大元素是%d,位于第%d行第%d列",s,m+1,n+1); } //vc6 //prog2.cpp //求2000中含有5的因子的个数。 #include<stdio.h> main() { int i,j,k,m,s=0; for(i=1;i<=2000;i++) { if(2000%i==0) { m=i; for(j=0;j<3;j++) { if(m%10==5) {s++;break;} else m=m/10; } } } printf("%d",s); } //vc6 //prog3.cpp //求任意一个小于65535的正整数的逆序数,并判断该数是否为回文数。 #include<stdio.h> #include<string.h> main() { char a[100],b[100]={'0'}; int i,m; printf("请输入一个小于65535的正整数\n"); gets(a); m=strlen(a); for(i=0;i<m;i++) b[m-i-1]=a[i]; puts(b); if(strcmp(a,b)==0) printf("该数是回文数\n"); else printf("该数不是回文数\n"); } //vc7 //prog1.cpp //给出一个不多于5位的正整数,要求:求出其位数,分别打印每一位数字,最后按逆序打印出这个正整数 #include<stdio.h> #include<string.h> main() { char a[100],b[100]={'0'}; int i,m; printf("请输入一个小于5位的正整数\n"); gets(a); m=strlen(a); for(i=0;i<m;i++) { printf("%c ",a[i]); b[m-i-1]=a[i]; } puts(b); } //vc7 //prog2.cpp //求一个4行4列矩阵主对角线元素之和。 #include<stdio.h> main() { int i,j,m=0,a[4][4]={1,23,7,-12,56,1,12,-88,34,177,1,46,14,56,-89,1}; for(i=0;i<4;i++) { for(j=0;j<4;j++) { printf("%d\t",a[i][j]); if(i==j) m+=a[i][j]; } printf("\n"); } printf("主对角线元素之和是%d\n",m); } //vc7 //prog3.cpp //编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。 #include<stdio.h> #include<string.h> main() { char a[100],b[100]; printf("请输入字符串1:\n"); gets(a); printf("请输入字符串2:\n"); gets(b); if(strcmp(a,b)==0) printf("字符串相同!"); else printf("字符串不同!"); } //vc8 //prog1.cpp //输出100-200之间,能被3整除,但是不能被7整除的数。 #include<stdio.h> main() { int i; for(i=100;i<=200;i++) if(i%3==0&&i%7!=0) printf("%d\n",i); } //vc8 //prog2.cpp //将一个月份数字转换成月份的英文名称. #include<stdio.h> main() { int i; printf("请输入月份(1-12):\n"); scanf("%d",&i); switch(i) { case 1:printf("January\n");break; case 2:printf("February\n");break; case 3:printf("March\n");break; case 4:printf("April\n");break; case 5:printf("May\n");break; case 6:printf("June\n");break; case 7:printf("July\n");break; case 8:printf("August\n");break; case 9:printf("September\n");break; case 10:printf("Octobery\n");break; case 11:printf("November\n");break; case 12:printf("December\n");break; default:printf("error!\n");break; } } //vc8 //prog3.cpp //编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作直到排序成功. #include<stdio.h> main() { int i,j,temp1,temp2,a[5]={542,-14,90,-18,83}; printf("排序之前的数组为: "); for(i=0;i<5;i++) printf("%d ",a[i]); for(i=0;i<5;i++) { temp1=a[i]; for(j=i;j<5;j++) { if(temp1>a[j]) { temp1=a[j]; a[j]=a[i]; a[i]=temp1; } } } printf("\n排序后的数组为: "); for(i=0;i<5;i++) printf("%d ",a[i]); } //vc10 //prog1.cpp //从键盘输入一学生的成绩,判断学生成绩等级,如果成绩在90-100,等级为A,成绩在80-89,成绩为B,成绩在70-79,等级为C,成绩在60-69,等级为E,成绩小于60,等级为E. #include<stdio.h> main() { int i; printf("请输入学生成绩(0-100):\n"); scanf("%d",&i); if(i>=100||i<=0) printf("ERROR!\n"); else { switch(i/10) { case 9:printf("A\n");break; case 8:printf("B\n");break; case 7:printf("C\n");break; case 6:printf("D\n");break; default:printf("E\n");break; } } } //vc10 //prog2.cpp //输出100-1000间的全部素数; #include<stdio.h> main() { int i,j,s; for(i=100;i<=1000;i++) { for(j=2;j<i/2;j++) if(i%j==0) break; if(j==i/2) printf("%d ",i); } } //vc10 //prog3.cpp //编写程序,求出从键盘输入的字符串的长度(不能使用strlen()函数,要求用指针的知识.) #include<stdio.h> #include<string.h> int len(char a[]) { int i; char *p=a; for(i=0;i<10000;i++,*p++) { if(*p=='\0') break; } return i; } void main() { char a[1000]; gets(a); printf("字符串长度为%d",len(a)); } //vc11 //prog1.cpp //在主函数中从键盘输入若干个整数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,fun函数的功能是:计算数组元素中值为正整数的平均值(不含0), //例如:数组中的元素中的值依次为39,-47,21,2,-8,15,9;则程序的运行结果为19.250000.请改编fun函数,使他能得出正确的结果. #include<conio.h> #include<stdio.h> double fun (int x[]) { int i,j=0; double s=0; for(i=0;i<100;i++) { if(x[i]>0) { s+=x[i]; j++; } } return s/j; } main() { int x[1000],int i=0; printf("\nPlease enter some data (end with 0): "); do { scanf("%d",&x[i]);}while(x[i++]!=0); printf("%f\n",fun(x)); } //vc11 //prog2.cpp //编程,将一个数字字符串转换成一个整数(不得调用c语言提供的将字符串转换为整数的函数.)例如,若输入字符串"-1234",则函数把它转换成整数值-1234. #include<stdio.h> #include<string.h> int change(char a) { int i; switch(a) { case '0':i=0;break; case '1':i=1;break; case '2':i=2;break; case '3':i=3;break; case '4':i=4;break; case '5':i=5;break; case '6':i=6;break; case '7':i=7;break; case '8':i=8;break; case '9':i=9;break; } return i; } int fun(char x[]) { int i,j,k,n,s,m=0; if(x[0]=='-') {i=1;j=-1;k=strlen(x);} else {i=0;j=1;k=strlen(x);} for(i;i<k;i++) { s=change(x[i]); for(n=0;n<k-i-1;n++) s*=10; m+=s; } return m*j; } main() { char a[100]; gets(a); printf("\n%d",fun(a)); } } //vc11 //prog3.cpp //百马驮担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,编程计算有多少种驮法. #include<stdio.h> void main() { int b,m,l,i; for(b=0;b<=33;b++) for(m=0;m<=50;m++) { l=100-b-m; If((b*3+m*2+l/2==100)&&(l%2==0)) printf("大马为%d匹,中马为=%d匹,小马为=%d匹,总驮担%d担\n",b,m,l,b*3+m*2+l/2); } } //vc12 //prog1.cpp //编写fun函数,它的功能是:根据以下公式求P的值,结果由函数值带回,m与n为两个正整数且要求m>n.P=m!/n!(m-n)! #include <conio.h> #include <stdio.h> float fun(int m,int n) { int i; float s1,s2,s3; s1=s2=s3=1; if(m>n) { for(i=1;i<=m;i++) s1*=i; for(i=1;i<=n;i++) s2*=i; for(i=1;i<=m-n;i++) s3*=i; } return s1/(s2*s3); } main() { printf("p=%f\n",fun(12,8)); } //vc12 //prog2.cpp //求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并求这些数的个数. #include<stdio.h> main() { int i,s; for(i=1,s=0;i<=1000;i++) if((i%7==0||i%11==0)&&!(i%7==0&&i%11==0)) { printf("%d ",i); s++; } printf("\n总数为%d",s); } //vc12 //prog3.cpp //编程求一个3*3矩阵对角线元素之和 #include<stdio.h> main() { int a[3][3],i,j; printf("请输入一个3*3的矩阵\n"); for(i=0;i<3;i++) { for(j=0;j<3;j++) scanf("%d",&a[i][j]); } for(i=0;i<3;i++) { for(j=0;j<3;j++) printf("%d\t",a[i][j]); printf("\n"); } printf("主对角线元素之和是:%d\n",a[0][0]+a[1][1]+a[2][2]); printf("副对角线元素之和是:%d\n",a[0][2]+a[1][1]+a[2][0]); } //vc13 //prog1.cpp //下列程序中,函数fun的功能是:求以下分数序列的前n项之和,1/2,2/3,3/5,5/8,8/13,13/21,...和值通过函数值返回main函数. #include<stdio.h> double fun(int n) { int i; double s=0,j=1,k=2,temp; for(i=0;i<n;i++) { s+=j/k; temp=j; j=k; k=k+temp; } return s; } main() { int n; printf("Enter n:"); scanf("%d",&n); printf("\nThe result:%f\n",fun(n)); } //vc13 //prog2.cpp //编写程序,能对输入一行字符,统计其中分别有多少个单词和空格,比如输入:"How are you"有3个单词和2个空格. #include<stdio.h> #include<string.h> main() { int i,j; char a[100]; gets(a); for(i=0,j=0;i<strlen(a);i++) { if(a[i]==' ') j++; } printf("\n您输入的字符有%d个空格,%d个单词\n",j,j+1); } //vc13 //prog3.cpp //编写程序,求1+3+5+7+...+195+197+199的和 #include<stdio.h> main() { int i,s=0; for(i=1;i<200;i+=2) s+=i; printf("1+3+5+7+...+195+197+199=%d",s); } //vc14 //prog1.cpp //已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前3项之和,下列程序中, //函数fun的功能是:计算并输出该数列前N项的平方根之和sum,n的值通过形参传入. #include<conio.h> #include<stdio.h> #include<math.h> double fun(int n) { int i,a[1000]; a[0]=0;a[1]=0;a[2]=1; double sum=1; for(i=3;i<n;i++) { a[i]=a[i-3]+a[i-2]+a[i-1]; sum+=sqrt(a[i]); } return sum; } main() { int n; printf("Input N="); scanf("%d",&n); printf("%f\n",fun(n)); } //vc14 //prog2.cpp //编写程序,用简单选择方法对输入的10个整数排序(从大到小). #include<stdio.h> main() { int i,j,a[10],pos,t; printf("请输入10个整数:"); for(i=0;i<10;i++) scanf("%d",&a[i]); for(i=0;i<9;i++) { pos=i; for(j=i+1;j<10;j++) if(a[j]<a[pos]) pos=j; if(pos!=i) { t=a[i]; a[i]=a[pos]; a[pos]=t; } } for(i=0;i<10;i++) printf(" %d",a[i]); } //vc14 //prog3.cpp //编写程序,能实现输入10个数,将其中的最大值以及平均数输出 #include<stdio.h> main() { int i; float sum=0,m,n; printf("请输入10个数:\n"); for(i=0;i<10;i++) { scanf("%f",&m); if(i==0) n=m; sum+=m; if(n<m) n=m; } printf("最大值是%f,平均值是%f\n",n,sum/10); } //vc15 //prog1.cpp //下面程序中函数fun的功能是:根据整形参数m,计算如下公式的值,y=1+1/2!+1/3!+1/4!+...+1/m!,例如,若m=6,则应输出1.718056 #include<stdio.h> #include<conio.h> double fun(int m) { long float y=0.0; int i,j,n; for(j=1;j<=m;j++) { n=1; for(i=1;i<=j;i++) n*=i; y+=1.0/n; } return(y); } main() { int n; printf("Enter n:"); scanf("%d",&n); printf("\nThe result is %lf\n",fun(n)); } //vc15 //prog2.cpp //
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服