1、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
2、+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
3、-)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+
4、)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
5、班学号为%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(
6、%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
7、()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
8、(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=1
9、00;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次不
10、都不相等泽种植程序的执行。要求自己编写一个字符串比较函数,而不使用系统的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
11、!+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+
12、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(
13、)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
14、*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位的正整数,要求:求出其位数,并分别打印出每一位数字,最后安妮需打印出这个正整数。#
15、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(逆序后为:
16、%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
17、=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
18、(%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个整数中选出数值最大的整数,将他交换到第二个元素位置上
19、,抽工夫上述操作,知道排序成功。#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)编写一个程序,实现从键盘输入一组整数,求该组整数的平均值,并将大于平均值的整数输出
20、#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
21、#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.#includevoi
22、d 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)pr
23、intf(%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
24、 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;prin
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1