c语言上机题(最新整理)_第1页
c语言上机题(最新整理)_第2页
c语言上机题(最新整理)_第3页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、c 语言上机程序题209 宿舍14/vc1/prog1.cpp/设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。#include main()int a,b,c,temp; scanf(%d%d%d,&a,&b,&c); if(ab)temp=a; a=b; b=temp;if(bc)temp=b; b=c; c=temp;if(ac)temp=a; a=c; c=temp;printf(%d %d %dn,a,b,c);/vc1/prog2.cpp/求 1+3+5+.+95+97+99 的和。#include main()int i,s=0; for(i=1;i100;i=i+2)

2、s+=i; printf(%d,s);/vc1/prog3.cpp/写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)#include int fun(int m)int i,j=1; for(i=2;i=m/2;i+)if(!(m%i)j=0;break; elsej=1;return j;main()int m; while(1)scanf(%d,&m); if(fun(m)printf(此整数为素数);elseprintf(整数非素数);/vc2/prog1.cpp/从键盘输入 10 个整数,保存在一个数组中,将

3、这 10 个数逆序输出,然后求这 10 个数的和然后输出。#include main()int a10,i,s=0; for(i=0;i=0;i-)printf(%d ,ai);printf(n%d,s);/vc2/prog2.cpp/输入 n 个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#include void main()char a100100=0,b100=0;int n,i,j;for(n=0;n100;n+)gets(an); if(an0=0)break;for(i=1;i=n;i+) for(j=0;jn-i;j+)if(strcmp(aj,aj

4、+1)strcpy(b,aj);strcpy(aj,aj+1);strcpy(aj+1,b);for(i=0;in;i+)puts(ai);/vc2/prog2.cpp/输入 n 个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#include void main()char a100100=0,b100=0;int n,i,j; for(n=0;n100;n+)gets(an);if(an0=0)break;for(i=1;in;i+)for(j=0;j0)strcpy(b,aj);strcpy(aj,aj+1);strcpy(aj+1,b);for(i=0;in;

5、i+)puts(ai);/vc2/prog3.cpp/*某年级共有 4 个班,每班各有 30 名学生, 有 6 个科目的考试成绩,要求输出每门课程最高分的学生、学号和姓名,并计算各班每个学生的平均成绩并输出。*/#include #define cla 4#define stu 30#define sub 6 main()int i,j,k,m,n,h;float aclastusub,aveclastu,t,max; for(i=0;icla;i+)for(j=0;jstu;j+)t=0;for(k=0;ksub;k+)printf(请输入第%d 个班学 号 为 %d 的 学 生 的 第 %

6、d 科 的 成 绩n,i+1,j+1,k+1);scanf(%f,&aijk); t=t+aijk;aveij=t/sub;printf(最大值是%dn 总和是%dn,m,s);for(k=0;ksub;k+)max=0.0; for(i=0;icla;i+)for(j=0;jmax)max=aijk; m=i,n=j,h=k;printf(第%d 科成绩的最高分是第%d 个 班 学 号 为 %d 的 人 , 成 绩 为%f,h+1,m+1,n+1,max);for(i=0;icla;i+)for(j=0;jstu;j+)printf(第%d 班学号为%d 的学生的平均分为%f,i+1,j+1

7、,aveij);/vc3/prog1.cpp/求从键盘上输入的 10 个数据(实数)中的最大值,并求和。#include main()int a10,i,m=0,s=0; for(i=0;i10;i+)scanf(%d,&ai); if(mai)m=ai;s+=ai;/vc3/prog2.cpp/给出三角形的三边a,b,c,求三角形的面积。(应先判断三边是否构成三角形)#include #include int check(float a,float b,float c)int j;if(a+bc)&(a-bc)&(b-ac) j=1;else j=0; return j;main()floa

8、t 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(%fn,s);elseprintf(不能构成三角形);/vc3/prog3.cpp/编写程序求一个字符串的第 n 个字符开始、长度为 m 的子串#include main()char a100,b100=0;int m,n,i,j;gets(a);printf(请输入首位数,位数n); scanf(%d%d,&m,&n);for(i=m-1,j=0;in+m-1;i+,j+)bj=ai;

9、puts(b);/vc4/prog1.cpp/猜数游戏,假如设定一个整数 m=123,然后让其他人从键盘上猜该数字,如果猜对, 输出“rught”,如果猜错,则输出“wrong”,并且指出设定的数字比输入的数字大还是小#include main()int m=123,a; while(1)printf(请输入您的猜测:n); scanf(%d,&a);if(a=m)printf(right); break;int i,s=0; gets(a);for(i=0;istrlen(a);i+)if(ai=a|ai=e|ai=i|ai=o|ai=u|ai=a|ai=e|ai=i|ai=o| ai=u)

10、s+;printf(%d,s);/vc4/prog3.cpp/编写程序求 1-100 中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如 252=625) #include main()int i,j=0; for(i=1;im)printf(n 该数字比您输入的elseprintf(n 该数字比您输入的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”,否则输出“

11、no”#include /prog2.cpp/编写程序,用于统计从键盘输入的字符串中的元音字母的个数。#include #include main()char a100;main()int x; scanf(%d,&x); if(x%7|x=0)printf(no);elseprintf(yes);/vc5/prog2.cpp/编写一个密码检测的程序,在执行程序时, 要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示 “口令正确”,并转去执行后续程序,若不想等,重新输入,3 次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,

12、 而不使用系统的 strcmp 函数。#include #include #includeint cmp(char a,char b)int i,j,n; i=strlen(a)strlen(b)?strlen(a):strlen(b); for(n=0;ni;n+)if(an=bn)j=1;elsej=0;return j;main()char a100,b100; int i;printf(请设定密码:n); gets(a);system(cls);system(pause); for(i=0;i3;i+)printf(请输入密码:n); gets(b);if(cmp(a,b)printf

13、(口令正确!); break;elseprintf(口令错误!您还有%d次机会!,2-i);/vc5/prog3.cpp/编写实现求 1!+2!+.+10!. #include 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 的矩阵,求出其中的最大元素之及所在的行列号。#includemain()inta34=23,4,15,98,1

14、22,-3441,29,33,123,1,-99,21;/这里自己修改int i,j,s=a00,m=0,n=0; for(i=0;i3;i+)for(j=0;j4;j+)printf(%dt,aij); printf(n);for(i=0;i3;i+)for(j=0;j4;j+)if(saij)s=aij,m=i,n=j;bm-i-1=ai; puts(b); if(strcmp(a,b)=0)printf(最大元素是%d,位于第%d 行第%d 列,s,m+1,n+1);/vc6elseprintf(该数是回文数n); printf(该数不是回文数n);/prog2.cpp/求 2000 中

15、含有 5 的因子的个数。#includemain()int i,j,k,m,s=0; for(i=1;i=2000;i+)if(2000%i=0)m=i; for(j=0;j3;j+)if(m%10=5)s+;break; elsem=m/10;printf(%d,s);/vc6/prog3.cpp/求任意一个小于 65535 的正整数的逆序数,并判断该数是否为回文数。#include#include main()char a100,b100=0;int i,m;printf(请输入一个小于65535 的正整数n);gets(a); m=strlen(a); for(i=0;im;i+)/vc

16、7/prog1.cpp/给出一个不多于 5 位的正整数,要求:求出其位数,分别打印每一位数字,最后按逆序打印出这个正整数#include #include main()char a100,b100=0;int i,m;printf(请输入一个小于 5 位的正整数n);gets(a); m=strlen(a); for(i=0;im;i+)printf(%c ,ai);bm-i-1=ai;puts(b);/vc7/prog2.cpp/求一个 4 行 4 列矩阵主对角线元素之和。#includemain()int i,j,m=0,a44=1,23,7,-12,56,1,12,- 88,34,177

17、,1,46,14,56,-89,1;for(i=0;i4;i+)for(j=0;j4;j+)printf(%dt,aij); if(i=j)m+=aij;printf(n);printf(主对角线元素之和是%dn,m);/vc7/prog3.cpp/编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”, 否则输出“字符串不同”。#include #include main()char a100,b100;printf(请输入字符串 1:n); gets(a);printf(请输入字符串 2:n); gets(b);if(strcmp(a,b)=0)printf(字符串相

18、同!);elseprintf(字符串不同!);/vc8/prog1.cpp/输出 100-200 之间,能被 3 整除,但是不能被 7 整除的数。#include main()int i; for(i=100;i=200;i+)if(i%3=0&i%7!=0) printf(%dn,i);/vc8/prog2.cpp/将一个月份数字转换成月份的英文名称. #includemain()int i;printf(请输入月份(1-12):n); scanf(%d,&i);switch(i)case 1:printf(januaryn);break; case 2:printf(februaryn);

19、break; case 3:printf(marchn);break; case 4:printf(apriln);break; case 5:printf(mayn);break; case 6:printf(junen);break; case 7:printf(julyn);break; case 8:printf(augustn);break;case 9:printf(septembern);break; case 10:printf(octoberyn);break; case 11:printf(novembern);break; case 12:printf(decembern

20、);break; default:printf(error!n);break;/vc8/prog3.cpp/编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:首先从n 个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的 n-1 个整数中选出值最大的整数,将它交换到第二个元素的位置, 重 复 上 述 操 作 直 到 排 序 成 功 . #includemain()inti,j,temp1,temp2,a5=542,-14,90,- 18,83;printf(排序之前的数组为: ); for(i=0;i5;i+)printf(%d ,ai); for(i=0;i5;i

21、+)temp1=ai; for(j=i;jaj)temp1=aj; aj=ai; ai=temp1;printf(n 排序后的数组为: );for(i=0;i5;i+)printf(%d ,ai);/vc10/prog1.cpp/从键盘输入一学生的成绩,判断学生成绩等级,如果成绩在 90-100,等级为 a,成绩在80-89,成绩为 b,成绩在 70-79,等级为 c,成绩在 60-69,等级为 e,成绩小于 60,等级为 e. #includemain()int i;printf(请输入学生成绩(0-100):n); scanf(%d,&i);if(i=100|i=0)printf(erro

22、r!n);elseswitch(i/10)case 9:printf(an);break; case 8:printf(bn);break; case 7:printf(cn);break; case 6:printf(dn);break; default:printf(en);break;/vc10/prog2.cpp/输出 100-1000 间的全部素数; #includemain()int i,j,s; for(i=100;i=1000;i+)for(j=2;ji/2;j+) if(i%j=0) break; if(j=i/2)printf(%d ,i);/vc10/prog3.cpp/

23、编写程序,求出从键盘输入的字符串的长度(不能使用 strlen()函数,要求用指针的知识). #include#include int len(char a)int i;char *p=a; for(i=0;i10000;i+,*p+)if(*p=0) break;return i;void main()char a1000; gets(a);printf(字符串长度为%d,len(a);/vc11/prog1.cpp/在主函数中从键盘输入若干个整数放入数组中,用 0 结束输入,并放在最后一个元素中, 下列程序中,fun 函数的功能是:计算数组元素中值为正整数的平均值(不含 0),/例如:数组

24、中的元素中的值依次为 39,-47, 21, 2, -8, 15, 9;则程序的运行结果为19.250000.请改编 fun 函数,使他能得出正确的结果.#include #include double fun (int x)int i,j=0; double s=0;for(i=0;i0)s+=xi; j+;return s/j;int i,j,k,n,s,m=0;if(x0=-)i=1;j=-1;k=strlen(x); elsei=0;j=1;k=strlen(x); for(i;ik;i+)main()int x1000,int i=0;printf(nplease enter som

25、e data (end with 0): );doscanf(%d,&xi);while(xi+!=0); printf(%fn,fun(x);/vc11/prog2.cpp/编程,将一个数字字符串转换成一个整数(不得调用 c 语言提供的将字符串转换为整数的函数.)例如,若输入字符串-1234,则函数 把 它 转 换 成 整 数 值 -1234. #include#include 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; ca

26、se 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)s=change(xi); for(n=0;nk-i-1;n+)s*=10; m+=s;return m*j;main()char a100; gets(a);printf(n%d,fun(a);/vc11/prog3.cpp/百马驮担问题,有 100 匹马,驮 100 担货,大马驮 3 担,中马驮 2 担,两匹小马驮 1 担,编程计算有多

27、少种驮法.#include void main()int b,m,l,i; for(b=0;b=33;b+)for(m=0;mn.p=m!/n!(m-n)!#include #include float fun(int m,int n)int i;float s1,s2,s3; s1=s2=s3=1;if(mn)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=%fn,fun(12,8);/vc12/prog2.cpp/求出 1 到 1000

28、之内能被 7 或 11 整除,但不能同时被 7 和 11 整除的所有整数,并求这些数的个数.#include 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 矩阵对角线元素之和#includemain()int a33,i,j;printf(请输入一个 3*3 的矩阵n); for(i=0;i3;i+)for(j=0;j3;j+) scanf(%d,&aij);for(i=0;i3;

29、i+)for(j=0;j3;j+)printf(%dt,aij); printf(n);printf(主 对 角 线 元 素 之 和是:%dn,a00+a11+a22);printf(副 对 角 线 元 素 之 和是:%dn,a02+a11+a20);/vc13/prog1.cpp/下列程序中,函数 fun 的功能是:求以下分数序 列 的 前 n 项 之和,1/2,2/3,3/5,5/8,8/13,13/21,.和值通过函数值返回 main 函数.#include double fun(int n)int i;double s=0,j=1,k=2,temp; for(i=0;in;i+)s+=

30、j/k; temp=j; j=k; k=k+temp;return s;main()int n; printf(enter n:);scanf(%d,&n);printf(nthe result:%fn,fun(n);/vc13/prog2.cpp/编写程序,能对输入一行字符,统计其中分别有多少个单词和空格,比如输入:how are you 有 3 个 单 词 和 2 个 空 格 . #include#include main()int i,j;char a100; gets(a);for(i=0,j=0;istrlen(a);i+)if(ai= )j+;printf(n 您 输 入 的 字

31、符 有 %d 个 空格,%d 个单词n,j,j+1);/vc13/prog3.cpp/编写程序,求 1+3+5+7+.+195+197+199 的和#include main()int i,s=0; for(i=1;i200;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#include #includ

32、e double fun(int n)int i,a1000; a0=0;a1=0;a2=1;double sum=1; for(i=3;in;i+)ai=ai-3+ai-2+ai-1; sum+=sqrt(ai);return sum;main()int n;printf(input n=); scanf(%d,&n);printf(%fn,fun(n);/vc14/prog2.cpp/编写程序,用简单选择方法对输入的 10 个整数排序(从大到小).#include main()int i,j,a10,pos,t;printf(请输入 10 个整数:); for(i=0;i10;i+)sca

33、nf(%d,&ai); for(i=0;i9;i+)pos=i; for(j=i+1;j10;j+)if(ajapos) pos=j;if(pos!=i)t=ai; ai=apos; apos=t;n=1;for(i=1;i=j;i+) n*=i;y+=1.0/n;for(i=0;i10;i+) printf( %d,ai);return(y);/vc14/prog3.cpp/编写程序,能实现输入 10 个数,将其中的最大值以及平均数输出#include main()main()int n; printf(enter n:);scanf(%d,&n);printf(nthe result is

34、 %lfn,fun(n);int i;float sum=0,m,n;printf(请输入 10 个数:n); for(i=0;i10;i+)scanf(%f,&m); if(i=0)n=m; sum+=m; if(nm)n=m;printf( 最 大 值 是 %f, 平 均 值 是%fn,n,sum/10);/vc15/prog1.cpp/下面程序中函数 fun 的功能是:根据整形参数 m, 计 算 如 下 公 式 的值 ,y=1+1/2!+1/3!+1/4!+.+1/m!, 例 如 , 若m=6,则应输出 1.718056 #include #includedouble fun(int m

35、)long float y=0.0; int i,j,n; for(j=1;j=m;j+)/vc15/prog2.cpp/编写程序,求 1!+2!+3!+.+9!+10!的和. #includemain()int i,j,sum=0,temp; for(i=1;i=10;i+)temp=1; for(j=1;j=i;j+)temp*=j; sum+=temp;printf(%d,sum);/vc15/prog3.cpp/某幼儿园只收 26 岁的小孩,23 岁编入小班,4 岁编入中班,56 岁编入大班,编写程序实现没输入一个年龄,输出应编入什么班. #includemain()int i;pri

36、ntf(请输入您的小孩的年龄:n); scanf(%d,&i);if(i6|i2)printf(非适龄儿童,该院不予接受!n);elseswitch (i)case 2:case 3:printf(您的小孩应编入/vc16/prog2.cpp/读入一个整数 m(5m20),调用函数 rnd 获得m 个随机数,将这m 个随机整数从小到大排序.#include小班!n);break;case 4:printf(您的小孩应编入中班!n);break;default:printf(您的小孩应编入大班!n);break;/vc16/prog1.cpp/运用函数 fun,用下面的公式求 n 的近似值, 知

37、道最后一项的绝对值小于制定的数(参数num)为止 /4=1-1/3+1/5-1/7+.例如,运行程序后,输入 0.0001,则程序输出 3.1414 #include#include float fun(float num)int flag=1;float sum=0,n=1; while(1)if(1/n)num) break;sum+=flag/n; n+=2;flag*=-1;return sum*4;void main()float n1,n2;printf(enter a float number:); scanf(%f,&n1);n2=fun(n1); printf(%6.4f,n2);#include main()int i,j,temp,m,a20;scanf(%d,&m); for(i=0;im;i+)ai=rand(); for(i=0;im;i+)for(j=0;jaj+1)temp=aj+1; aj+1=aj; aj=temp;for(i=0;im;i+) p

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论