C语言编程题库.docx

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

C语言编程题库.docx

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

C语言编程题库.docx

C语言编程题库

C语言编程题库

“高级语言程序设计”编程题

1.从键盘输入3个整数,求其中的最大数和最小数,并输出结果。

#include"stdio.h"

voidmain()

{

intx,y,z,max,min;

printf("Pleaseinputthreeintegernumber:

");

scanf("%d%d%d",&x,&y,&z);

max=(x>y)?

x:

y;

min=(x

x:

y;

max=(max>z)?

max:

z;min=(min

min:

z;

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

}

2.从键盘上输入一个3*3的整数矩阵,求其各行的平均值并输出,输出时保留两位小数。

#include

voidmain()

{

inta[3][3],b[3]={0};

inti,j;

printf("Pleaseinputthedataofa[3][3]:

\n");

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

{

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

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

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

}

printf("theaverageofrow%dis:

%.2f\n",i+1,b[i]/3.0);

}

}

3.输出x2的值,x取值从0到10。

#include"stdio.h"

voidmain()

{

intx;

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

printf("square(%d)=%d\n",x,x*x);

}

4.从键盘上输入一个3*4的整数矩阵,要求输出其最大元素的值,以及它的行

号和列号。

#include"stdio.h"

voidmain()

{

inta[3][4],max,i,j,row,colum;

printf("Pleaseinputa[3][4]:

\n");

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

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

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

max=a[0][0];

row=0;

colum=0;

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

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

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

{

max=a[i][j];

row=i;

colum=j;

}

printf("max=%d,row=%d,colum=%d\n",max,row,colum);

}

5.编写一个程序从键盘输入10个数,要求输出其中最小的。

#include

main()

{

inta[10];/*定义数组a有10个元素,使用0,9*/

inti,min;

for(i=0;i<=9;i++)/*键盘输入10个数据*/

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

printf("Theoldnumbersare:

\n");

for(i=0;i<=9;i++)/*屏幕输出输入的数据*/

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

min=a[0];

for(i=1;i<=9;i++)/*相邻元素进行比较,如果前面比后面的大则进行交换*/

if(min>a[i])min=a[i];

printf("\nTheminimumnumberis:

%d\n",min);//屏幕输出最小的数据

return0;

}

6.编写一个函数根据以下公式计算s,计算结果作为函数值返回;n通过形参传入。

s=1+1\3+1\5+„+1\2n-1

#include

doublef1(intn);

voidmain()

{

intn=1;

printf("Inputthevalueofn\n");

scanf("%d",&n);

printf("%lf",f1(n));

}

doublef1(intn)

{inti;

doubleterm,s=0;

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

{term=1.0/(2*i-1);

s+=term;}

return(s);

}

7.输出1000年(包括1000年)到1999年之间的所有闰年,要求每三个一行,分行输出。

#include

voidmain()

{

inti=0;

intyear,leap;

for(year=1000;year<2000;year++)

{

if(year%4==0)

if(year%100==0)

if(year%400==0)

leap=1;

else

leap=0;

else

leap=1;

else

leap=0;

if(leap)

{i++;

printf("%d\t",year);

if(i%3==0)printf("\n");

}

}

}

8.编写程序打印所有的“水仙花数”。

“水仙花数”指一个三位数,其各位数字

立方和等于该数本身,例如153是一个“水仙花数”,因为153,1×1×1,3

×3×3,5×5×5。

voidmain()

{

inti,j,k,n;

printf("resultis:

");

for(n=100;n<1000;n++)

{

i=n/100;

j=(n-i*100)/10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

}

9.编写一个程序,输入一个3位数的正整数,然后反向输出对应的数。

如:

123,

则输出321。

参考答案:

#include

voidmain(){

inti,s=0,j;

scanf("%d",&i);

if(i>=100&&i<=999){

j=i%10;

s=s+j;

j=(i-j)/10%10;

s=s*10+j;

j=i/100;

s=s*10+j;

printf("theinversenumberis%d",s);

}

else

printf("inputerroe!

");}

10.从键盘输入10名学生的C语言成绩存入一维数组内,编写程序计算10名学

生的最高分、平均分和及格人数。

参考答案:

#include

voidmain(){

inti,score[10],max,min;

floatave;

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

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

max=score[0];

min=score[0];

ave=score[0];

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

if(score[i]>max)

max=score[i];

if(score[i]

min=score[i];

ave=ave+score[i];

}

ave=ave/10.0;

printf("max=%d,min=%d,ave=%f",max,min,ave);

}

11.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“a

numericalcharacter”,

否则输出“othercharacter”。

参考答案:

#include

voidmain(){

charch;

ch=getchar();

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

printf("anumericalcharacter");

else

printf("othercharacter");

}

12.从键盘输入12个数存入二维数组a[3][4]中,编写程序求出最大元素的值及它所在的行号和列号。

参考答案:

#include

voidmain(){

inti,j,a[3][4],max,index_i,index_j;

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

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

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

max=a[0][0];

index_i=0;

index_j=0;

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

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

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

max=a[i][j];

index_i=i;

index_j=j;

}

printf("max=%d,index_x=%d,index_y=%d",max,index_i,index_j);

}

13(打印所有的“水仙花数”,所谓“水仙花数”是指一个三位正整数,其各位

数字的立方和等于该数本身。

参考答案:

#include

voidmain()

{

inti,j,k,n;

printf("resultis:

");

for(n=100;n<1000;n++)

{

i=n/100;

j=(n-i*100)/10;

k=n%10;

if(n==i*i*i+j*j*j+k*k*k)

printf("%d",n);

}

printf("\n");

}

14.利用函数将给定的3×3二维数组转置。

参考答案:

#include"stdio.h"voidconvert(intarray[3][3]){

inti,j,k;

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

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

{

k=array[i][j];

array[i][j]=array[j][i];

array[j][i]=k;

}

}

voidmain()

{

inti,j;

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

printf("转换前:

\n");

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

{

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

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

printf("\n");

}

convert(a);

printf("\n转换后:

\n");

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

{

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

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

printf("\n");

}

}

15.编程输入a、b、c的值后,输出一元二次方程ax2+bx+c=0的解。

参考答案:

#include

#include

voidmain()

{

floata,b,c,d,x1,x2;

printf("inputa,b,c:

");

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

4*a*c);d=sqrt(b*b-

x1=(-b+d)/(2*a);

x2=(-b-d)/(2*a);

printf("x1=%.2fx2=%.2f\n",x1,x2);

}

16.从键盘上输入任意两个数和一个运算符(+、-、*、/),根据输入的运算符对两个数计算,并输出结果。

参考答案:

#include

voidmain()

{

floata,b;

inttag=0;

charch;

floatresult;

printf("inputtwonumber:

");

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

fflush(stdin);

printf("inputarithmeticlable(+-*/):

");

scanf("%c",&ch);

switch(ch)

{

case'+':

result=a+b;break;

case'-':

result=a-b;break;

case'*':

result=a*b;break;

case'/':

if(!

b)

{

printf("divisoriszero!

\n");

tag=1;

}

else

result=a/b;

break;

default:

printf("illegalarithmeticlable\n");

tag=1;

}

if(!

tag)

printf("%.2f%c%.2f=%.2f\n",a,ch,b,result);

}

17.编写输入一个字符串,计算其中空格的个数。

#include

voidmain()

{

chars[30];

inti,j=0;

printf("请输入字符串:

\n");

gets(s);

for(i=0;i

printf("空格数为:

%d\n",j);

}

18.采用二维数组输入多个学生五门课的成绩,分别求出每个学生的平均成绩和每门课的成绩。

#include

voidmain()

{

inta[100][5],i,j,n;

floatave1[100]={0};

floatave2[80]={0};

printf("请输入学生的人数:

\n");

scanf("%d",&n);

for(i=0;i

{

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

{printf("\n请输入第%d位同学的第%d门成绩:

"i+1,j+1);

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

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

}

ave1[i]=ave1[i]/5;

}

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

{

for(i=0;i

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

ave2[j]=ave2[j]/n;

}

for(i=0;i

printf("第%d位同学的平均成绩为:

%.2f\n",i+1,ave1[i]);

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

printf("第%d门课的平均成绩为:

%.2f\n",j+1,ave2[i]);

}

19.编写程序,逆转字符串。

#include

voidmain()

{

inti,t;

chars[100];

printf("请输入字符串:

\n");

gets(s);

t=strlen(s);

for(i=t-1;i>=0;i--)printf("逆转后的字符串:

%d",s[i]);

}

20.编写程序,统计一个英语文本中的英语单词个数。

#include

voidmain()

{

chars[100];

inti,j;

printf("请输入文本:

\n");

gets(s);

for(i=0;i

printf("单词数为%d个",j+1);

}

21.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数

字立方和等于该数本身。

例如:

153是一个“水仙花数”,因为153=1的三次方

,5的三次方,3的三次方。

参考答案:

#include

voidmain()

{

inti,j,k,n;

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

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

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

if(i*i*i+j*j*j+k*k*k==i*100+j*10+k)

{

n=i*100+j*10+k;

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

}

}

22(有一分数序列:

2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前

20项之和。

参考答案:

#include"stdio.h"main()

{

intn,t,number=20;

floata=2,b=1,s=0;

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

{

s=s+a/b;

t=a;a=a+b;b=t;

}

printf("sumis%9.6f\n",s);

}

23(找出101~200中所有的素数。

参考答案:

#include#include

intisprimer(intn){

inti,m;

m=(int)(sqrt(n));

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

{

if(n%i==0)

return0;

}

return1;

}

voidmain()

{

inti;

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

if(isprimer(i))

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

24(使用循环结构编写程序,打印出如下图案*

***

*****

参考答案:

#include

voidmain()

{

inti,j,k;

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

{

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

printf("");

for(k=1;k<=2*i-1;k++)

printf("*");

printf("\n");

}

}

25.用冒泡排序法将10个整数由大到小排序。

参考答案:

#include

voidmain()

{inta[10],i,j,t;

printf("input%dnumbers:

\n",10);

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

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

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

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

if(a[j]

{t=a[j];

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

a[j+1]=t;

}

printf("thesortednumbers:

\n");

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

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

26.输入任意正整数,编程判断该数是否为回文数(回文数是指从左到右读与从右到左读一样,如12321)。

参考答案:

#include

voidmain()

{intn,m=0,s,r;

printf("Inputdatais:

");

scanf("%d",&n);

s=n;

while(s!

=0)

{r=s%10;

m=10*m+r;

s=s/10;

}

if(m==n)

printf("yes\n");

else

printf("no\n");}

27.求出10至1000之内能同时被2、3、7整除的数,并输出。

#includemain()

{

inti;

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

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

printf("%d",i);}

28.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是

则输出“Yes”,否则输出“No”。

#include#includemain()

{

inti,j,tag=1;

charch[50];

printf("Pleaseinputastring:

");

scanf("%s",ch);

j=strlen(ch);

for(i=0;i

if(ch[i]!

=ch[j-i-1])

{

tag=0;

break;

}

if(tag)

printf("Yes.\n");

else

printf("No.\n");

}

29.设计一个函数,用来判断一个整数是否为素数。

参考答案:

#include

#include

intIsPrimer(intn)

{inti;

if(n<=1)

return0;

for(i=2;i<=(int)sqrt(n);i++)

{if(n%i==0)

return0;}

return1;

}

voidmain()

{inti;

scanf("%d",&i);

if(IsPrimer(i))

\n");printf("这是素数

else

printf("这不是素数\n");

}

printf("thesortednumbers:

\n");

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

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

30.从键盘上输入若干学生成绩(成绩在0~100之间),计算平均成绩,并输出

低于平均分的学生成绩,用输入负数结束输入。

参考答案:

#include

voidmain()

{

floatx[1000],sum=0,ave,a;

intn=0,i;

printf("Entermark:

\n");

scanf("%f",&a);

while(a>=0&&a<=100&&n<1000)

{

sum+=a;

x[n]=a;

n++;

scanf("%f",&a);

}

ave=sum/n;

\n");printf("Output:

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

for(i=0

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

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

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

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