C语言复习编程题.doc_第1页
C语言复习编程题.doc_第2页
C语言复习编程题.doc_第3页
C语言复习编程题.doc_第4页
C语言复习编程题.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

C语言复习编程题1. 编写一个程序,要求输入圆的半径r,圆柱高h,求圆的周长、圆的面积、球的体积、圆柱体积并输出计算结果。#define PI 3.1415926main( ) float h, r, l, sv, sz ;printf(“请输入圆的半径r,圆柱高h:n”) ;scanf(“%f,%f”,&r, &h) ;l=2* PI *r ;s= PI *r*r ;sv=3.0/4.0* PI *r*r*r ;sz= PI *r*r*h ;printf(“圆周长为:l=%6.2f, 圆面积为:s=%6.2fn”, l, s) ;printf(“求体积为:sv=%6.2f, 圆柱体积为:sz=%6.2fn”, sv, sz) ;2. 编写一个程序,要求输入华氏温度,输出摄氏温度。公式:c=5(F-32)/9取2位小数。main( ) float c, f ;printf(“请输入一个华氏温度:n”) ;scanf(“%f”, &f) ;c=5.0/9.0*(f-32) ;printf(“摄氏温度为:%6.2fn”, c) ;3. 用冒泡法(也成起泡法)对10分整数排序(从大到小)。#include stdio.hmain()int i,j,t,a10; printf(请输入10个整数(中间用空格分隔开):n); for (i=0;i=9;i+) /*初始化数组*/ scanf(%d,&ai); for (j=1;j=9;j+) /*进行冒泡排序*/ for (i=0;i=9-j;i+) if (aiai+1) t=ai;ai=ai+1;ai+1=t; printf(冒泡排序之后的数据序列为:n); for (i=0;i=9;i+) printf(%5d,ai); 4. 将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1,要求改为1,4,5,6,8.#include stdio.hmain()int i,j,t,a5; printf(请输入5个整数(中间用空格分隔开):n); for (i=0;i=4;i+) /*初始化数组*/ scanf(%d,&ai); for (i=0,j=4;ij;i+,j-) t=ai;ai=aj;aj=t; printf(逆序后的数据序列为:n); for (i=0;i=4;i+) printf(%5d,ai); 5. 打印出以下的杨辉三角形(要求打印出10行)。#include stdio.hmain()int i,j,a1010=1,1,1; for (i=2;i10;i+) /*给二维数组每个元素赋值*/ ai0=1; for (j=1;j=i;j+) aij=ai-1j-1+ai-1j; for (i=0;i10;i+) /*输出二维数组*/ for (j=0;j=i;j+) printf(%-5d,aij); printf(n); 6. 编一程序,将两个字符串连接起来,不要用strcat函数。#include stdio.hmain()int i,j; char str120,str220; printf(input two strings:n); gets(str1); gets(str2); j=strlen(str1); /*求字符串1的长度*/ for (i=0;str2i!=0;i+,j+) /*字符串合并*/ str1j=str2i; str1j=0; /*加上字符串结束标志*/ puts(str1); 7. 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息。#include stdio.h#include math.hint sushu(int n)int i,k; k=sqrt(n); for(i=2;ik) return 1; else return 0; main()int m; printf(请输入一个大于1的正整数:); scanf(%d,&m); if(m2) printf(您输入的数不符合要求n); else if(sushu(m) printf(%d是一个素数n,m); else printf(%d不是个素数n,m);8.写一函数,使给定的一个二维整形数组(33)转置,即行列互换。#define N 3#include stdio.hvoid convert(int arrayNN)int i,j,t; for(i=0;iN;i+) for(j=0;ji;j+) t=arrayij;arrayij=arrayji;arrayji=t;main()int i,j,aNN; for(i=0;iN;i+) for(j=0;jN;j+) scanf(%d,&aij); printf(显示转换前的数组:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%5d,aij); printf(n); convert(a); printf(显示转换后的数组:n); for(i=0;iN;i+) for(j=0;jN;j+) printf(%5d,aij); printf(n); 9. 写一函数,使输入的一个字符串按反序存放,在主函数中输入和输出字符串。#include string.h#include stdio.hvoid inverse(char array80)int i,j; char ch; for(i=0,j=strlen(array)-1;ij;i+,j-) ch=arrayi; arrayi=arrayj; arrayj=ch; main()char str80; gets(str); puts(str); inverse(str); puts(str); 10. 定义一个带参数的宏,使两个参数的值互换,并写出程序,输入两个数作为使用宏时的实参。输出已交换的两个值。#include stdio.h#define SWAP(a,b) int t;t=a;a=b;b=t;main() int a,b; printf(input a,b:) ; scanf(%d,%d,&a,&b); SWAP(a,b); printf(result:a=%d,b=%dn,a,b);11. 编一个程序,输入10个整数存入一维数组中,再按逆序重新存放后输出。#include stdio.h#define N 10void inverse(int *b,int n) int *p,*q, t; for (p=b,q=b+n-1;pq; p+,q-) t=*p; *p=*q; *q=t; main( ) int aN, i; for (i=0; i=N-1; i+) scanf(%d, a+i); inverse(a, N) ; for (i=0; i=N-1; i+) printf(%4d, *(a+i); 12. 写一个函数将33矩阵转置,输入一个矩阵,输出转置后的矩阵。#define N 3#include stdio.hvoid zhuanzhi(int (*p)N)int i,j,t; for (i=0;iN;i+) for (j=0;ji;j+) t=*(*(p+i)+j);*(*(p+i)+j)=*(*(p+j)+i);*(*(p+j)+i)=t;main()int aNN,i,j; printf(请输入一个%d*%d的矩阵:n,N,N); for (i=0;iN;i+) for (j=0;jN;j+) scanf(%d,&aij); printf(转置之前的矩阵为:n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%4d,aij); printf(n); zhuanzhi(a); printf(转置之后的矩阵为:n); for (i=0;iN;i+) for (j=0;jN;j+) printf(%4d,aij); printf(n); 13.输入两个字符串,要求将这两个字符串交叉。如串string1为“ABCD”,串string2为“123456”,则合并串为“A1B2C3D456”#include stdio.hmain( ) char str130,str230,str3100; int i=0,j=0,k=0; printf(please input two strings:n); scanf(%s,str1); scanf(%s,str2); while(str1i!=0 & str2j!=0) str3k+=str1i+; str3k+=str2j+; while(str1i!=0) str3k+=str1i+; while(str2j!=0) str3k+=str2j+; str3k=0; printf(n%sn,str3);实验1. 有一函数y=x (x1) 2x-1 (1x10) 3x-11 (x10)用函数输入的值(分别为x1,1x10,x10三种情况),求y值。#include stdio.hmain()float x,y; printf(请输入自变量x的值:); scanf(%f,&x); if (x1) y=x; else if (xb) max=a; else max=b; if (maxc) max=c; printf(n以上三个数中最大的数是:%.2fn,max);3. 输入两个正整数,求其中最大公约数和最小公倍数。#include stdio.hmain()int a,b,m,n,gbs,temp; printf(请输入两个正整数:(中间用逗号分隔开); scanf(%d,%d,&a,&b); /*下面几行求a,b的最大公约数*/ m=a; n=b; while(n) temp=m%n; m=n; n=temp; printf(n%d,%d的最大公约数为%dn,a,b,m); /*下面几行求a,b的最小公倍数*/ gbs=a; while(gbs%b) gbs=gbs+a; printf(n%d,%d的最小公倍数为%dn,a,b,gbs); 4. 猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第10天早上想再吃时,见只剩下一个桃子了。求第一天共摘了多少个桃子。#inclu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论