




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
c语言上机试题1(1)设计一个程序,从键盘输入3个整数,按由小到大的顺序输出。#includevoid main()int x,y,z,temp;printf(Input x,y,z=);scanf(%d,%d,%d,&x,&y,&z);if(xy)temp=x;x=y;y=temp;if(xz)temp=x;x=z;z=temp;if(yz)temp=y;y=z;z=temp;printf(%d,%d,%dn,x,y,z);1(2)求1+3+5+7+95+97+99的和。#includevoid main()int s,i;s=0;for(i=1;i100;i=i+2)s+=i;printf(1+3+5+.+99=%dn,s);1.(3)写一个函数,从建安输入一个整数,如果该整数为素数,则输出“此整数为素数”,否则输出“整数非素数”。(注:从主函数输入整数)#include#includevoid main()int a,m,i=2;scanf(%d,&a);m=sqrt(a);for(i=2;im)printf(此整数是素数);elseprintf(此整数不是素数);2(1)连续输入10个整数.将这10个数逆序输出,然后求出这10个数的和并输出。#include main()short i,a10,total=0;printf(请连续输入10个整数: );for(i=0;i=0;i-)printf(%5d,ai);for(i=0;i10;i+)total=total+ai;printf(n这10个整数的和为:%dn,total);2(2)输入N个国家的英文名,要求按字母先后顺序排列,并按照顺序输出。#include#includeint main()char str10020,t20;int i,j,n;printf(Input the number of countries:n);scanf(%d,&n);printf(Input %d countries,please!n,n);for(i=0;in;i+)scanf(%s,stri);for(i=0;in-1;i+)for(j=i+1;j0)strcpy(t,stri);strcpy(stri,strj);strcpy(strj,t);for(i=0;in;i+)printf(%sn,stri);2(3)某年级共有4个班,每班各有30名学生,有6个科目的考试成绩。求各班每个学生的平均成绩并输出。#include#define N1 4#define N2 30#define N3 6main()float scoreN1N2N3,studavN1N2;int i,j,k;float sum;for(i=0;jN1;i+)for(j=0;jN2;j+)for(k=0;kN3;k+)printf(请输入%d班学号为%d的学生的科目%d成绩score%d%d%d:,i+1,j+1,k+1,i,j,k);scanf(%f,&scoreijk);for(i=0;jN1;i+)for(j=0;jN2;j+)sum=0;for(k=0;kN3;k+)sum=sum+scoreijk;studavij=sum/N3;printf(%d班学号为%d的学生的平均成绩studav%d%d:%fn,i+1,j+1,i,j,studavij);3(1)求从键盘上输入10个数据(实数)中的最大值,并求和。#includeint main()int a10,sum=0;for(int i=0;i10;i+) scanf(%d,&ai);sum+=ai;for(int j=1;j10;j+)if(a0aj)a0=aj;printf(%d %d n,sum,a0);3(2)给出三角形的三边A,B,C,求三角形的面积。#include#includemain()float a,b,c,p,s;scanf(%f%f%f,&a,&b,&c);if(a+b-c0&b+c-a0&a+c-b0)p=(a+b+c)/2;s=sqrt(p*(p-a)*(p-b)*(p-c);printf(%fn,s);elseprintf(不能构成三角形!);3(3)编写程序求一个字符串的第n个字符开始,长度为m的子串。#includemain()char s100;int n,m;gets(s);scanf(%d%d,&n,&m);for(int i=n-1,k=0;km;i+,k+)printf(%c,si);printf(n);4(1)猜数游戏,加入设定一个整数m=123,然后让其他人从键盘上猜该数字,如果才对,输出RIGHT,如果猜错,则输出WRONG,并且指出审定的数字比输入的数字大还是小。#includevoid main()int n,m;m=123;doprintf(请输出你猜测的数字:);scanf(%d,&n);if(nm)printf(您输入的数字大了!n);elseprintf(恭喜你答对了!n);while(n!=m);4(2)编写程序,用于统计从键盘输入的字符串中的原音字母(a,A,e,E,i,I,o,O,u,U)的个数。#includevoid main()int n=0;char s100;printf(请输入需要统计的的字段:n);gets(s);for(int i=0;si!=0;i+)if(si=a|si=A|si=e|si=E|si=i|si=I|si=o|si=O|si=u|si=U)n+;printf(%dn,n);4(3)编写程序求1-100中所有同构数的个数。(一个自然数的平方的末几位与改数相同时该数就是同构数)#includemain()int x;for(x=1;x=100;x+)if(x*x%10=x|x*x%100=x)printf(%5d,x);printf(n);5(1)从键盘接收一整数x,判断X是否为含有因子7的正整数,如果是泽输出YES,否泽输出NO。#includevoid mian()int x;printf(输入一个整数 x=);scanf(%d,&x);if(x%7=0)printf(YESn);elseprintf(NOn);5(2)编写一个密码检测的程序,在程序执行时,要求用户输入密码(标准密码自己预先设定),然后通过字符串比较函数输入密码和标准密码是否相等,若相等,则显示“口令正确”,并并专区执行后继程序;若不相等,重新输入,3次不都不相等泽种植程序的执行。要求自己编写一个字符串比较函数,而不使用系统的STRCMP()函数。#include#includebool cmp(char s20)char mi=hello word!;int len=strlen(mi);if(len=strlen(s)for(int i=0;ilen;i+)if(mii!=si)return false;else return true;return false;int main()char s20,n=1;dogets(s);if(cmp(s)printf(口令正确);break;n+;while(n=3);5(3)编写首先求s=1!+2!+3!+.+10!.#includemain()long int s=0,p=1;int n;for(n=1;n=10;n+)p=p*n;s=s+p;printf(%1dn,s);6(1)编写程序,等对一给丁的3*4的矩阵,求出其中的最大元素值极其所在的行列号。#includevoid main()int a34,b12,i,j,k;for(i=0;i3;i+)for(j=0;j4;j+)printf(a%d%d=,i,j);scanf(%d,&aij);for(k=0,i=0;i3;i+)for(j=0;j4;j+,k+)bk=aij;for(i=0;i11;i+)for(j=0;jbj+1)int temp;temp=bj;bj=bj+1;bj+1=temp;for(i=0;i3;i+)for(j=0;j4;j+)if(b11=aij)printf(最大元素在第%d行,第%d列n,i+1,j+1);printf(这个元素为:%dn,b11)6(2)求2000中含有的5的因子的个数。#includeint fun(int n)int s=0,k;for(k=2;k=n;k+)if(k%5=0)s+;return s;main()printf(%dn,fun(2000);6(3)求任意一个小于65535的正整数的逆序数,并判断概述是否为回文数。#includevoid main()int a,b,c,d,e,num,num1;printf(请输入一个小于65535的正整数:);scanf(%d,&num);a=num/10000;b=num%10000/1000;c=num%1000/100;d=num%100/10;e=num%10;if(num9999)printf(逆序后为: %d%d%d%d%dn,e,d,c,b,a);num1=e*10000+d*1000+c*100+b*10+a;if(num1=num)printf(改数为回文数!n);else if(num999)printf(逆序后为: %d%d%d%dn,c,d,c,b);num1=e*1000+d*100+c*10+b;if(num1=num)printf(改数为回文数!n);else if(num99)printf(逆序后为: %d%d%dn,e,d);num1=e*100+d*10+c;if(num1=num)printf(改数为回文数!n);else if(num9)printf(逆序后为: %d%dn,e,d);num1=e*10+d;if(num1=num)printf(改数为回文数!n);elseprintf(逆序后为: %dn,e);printf(改数为回文数!n);7(1)给一个不多余5位的正整数,要求:求出其位数,并分别打印出每一位数字,最后安妮需打印出这个正整数。#includevoid main()int a,b,c,d,e,num;printf(请输入一个不多余5位的正整数:);scanf(%d,&num);a=num/10000;b=num%10000/1000;c=num%1000/100;d=num%100/10;e=num%10;if(num9999)printf(逆序后为: d%d%d%d%dn,e,d,c,b,a);else if(num999)printf(逆序后为: d%d%d%dn,e,d,c,b);else if(num99)printf(逆序后为: d%d%dn,e,d,c);else if(num9)printf(逆序后为: %d%dn,e,d);else printf(逆序后为: %dn,e);7(2)求一个4行4列矩阵主对角线元素之和。#includeint main()int i,j,a44;for(i=0;i4;i+)for(j=0;j4;j+)scanf(%d,&aij);printf(%dn,a00+a11+a22+a33+a03+a12+a21+a30);7(3)编写一个程序,判断从键盘输入的两个字符串是否相同,若相同则输出“字符串相同”,否则输出“字符串不同”。#include#define N 20int strcmp(char str1,char str2)int i=0;while(str1i=str2i & str1i!=o & str2i!=o)i+;return str1i-str2i;void main()char str1N,str2N;printf(请输入第一个字符串: );gets(str1);printf(请输入第二个字符串: );gets(str2);if(strcmp(str1,str2)=0)printf(字符串相同!n);elseprintf(字符串不同!n);8(1) 输出100-200之间,能被3整除但不能被7整除的数。#includevoid main()int i;for(i=100;i=200;i+)if(i%3=0)&(i%7!=0)printf(%dt,i);8(2)将一个月份数字转换证月份的英文名称.#includevoid main()char*str=January,February,March,April,May,June,July,Augest,September,October,November,December;char *p=str;int i;scanf(%d,&i);printf(%sn,pi-1);8(3) 编写一个程序,用简单的选择排序实现对5个整数的排序(从大到小),排序思路:首先从n个整数中选出数值最大的证书,将他交换到第一个元素位置,在从剩余的N-1个整数中选出数值最大的整数,将他交换到第二个元素位置上,抽工夫上述操作,知道排序成功。#include#define N 5void smp(int r,int n)int i,j,k;int temp;for(i=0;in;i+)for(j=i+1;jn;j+)if(rirj)temp=ri;ri=rj;rj=temp;main()int i,aN;printf(请输入%d个整数:n,N);for(i=0;iN;i+)scanf(%d,&ai);smp(a,N);printf(排列后的输出为:n);for(i=0;iN;i+)printf(%5d,ai);9(1)编写一个程序,实现从键盘输入一组整数,求该组整数的平均值,并将大于平均值的整数输出#includemain()int sum=0,i,j=0,a10,b10;for(i=0;i10;i+)scanf(%d,&ai);sum+=ai;for(i=0;isum/10)bj=ai;j+;for(i=0;ij;i+)printf(%dn,bi);9(2)编写程序,输形状为直角三角形的九九乘法表。#includemain()int a,b;for(a=1;a10;a+)for(b=1;b=a;b+)printf(%d*%d=%d,a,b,a*b );if(a*b)=(b*a)printf(n);9(3)编写一个程序,判断某字符串中出现的次数,字符串及主串均从键盘输入。#include#includemain()char s100,ch10;int n=0;gets(s);gets(ch);int len1=strlen(s),len2=strlen(ch);for(int i=0;ilen1;i+)if(si=ch0)int m=1;for(int j=1;jlen2;j+)if(si+j=chj)m+;if(m=len2)n+;printf(%dn,n);10(1)从键盘输入一个学生的成绩,判断学生成绩登记,如果成绩在90-100,等级为A,成绩在80-89,等级为B,成绩在70-79,等级为C,成绩在60-69,等级为D,成绩小于60,等级为E.#includevoid main()int score;printf(请输入该生的成绩:);scanf(%d,&score);if(score89)printf(等级 An);else if(score79)printf(等级 Bn);else if(score69)printf(等级 Cn);else if(score59)printf(等级 Dn);elseprintf(等级 En);10(2)输入100-1000之间的全部素数。#includevoid main()int n,i,m;for(n=10;n=1000;n+)for(i=2;in;i+)m=n%i;if(m=0)break;if(m!=0)printf(%dt,n);10(3)编写程序,求从键盘输入的字符串的长度。#includeint strlen(char str)int i;for(i=0;stri!=0;i+);return i;void main()char str50;printf(请输入字符串: );gets(str);printf(字符串长度为: %dn,strlen(str);11(1)在主函数中从键盘输入若干个数放入数组中,用0结束输入,并放在最后一个元素中,下列程序中,函数fun的功能是:计算数组元素中值为正数的平均值。#include#includedouble fun(int x)int a1000;int i,j=0,k=0;double s=0;while(xj!=0)if(xj0)ak=xj;k+;j+;for(i=0;ik;i+)s+=ai;return s/k;main()int x1000;int i=0;printf(nPlease enter some data (end with0);doscanf(%d,&xi);while(xi+!=0);printf(%fn,fun(x);11(2)编程:讲一个数字字符串传换成一个整数。列入,若输入字符串“-1234”,则函数把它传唤为整数值-1234。#include#include#define N 10main()char strN;int i=0,flag=0;long num=0;printf(请输入连续数字字符(最多10位数字): );gets(str);while(stri!=0&stri!=a)if(stri=-)flag=1;elseif(stri=+)flag=0;elsenum=num*10+(stri-0);i+;if(flag=1)num=-num;printf(有数字字符串转化成整数是: %dn,num);11(3)百马百担问题,有100匹马,驼100担货,大马担3担,中马担2担,两匹小马担一担,编程计算共有多少种驼法。#includemain()int a,b,c,s=0;for(a=0;a=33;a+)for(b=0;b=50;b+)for(c=0;c=100;c=c+2)if(100=3*a+2*b+c/2&a+b+c=100)s+;printf(共有驼法: %d种n,s);12(1)编写函数fun,他的功能是:根据以下公式求p的值,结果由函数值待会。m与n为两个正整数且要求m/n。#includefloat fun(float x)if(x0)return x*fun(x-1);elsereturn 1;void main()int m,n;float P;inx:printf(请输入m,n的值: );scanf(%d,%d,%d,&m,&n);if(nm)printf(输入有误,请重新输入!n);goto inx;P=fun(m)/(fun(n)*fun(m-n);printf(P的值为: %.ofn,P);12(2)求出1到1000之内能被7或11整除,但不能同时被7和11整除的所有整数,并求这些数的个数。#includevoid main()int i,j;j=0;printf(符合条件的数有: n);for(i=1;i=1000;i+)if(i%7=0|i%11=0)&!(i%7=0&i%11=0)printf(%dt,i);j+;printf(一共有%d个n,j);12(3)编程求一个3*3矩阵对角线元素之和。#includevoid main()int a33,i,j,s;printf(按照横排列顺序输入矩阵中的数字: n);for(i=0;i3;i+)for(i=0;i3;i+)printf(a%d%d=,i,j);scanf(%d,&aij);s=a00+a11+a22+a02+a20;printf(矩阵对角线之和为: %dn,s);13(1)下列程序中,函数fun的功能是:求以下分数序列的前n项之和。1/2,2/3,3/5,5/8,8/13,13/21,和值通过函数值返回main函数。例如,若n的值为:5,则应输出:3.007051。#include double fun( int n ) int i;double x=1,y=2,t;double s=x/y;for(i=1;in;i+)t=x;x=y;y=t+x;s+=x/y;return s;main() int n;printf(Enter n: ); scanf(%d, &n);printf(nThe result : %f n, fun(n);13(2) 编写程序,能对输入一行字符,统计其中分别有多少个单词和空格。比如输入:”How are you”,有3个单词和2个空格。#include int main(void) char str81;int i=0,flag=0,word=0,blank=0;printf(please enter a line of characters!n);gets(str);while( stri!=0 )if(stri= )blank+;flag=0;elseif( flag=0 )word+;flag=1;i+;printf(word=%d,blank=%dn,word,blank);13(3)编写程序,求1+3+5+7+195+197+199的和。#include int main(void) int i;long sum=0;for(i=1;i200;i=i+2)sum+=i;printf(sum=%ldn,sum);14(1)已知一个数列从第0项开始的前三项分别为0,0,1,以后的各项都是其相邻的前三项之和。下列程序中,函数fun的功能是:计算并输出该数列前n项的平方根之和sum。n的值通过形参传入。例如,当n=10时,程序的输出结果应为:23.197745。#include #include #include double fun(int n) int i;int p100;double sum=0;p0=p1=0;p2=1;for(i=3;in;i+)pi=pi-3+pi-2+pi-1;for(i=0;in;i+)sum+=sqrt(pi);return sum;main ( ) int n;printf(Input N=);scanf(%d, &n);printf(%fn, fun(n);14(2)编写程序,用简单选择排序方法对输入的10个整数排序(从大到小)。#include #define N 10int main(void)int i,j,temp,aN;printf(please enter 10 integers:n);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;iN;i+)for(j=i+1;jN;j+)if(aiaj)temp=ai;ai=aj;aj=temp;for(i=0;i10;i+)printf(%dt,ai);14(3)编写程序,能实现输入10个数,将其中的最大值以及平均数输出。#include #define N 10int main(void)int i,max,aN;double sum=0;printf(please enter %d integers:n,N);scanf(%d,&a0);max=a0;sum+=a0;for(i=1;imax)max=ai;sum+=ai;printf(max=%d,ave=%fn,max,sum/N);15(1)下面程序中函数fun的功能是:根据整型形参m,计算如下公式的值:y=1+12!+13!+14!+.+1m! 例如:若m=6,则应输出:1.718056。#include#includedouble fun(int m)double x=1,y=0;int i;for(i=1;im+1;i+)x*=i;y+=1/x;return y;main()int n;printf(Enter n: );scanf(%d, &n);printf(nThe result is %lfn, fun(n);15(2)编写程序,求1!+2!+3!+9!+10!的和。#include#define N 10int main(void)int i;long p=1,s=0;for(i=1;iN+1;i+)p*=i;s+=p;printf(s=%ldn,s);15(3)某幼儿园只收26岁的小孩,23岁编入小班,4岁编入中班,56岁编入大班,编写程序实现每输入一个年龄,输出应编入什么班。#includeint main(void)int age;printf(please enter the age:n);scanf(%d,&age);switch(age)case 2:case 3: printf(%d belong to small class!n,age);break;case 4: printf(%d belong to middle class!n,age);break;case 5:case 6: printf(%d belong to big class!n,age);break;16(1)运用函数fun,用下面的公式求的近似值,直到最后一项的绝对值小于指定的数(参数num)为止,/4 =1-1/31/51/7例如,程序运行后,输入0.0001,则程序输出3.1414。#include #include float fun( float num) float s=0;int flag=1,i=1;while ( 1.0/i1e-4 )s+=1.0/i*flag;flag=-flag;i=i+2;return 4*s;main( ) float n1,n2 ;printf(Enter a float numder: ) ;scanf(%f,&n1) ;n2= fun (n1) ;printf(%6.4fn,n2 ) ;16(2)读入一个整数m(5m20),调用函数rnd获得m个随机整数,将这m个随机整数从小到大排序。#include #include #include void sort(int a,int n)int i,j,temp;for(i=0;in;i+)for(j=i+1;jaj)temp=ai;ai=aj;aj=temp;int main(void)int m,i;int *p;srand(unsigned)time(NULL);printf(please enter m (5=m=20) :);scanf(%d,&m);p=(int * )malloc(m*sizeof(int);for(i=0;im;i+)pi = rand()%100;printf(%dt,pi);printf(n);sort(p,m);for(i=0;im;i+)printf(%dt,pi);printf(n);16(3)如果一个数等于其所真因子(不包括其本身)之和,则该数为完数,例如,6的因子有1,2,3,且6=1+2+3,故6为完数,求21000中的完数.#include int main(void) int i,j,s;for(i=2;i1001;i+)s=0;for(j=1;ji;j+)if(i%j=0)s+=j;if(s=i)printf(%dt,i);17(1)下列程序中,函数fun的功能是:求三个数的最小公倍数。例如,给变量x1,x2,x3分别输入15 11 2,则输出结果应当是:330。#include fun(int x ,int y , int z )int j=1;for(;i+)if(j%x=0&j%y=0&j%z=0)break;return j;main( ) int x1,x2,x3,j ;printf(Input x1 x2 x3: );scanf(%d%d%d,&x1,&x2,&x3 );printf(x1=%d, x2=%d, x3=%dn,x1,x2,x3);j = fun(x1,x2,x3);printf(The minimal common multiple is:%dn,j);17(2)求1000以内的亲密数对。亲密数对的定义为:若正整数a的所有因子(不包括a本身)之和为b,b的所有因子(不包括b本身)之和为a,且ab,则称a与b为亲密数对。#include int fun(int x)int i,s=0;for(i=1;ix;i+)if( x%i=0 )s+=i;return s;int main(void) int m,n;for(m=1;m1001;m+)n=fun(m);if( m=fun(n) & m!=n )printf(%d,%dn,m,n);17(3)若用09之间不同的3个数构成一个三位数,编程统计出共有多少个这种不同的三位数?#include int main(void) int a,b,c,count=0;for(a=1;a10;a+)for(b=0;b10;b+)for(c=0;c10;c+)if( a!=b & b!=c & c!=a )printf(%dt,100*a+10*b+c);count+;printf(ncount=%dn,count);18(1)请编一个函数int fun(int pm),它的功能是:判断pm是否是素数。若pm是素数,返回1;若不是素数,返回0。pm的值由主函数从键盘读入。#include #include #include int fun(int a)int i,flag=0;for(i=2;ia;i+)if(a%i=0)break;if( i=a)flag=1;return flag;main() int x;printf(nPlease enter a number:);scanf(%d, &x);printf(%dn, fun(x);18(2)编程求W=1+21+22+23+210#include #define N 10int main(void) int i;long p=1,w=1;for(i=1;iN+1;i+)p*=2;w+=p;printf(w=%ldn,w);18(3)若n使2n-1为素数,则n称为梅森尼数。求1,21范围内:有多少个梅森尼数?最大的梅森尼数?#include long sushu(long a)long i;int flag=0;for(i=2;ia;i+)if(a%i=0)break;if( i=a)flag=1;return flag;int main(void)int i,n;long m;for(n=1;n22;n+)m=1;for(i=1;in+1;i+)m*=2;m=m-1;if(sushu(m)printf(n=%d,m=%ldn,n,m);19(1)下列程序中,函数fun的功能是:求k!(k13),所求阶乘的值作为函数值返回。#include #include long fun ( int k)int i;long m=1;for(i=1;ik+1;i+)m*=i;return m;main() int k = 10 ;printf(%d!=%1dn , k, fun ( k ) ;19(2)编程求2100中所有的亲密素数对的个数,亲密素数:如果x为素数,则x+2也为素数。#includevoid main()i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中型饭店人员管理办法
- 装修工程协调管理办法
- 贷款债务重组管理办法
- 箱包样品室管理办法
- 衢州临时仓库管理办法
- 上市公司环安管理办法
- 财务管理办法及时性
- 订单班学生管理办法
- 上网电价结算管理办法
- 仓储物流设施管理办法
- 普通逻辑ppt课件(完整版)
- 《小学语文课程与教学论》复习题
- 2022年08月安徽省芜湖市招考大学生科技特派员岗位冲刺题(带答案)
- 国家城镇救援队伍能力建设与分级测评指南
- DB32∕T 4065-2021 建筑幕墙工程技术标准
- 施工现场环保工作措施
- 资产清查服务方案模版
- 部编版五年级语文上册(精美)课件 2 落花生
- 检具设计PPT.
- 二年级上册表内乘法口算练习
- 物业公司员工绩效考核表
评论
0/150
提交评论