1、C语言上机试题答案/vc1/prog1.cpp/设计一个程序,从键盘输入三个整数,按由小到大的顺序输出。#includestdio.hmain() int a3,i,j,t; for(i=0;i3;i+) scanf(%d,&ai); for(i=0;i9;i+) /*此处的i可以小于任意一个大于6的整数*/ for(j=0;jaj+1) t=aj,aj=aj+1,aj+1=t; printf(The three data from small to big is:); for(i=0;i3;i+) printf(%d ,ai);/vc1/prog2.cpp/求1+3+5+.+95+97+99
2、的和。#includestdio.hmain() int i,sum=0; for(i=1;i100;i=i+2) sum+=i; printf(1+3+5+.+99=%dn,sum);/vc1/prog3.cpp/写一个函数,从键盘输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。(注:要求从主函数输入整数)#includestdio.hmain() int i,j,k,l=2; printf(输入一个大于3的整数:); scanf(%d,&i); for(j=2;ji;j+) k=i%j; if(k=0) break; else l+; if(l=k) pri
3、ntf(这是个素数!n); else printf(这不是素数!n);/vc2/prog1.cpp/从键盘输入10个整数,保存在一个数组中,将这10个数逆序输出,然后求这10个数的和然后输出。#includestdio.hmain() int a10,i,sum=0; printf(输入10个整数:); for(i=0;i=0;i-) printf(%d ,ai); for(i=0;i10;i+) sum+=ai; printf(The total is:%dn,sum);/vc2/prog2.cpp/输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#inclu
4、devoid 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(aj+1,b); for(i=0;in;i+) puts(ai);/vc2/prog2.cpp/输入N个国家的英文名,要求按字母的先后顺序排列,并按照顺序输出。#include#includevoid main() char a1001
5、00=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个班,每班各有30名学生,有6个科目的考试成绩,要求输出每门课程最高分的学生、学号和姓名,并计算各班每个学生的平均成绩并输出。*/#include#define cla 4#define stu 30#define sub
6、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/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科成绩的最高分是
7、第%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;i10;i+) scanf(%d,&ai); if(mai) m=ai; s+=ai; printf(最大值是%dn总和是%dn,m,s);/vc3/prog2.cpp/给出三角形的三边A,B,C,求三
8、角形的面积。(应先判断三边是否构成三角形)#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=sqrt(p*(p-a)*(p-b)*(p-c); printf(%fn,s); else printf(不能构成三角形);/vc3/prog3.cpp/编写程序求一个字符
9、串的第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”,如果猜错,则输出“WRONG”,并且指出设定的数字比输入的数字大还是小#include main() int m=123,a;while(1) printf(请
10、输入您的猜测:n); scanf(%d,&a); if(a=m) printf(RIGHT); break; else printf(WRONG); if(am) printf(n该数字比您输入的小!); else printf(n该数字比您输入的大!); /vc4/prog2.cpp/编写程序,用于统计从键盘输入的字符串中的元音字母的个数。#include #include main() char a100; 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|a
11、i=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的整数,如是,则输出“YES”,否则输出“NO”#include main() int x; scanf
12、(%d,&x); if(x%7|x=0) printf(NO); else printf(YES);/vc5/prog2.cpp/编写一个密码检测的程序,在执行程序时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数比较输入密码和标准密码是否相等,若当等,则显示“口令正确”,并转去执行后续程序,若不想等,重新输入,3次都不相等则终止程序的执行。要求自己编写一个字符串比较函数,而不使用系统的strcmp函数。#include #include #includeint cmp(char a,char b) int i,j,n; i=strlen(a)strlen(b)?strlen
13、(a):strlen(b); for(n=0;ni;n+) if(an=bn) j=1; else j=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; else printf(口令错误!您还有%d次机会!,2-i); /vc5/prog3.cpp/编写实现求1!+2!+.+10!.#include int
14、 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;j4;j+
15、) 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; else m=m/10; printf(%d,s);/vc6/prog3.cpp/求任
16、意一个小于65535的正整数的逆序数,并判断该数是否为回文数。#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#includem
17、ain() 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,1,46,14,56,-89,1; for(i=0;i4;i+) for(j=0;j4;j+) printf(%dt,aij); if(i=j) m+=a
18、ij; printf(n); printf(主对角线元素之和是%dn,m);/vc7/prog3.cpp/编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。#include#includemain() char a100,b100; 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整除的数。#in
19、cludemain() 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);break; case 3:printf(Marchn);break; case 4:printf(Apriln);break; case 5:
20、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);break; default:printf(error!n);break; /vc8/prog3.cpp/编写一程序,用简单选择排序实现对
21、五个整数的排序(从小到大),排序的思路:首先从n个整数中选出值最大的,将它交换到第一个元素位置,再从剩余的n-1个整数中选出值最大的整数,将它交换到第二个元素的位置,重复上述操作直到排序成功.#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;
22、i+) printf(%d ,ai);/vc9/prog1.cpp/编写一个程序,实现从键盘输入一组数据,求该组整数的平均值,并将大于平均值的整数输出.#includemain() int a100,i,sum=0,n; double avg; printf(请输入您要输入的数据个数,按Enter结束n); scanf(%d,&n); printf(请输入数据:n); for(i=0;in;i+) scanf(%d,&ai); sum+=ai; avg=sum/n; printf(该组数据的平均值是:%6.2fn,avg); for(i=0;iavg) printf(%dt,ai); /vc9
23、/prog2.cpp/编写程序,输出形状为直角三角形的九九乘法表.#includemain() int i,j; for(i=1;i=9;i+) for(j=1;j=i;j+) printf(%d*%d=%d ,j,i,i*j); printf(n); /vc9/prog3.cpp/编写一个程序,判断某字符串在主串中出现的次数,字符串及主串均从键盘输入,例如主串为asdas as d as,字符串为as,则出现4次.#include#includemain() char a100,s100; int i,j,flag,sum=0; printf(请输入主串n); gets(a); printf(请输入子串n); gets(s); for(i=0;istrlen(a);i+) flag=0; for(j=0;jstrlen(s);j+) if(sj=ai+j) flag+; if(flag=strlen(s) sum+; printf(%d,sum);/vc10/prog1
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1