当前位置:文档之家› 程序设计题

程序设计题

1.求1到100之间所有正整数之和(包括1和100),并输出结果。

#include

void main()

{

inti,sum=0;

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

sum=sum+i;

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

}

2.求1到100之间所有奇数之和(包括1),并输出结果。

#include

void main()

{

inti,sum=0;

for(i=1;i<100;i=i+2)

sum=sum+i;

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

}

3.求1到10之间所有偶数之积(包括10),并输出结果。

#include

void main()

{

inti;

long f=1;

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

f=f*i;

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

}

4.输出Fibonacci数列前40项。这个数列有如下特点:第一,二个数为1、1。从第3个数开始,该数是其前面两个数之和。

#include

void main()

{

int i,f1=1,f2=1;

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

{

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

f1=f1+f2;

f2=f2+f1;

} }

5.求1到100之间的奇数的平方和(包括1),并输出结果。

#include

void main()

{

inti,s;

s=0;

for(i=1;i<=100;i=i+2)

s=s+i*i;

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

}

6.输出100以内能被3整除且个位数为6的所有正整数。

#include

void main()

{

inti,j;

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

{

j=i*10+6;

if(j%3!=0)

continue;

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

}

}

7.任意输入一个正整数给变量n,求1到n之间(不包括n)所有3的倍数之和,并输出结果。

#include

void main()

{

inti,n,s=0;

scanf("%d",&n);

for(i=1;i

if(i%3==0)

s=s+i;

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

}

8.任意输入一个正整数给变量n,计算并输出n的所有因子之和(不包括1与自身)。规定n的值不大于1000。

#include

void main()

{

int s=0,n,i;

scanf("%d",&n);

for(i=2;i

if(n%i==0)

s=s+i;

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

}

9.从键盘给一维整形数组输入10个整数,找出数组中最小的数并输出。

#include

void main()

{

int a[10],i,min;

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

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

min=a[10];

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

if(a[i]

min=a[i];

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

}

10.从键盘给一维数组输入10个整数,求最小值所在的下标并输出。

#include

void main()

{

int a[10],i,min;

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

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

min=0;

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

if(a[i]

min=i;

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

}

11.从键盘给二维整型数组输入12个整数,找出数组中最大的数并输出。

#include

void main()

{

int a[3][4],i,j,max;

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

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

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

max=a[0][0];

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

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

if(a[i][j]>max)

max=a[i][j];

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

}

12.找出数组a[10]=

{1,2,8,18,20,-50,34,90,2,12}中的最大的偶数,并输出。

#include

void main()

{

int a[10]={1,2,8,18,20,-50,34,90,2,12};

inti,max=-1;

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

if(a[i]%2==0)

if(a[i]>max)

max=a[i];

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

}

13.输入一个字符串给字符数组str[40],将字符串中的所有小写字母转化为对应的大写字母,其它字符不变。最后输出转化后的字符串。

#include

#include

void main()

{

charstr[40];

inti;

gets(str);

for(i=0;str[i]!='\0';i++)

if(str[i]>='a'&&str[i]<='z')

str[i]=str[i]-32;

puts(str);

}

14.从键盘给一维整形变量输入10个整数,求其中最大值和最小值的差。

#include

#include

void main()

{

int a[10];

inti,max,min;

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

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

max=min=a[0];

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

if(a[i]>max)

max=a[i];

else if(a[i]

min=a[i];

printf("%d\n",max-min);

}

15.对二维数组a进行装置,即行列转换,并放在b数组中。

数组a

1 2 3

4 5 6

7 8 9

数组b

1 4 7

2 5 8

3 6 9

#include

void main()

{

int a[3][3]={1,2,3,4,5,6,7,8,9},b[3][3];

inti,j;

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

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

b[j][i]=a[i][j];

printf("转置后的b数组中的内容为:\n");

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

{

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

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

printf("\n");

}

}

16.随意输入一个字符串给字符数组str[40],求该字符串中字母的个数并输出。

#include

void main() {

charstr[40];

inti,num=0;

gets(str);

for(i=0;str[i]!='\0';i++)

if(str[i]>='a'&&str[i]<='z'||str[i]>='A'&&st r[i]<='Z')

num++;

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

}

17.把数组中的元素按相反顺序存放,即a 数组中的元素原来存放方式为 5 4 3 2 1,试编程把数组中的元素存放成:1 2 3 4 5。

#include

void main()

{

int a[5]={5,4,3,2,1};

inti,k,t;

k=2;

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

{

t=a[i];

a[i]=a[4-i];

a[4-i]=t;

}

printf("按相反顺序存放后的数组元素值依次为:");

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

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

printf("\n");

}

18.随意输入两个字符串给字符数组strl[40]和str2[40],将两个字符串连接起来放在数组str1中,并输出连接后的字符串。

#include

void main()

{

char str1[40],str2[40];

inti,j;

gets(str1);

gets(str2);

for(i=0;str1[i]!='\0';i++)

for(j=0;str2[j]!='\0';j++)

str1[i+j]=str2[j];

str1[i+j]='\0';

puts(str1);

}

19.请编写函数swap,其功能是:比较变量x和y中的值,将大的值返回给主函数。

int swap(intc,int y)

{

int z;

z=x>y?x:y;

return z;

}

20.请编写函数fun,其功能是:计算三角形的面积并返回给主函数。(形参x,y,z分别接受三角形的三边长)

double fun(float x,floaty,float z)

{

floats,area;

s=(x+y+z)/2;

area=sqrt(s*(s-x)*(s-y)*(s-z));

return area;

}

21.请编写函数fun,其功能是:把主函数中传过来的百分制成绩转换成等级“A”,“B”,“C”,“D”,“E”并转换后的等级返回给主函数。

char fun(float x)

{

inti;

char grade;

i=(int)x/10;

switch(i)

{

case 10:

case 9:grade='A';break;

case 8:grade='B';break;

case 7:grade='C';break;

case 6:grade='D';break;

default:grade='E';

}

return grade;

}

22.编写函数fun,其功能是:求n!.主函数的功能是计算:x!+y!+z!的值。

long fun(int n)

{

inti;

longint p=1;

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

p=p*i;

return(p);

}

23.编写函数判断一个整数能否同时被3和5整除,若能返回1,若不能返回0.调用该函数求出15~300(包括15和300)之间,能同时被3和5整除的数个数。

int sum(int n)

{

if(n%3==0&&n%5==0)

return(1);

return(0);

}

24.请编写函数fun,其功能是:判断主函数中传过来的年份是否为闰年,如果是闰年返回1,如果不是闰年返回0.

int fun(int x)

{

int flag;

if(x%4==0&&x%100!=0||(x%400==0))

flag=1;

else

flag=0;

return flag;

}

25.编写函数fun,函数功能是:计算n门课程的平均值,计算结果作为函数值返回。

float fun(int a[],int n)

{

inti;

float y=0;

for(i=0;i

y+=a[i];

y=y/n;

return y;

}

26.编写函数fun生成一个主对角线元素为1,其他元素都为0的3*3的二维数组。

void fun(intarr[][3])

{inti,j;

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

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

if(i==j)

arr[i][j]=1;

else

arr[i][j]=0;

}

27.编写函数fun,其功能是求任一整数m的n次方。

long fun(intm,int n)

{

longint x=1;

inti;

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

x=x*m;

return x;

}

28.编写函数fun,其功能是求1000以内所有7的倍数之和。

int fun(int m)

{

int s=0,i;

for(i=1;i

if(i%m==0)

s+=i;

return s;

}

29.下面程序的功能是:通过调用函数fun交换主函数中a和b中的内容,最后输出。请将函数fun按功能补充完整。

void fun(int *x,int *y)

{

int t;

t=*x;

*x=*y;

*y=t;

}

30.下面程序的功能是:通过调用fun函数把a数组中的内容逆序存放,最后输出。请将函数fun按功能补充完整。

void fun(int *x,int n)

{

int *i,*j;

intk,t;

k=(n-1)/2;

i=x;

j=x+n-1;

for(;i<=x+k;i++,j--)

{

t=*i;*i=*j;*j=t;

}

}

31.下面程序的功能是:通过调用fun函数比较两个数组中字符串的大小,最后输出相关信息。

int fun(char *x,char *y)

{

while(*x==*y&&*x&&*y)

{

x++;y++

}

return(*x-*y);

}

32.下面程序的功能是:输入一个整数给变量n(0<=n<=3),通过调用函数fun返回二维数组a的第n行首地址,最后在主函数中循环输出第n行的成绩。请将函数fun按功能补充完整。

int*fun(int(*x)[4],int n)

{

int *q;

q=*(x+n);

return q;

}

33.下面程序的功能是:把指针数组各元素指向的字符串逐一输出:请将程序补充完整。#include

void main()

{ inti;

char

*s[5]={"Dalian","Beijing","Changchun","ShenY ang","Tianjin"};

char * * p;

p=s;

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

printf("%s\n",*(p+i));

}

35.下面程序的功能是在主函数中从键盘输入4个学生的有关数据,然后调用save函数把4个学生的数据存到文件stuinfo中去。void save()

{

FILE*fp;

inti;

if((fp=fopen("stuinfo","wb"))==NULL)

{

printf("cannot open file\n");

getchar();

exit(0);

}

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

if(fwrite(&stud[i],sizeof(struct student),1,fp)!=1)

printf("file write error\n");

flose(fp);

}

36.下面程序的功能是调用load函数从文件stuinfo中把4个学生的数据读到内存,并显示在显示器上。

void load()

{

FILE*fp;

inti;

if((fp=fopen("stuinfo","rb"))==NULL)

{

printf("cannot open file\n");

getchar();

exit(0);

}

printf("num name sex age\n");

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

{

fread(&stud[i],sizeof(struct student),1,fp);

printf("%d-8d%-10s%-8s%3d\n",stud[i].n um,stud[i].name,stud[i].sex,stud[i].age);

}

fclose(fp);

} 37.编程实现:随意输入一个整数给变量a,取a从右端开始的3~5位,并以十进制形式输出。

#include

void main()

{

inta,b,c,d;

scanf("%d",&a);

b=a>>3;

c=~(~0<<3);

d=b&c;

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

}

38.编程实现:使一个无符号整数的低4位清零,其他位保持不变,以十六进制数形式输入和输出(程序运行时,输入:000f;输出:0)

#include

void main()

{

unsignedinta,b,c;

scanf("%x",&a);

b=(~0<<4);

c=a&b;

printf("%x\n",c);

}

相关主题
文本预览
相关文档 最新文档