计算机考研复试之C语言编程题

您所在的位置:网站首页 c语言考研复试问题 计算机考研复试之C语言编程题

计算机考研复试之C语言编程题

2023-12-12 04:09| 来源: 网络整理| 查看: 265

博主本人整理资料不易,如果文章对大家有用的话,恳请大家能够动动小手帮忙点个赞,如果能点个关注的话那就更好了…

文章目录 将三个整数按从小到大的顺序排列输入三边长,求三角形的面积求两个数字的最小公倍数和最大公约数求区间范围内的水仙花数将十个数字排序单链表的操作求区间内素数之和1.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积(4πR²)、圆球体积(V=4πR三次方)、圆柱体积。用scanf()输入数据,输出计算结果,输出时要求有文字说明。取小数点后2位数字。请编写程序。2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32),输出时要有文字说明,取2位小数。3.编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。输出计算结果要求有文字说明,并取小数点后两位数字。4.编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。5.有一函数写一程序,输入x,求出y值6.给出一个不多于5位的正整数:,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。7.输入4个正整数,要求按从小到大的顺序输出。8.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。9.输入两个正整数m和n,求其最大公约数和最小公倍数。10.编写程序实现功能:输入整数a和b,若a²+b²>100,则输出a²+b²之和的百位以上的数字,否则直接输出a²+b²的和。11.编写程序判断输入的正整数既是5又是7的整数倍。若是则输出“yes”,否则输入“no”。12.用switch编程实现以下函数关系:![在这里插入图片描述](https://img-blog.csdnimg.cn/2020032518230967.png)13.编写程序,用switch实现:对于给定的百分制成绩,改成相应的A、B、C、D、E表示,90分以上为A,80到89为B,70到79为C,60到69为D,60以下为E。14.编写程序实现功能:输入一个复数,输出其共轭复数,如,输入2+3i,输出2-3i。15.求Sn=a+aa+aaa+...+aa...a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。16.求从1到20之间的每个整数的阶乘之和。![在这里插入图片描述](https://img-blog.csdnimg.cn/20200326173934307.png)17.![在这里插入图片描述](https://img-blog.csdnimg.cn/20200326180106964.png)18.打印出所有的“水仙花数”,所谓“水仙花数”是指一个3位数,其各位数字立方和等于该数本身。例如,153是一水仙花数,因为![在这里插入图片描述](https://img-blog.csdnimg.cn/20200326180726441.png)19.每个苹果0.8元,第一天买了2个苹果;从第二天开始,每天买前一天的两倍,直到每天购买的苹果个数达到不超过100的最大值,编写程序求每天平均花多少钱。20.试编写程序,找出1~99之间的全部同构数。同构数是这样一组数,它出现在平方数的右边。例如,5是25的右边数,25是625的右边数,所以5和25都是同构数。21.假设x、y是整数,编写程序x的y次方的最后三位数,要求x、y从键盘输入。22.一个数如果恰好等于它的因子之和,这个数就称为“完数”。例如,6的因子为1、2、3,而6=1+2+3,因此6是“完数”。编程序找出1000之内的所有完数,并按下面格式输出其因子:23.一球从100m高度自由落下,每次落地后反跳回原高度的一半,再落下。求它在第10次落地时,共经过多少米?第10次反弹多高?24.编程打印出以下图案25.编写递归程序的杨辉三角形26.编写程序计算1~100之间的素数,并按照由大到小的次序输出。27.已知整形数组a中有10个元素,整型数组b中有6个元素。编程将那些在数组a中而不在数组b中的数据组成新数组c并输出。28.已知a是3x4的整型二维数组,编程求数组a中所有外围元素之和。29.不用strcmp函数,编程判断两个长度不超过20的字符串的大小:若第一个字符串大于第二个字符串输出1;若两个字符串相等输出0;否则输出-1。30.输入长度不超过20的字符串,编程判断其中字母的个数。31.已知整型数组a中有10个元素,编程将其中某个数k删除,输出删除后的数组。32.有n个整数,设计程序,将前面各个数按顺序向后移动k个位置,将最后k个数按顺序移动到最前面。33.编写程序判断是否是回文字符串。回文是一种“从前向后读”和“从后向前读”都相同的字符串。如:“rotor”。34.编制一个字符替换函数,实现已知字符串str中,所有属于ch中的字符都用ch2中对应字符代替。函数原型:void replace(char *str,char ch,char ch2)35.编写一个函数,删除一个字符串的指定字符,函数原型:int delStr(char *str,char ch)先判断字符是否出现在字符串中,如果未出现,则返回0,如果字符出现一次或多次,则返回字符的个数。36.编写函数把参数字符串中的字符反序排列,函数原型:void reversestr(char *str)使用指针,不要用数组下标,也不要声明局部数组来临时存储。37.编写程序。从键盘输入10本书的名称和定价,并存在结构体数组中,从中查找出定价最高和最低的书的名称和定价,并打印出来。38.编写程序。设有以下结构体类型说明:39.已有两个链表x和y,每个链表的节点包括学号和成绩,要求把两个链表和并,按学号升序排列。40.编写一个程序,将两个文件的内容合并输出到另一个文件中。41.求一元二次方程:ax2+bx+c=0 的根。输入三个实数a,b,c的值,且a不等于0。42.用户输入年份,判断该年份是否为闰年43.九九乘法口诀表44.表格形式输出数据。将1~100的数据以10x10矩阵格式输出。45.计算一个数是否可为两个素数之和46.二进制与十进制的相互转换

将三个整数按从小到大的顺序排列 #include int main(){ int a,b,c,t; scanf("%d %d %d",&a,&b,&c); if(a>b){ t = a; a = b; b = t; } if(a>c){ t = a; a = c; c = t; } if(b>c){ t = b; b = c; c = t; } printf("%d %d %d",a,b,c); return 0; } 输入三边长,求三角形的面积 #include #include int main(){ double a,b,c,s,area,perimeter; printf("Enter 3 sides of the triangle:"); scanf("%lf %lf %lf",&a,&b,&c); if(a+b s = (a+b+c)/2; area = sqrt(s*(s-a)*(s-b)*(s-c)); perimeter = a + b + c; printf("area=%.2lf;perimeter=%.2lf",area,perimeter); } return 0; } 求两个数字的最小公倍数和最大公约数 #include int main(){ int m,n,p,q,t,s; scanf("%d %d",&m,&n); if(m q = m%n; m = n; n = q; } printf("%d %d",n,s/n); return 0; } 求区间范围内的水仙花数 #include int main(){ int num,start,end,a,b,c; scanf("%d %d",&start,&end); printf("Narc No:"); for(num=start;num printf("%d ",num); } } } 将十个数字排序 #include int main(){ int arr[10]; int i,j,temp; for(i=0;i for(j=0;j temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } for(i=0;i int num; char name[20]; int score; struct stud_node *next; }; struct stud_node *Creat_Stu_Doc() //创建 { struct stud_node *p, *q, *head=NULL; while(1) { p=(struct stud_node *)malloc(sizeof(struct stud_node)); scanf("%d", &p->num); if(p->num==0) break; scanf("%s %d", p->name, &p->score); p->next=NULL; if(head==NULL) head=p; else q->next=p; q=p; } return head; } struct stud_node *DeleteDoc(struct stud_node *head,int min_score) //链表的删除 { struct stud_node *p, *q; while(head!=NULL && head->score if(q->score while(head!=NULL) { printf("%d %s %d\n", head->num, head->name, head->score); head=head->next; } } int main() { struct stud_node *head; int n; head=Creat_Stu_Doc(); scanf("%d", &n); head=DeleteDoc(head, n); Ptrint_Stu_Doc(head); return 0; } 求区间内素数之和 #include int prime(int m); int main(){ int m,n,ct=0,sum=0,i; scanf("%d%d",&m,&n); if(m ct++; sum=sum+i; } } printf("count=%d,sum=%d\n",ct,sum); return 0; } int prime(int m){ int i; for(i=2;i return 0; } } if(i==m){ return 1; } } 1.设圆半径r=1.5,圆柱高h=3,求圆周长、圆面积、圆球表面积(4πR²)、圆球体积(V=4πR三次方)、圆柱体积。用scanf()输入数据,输出计算结果,输出时要求有文字说明。取小数点后2位数字。请编写程序。 #include int main(){ float r,h,C,S,Sa,Sb,V; scanf("%f,%f",&r,&h); C=2*3.14*r; S=3.14*r*r; Sa=4*S; Sb=4*3.14*r*r*r/3; V=S*h; printf("C=%5.2f\nS=%5.2f\nSa=%5.2f\nSb=%5.2f\nV=%5.2f",C,S,Sa,Sb,V); } 2.输入一个华氏温度,要求输出摄氏温度。公式为c=5/9(F-32),输出时要有文字说明,取2位小数。 #include int main(){ float c,F; printf("请输入一个华氏温度:\n"); scanf("%f",&F); c=5.0*(F-32)/9.0; printf("摄氏温度为:%5.2f°\n",c); return 0; } 3.编写程序,从终端键盘输入圆的半径r,圆柱的高h,分别计算出圆周c1、圆面积cs和圆柱的体积cvz。输出计算结果要求有文字说明,并取小数点后两位数字。 #include #define PI 3.14159 int main(){ float r,h,c1,cs,cvz; printf("请输入圆的半径r和圆柱的高h:\n"); scanf("%f,%f",&r,&h); c1=2.0*PI*PI; cs=PI*r*r; cvz=cs*h; printf("圆周c1=%5.2f\n圆面积cs=%5.2f\n圆柱的体积cvz=%6.2f",c1,cs,cvz); } 4.编写程序,读入一个字母,输出与之对应的ASCII码,输入输出都要有相应的文字提示。 #include int main(){ char ch; printf("请输入一个字母:\n"); scanf("%c",&ch); printf("与输入字母相对应的ASCII码是:%d",ch); return 0; } 5.有一函数

在这里插入图片描述

写一程序,输入x,求出y值 #include int main(){ int x,y; printf("请输入x的值:\n"); scanf("%d",&x); if(x y=2*x-1; }else if(x>=100){ y=3*x-11; } printf("y的值为:%d\n",y); return 0; } 6.给出一个不多于5位的正整数:,要求:①求出它是几位数;②分别打印出每一位数字;③按逆序打印出各位数字,例如原数为321,应输出123。 #include int main(){ long int num; int wan,qian,bai,shi,ge; int place; printf("请输入一个不多于5位的正整数:\n"); scanf("%d",&num); if(num>9999){ place=5; }else if(num>999){ place=4; }else if(num>99){ place=3; }else if(num>9){ place=2; }else{ place=1; } printf("%d是%d位数\n",num,place); wan=num/10000; qian=num/1000%10; bai=num/100%10; shi=num/10%10; ge=num%10; switch(place){ case 5: printf("分别打印出每位数字:\n"); printf("%d\n%d\n%d\n%d\n%d\n",wan,qian,bai,shi,ge); printf("逆序打印出每位数字:\n"); printf("%d\n%d\n%d\n%d\n%d\n",ge,shi,bai,qian,wan); break; case 4: printf("分别打印出每位数字:\n"); printf("%d\n%d\n%d\n%d\n",qian,bai,shi,ge); printf("逆序打印出每位数字:\n"); printf("%d\n%d\n%d\n%d\n",ge,shi,bai,qian); break; case 3: printf("分别打印出每位数字:\n"); printf("%d\n%d\n%d\n",bai,shi,ge); printf("逆序打印出每位数字:\n"); printf("%d\n%d\n%d\n",ge,shi,bai); break; case 2: printf("分别打印出每位数字:\n"); printf("%d\n%d\n",shi,ge); printf("逆序打印出每位数字:\n"); printf("%d\n%d\n",ge,shi); break; case 1: printf("分别打印出每位数字:\n"); printf("%d\n",ge); printf("逆序打印出每位数字:\n"); printf("%d\n",ge); break; default: break; } return 0; } 7.输入4个正整数,要求按从小到大的顺序输出。 #include int main(){ int a,b,c,d,t; printf("请输入4个正整数:\n"); scanf("%d,%d,%d,%d",&a,&b,&c,&d); if(a>b){ t=a; a=b; b=t; if(a>c){ t=a; a=c; c=t; if(a>d){ t=a; a=d; d=t; } } } if(b>c){ t=b; b=c; c=t; if(b>d){ t=b; b=d; d=t; } } if(c>d){ t=c; c=d; d=t; } printf("从小到大的顺序为:%d,%d,%d,%d\n",a,b,c,d); return 0; } 8.输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。 #include int main(){ char c; int letter=0,space=0,dight=0,other=0; while((c=getchar())!='\n'){ if((c>='a' && c='A' && c space++; }else if(c>='0'&&c other++; } } printf("英文字母数为:%d\n空格数为:%d\n数字数为:%d\n其他字符数为:%d\n" ,letter,space,dight,other); } 9.输入两个正整数m和n,求其最大公约数和最小公倍数。 将大数给m,小数给n。对m%n进行取余操作,将n赋值给m,将m%n的余数赋值给n,然后再循环进行取余操作,直到余数为0时,n即为最大公约数,一开始的m乘n再除以最大公约数所得即为最小公倍数。 #include int main(){ int m,n,p,r,t; printf("请输入两个正整数m和n:\n"); scanf("%d,%d",&m,&n); if(n>m){ //大数在前小数在后 t=n; n=m; m=t; } p=m*n; //用于求最小公倍数 while((m%n)!=0){ r=m%n; m=n; n=r; } printf("最大公约数为:%d\n",n); printf("最小公倍数为:%d\n",p/n); } 10.编写程序实现功能:输入整数a和b,若a²+b²>100,则输出a²+b²之和的百位以上的数字,否则直接输出a²+b²的和。 #include int main(){ int a,b,m,p; printf("请输入两个整数a和b:\n"); scanf("%d,%d",&a,&b); m=a*a+b*b; if(m>100){ p=m/100; printf("百位以上的数字为:%d\n",p); }else{ printf("两数之和为:%d\n",m); } return 0; } 11.编写程序判断输入的正整数既是5又是7的整数倍。若是则输出“yes”,否则输入“no”。 #include int main(){ int num; printf("请输入一个整数:\n"); scanf("%d",&num); if(num%5==0 && num%7==0){ printf("yes\n"); }else{ printf("no\n"); } return 0; } 12.用switch编程实现以下函数关系:在这里插入图片描述 #include int main(){ int x,y; printf("请输入x的值:\n"); scanf("%d",&x); switch(x case 1: y=0; break; default: y=1; break; } } printf("y的值为:%d",y); return 0; } 13.编写程序,用switch实现:对于给定的百分制成绩,改成相应的A、B、C、D、E表示,90分以上为A,80到89为B,70到79为C,60到69为D,60以下为E。 #include int main(){ int score,temp,log; char grade; log=1; while(log){ printf("请输入成绩:\n"); scanf("%d",&score); if(score>100 || score log=0; } } if(score==100){ temp=9; }else{ temp=(score-score%10)/10; } switch(temp){ case 0: case 1: case 2: case 3: case 4: case 5: grade='E'; break; case 6: grade='D'; break; case 7: grade='C'; break; case 8: grade='B'; break; case 9: grade='A'; break; } printf("score=%d,grade=%c\n",score,grade); return 0; } 14.编写程序实现功能:输入一个复数,输出其共轭复数,如,输入2+3i,输出2-3i。 #include int main(){ int a,b; char symbol; printf("请输入原始数据:\n"); scanf("%d%c%di\n",&a,&symbol,&b); printf("原使复数为:%d%c%di\n",a,symbol,b); if(symbol=='-'){ symbol='+'; }else{ symbol='-'; } printf("其共轭复数为:%d%c%di\n",a,symbol,b); return 0; } 15.求Sn=a+aa+aaa+…+aa…a(n个a)之值,其中a是一个数字。例如:2+22+222+2222+22222(此时n=5),n由键盘输入。 #include int main(){ int a,n,tn=0,sn=0,i=1; printf("请输入a和n的值:\n"); scanf("%d,%d",&a,&n); while(i int n,t=1,s=0; for(n=1;n int n1=100,n2=50,n3=10; float k; float s1=0,s2=0,s3=0; for(k=1;k s2=s2+k*k; } for(k=1;k int num,a,b,c; for(num=100;num printf("%d是水仙花数\n",num); } } } 19.每个苹果0.8元,第一天买了2个苹果;从第二天开始,每天买前一天的两倍,直到每天购买的苹果个数达到不超过100的最大值,编写程序求每天平均花多少钱。 #include int main(){ float price=0.8,sumprice=0.0,aveprice; int k=0,num,sum=0; for(num=2;num int i; for(i=1;i printf("%3d",i); } } } 21.假设x、y是整数,编写程序x的y次方的最后三位数,要求x、y从键盘输入。 #include int main(){ int i,x,y; long last=1; printf("Input x,y:"); scanf("%d,%d",&x,&y); for(i=1;i int k[100]; int a,s,i,n; for(a=2;a if((a%i)==0){ n++; k[n]=i; //将其除数放到数组中 s=s-i; //该数前去其除数,然后判断最后结果是否为0 } } if(s==0){ printf("%d its factors are:",a); for(i=1;i float sn=100,hn=sn/2; int n; for(n=2;n int i,j,k; for(i=0;i //输出下面3行*号 for(j=0;j for(j=0;j if((y==1)||(y==x+1)) return (1); else return c(x-1,y-1)+c(x-1,y); } int main(){ int i,j,n=13; printf("N="); while(n>12) scanf("%d",&n); for(i=0;i void IsPrime(int k); int k; printf("1到100之间的所有素数:\n"); for(k=2;k int j; for(j=2;j break; } } if(j==k){ printf("%d,",k); } } 27.已知整形数组a中有10个元素,整型数组b中有6个元素。编程将那些在数组a中而不在数组b中的数据组成新数组c并输出。 #include int main(){ int a[10]={1,2,3,4,5,6,7,8,9,10}; int b[6]={2,4,6,8,11,13}; int c[16]; int i,j,k=0; for(i=0;i if(a[i]==b[j]){ break; } } if(j==6){ c[k]=a[i]; k++; } } for(i=0;i int a[3][4]={{1,2,3,4},{5,6,7,8},{1,2,3,4}}; int i,j,k,sum; for(i=0;i printf("%d",a[i][j]); } printf("\n"); } sum=0; for(i=0;i sum=sum+a[j][0]+a[j][3]; } printf("sum=%d",sum); } 29.不用strcmp函数,编程判断两个长度不超过20的字符串的大小:若第一个字符串大于第二个字符串输出1;若两个字符串相等输出0;否则输出-1。 #include #include int main(){ char a[20]; char b[20]; int m,n,k=0; gets(a); gets(b); m=strlen(a); n=strlen(b); while((a[k]==b[k])&&k printf("0\n"); } else if(a[k]>b[k]){ printf("1\n"); }else{ printf("-1\n"); } return 0; } 30.输入长度不超过20的字符串,编程判断其中字母的个数。 #include #include int main(){ char a[20]; int i,m,n=0; gets(a); m=strlen(a); for(i=0;i n++; } } printf("字母的个数为:%d\n",n); } 31.已知整型数组a中有10个元素,编程将其中某个数k删除,输出删除后的数组。 #include int main(){ int a[10]; int i,m,j,k; printf("请向数组中输入数据:\n"); for(i=0;i if(k==a[i]){ m=i; break; } } for(j=m;j printf("%d,",a[i]); } } 32.有n个整数,设计程序,将前面各个数按顺序向后移动k个位置,将最后k个数按顺序移动到最前面。 方法一:先将最后k个数装入数组2中,然后将数组1拼接到数组2后面即可; #include int main(){ int n,i,k; printf("输入数组的大小:n=\n"); scanf("%d",&n); int arr1[n]; printf("向数组中填入数据:\n"); for(i=0;i arr2[m]=arr1[i]; m++; } for(i=k;i printf("%d,",arr2[i]); } } 33.编写程序判断是否是回文字符串。回文是一种“从前向后读”和“从后向前读”都相同的字符串。如:“rotor”。 方法一: #include #include int main(){ char str[20]; gets(str); int n,i; n=strlen(str); for(i=0;i printf("true"); }else{ printf("false"); } } 方法二: #include int main(){ char str[50],*p,*q; gets(str); p=str; q=str; while((*q)!='\0'){ q++; } q--; while((*p)==(*q)&&p printf("yes"); }else{ printf("no"); } } 34.编制一个字符替换函数,实现已知字符串str中,所有属于ch中的字符都用ch2中对应字符代替。 函数原型:void replace(char *str,char ch,char ch2) #include #include int main(){ void replace(char *str,char ch,char ch2); char arr[50]; char ch,ch2; printf("请输入字符串str:\n"); gets(arr); printf("请输入字符ch和ch2:\n"); scanf("%c,%c",&ch,&ch2); replace(arr,ch,ch2); puts(arr); } void replace(char *str,char ch,char ch2){ char *p; p=str; while(*p!='\0'){ if(*p==ch){ *p=ch2; } p++; } } 35.编写一个函数,删除一个字符串的指定字符,函数原型: int delStr(char *str,char ch) 先判断字符是否出现在字符串中,如果未出现,则返回0,如果字符出现一次或多次,则返回字符的个数。 #include #include int main(){ int delStr(char *str,char ch); char str[80]="wearegoodfriends"; char ch; int i; scanf("%c",&ch); printf("%s\n",str); i=delStr(str,ch); printf("%s\n",str); } int delStr(char *str,char ch){ int i,j,total,k,sum; char *p; i=0; total=0; p=str; while(*(p+i)!='\0'){ //p1字符串是否结束 k=i; sum=0; while(*(p+k)==ch){ //k移动到不要删除的位置 k++; sum++; //删除字符个数 } total+=sum; if(*(p+i)==ch){ for(j=i;*(p+j+sum)!='\0';j++){ *(p+j)=*(p+j+sum); } *(p+j)='\0'; } i++; } return total; } 36.编写函数把参数字符串中的字符反序排列,函数原型: void reversestr(char *str) 使用指针,不要用数组下标,也不要声明局部数组来临时存储。 #include #include int main(){ void reversestr(char *str); char arr[50]; gets(arr); reversestr(arr); printf("%s",arr); } void reversestr(char *str){ char *p,*q; char ch; p=str; q=str; while(*q!='\0'){ q++; } q--; while(p char name[50]; float price; }; int main(){ int i; struct Book book[10]; printf("请输入10本书的名称和定价:\n"); for(i=0;i if(book[i].price>maxbook.price){ maxbook=book[i]; } if(book[i].price char num[10],name[10]; float s[4]; float ave; }; int main(){ void fun1(struct student stu[]); void fun2(struct student stu[]); struct student stu[3]; fun1(stu); fun2(stu); } void fun1(struct student stu[]){ printf("请分别输入10名学生的学号、姓名和4分成绩:\n"); int i; for(i=0;i int i; for(i=0;i struct node *p,*q,*r,*s,*h; p=h1; q=h2; if(p->numnum){ h=s=p; r=p; p=p->next; r->next=NULL; }else{ h=s=q; r=q; q=q->next; r-next=NULL; } while(p&&q){ if(p->numnum){ r=p; p=p->next; }else{ r=q; q=q->next; } s->next=r; s=s->next; } if(p){ s->next=p; }else{ s->next=q; } return h; } 40.编写一个程序,将两个文件的内容合并输出到另一个文件中。 #include #include int main(){ FILE *fp1,*fp2,*fp3; char str[128]; if(fp1==fopen("t1.text","r")==NULL){ printf("不能打开文件\n"); exit(0); } if(fp2==fopen("t2.txt","r")==NULL){ printf("不能打开文件\n"); exit(0); } if(fp3==fopen("t3.txt","w")==NULL){ printf("不能打开文件\n"); exit(0); } while((strlen(fgets(str,128,fp2)))>0){ fputs(str,fp3); printf("%s",str); } fclose(fp1); fclose(fp2); fclose(fp3); } 41.求一元二次方程:ax2+bx+c=0 的根。 输入三个实数a,b,c的值,且a不等于0。 #include #include int main(){ float a,b,c,d,x1,x2; printf("请输入a,b,c的值:\n"); scanf("%f %f %f",&a,&b,&c); if(a!=0){ d=sqrt(b*b-4*a*c); x1=(-b+d)/(2*a); x2=(-b-d)/(2*a); printf("x1=%0.2f\tx2=%0.2f\n",x1,x2); } } 42.用户输入年份,判断该年份是否为闰年 思路:先把百年的年份拿出来,是400的倍数,是闰年,不是400的倍数,不是闰年。非百年的年份按照4处理。 #include int main(){ /** 思路:先把百年的年份拿出来,是400的倍数,是闰年,不是400的倍数,不是闰年。 非百年的年份按照4处理。 **/ int year; printf("请输入年份:\n"); scanf("%d",&year); //先处理百年年份 if(year%100==0){ //是400的倍数为闰年 if(year%400==0){ printf("y\n"); }else{ printf("n\n"); } } //再处理非百年的年份 else{ if(year%4==0){ printf("y\n"); }else{ printf("n\n"); } } } 43.九九乘法口诀表 #include int main(){ int i,j; for(i=1;i //内层循环控制列 printf("%dx%d=%d\t",i,j,i*j); } printf("\n"); } }

在这里插入图片描述

44.表格形式输出数据。将1~100的数据以10x10矩阵格式输出。

在这里插入图片描述

#include int main(){ int i,j,k; for(i=1;i printf("%3d",j*10+k); } printf("\n"); } } 45.计算一个数是否可为两个素数之和 思路:先写出判断数字是否为素数的函数,然后再循环遍历该数范围内的数,当范围内遇到素数时,然后再判断输入数字减去遇到的素数之差是否仍为素数,若仍为素数则可以分解为两个素数之和,否则不行。 #include int main(){ int checkPrime(int number); int num,i,flag=0; printf("请输入一个整数:\n"); scanf("%d",&num); for(i=2;i if(checkPrime(num-i)==1){ printf("%d是%d和%d两个素数的和\n",num,i,num-i); flag=1; } } } if(flag==0){ printf("%d不能分解成两个素数",num); } } //判断素数 int checkPrime(int number){ int i; for(i=2;i return 0; } } if(i==number){ return 1; } } 46.二进制与十进制的相互转换 二进制转十进制 #include #include int main(){ int converTo(long long number); long long num; printf("请输入一个二进制数:\n"); scanf("%lld",&num); printf("二进制数%lld转换为十进制数为:%d",num,converTo(num)); } int converTo(long long number){ int reminder,decimalNumber=0,i=0; while(number!=0){ reminder=number%10; //余数 number=number/10; //每次去掉最后一位再计算 decimalNumber=decimalNumber+reminder*pow(2,i); i++; } return decimalNumber; } 十进制转二进制 #include #include int main(){ long long convertDecimalToBinary(int number); int num2; printf("请输入一个数:\n"); scanf("%d",&num2); printf("十进制数%d转换为二进制数为:%lld",num2,convertDecimalToBinary(num2)); } //十进制转换为二进制数 long long convertDecimalToBinary(int number){ int reminder,i=1; long long binaryNumber=0; while(number!=0){ reminder=number%2; //每次记录二进制末尾数 binaryNumber=binaryNumber+reminder*i; //通过乘10法进位 number=number/2; i=i*10; } return binaryNumber; }


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3