C编程题库.docx

上传人:b****7 文档编号:9463222 上传时间:2023-02-04 格式:DOCX 页数:40 大小:34.26KB
下载 相关 举报
C编程题库.docx_第1页
第1页 / 共40页
C编程题库.docx_第2页
第2页 / 共40页
C编程题库.docx_第3页
第3页 / 共40页
C编程题库.docx_第4页
第4页 / 共40页
C编程题库.docx_第5页
第5页 / 共40页
点击查看更多>>
下载资源
资源描述

C编程题库.docx

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

C编程题库.docx

C编程题库

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

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

#include

voidmain()

{

inta,i,min,max;

scanf("%d",&min);

max=min;

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

{

scanf("%d",&a);

if(a>max)

max=a;

if(a

min=a;

}

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

}

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

#include

voidmain()

{

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

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

doubles[3]={0};

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++)

{

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

}

}

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

{

printf("%.2lf\",s[i]/3);

}

}

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

#include

voidmain()

{

inti;

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

{

printf("%5d",i*i);

}

}

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

#include

voidmain()

{

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

inta[3][4],i,j,mi,mj;

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

{

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

{

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

}

}

mi=0;

mj=0;

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

{

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

{

if(a[i][j]>a[mi][mj])

{

mi=i;

mj=j;

}

}

}

printf("max=%d\n",a[mi][mj]);

printf("i=%d,j=%d\n",mi,mj);

}

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

#include

voidmain()

{

inta,min,i;

scanf("%d",&min);

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

{

scanf("%d",&a);

if(a

min=a;

}

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

}

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

s=

#include

doubleqiuhe(intn)

{

doubles=0;

inti;

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

{

s+=1.0/(2*i-1);

}

returns;

}

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

#include

voidmain()

{

//输出1000年(包括1000年)到1999年之间的所有闰年

//要求每三个一行,分行输出

inti,count=0;

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

{

if(i%4==0&&i%100!

=0)

{

count++;

printf("%5d",i);

if(count%3==0)

printf("\n");

}

elseif(i%400==0)

{

count++

printf("%5d",i);

if(count%3==0)

printf("\n");

}

}

}

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

“水仙花数”指一个三位数,其各位数字立方和等于该数本身,例如153是一个“水仙花数”,因为153=1×1×1+3×3×3+5×5×5。

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.编写一个程序,判断用户输入的字符是否是数字,若是数字,则输出“anumericalcharacter”,

否则输出“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);

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

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[200];

inti,count=0;

gets(s);

for(i=0;s[i]!

='\0';i++)

{

if(s[i]=='')

count++;

}

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

}

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

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

#include

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

voidmain()

{

chars[200],t;

intn,i;

gets(s);

n=0;

while(s[n]!

='\0')

n++;

for(i=0;i

{

t=s[i];

s[i]=s[n-1-i];

s[n-1-i]=t;

}

puts(s);

}

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

21.打印出所有的“水仙花数”,所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身。

例如:

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

参考答案:

#include“stdio.h”

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“stdio.h”

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.输入任意正整数,编程判断该数是否为回文数(回文数是指从左到右读与从右到左读一样,如12321123443215)。

12345

54321

参考答案:

#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整除的数,并输出。

#include

voidmain()

{

inti;

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

{

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

printf("%5d",i);

}

}

28.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出“Yes”,否则输出“No”。

#include

voidmain()

{

//28.输入一字符串,检查是否回文(回文是指正反序相同,如,LeveL),若是则输出"Yes",否则输出"No"。

chars[200];

intn=0,i,tag=1;

gets(s);

while(s[n]!

='\0')

n++;

for(i=0;i

{

if(s[i]!

=s[n-1-i])

{

tag=0;

break;

}

}

if(tag==1)

printf("Yes");

else

printf("No");

}

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))

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

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;

printf("Output:

\n");

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

for(i=0;i

if(x[i]

printf("%f\n",x[i]);

}

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

参考答案:

#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))

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

else

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

}

printf("thesortednumbers:

\n");

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

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

}

32.从键盘上输入若干学生成绩(成绩在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

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

当前位置:首页 > 成人教育 > 专升本

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1