C程序设计26道题.docx

上传人:b****1 文档编号:10484022 上传时间:2023-05-26 格式:DOCX 页数:17 大小:383.05KB
下载 相关 举报
C程序设计26道题.docx_第1页
第1页 / 共17页
C程序设计26道题.docx_第2页
第2页 / 共17页
C程序设计26道题.docx_第3页
第3页 / 共17页
C程序设计26道题.docx_第4页
第4页 / 共17页
C程序设计26道题.docx_第5页
第5页 / 共17页
C程序设计26道题.docx_第6页
第6页 / 共17页
C程序设计26道题.docx_第7页
第7页 / 共17页
C程序设计26道题.docx_第8页
第8页 / 共17页
C程序设计26道题.docx_第9页
第9页 / 共17页
C程序设计26道题.docx_第10页
第10页 / 共17页
C程序设计26道题.docx_第11页
第11页 / 共17页
C程序设计26道题.docx_第12页
第12页 / 共17页
C程序设计26道题.docx_第13页
第13页 / 共17页
C程序设计26道题.docx_第14页
第14页 / 共17页
C程序设计26道题.docx_第15页
第15页 / 共17页
C程序设计26道题.docx_第16页
第16页 / 共17页
C程序设计26道题.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C程序设计26道题.docx

《C程序设计26道题.docx》由会员分享,可在线阅读,更多相关《C程序设计26道题.docx(17页珍藏版)》请在冰点文库上搜索。

C程序设计26道题.docx

C程序设计26道题

1、有1、2、3、4个数字,能组成多少个互不相同且无重复数字的三位数?

都是多少?

编写程序:

#include

voidmain()

{

inta[]={1,2,3,4};

inti,j,k;

intsum=0;

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

{

for(j=0;j<4;j++)

for(k=0;k<4;k++)

if((a[i]!

=a[j])&&(a[j]!

=a[k])&&(a[k]!

=a[i]))

{

sum=sum+1;

printf("%d%d%d\n",a[i],a[j],a[k]);

}

}

printf("共有%d个\n",sum);

}

2、输入某年某月某日,判断这一天是这一年的第几天?

编写程序:

#include

voidmain()

{

structDate

{

intyear;

intmonth;

intday;

};

structDatex;

inta[]={31,28,31,30,31,30,31,31,30,31,30,31};

inti;

intsum=0;

printf("请输入年月日:

");

scanf("%d,%d,%d",&x.year,&x.month,&x.day);

for(i=0;i

sum=sum+a[i];

sum=sum+x.day;

if((((x.year%4==0)&&(x.year%100!

=0))||(x.year%400==0))&&(x.month>2))

sum=sum+1;

printf("这一天是该年的第%d天\n",sum);

}

3、输出9*9口诀。

编写程序:

#include

voidmain()

{

inti,j;

for(i=1;i<=9;i++)

for(j=1;j<=i;j++)

{printf("%d*%d=%d",j,i,i*j);

if(j==i)printf("\n");

}

}

4、古典问题:

有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?

编写程序:

#include

voidmain()

{

intf1=2,f2=2,f3;

inti;

printf("%5d\n%5d\n",f1,f2);

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

{

f3=f1+f2;

printf("%5d\n",f3);

f1=f2;

f2=f3;

}

}

5、判断101-200之间有多少个素数,并输出所有素数。

编写程序:

#include

voidmain()

{

inti,n,sum=0;

for(n=101;n<200;n++)

{

for(i=2;i

if(n%i==0)break;

if(i==n)

{

sum=sum+1;

printf("%d\n",n);

}

}

printf("共有%d个素数\n",sum);

}

6、输入两个正整数m和n,求其最大公约数和最小公倍数。

编写程序:

#include

voidmain()

{

inta,b,r,s;

printf("请输入两个数:

");

scanf("%d,%d",&a,&b);

r=a%b;

s=a*b;

while(r!

=0)

{

a=b;

b=r;

r=a%b;

}

s=s/b;

printf("这两个数的最大共约数为%d\n",b);

printf("这两个数的最小共倍数为%d\n",s);

}

7、输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

编写程序:

#include

#include

voidmain()

{

chars;

inta,b,c,d;

a=b=c=d=0;

printf("请输入一行字符:

");

while((s=getchar())!

='\n')

{

if((s>='A'&&s<'Z')||(s>='a'&&s<='z'))

a++;

elseif(s=='')

b++;

elseif(s>='0'&&s<='9')

c++;

else

d++;

}

printf("字母的个数为%d个\n空格的个数为%d个\n数字的个数为%d个\n其他为%d个\n",a,b,c,d);

}

8、猴子吃桃问题:

猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第二天早上又将剩下的桃子吃掉一半,又多吃了一个。

以后每天早上都吃了前一天剩下的一半零一个。

到第10天早上想再吃时,见只剩下一个桃子了。

求第一天共摘了多少?

编写程序:

#include

voidmain()

{

intsum=1;

inti;

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

sum=2*(sum+1);

printf("第一天共摘了%d个\n",sum);

}

9、有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。

编写程序:

#include

voidmain()

{

doublei,f1=2,f2=1,t;

doublesum=0.0;

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

{

sum=sum+f1/f2;

t=f2;

f2=f1;

f1=t+f2;

}

printf("前20项之和为%f\n",sum);

}

10、求1+2!

+3!

+...+20!

的和。

编写程序:

#include

voidmain()

{

inti;

longsum=0,s=1;

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

{

s=s*i;

sum=sum+s;

}

printf("sum=%d\n",sum);

}

11、对10个数进行排序(要求从大到小)。

编写程序:

#include

voidmain()

{

inti,j,k,t;

inta[10];

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

scanf("%d",&a[i]);

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

{

k=i;

for(j=i+1;j<10;j++)

if(a[j]>a[k])

k=j;

{t=a[k];a[k]=a[i];a[i]=t;}

}

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

printf("%d",a[i]);

printf("\n");

}

12、求一个4*4矩阵主对角线元素之和。

编写程序:

#include

voidmain()

{

inta[4][4];

inti,j,sum=0;

printf("请输入一个4*4矩阵:

");

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

{

for(j=0;j<4;j++)

scanf("%d",&a[i][j]);

}

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

{

for(j=0;j<4;j++)

if(i=j)

sum=sum+a[i][j];

}

printf("对角线的元素之和为%d\n",sum);

}

13、有一个已经排好序的数组。

现输入一个数,要求按原来的规律将它插入数组中。

编写程序:

#include

voidmain()

{

inti,x;

inta[80]={0,1,2,3,4,5,7,8,9};

printf("请输入一个数:

");

intn=9;

scanf("%d",&x);

for(i=8;i>=0;i--)

if(a[i]>=x)

a[i+1]=a[i];

else

break;

a[i+1]=x;

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

printf("%d",a[i]);

printf("\n");

}

14、将一个数组逆序输出。

编写程序:

#include

voidmain()

{

inta[10]={0,1,2,3,4,5,6,7,8,9};

inti;

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

a[i]=i;

for(i=9;i>=0;i--)

printf("%d",a[i]);

printf("\n");

}

15、打印出杨辉三角形(要求打印出10行)

编写程序:

#include

voidmain()

{

inta[10][10];

inti,j;

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

{

a[i][i]=1;

a[i][0]=1;

}

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

for(j=1;j<=i-1;j++)

a[i][j]=a[i-1][j]+a[i-1][j-1];

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

{

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

printf("%5d",a[i][j]);

printf("\n");

}

}

16、输入数组,最大的与第一个元素交换,最小的与最后一个元素交换,输出数组。

编写程序:

#include

voidmain()

{

inti,j=0,k=0,max,min,t;

inta[10]={1,3,5,7,9,2,4,0,6,8};

max=min=a[0];

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

if(max

{max=a[i];

j=i;

}

{t=a[j];a[j]=a[0];a[0]=t;}

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

if(min>a[i])

{min=a[i];

k=i;

}

{t=a[k];a[k]=a[9];a[9]=t;}

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

printf("%d",a[i]);

printf("\n");

}

17、写一个函数,求一个字符串的长度,在main函数中输入字符串,并输出其长度。

编写程序:

#include

#include

voidmain()

{

intsum=0;

inti;

chara[80];

gets(a);

for(i=0;a[i]!

='\0';i++)

sum=sum+1;

printf("长度为%d\n",sum);

}

18、编写主函数,当输入n为偶数时,调用函数求1/2+1/4+...+1/n,当输入n为奇数时,调用函数1/1!

+1/3!

+...+1/n!

编写程序:

#include

voidmain()

{

intn;

doublesum=0.0;

doubleos(intn);

doublejs(intn);

scanf("%d",&n);

if(n%2==0)

printf("%5.2f\n",os(n));

else

printf("%5.2f\n",js(n));

}

doubleos(intn)

{

inti;

doublesum=0.0;

for(i=1;i<=n/2;i++)

sum=sum+1.0/(2*i);

returnsum;

}

longjc(intn)

{

inti;

longs=1;

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

s=s*i;

returns;

}

doublejs(intn)

{

inti;

longs;

doublesum=0.0;

for(i=0;i<((n+1)/2);i++)

{

s=2*i+1;

sum=sum+1.0/jc(s);

}

returnsum;

}

19、已知一个学生的信息有两项:

学生姓名,学生成绩,从键盘上输入10个学生的信息,然后按学生成绩从小到大排序(排序方法不限),最后输出排序过的学生信息。

编写程序:

20、编程计算从N各元素取出M个元素的组合数

编写程序:

21、编写程序,输入三角型的三条边长,求其面积。

注意:

对于不合理的边长输入要输出数据错误的提示信息。

编写程序:

22、按要求编写程序:

(1)编写求N阶乘的函数JACK()

(2)编写判断素数的函数ISPRIME();

(3)编写主函数,输入一个整数N,调用ISPRIME(),如果是素数就调用JACK()求出N的阶乘并输出,否则显示该数不是素数。

编写程序:

23、编写程序计算下列序列的值:

要求最后一项小于0.001时、或者当N=20时尚未达到精度要求,则停止计算。

编写程序:

24、利用结构:

structcomplx

{intreal;

intim;

};

编写求两个复数之积的函数cmult,并利用该函数求下列复数之积:

⑴(3+4i)×(5+6i)⑵(10+20i)×(30+40i

编写程序:

25、搜索一个字符在字符串中的位置(例如:

’I’在”CHINA”中的位置为3)。

如果没有搜索到,则位置为-1。

编写程序:

26、按要求编写程序:

假设学生有:

学号,姓名,年龄,四门课成绩,总分等信息请先定义结构体student来描述学生信息。

(1)编写输入n个学生信息存入数组a的函数voidshur(studena[],intn);

(2)编写输出数组a中n个学生的函数voidshuc(studenta[],intn);

(3)编写del函数的作用是删除数组a中的指定学生x,n为数组a的学生个数。

voiddel(studenta[],int,n,studentx)

(4)编写查找search函数的作用是查找数组a中的指定学生元素x,n为数组a的学生个数,如果找到,函数返回找到学生的序号,否则函数返回-1,intsearch(studenta[],studentx)

(5)编写插入元素insert函数的作用是将指定学生x插入到数组a中的指定位置w,n为数组a的学生个数。

voidinsert(studenta[],int,n,studentx,intw)

(6)编写排序sort函数,其功能是,按学号排序,voidsort(studenta[],int,n)

(7)编写主函数,调用voidshur(studenta[],intn)输入n个学生信息存入数组,然后调用shur(studenta[],intn)输出;实现删除学生信息操作并显示,实现查找学生操作,显示查找结果,实现插入学生操作,并显示结果实现按学号排序并显示。

(提示,可将n设置为全局变量)

编写程序:

阅读使人快乐,成长需要时间

 

1

1

1

1

1

1

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2