程序

更新时间:2024-05-11 08:21:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验题

1.从键盘上输入两个整数放入变量a,b中,编程将这两个变量中的数据交换。 #include \void main() {

int a,b,t;

scanf(\ t=a;a=b;b=t;

printf(\}

2.从键盘上输入一个英文小写字母,编程输出该字母所对应的ASCII码和所对应的大写字母。

#include \void main() {

int a,b;

a=getchar(); b=a-32;

printf(\}

3.输入三角形的三条边,编程求该三角形的面积。 #include \#include \void main() {

float a,b,c,s,area;

scanf(\ s=(a+b+c)/2;

area=sqrt(s*(s-a)*(s-b)*(s-c)); printf(\}

4.编程求方程的解 3x2?5x?7?0#include \#include \void main() {

int a=3,b=-5,c=-7; float d,x1,x2; d=sqrt(b*b-4*a*c); x1=(-b+d)/(2*a); x2=(-b-d)/(2*a);

printf(\}

5.键盘输入一个字母,判断其大小写,如果是小写则输出其大写,如果是大写则

输出其小写,如果输入的不是字母,则输出“Enter error!”。 #include \void main() {

char c;

c=getchar();

if(c>='a'&&c<='z') printf(\ else

{ if(c>='A'&&c<='Z') printf(\ else

printf(\ } }

6.写程序,求键盘输入的形式为:xopy 的算术表达式的值。其中:x、y是整数,op是一个算术运算符,例如,输入:100+200,则输出:100+200=300。 #include \void main() {

int x,y;char op;

printf(\输入一个算术式:\ scanf(\ switch(op) {

case '+': printf(\ case '-': printf(\ case '*': printf(\ case '/': if(y!=0)

printf(\

else printf(\算术表达式无意义\\n\ default : printf(\输入的个算术式错误\\n\ } }

7.键盘输入三个整数,判断此三数能否作为三角形的三个边长,若能,进一步判断能构成什么三角形(等边、等腰、直角、普通),若不能,则输出“不能构成三角形”。

#include \void main() {

int a,b,c,t;

scanf(\ if(a>0&&b>0&&c>0)

{ if(a+b>c&&a-b

{ printf(\这个是三角形\\n\ if(a>b)

{t=a; a=b; b=t;} if(b>c)

{t=b; b=c; c=t;} /*把最长的一条边换到c边上*/ if(a*a+b*b==c*c) { if(a==b)

printf(\是等腰直角三角形\\n\ else

printf(\是直角三角形\\n\ } if(a==b) { if(b==c) printf(\是等边三角形\\n\ else

printf(\是等腰三角形\\n\ } }

else printf(\不能组成三角形\\n\ }

else printf(\不能组成三角形\\n\}

8. 输入一个无符号整数,求其各位数之和。 #include \void main() {

unsigned n,s=0; scanf(\ while(n) {

s=s+(n); n=n/10; }

printf(\}

9.输入一个日期(年月日),求该日期是该年的第几天。 (说明:1.程序中要多年、月、日的有效性进行验证;

2.能被4整除却不能被100整除 或 能被400整除的年份是闰年。)

#include \void main() {

int year,month,day,i,sum;

int t[]={30,0,31,30,31,30,31,31,30,31,30,31}; printf (\输入year,month,day:\

scanf(\

if((year%4==0)&&(year0!=0)||(year@0==0)) t[1]=29; else

t[1]=28; sum=day;

for(i=0;i

printf(\ }

10.利用公式π/4=1-1/3+1/5-1/7+??求π的近似值,直到最后一项的绝对值小

-6-6

于10为止。(fabs(t)表示t的绝对值,1e-6=1*10)。 #include \#include \void main() {

float pi=0.0f; int i=0; do{

pi+=1.0/(i*2+1)*(i%2?-1:1); i++;

}while(1.0/i>0.00001); pi*=4;

printf(\}

11.人间流传着一个古典数学难题:有一对兔子,从出生后第3个月起每月都生一对小兔子。小兔子长到第3个月后每月又都生一对小兔子。假设所有兔子都能茁壮成长,问3年间每月有多少对兔子? 3年后共有多少对兔子? #include \void main() {

int a=1,b=1,c;

printf (\ do{

c=a+b;

printf(\ a=b; b=c;

}while (c<=10000000); }

12.求100到200间的所有素数。 #include \void main()

{

int a,b,s;

for (a=100;a<=200;a++) {

for (b=2;b<=a/2;b++) {

if(a%b==0) s=s+1;} if(s==0)

printf (\ s=0; } }

13.输出三角形的九九乘法口诀表。 #include \void main() {

int m,n;

for (m=1;m<=9;m++) {

for (n=1;n<=m;n++)

printf (\ printf (\ } }

14.输入两个正整数m、n,求最大公约数和最小公倍数。 #include \void main() {

int a,b,r,k,i,j;

printf(\请输入两个数且第一个大于第二个\\n\ scanf (\ i=a;j=b; do{

r=a%b; a=b; b=r; }while(r==0);

printf (\ for (k=1; ;k++)

{if(k%i==0&&k%j==0) break;} printf (\}

15.求1!+2!+3!+??+15! #include \void main() {

long i,j=1,sum=0; for ( i=1;i<=15;i++) { j*=i; sum+=j; }

printf (\}

16.打印所有水仙花数。水仙花数是指一个3位数,其各位数字立方和等于该数本身。

#include #include main() {

int i,a,b,c; for(i=100; ;i++) {

a=i; b=i/10; c=i/100;

if (i==a*a*a+b*b*b+c*c*c) printf(\ } }

17.完数:一个数恰好等于其因子之和。如6=1+2+3,6是完数。求1000之内的所有完数,并按照下列格式输出其因子: 6 its factors are 1,2,3 #include \void main() {

int m,n,s=0;

for (m=5;m<=1000;m++) {

s=0;

for (n=1;n<=m/2;n++) {if(m%n==0) s=s+n;} if(m==s)

printf (\ }

18.某生意外获桃子数枚,大喜,即刻吃掉一半,意犹未尽,又多吃一枚。次日,吃掉余下的一半后又多吃一枚。以后数日皆吃掉前一日剩下的一半又一个。第10日一大早起而视之,发现只剩1个桃子了。问首日获桃几枚?

#include \void main() {

int i,x=1;

for(i=1;i<10;i++) x=2*x+1;

printf(\猴子共摘了%d个桃子\}

19.从键盘输入一系列字符,直到回车换行,统计其中字母、数字和其它字符的个数。

#include \void main() {

char c;

int letters=0,digit=0,others=0;

printf(\ while((c=getchar())!='\\n')

if(c>='a' && c<='z' || c>='A' && c<='Z') letters++;

else if(c>='0' && c<='9') digit++;

else others++;

printf(\字母=%d 数字=%d 其它=%d\\n\}

20.中国古代数学家张丘建在他的《算经》中提出了著名的“百钱百鸡问题”:鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,鸡翁、鸡母、鸡雏各几何?

#include \void main() {

int x,y,z;

for (x=0;x<=20;x++) {

if ((100-7*x)%4==0) {

y=(100-7*x)/4; if (y>=0) {

z=100-x-y; if (z>=0) {

printf(\公鸡 : -, 母鸡 : -, 小鸡 : -\\n\

} } } }

21.输入一行字符,单词之间用空格分隔,统计其中单词个数。 #include \void main() {

char string[81],c;

int i,num=0,word=0; gets(string);

for(i=0;(c=string[i])!='\\0';i++) { if(c==' ')

word=0; else if(word==0)

{ word=1; num++; } }

printf(\}

22.求一个3*3的整型矩阵对角线元素之和。 #include \void main() {

int i, j, a[3][3], sum = 0; for(i = 0; i < 3; i++) for(j = 0; j < 3; j++) scanf(\ for(i = 0; i < 3; i++) sum += a[i][i]; printf(\}

23.有一个排好序的数组,要求输入一个数后,按原来的排序规律将它插入到数组中。

#include \void main() {

int a[] = {1,3,6,7,9}; int i,j,x;

printf(\ scanf(\ for(i=0;i<5;i++) if(x

for(j=5;j>i;j--)

a[j]=a[j-1]; a[j]=x;

printf(\ for(i=0;i<6;i++)

printf(\}

24.输出杨辉三角(输出10行)。 #include \void main() {

int i,j;

int a[10][10]; for(i=0;i<10;i++) a[i][0]=1;

for(j=1;j<10;j++) a[0][j]=0; for(i=1;i<10;i++) for(j=1;j<10;j++)

a[i][j]=a[i-1][j-1]+a[i-1][j]; for(i=0;i<10;i++) for(j=0;j<=i;j++)

{ printf(\ if(j==i)

printf(\}

25.编写程序,输入一字符串,将字符串逆序后输出。 #include \void main() {

char str[81]; int i,s;

printf(\请输入\\n\ gets(str); s=strlen(str);

for(i=s-1;i>-1;i--) printf(\}

26.用数组求Fibonacci数列的前20项。 #include \void main() {

int a[20]; int i; a[0]=a[1]=1;

for(i=2;i<20;i++)

a[i]=a[i-1]+a[i-2]; for(i=0;i<20;i++) printf(\}

27.随机输入10个数,选出其中的最小数和最大数。 #include \void main() {

int a[10],i,max,min; for(i=0;i<10;i++) scanf(\ max=min=a[0];

for(i=1;i<10;i++) if (a[i]>max) max=a[i]; if (a[i]

printf(\}

28.将10个整数从大到小排序。 #include \void main() {

int a[10]={1,2,3,4,5,6,7,8,9,10}; int i,j,t;

for(i=0;i<10;i++)

for(j=i+1;j<10;j++) if(a[i]

{t=a[i];a[i]=a[j];a[j]=t;} for(i=0;i<10;i++) printf(\}

29.从键盘接收10个数,求平均数并输出小于平均数的数。 #include \void main() {

int a[10], i;float aver =0 ; for(i=0;i<10;i++)

{ scanf(\ aver += a[i]; } aver/=10;

printf(\ for( i=0;i<10;i++)

{ if(a[i] < aver)

printf(\}

30. 编写一个程序,在屏幕上显示如下图形(图形的层数读者自行设定): * * * * * * * * * * * * * * * * * * * * * * * * *

#include #include main() {

int i,j,k;

for (i=-3;i<=3;i++) {

for (j=1;j<=abs(i);j++) printf(\

for (j=1;j<=7-2*abs(i);j++) printf(\ printf(\ } }

31.编程实现求1+2+3+?+n之和,并输出当其和第一次大于或等于100时的值及n值。

#include main() {

int i,s,t=0; i=1;s=0;

while (i<=100) {

s=s+i;

if(s>=100 && t<1) {

printf(\第一次和大于或等于100时和为%d\\n\ printf(\第一次和大于或等于100时n为%d\\n\ t+=1; }

i=i+1; } }

32.编写程序,输入一位学生的生日,再输入当前的日期数据,计算并输出该学生的实足年龄。 #include \void main() {

int year,month,day,birthY,birthM,birthD,N; printf(\请输入生日\

scanf(\ printf(\请输入当前日期\

scanf(\ N=year-birthY+1; if(month

if(month==birthM); if(day

printf(\年龄为%d\\n\}

33.编写程序,计算并输出正整数n的所有因子(1和0除外)之和。 #include \void main() {

int n,i,s=0;

printf(\输入一个数n:\ scanf(\ for(i=2;i

if(n%i==0)

{printf(\ }

printf(\}

34.将一个数组逆序输出。

#include \#define N 5 main() {

int a[N]={9,6,5,4,1},i,temp; printf(\ for(i=0;i

{ temp=a[i]; a[i]=a[N-i-1]; a[N-i-1]=temp; }

printf(\ for(i=0;i

35.在输入的字符串中删除指定的字符。 #include \main() {

char str[80], *p, *q, ch; gets(str);

printf(\ ch=getchar(); p=q=str;

for(;*p!= '\\0';p++)

if(*p!=ch) *q++=*p;

*q='\\0'; puts(str); }

本文来源:https://www.bwwdw.com/article/78gg.html

Top