1、C语言上机程序题/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)s+=i;printf(%d,s);/vc
2、1/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个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。#in
3、clude main()int a10,i,s=0;for(i=0;i=0;i-)printf(%d ,ai);printf(n%d,s);/vc2/prog2.cpp/输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#includevoid 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+1)strcpy(b,aj);strcpy(aj,aj+1);strcpy
4、(aj+1,b);for(i=0;in;i+)puts(ai);/vc2/prog2.cpp/输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#includevoid 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;i+)puts(ai);/vc2/prog3.cpp/*某年级共有4个班,每班各有3
5、0名学生,有6个科目的考试成绩,要求输出每门课程最高分的学生、学号和姓名,并计算各班每个学生的平均成绩并输出。*/#include#define cla 4#define stu 30#define sub 6main() 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的学生的第%d科的成绩n,i+1,j+1,k+1); scanf(%f,&aijk); t=t+aijk; aveij=t
6、/sub; 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,aveij); /vc3/prog1.cpp/求从键盘上输入的10个数据(实数)中的最大值,并求和。#include main()int a10,i,m=0,s=0;for(i=0
7、;i10;i+)scanf(%d,&ai);if(mai)m=ai;s+=ai;printf(最大值是%dn总和是%dn,m,s);/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()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=
8、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;puts(b);/vc4/prog1.cpp/猜数游戏,假如设定一个整数m=123,然后让其他人从键盘上猜该数字,如果猜对,输出“RUGHT”,如果猜错,则
9、输出“WRONG”,并且指出设定的数字比输入的数字大还是小#include main()int m=123,a;while(1)printf(请输入您的猜测:n);scanf(%d,&a);if(a=m)printf(RIGHT);break;elseprintf(WRONG);if(am)printf(n该数字比您输入的小!);elseprintf(n该数字比您输入的大!);/vc4/prog2.cpp/编写程序,用于统计从键盘输入的字符串中的元音字母的个数。#include #include main()char a100;int i,s=0;gets(a);for(i=0;istrlen
10、(a);i+)if(ai=a|ai=e|ai=i|ai=o|ai=u|ai=A|ai=E|ai=I|ai=O|ai=U)s+;printf(%d,s);/vc4/prog3.cpp/编写程序求1-100中所有同构数的个数(一个自然数的平方的末几位与该数相同时,该数就为同构数,如252=625)#include 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的整数,
11、如是,则输出“YES”,否则输出“NO”#include main()int x;scanf(%d,&x);if(x%7|x=0)printf(NO);elseprintf(YES);/vc5/prog2.cpp/编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。#include #include #includeint cmp(char a,char
12、 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(口令正确!);break;elseprintf(口令错误!您还有%d次机会!,2-i);/vc5/prog3.cpp/编写实现求1!+2!
13、+.+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()int a34=23,4,15,98,122,-3441,29,33,123,1,-99,21;/这里自己修改int i,j,s=a00,m=0,n=0;for(i=0;i3;i+)for(j=0
14、;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;printf(最大元素是%d,位于第%d行第%d列,s,m+1,n+1);/vc6/prog2.cpp/求2000中含有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的
15、正整数的逆序数,并判断该数是否为回文数。#include#includemain()char a100,b100=0;int i,m;printf(请输入一个小于65535的正整数n);gets(a);m=strlen(a);for(i=0;im;i+)bm-i-1=ai;puts(b);if(strcmp(a,b)=0)printf(该数是回文数n);else printf(该数不是回文数n);/vc7/prog1.cpp/给出一个不多于5位的正整数,要求:求出其位数,分别打印每一位数字,最后按逆序打印出这个正整数#include#includemain()char a100,b100=0;
16、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,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);/
17、vc7/prog3.cpp/编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。#include#includemain()char a100,b100;printf(请输入字符串1:n);gets(a);printf(请输入字符串2:n);gets(b);if(strcmp(a,b)=0)printf(字符串相同!);elseprintf(字符串不同!);/vc8/prog1.cpp/输出100-200之间,能被3整除,但是不能被7整除的数。#includemain()int i;for(i=100;i=200;i+)if(i%3=0&i%7
18、!=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);break;case 3:printf(Marchn);break;case 4:printf(Apriln);break;case 5:printf(Mayn);break;case 6:printf(Junen);break;case 7:printf(J
19、ulyn);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);break;default:printf(error!n);break;/vc8/prog3.cpp/编写一程序,用简单选择排序实现对五个整数的排序(从小到大),排序的思路:首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将
20、它交换到第二个元素的位置,重复上述操作直到排序成功.#includemain()int i,j,temp1,temp2,a5=542,-14,90,-18,83;printf(排序之前的数组为: );for(i=0;i5;i+)printf(%d ,ai);for(i=0;i5;i+)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,成
21、绩为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(ERROR!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间的全部素数
22、;#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/编写程序,求出从键盘输入的字符串的长度(不能使用strlen()函数,要求用指针的知识.)#include#includeint 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,l
23、en(a);/vc11/prog1.cpp/在主函数中从键盘输入若干个整数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,fun函数的功能是:计算数组元素中值为正整数的平均值(不含0),/例如:数组中的元素中的值依次为39,-47,21,2,-8,15,9;则程序的运行结果为19.250000.请改编fun函数,使他能得出正确的结果.#include#includedouble fun (int x)int i,j=0;double s=0;for(i=0;i0)s+=xi;j+;return s/j;main()int x1000,int i=0;printf(nPlease e
24、nter some data (end with 0): );doscanf(%d,&xi);while(xi+!=0);printf(%fn,fun(x);/vc11/prog2.cpp/编程,将一个数字字符串转换成一个整数(不得调用c语言提供的将字符串转换为整数的函数.)例如,若输入字符串-1234,则函数把它转换成整数值-1234.#include#includeint 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;br
25、eak;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(x0=-)i=1;j=-1;k=strlen(x);else i=0;j=1;k=strlen(x);for(i;ik;i+)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/pr
26、og3.cpp/百马驮担问题,有100匹马,驮100担货,大马驮3担,中马驮2担,两匹小马驮1担,编程计算有多少种驮法.#includevoid 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()pr
27、intf(p=%fn,fun(12,8);/vc12/prog2.cpp/求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并求这些数的个数.#includemain()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+
28、)scanf(%d,&aij);for(i=0;i3;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函数.#includedouble fun(int n)int i;double s=0,j=1,k=2,temp;for(i=0;in;i+)s+=
29、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#includemain()int i,j;char a100;gets(a);for(i=0,j=0;istrlen(a);i+)if(ai= )j+;printf(n您输入的字符有%d个空格,%d个单词n,j,j+1);/v
30、c13/prog3.cpp/编写程序,求1+3+5+7+.+195+197+199的和#includemain()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#includedouble fun(int n)int i,a1000;a0=0;a1=0;a2=1;d
31、ouble 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个整数排序(从大到小).#includemain()int i,j,a10,pos,t;printf(请输入10个整数:);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i9;i+)pos=i;for(j=i+1;j10;j+)if(ajapos
32、)pos=j;if(pos!=i)t=ai;ai=apos;apos=t;for(i=0;i10;i+)printf( %d,ai);/vc14/prog3.cpp/编写程序,能实现输入10个数,将其中的最大值以及平均数输出#includemain()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)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 %lfn,fun(n);/vc15/prog2.cpp/