编程题.docx

上传人:b****8 文档编号:9494313 上传时间:2023-05-19 格式:DOCX 页数:24 大小:26.08KB
下载 相关 举报
编程题.docx_第1页
第1页 / 共24页
编程题.docx_第2页
第2页 / 共24页
编程题.docx_第3页
第3页 / 共24页
编程题.docx_第4页
第4页 / 共24页
编程题.docx_第5页
第5页 / 共24页
编程题.docx_第6页
第6页 / 共24页
编程题.docx_第7页
第7页 / 共24页
编程题.docx_第8页
第8页 / 共24页
编程题.docx_第9页
第9页 / 共24页
编程题.docx_第10页
第10页 / 共24页
编程题.docx_第11页
第11页 / 共24页
编程题.docx_第12页
第12页 / 共24页
编程题.docx_第13页
第13页 / 共24页
编程题.docx_第14页
第14页 / 共24页
编程题.docx_第15页
第15页 / 共24页
编程题.docx_第16页
第16页 / 共24页
编程题.docx_第17页
第17页 / 共24页
编程题.docx_第18页
第18页 / 共24页
编程题.docx_第19页
第19页 / 共24页
编程题.docx_第20页
第20页 / 共24页
亲,该文档总共24页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

编程题.docx

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

编程题.docx

编程题

编程题:

1、根据矩形面积的计算方法,编写一个输入圆半径r,计算园周长L和圆面积S的程序。

注意判断圆半径r是否大于零。

#include

intmain()

{

floatr,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");

return0;

}

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

3、输入一个百分制成绩,输出对应的等级。

90·100:

A,80~89:

B,70~79:

C,60~69D,不及格为E。

4、编程实现

5、求

(即求

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

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

#include

main()

{

inta[10],i,j,t;

printf("Input10numbers:

\n");

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

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

printf("beforesorting:

\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("\naftersorting:

\n");

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

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

}

 

7、有一篇文章,共有3行文字,每行80个字符。

要求分别统计出其中英文字母和数字的个数。

8、写一个函数,使给定的3*3的二维整型数组转置,即行列互换。

要求输出转换之前和转换之后的结果。

9、输入3个学生4门课的成绩,分别用函数实现以下功能:

(1)计算每个学生的平均分。

(2)计算每门课的平均分。

(3)找出12个分数中最高分数所对应的学生和课程。

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

要求用指针变量作为函数参数。

11、编写函数intfind(int*p,intn,intx),在指针p所指的数组中查找整型数x,如果x在数组中,则该函数返回1,否则返回0。

n为数组的大小。

编写主函数测试之。

12、编写并调试程序:

功能是打印100以内个位数为6且能被3整除的所有数。

1.

#include

voidmain()

{

inti;

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

{

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

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

}

}

2.?

#include

intmain()

{inta,i;

for(i=6;i<=96;i++)

{

a=i%10;

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

printf("%d",i);

}

return0;

}

 

13、编写并调试程序:

编写一函数,实现从大到小的冒泡法排序功能。

主函数中从键盘上输入10个数,赋给一个数组,把该数组作为参数,调用刚才编写的函数,并在主函数中输出结果。

#include

#defineN10

voidmain()

{

inta[N],i,j,temp;

printf("请输入10个整数:

\n");

for(i=0;i

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

printf("\n");

printf("原始数据为:

\n");

for(i=0;i

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

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

{

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

if(a[j]

{

temp=a[j];

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

a[j+1]=temp;

}

}

printf("\n排序后的数据为:

\n");

for(i=0;i

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

printf("\n");

}

14、编写并调试程序:

输出1~99之间能被2和3整除的数,按5个数一行的格式输出。

1.

#include

intmain()

{

for(inti=1,j=0;i<=99;i++)

{

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

{

printf("%d",i);

j++;

}

if(j>=5)

{

printf("\n");

j=0;

}

}

return0;

}

2.?

#include"stdio.h"

main()

{

inti,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、编写并调试程序:

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

1.

#include

voidmain()

{

charline[30];

inti,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++;

}

elseif(line[i]=='')

{

count2++;

}

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

{

count3++;

}

elsecount4++;

i++;

}

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

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

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

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

}

2.?

#include

voidmain()

{

intz,k,s,q;

charch;

z=k=s=q=0;

for(ch=getchar();ch!

='\n';)

{

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

z++;

elseif(ch=='')

k++;

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

s++;

elseq++;

ch=getchar();

}

printf("zimu:

%d\nspace:

%d\nshuzi:

%d\nqita:

%d\n",z,k,s,q);

}

 

16、编写并调试程序:

输出1~100之间的素数。

#include

intmain(void)

{

inta[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]);

return0;

}

 

17、编写并调试程序:

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

1.

#include

voidmain()

{

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

intminus=0,plus=0;

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

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

{

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

elseplus+=a[i][j];

}

printf("sumofminus=%d\nsumofplus=%d\n",minus,plus);

}

2.

#include"stdio.h"

main()

{

intb[3][4],i,j,zh=0,fu=0;

printf("pleaseinputb[3][4]:

\n");

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

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

{

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

if(b[i][j]>0)zh+=b[i][j];

if(b[i][j]<0)fu+=b[i][j];

}

printf("thesumofthosenumberslargerthan0is:

%d.\n",zh);

printf("thesumofthosenumberssmallerthan0is:

%d.",fu);

}

 

18、编写一函数,实现以下功能:

可以把字符串中字母,按下列规律译成译码:

A→Z,a→z,B→Y,b→y,C→X,c→x,即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母。

非字母字符不变。

主函数中从键盘上输入一个字符串,把该字符串作为参数,调用刚才编写的函数,并在主函数中输出结果。

测试数据为“1China2”。

1.

#include

voidtransform(char*str)

{

while(*str!

='\0'){

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

{

*str=155-*str;

}

elseif(*str>96&&*str<123)

{

*str=219-*str;

}

str++;

}

}

main(){

charstr[100];

scanf("%s",str);

transform(str);

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

}

2.?

#include

#include

#include

intmain()

{

charstr1[100]={NULL};

inti,t;

printf("请输入原文:

\n");

gets(str1);

printf("原文为:

%s\n",str1);

printf("译文为:

");

t=strlen(str1);

for(i=0;i

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

str1[i]=26-(str1[i]-'a')-1+'a';

elseif(str1[i]>='A'&&str1[i]<='Z')

str1[i]=26-(str1[i]-'A')-1+'A';

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

getch();

return1;

}

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

1.

#include

voidmain()

{

inti,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("Aftersort:

\n");

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

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

printf("\n");

}

2.?

#include

#defineN10

main()

{

inti,j,t,a[N];

for(i=0;i

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

for(i=0;i

for(j=i+1;j

if(a[i]

{

t=a[i];

a[i]=a[j];

a[j]=t;

}

for(i=0;i

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

printf("\n");

}

 

20、编写一个函数search(intnum[],inta),用于搜索数组num中是否有a这个元素,若有返回该找到的元素的下标,若没有则返回0。

主函数中从键盘上输入10个整数,调用刚才编写的函数,并在主函数中输出结果。

#include

Intsearch(intnum[10],inta);

voidmain()

{

Intnum[10];

Inti,a;

Printf(“输入a:

”);

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

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

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

Search(num,a);

}

Intsearch(intnum[10],inta)

{

Intt;

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

{

If(num[i]==a)

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

}

Return0;

 

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

#include

voidmain()

{

inta[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(charstr[],charch),用于搜索数组str中是否有ch这个字符,若有返回该找到的元素的下标,若没有则返回0。

主函数中从键盘上输入一个字符串,调用search(),并在主函数中输出结果。

#include

voidsearch(charstr[],charch)

{

inti;

intk=0;

for(i=0;i

{

if(str[i]==ch)

{

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

k++;

}

}

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

}

intmain()

{

chara[100];

charch;

scanf("%s",a);

getchar();

scanf("%c",&ch);

search(a,ch);

getchar();

getchar();

return0;

}

23、任意从键盘输入10个整数,用函数编程实现计算其中的最大值。

要求用数组作为函数参数编程实现计算最大值的函数FindMax(),即按照如下函数原型编写该函数:

intFindMax(intnum[],intn);要求,在主函数中打印输出函数求得的最大值。

#include

intfindmax(intnum[],intn);

Voidmain()

{

Intnum[10],zdz,i;

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

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

Zdz=findmax(num,10);

}

{

Inti;

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列的整型二维数组对角线元素之和。

1.

#include"stdio.h"

voidmain()

{

inta[3][3],i,j;

ints=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);

}

2.?

#include

Voidmain()

{

Inta[3][3],sum;

Sun=0;

Inti,j;

Printf(“enterdata:

\n”);

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

{

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

{

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

}

}

Sum=a[0][0]+a[1][1]+a[2][2]+a[0][2]+[2][0];

Printf(“sumis%6d\n”,sum);

}

 

25、编写并调试程序:

编写一函数,实现从大到小的选择法排序功能。

主函数中从键盘上输入10个数,赋给一个数组,把该数组作为参数,调用刚才编写的函数,并在主函数中输出结果。

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

#include

intmain(void){inta[5][5],k=1;

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

{

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

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

}

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

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

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

printf("\n");

}

return0;}

项目2.字符统计

【项目说明】

有一篇文章,共有3行文字,每行80个字符。

要求分别统计出其中英文字母和数字的个数。

【项目目的】

(1)掌握键盘输入字符串方法。

(2)掌握二维数组的处理方法。

【技术要点】

(1)3行文字可定义一个二维字符数组来表示。

(2)使用gets()函数对字符串进行输入。

程序代码:

1.

#include

intmain()

{inti,j,upp,low,dig,spa,oth;

chartext[3][80];

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

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

{printf("pleaseinputline%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++;

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

low++;

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

dig++;

elseif(text[i][j]=='')

spa++;

else

oth++;

}

}

printf("\nuppercase:

%d\n",upp);

printf("lowercase:

%d\n",low);

printf("digit:

%d\n",dig);

printf("space:

%d\n",spa);

printf("other:

%d\n",oth);

return0;

}

2.

#include

intmain()

{

inti,j,english,dig;

chartext[3][80];

english=dig=0;

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

{

printf("pleaseinputline%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')

english++;

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

dig++;

}

}

printf("english:

%d\n",english);

printf("dig:

%d\n",dig);

return0;

}

项目3.(选做)

在二维数组中,若某一位置上的元素在该行中最大,而在该列中最小,则该元素即为该二维数组的一个鞍

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

当前位置:首页 > 总结汇报 > 学习总结

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

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