0)printf("s=%f\nl=%f\n",s,l);elseprintf("error\n");return0;}2、输入三个整型数据,判断这三个整型数据能否围成三角形" />
文档库 最新最全的文档下载
当前位置:文档库 › 编程题题库

编程题题库

编程题题库
编程题题库

编程题:

1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。注意判断圆半径r是否大于零。

#include

int main()

{

float r,s,l;

scanf("%f",&r );

s=3.14*r*r;

l=2*3.14*r;

if(r>0)

printf("s=%f\nl=%f\n",s,l);

else

printf("error\n");

return 0;

}

2、输入三个整型数据,判断这三个整型数据能否围成三角形,如果能组成三角形,计算并输出它的面积,如果不能围成三角形输出“三条边不能围成三角形”。

#include

#include

void main()

{

float P,S,a,b,c;

scanf("%f,%f,%f",&a,&b,&c);

if((b+c)>a&&(a+c)>b&&(a+b)>c)

{

P=(a+b+c)/2;

S=sqrt(P*(P-a)*(P-b)*(P-c));

printf("S=%6.2f",S);

}

else

printf("it is not a trilateral");

}

3、输入一个百分制成绩,输出对应的等级。90·100:A,80~89:B,70~79:C,60~69D,不及格为E。

#include

int main()

{

int x;

printf("输入\n");

scanf("%d",&x);

if(x>100||x<0)

printf("error");

switch(x/10)

{

case 10:printf("a\n");break;

case 9:printf("a\n");break;

case 8:printf("b\n");break;

case 7:printf("c\n");break;

case 6:printf("d\n");break;

default:printf("e\n");

}

return 0;

}

4、编程实现 ??<--=>+=0100

012x x x x x y 。

#include

void main()

{

float x,y;

printf("输入x 值:");

scanf("%f",&x);

if(x>=0)

if(x>0)y=2*x+1;

else

y=0;

else

y=-x-1;

printf("x=%f,y=%f\n",x,y);

}

5、求10

1!n n =∑(即求1!2!3!10!++++ )

(程序代码和运行结果可写在指导书背面)。

#include

void main()

{

int score,number;

long int i,j,sum=1,total=0;

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

{

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

{

sum=sum*j;

}

printf("%d的阶乘是%1d\n",i,sum);

total=total+sum;

sum=1;

}

printf("%d阶乘的总和是%1d:\n",i,total);

}

6、输入10个数,用“冒泡法”对10个数排序(由小到大)。

#include

main()

{

int a[10],i,j,t;

printf("Input 10 numbers:\n");

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

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

printf("before sorting:\n");

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

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

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

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

if(a[i]>a[i+1])

{t=a[i];a[i]=a[i+1];a[i+1]=t;}

printf("\nafter sorting:\n");

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

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

}

7、有一篇文章,共有3行文字,每行80个字符。要求分别统计出其中英文字母和数字的个数。

#include

int main()

{int i,j,upp,low,dig,spa,oth;

char text[3][80];

upp=low=dig=spa=oth=0;

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

{ printf("please input line %d:\n",i+1);

gets(text[i]);

for (j=0;j<80 && text[i][j]!='\0';j++)

{if (text[i][j]>='A'&& text[i][j]<='Z')

upp++;

else if (text[i][j]>='a' && text[i][j]<='z')

low++;

else if (text[i][j]>='0' && text[i][j]<='9')

dig++;

else if (text[i][j]==' ')

spa++;

else

oth++;

}

}

printf("\nupper case: %d\n",upp);

printf("lower case: %d\n",low);

printf("digit : %d\n",dig);

printf("space : %d\n",spa);

printf("other : %d\n",oth);

return 0;

}

8、写一个函数,使给定的3*3的二维整型数组转置,即行列互换。要求输出转换之前和转换之后的结果。

#include

void zz(int (*a)[3]);

int main()

{

int b[3][3],i,j;

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

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

{

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

}

zz(b);

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

{

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

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

printf("\n");

}

return 0;

}

void zz(int (*a)[3])

{

int t,i,j;

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

{

for(j=0;j

{

t=*(*(a+i)+j);

*(*(a+i)+j)=*(*(a+j)+i);

*(*(a+j)+i)=t;

}

}

return;

}

9、输入3个学生4门课的成绩,分别用函数实现以下功能:(1)计算每个学生的平均分。(2)计算每门课的平均分。(3)找出12个分数中最高分数所对应的学生和课程。

#include

int av(int a[3][4],int b)

{

int i,s=0;

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

s+=a[b][i];

s=s/4;

return s;

}

int av2(int a[3][4],int b)

{

int i,s=0;

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

s+=a[i][b];

return s/3;

}

int max(int a[][4],int *p1,int *p2)

{

int s,i,j;

s=a[0][0];

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

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

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

s=a[i][j],*p1=i,*p2=j;

return s;

}

void main()

{

int i,j,b=0,c=0,d,a[3][4];

int *p1,*p2;

p1=&b,p2=&c;

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

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

printf("请输入第%d个学生%d次成绩",i+1,j+1),

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

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

printf("第%d个学生的平均成绩为%d\n",i+1,av(a,i));

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

printf("第%d门课程的平均分为%d\n",i+1,av2(a,i));

d=max(a,p1,p2);

printf("分数最高的为%d是第%d学生的第%d门课程\n",d,b+1,c+1);

}

10、用函数实现两个变量值的交换,使其在主调函数和被调函数中的值一致,并且返回这两个变量的和以及乘积。要求用指针变量作为函数参数。

#include

void fun(int *a,int *b)

{

int temp ;

temp = *a ;

*a = *b ;

*b = temp ;

}

main()

{

int a=1;

int b=2;

fun(&a,&b);

printf("a=%d,b=%d\n",a,b);

}

11、编写函数 int find(int *p,int n,int x),在指针 p 所指的数组中查找整型数 x,如果 x 在数组中,则该函数返回 1,否则返回 0。n 为数组的大小。编写主函数测试之。

#include

int find(int *p,int n,int x) /*如果在长度为n的整型数组p中找到了整数x,则返回0,否则返回1*/

{

int i;

for (i = 0; i

if (p[i]==x) {return 0;

}

}

return 1;

}

int main(void){

int a[5],i,x;

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

scanf("%d",a+i);

}

printf("输入一个要查找的整数:");

scanf("%d",&x);

if (find(a,5,x)) {

printf("%d不在这个数组中!\n",x);

}

else printf("%d在这个数组中!\n",x);

return 0;

}

12、编写并调试程序:功能是打印100以内个位数为6且能被3整除的所有数。

#include

void main()

{

int i;

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

{

if(i%10==6&&i%3==0)

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

}

}

13、编写并调试程序:编写一函数,实现从大到小的冒泡法排序功能。主函数中从键盘上输入10个数,赋给一个数组,把该数组作为参数,调用刚才编写的函数,并在主函数中输出结果。

#include "stdio.h"

#include "conio.h"

void bubbleSort(int a[],int n)

{

int i,j,temp;

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

{

for(j=9;j>=i+1;j--)

{

if(a[j]

{

temp=a[j];

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

a[j-1]=temp;

}

}

}

}

void printArray(int a[],int n)

{

int i;

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

{

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

}

}

main()

{

int a[10],i,j,t;

printf("Input 10 numbers:\n");

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

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

bubbleSort(a,10);

printArray(a,10);

getch();

}

14、编写并调试程序:输出1~99之间能被2和3整除的数,按5个数一行的格式输出。

#include"stdio.h"

main()

int i,count=0;

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

{

if(i%2==0&&i%3==0)

{

printf("%d ",i);

count++;

}

if(count==5)

{

printf("\n");

count=0;

}

}

printf("\n");

}

15、编写并调试程序:输入一行字符,分别统计出其中英文字母、空格、数字和其他字符的个数。

#include

void main()

{

char line[30];

int i,count1=0,count2=0,count3=0,count4=0;

printf("\n请输入一行字符: ");

gets(line);

i=0;

while(line[i]!='\0')

{

if(((line[i]>=97) && (line[i]<=122))||((line[i]>=65) && (line[i]<=90))) {

count1++;

}

else if(line[i]==' ')

{

count2++;

}

else if(line[i]>='0' && line[i]<='9')

{

count3++;

}

else count4++;

i++;

}

printf("\n其中的英文字母个数为 %d\n",count1);

printf("\n其中的空格个数为 %d\n",count2);

printf("\n其中的数字个数为 %d\n",count3);

printf("\n其中的其他字符个数为 %d\n",count4);

}

16、编写并调试程序:输出1~100之间的素数。

#include

int main(void)

{

int a[100],i,j;

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

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

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

if (a[i]&&a[j]%a[i]==0)

a[j]=0;

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

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

return 0;

}

17、编写并调试程序:主函数中给整型二维数组 b[3][4]从键盘输入12个数据,编写函数求出数组中所有正数之和、所有负数之和,并在主函数中输出结果。

#include

void main()

{

int a[3][4]={10,80,-4,98,-56,16,23,45,-9,45,12,-76};

int minus=0,plus=0;

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

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

{

if(a[i][j]<0)minus+=a[i][j];

else plus+=a[i][j];

}

printf("sum of minus=%d\nsum of plus=%d\n",minus,plus);

}

18、编写一函数,实现以下功能:可以把字符串中字母,按下列规律译成译码: A→Z ,a →z ,B→Y ,b→y, C→X, c→x,即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。非字母字符不变。主函数中从键盘上输入一个字符串,把该字符串作为参数,调用刚才编写的函数,并在主函数中输出结果。测试数据为“1China2”。

#include

void transform(char *str)

{

while(*str!='\0') {

if(*str>64&&*str<91)

{

*str=155-*str;

}

else if(*str>96&&*str<123)

{

*str=219-*str;

}

str++;

}

}

main(){

char str[100];

scanf("%s",str);

transform(str);

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

}

19、从键盘任意输入某班10个学生的成绩(成绩类型为整型),保存到数组中,按照选择法对成绩进行排序,并输出成绩按由高到低的排序结果。

#include

void main()

{

int i,j,k,t,a[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[i];a[i]=a[k];a[k]=t;

}

printf("After sort:\n");

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

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

}

20、编写一个函数search(int num[ ],int a),用于搜索数组num中是否有a这个元素,若有返回该找到的元素的下标,若没有则返回0。主函数中从键盘上输入10个整数,调用刚才编写的函数,并在主函数中输出结果。

#include

Int search(int num[10],int a);

void main()

{

Int num[10];

Int i,a;

Printf(“输入a:”);

Scanf(“%d\n”,&a);

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

Scanf(“%d”,&num[i]);

Search(num,a);

}

Int search(int num[10],int a)

{

Int t;

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

{

If(num[i]==a)

Printf(“%d”,i+1);

}

Return 0;}

21、编程实现从键盘上输入一个数组a[3][3],将每一列的最大值显示出来。

#include

void main()

{

int a[3][3],i,j,max,hang[3],lie[3];

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

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

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

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

{

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

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

printf("\n");

}

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

{

max=a[0][i];

hang[i]=0;

lie[i]=i;

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

if(max

{

max=a[j][i];

hang[i]=j;

lie[i]=i;

}

}

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

printf("第%d列最大的数是第%d行,第%d列\n",i+1,hang[i]+1,lie[i]+1); }

22、编写一个函数search(char str[ ],char ch),用于搜索数组str中是否有ch这个字符,若有返回该找到的元素的下标,若没有则返回0。主函数中从键盘上输入一个字符串,调用search( ),并在主函数中输出结果。

#include

void search(char str[],char ch)

{

int i;

int k=0;

for(i=0;i

{

if(str[i]==ch)

{

printf("下标%d就是字符%c\n",i,ch);

k++;

}

}

printf("共存在%d个\n",k);

}

int main()

{

char a[100];

char ch;

scanf("%s",a);

getchar();

scanf("%c",&ch);

search(a,ch);

getchar();

getchar();

return 0;

}

23、任意从键盘输入10个整数,用函数编程实现计算其中的最大值。要求用数组作为函数参数编程实现计算最大值的函数FindMax(),即按照如下函数原型编写该函数:int FindMax(int num[], int n); 要求,在主函数中打印输出函数求得的最大值。

#include

int findmax(int num[],int n);

Void main()

{

Int num[10],zdz,i;

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

Scanf(“%d”,$num[i]);

Zdz=findmax(num,10);

}

{

Int i;

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

{

If(num[i]>num[i+1])

Num[i+1]=num[i]

}

Printf(“%d\n”,num[9]);

Return(0);

}

24、求一3行3列的整型二维数组对角线元素之和。

#include "stdio.h"

void main()

{

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

int s=0;

printf("输入9个数字,用空格分开:");

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

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

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

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

s+=a[i][i]+a[i][3-1-i];

printf("对角线和:%d\n",s);

}

25、编写并调试程序:编写一函数,实现从大到小的选择法排序功能。主函数中从键盘上输入10个数,赋给一个数组,把该数组作为参数,调用刚才编写的函数,并在主函数中输出结果。

26、通过循环按行顺序为一个5×5的二维数组a赋予25到1的自然数,然后输出该数组的右下半三角。

#include

int main(void){ int a[5][5],k=1;

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

{

for(int j=0;j<5;j++)

{ a[i][j]=k; k++; }

}

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

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

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

printf("\n");

}

return 0;}

相关文档