C语言主观试题典型例题分析.docx

上传人:b****3 文档编号:12624154 上传时间:2023-04-21 格式:DOCX 页数:33 大小:21.29KB
下载 相关 举报
C语言主观试题典型例题分析.docx_第1页
第1页 / 共33页
C语言主观试题典型例题分析.docx_第2页
第2页 / 共33页
C语言主观试题典型例题分析.docx_第3页
第3页 / 共33页
C语言主观试题典型例题分析.docx_第4页
第4页 / 共33页
C语言主观试题典型例题分析.docx_第5页
第5页 / 共33页
点击查看更多>>
下载资源
资源描述

C语言主观试题典型例题分析.docx

《C语言主观试题典型例题分析.docx》由会员分享,可在线阅读,更多相关《C语言主观试题典型例题分析.docx(33页珍藏版)》请在冰豆网上搜索。

C语言主观试题典型例题分析.docx

C语言主观试题典型例题分析

1.给三角形三边长,编写程序求三角形面积:

#include

#include

main()

{

floata,b,c,s,area;

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

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

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("您输入的三边长为:

%.2f,%.2f,%.2f\n",a,b,c);

printf("三角形的面积为:

%f\n",area);

}

2.输出九九乘法表:

#include

main()

{

inti,j;

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

{

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

{

printf("%d*%d=%d",i,j,i*j);

}

}

3.求一个整数的绝对值;

#include

main()

{

inta,B;

printf("Pleaseinputanumber:

\n");

scanf("%d",&a);

if(a>0)

B=a;

else

B=-a;

printf("该数的绝对值为%d\n",B);

}

4.编写一个程序,求1+2+3····+100的值;

#include

main()

{

inti,sum=0;

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

{

sum=sum+i;

}

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

}

5.编写一个程序,计算1*2*3···*n的值;

#include

main()

{

longsum=1;

inti,n;

printf("Pleaseinputn:

\n");

scanf("%d",&n);

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

{

sum=sum*i;

}

printf("%d!

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

}

6.编写一个程序,输出三个任意整数的最大值;

做法一:

#include

main()

{

inta,b,c,max;

printf("请输入任意的三个正整数:

\n");

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

max=a;

if(max

max=b;

if(max

max=c;

printf("三个数的最大值是:

%d\n",max);

}

做法二:

调用函数的方法

#include

main()

{

inta,b,c,D;

printf("请输入任意的三个正整数:

\n");

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

D=max(a,b,c);

printf("三个数的最大值是:

%d\n",D);

}

intmax(intx,inty,intz)

{

if(x>z)

z=x;

if(y>z)

z=y;

return(z);

}

7.用起泡法对10个数据进行排序;(利用数组实现)

#include

main()

{

inti,j,t;

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

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;

}

}

}

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

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

}

8.输入10个数字,逆序输出。

(数组实现)

#include

main()

{

inta[10],i,t;

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

{

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

}

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

{

t=a[9-i];

printf("%2d",t);

}

}

9.输入一行字符,将所有的小写字母转换成大写字母,大写字母转换成小写字母,其他字符不变,。

输出转变后的这行字符;

#include

#definen10

main()

{

inti;

charch,a[n];

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

{

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

}

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

{

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

{

ch=a[i]-32;

printf("%c",ch);

}

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

{

ch=a[i]+32;

printf("%c",ch);

}

else

{

ch=a[i];

printf("%c",ch);

}

}

}

10.编写一个程序,实现对两个数的四则运算;

#include

main()

{

floatx,y;

charop;

printf("typeinyourexpression:

\n");

scanf("%f%c%f",&x,&op,&y);

switch(op)

{

case'+':

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

break;

case'-':

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

break;

case'*':

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

break;

case'/':

if(y==0)

printf("error!

\n");

else

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

break;

default:

printf("expressionerror!

\n");

}

}

11.在编写一个顺序结构的过程中遇到的问题(关于if和elseif的用法;式子中平方的表示方法)

#include

#include

main()

{

floatx,y;

printf("请输入x的值:

\n");

scanf("%f",&x);

if(x<1)

y=x*x+2*x+sin(x);

elseif(x<=10)

y=2*x-1;

else

y=sqrt(2*x*x*x-11);

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

}

12.编写一个程序,根据三角形的三边判定三角形的类型(等边三角形、等腰三角形、直角三角形、一般三角形),并求其面积。

#include

#include

main()

{

floata,b,c,s,area;

printf("请输入三角形的三边长:

\n");

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

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

{

s=(a+b+c)/2.0;

area=sqrt(s*(s-a)*(s-b)*(s-c));

printf("此三角形的面积为:

%f\n",area);

if(a==b&&b==c)

printf("此三角形为等边三角形\n");

elseif(a==b||a==c||b==c)

printf("此三角形为等腰三角形\n");

elseif(a*a+b*b==c*c||a*a+c*c==b*b||c*c+b*b==a*a)

printf("此三角形为直角三角形\n");

else

printf("此三角形为一般三角形\n");

}

else

printf("不能构成三角形\n");

}

13.编写一个程序,判断输入的字符是字母、数字或是其他字符。

#include

main()

{

chara;

printf("请任意输入一个字符:

\n");

scanf("%c",&a);

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

printf("%c是字母\n",a);

elseif('0'<=a&&a<='9')

printf("%c是数字\n",a);

else

printf("%c是其他字符\n",a);

}

14.编写一个程序,根据输入的月份,输出2009年该月有多少天?

#include

main()

{

intday;

intmonth;

printf("Pleaseinputthemonth:

\n");

scanf("%d",&month);

switch(month)

{

case1:

case3:

case5:

case7:

case8:

case10:

case12:

day=31;break;

case2:

day=28;break;

case4:

case6:

case9:

case11:

day=30;break;

default:

day=-1;break;

}

if(day==-1)

printf("invalidmonthinput!

\n");

else

printf("2009年%d月有%d天\n",month,day);

}

15.编写程序,分别统计输入的整数中负数和正数的个数;

#include

main()

{

intsum1=0,sum2=0,n;

printf("请输入一组数:

\n");

scanf("%d",&n);

while(n!

=0)

{

if(n<0)

sum1=sum1+1;

else

sum2=sum2+1;

scanf("%d",&n);

}

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

}

16.编写一个程序,统计1~100之间是3或5的倍数的数的个数;

做法一:

#include

main()

{

inti,sum=0;

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

{

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

sum=sum+1;

}

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

}

做法二:

#include

main()

{

inti=1,sum=0;

do

{

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

sum=sum+1;

i++;

}

while(i<=100);

printf("1~100之间是3或5的倍数的数的个数是:

%d\n",sum);

}

17.编写一个程序,输出正整数1到10的平方和;

#include

main()

{

inti,n;

longsum=0;

printf("Pleaseinputn:

\n");

scanf("%d",&n);

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

{

sum=sum+i*i;

}

printf("1*1+2*2+3*3+···+%d*%d=%d\n",n,n,sum);

}

18.编写一个程序,是的他们按从小到大的顺序输出;

#include

main()

{

inta,b,c,t;

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

if(a>b)

{t=a;a=b;b=t;}

if(a>c)

{t=a;a=c;c=t;}

if(b>c)

{t=b;b=c;c=t;}

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

}

19.编写一个程序,输出1~100内的所有素数;

#include

intf(intn)/*有返回值的不能用viod*/

{

inti;

for(i=2;i<=n/2;i++)

if(n%i==0)

return0;

return1;

}

voidmain()

{

inti,count=0;

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

if(f(i)==1)

{

printf("%4d",i);

count++;

if(count%5==0)

printf("\n");/*一行输入5个数*/

}

printf("\n");

}

20.判断并输出所有三位数中的水仙花数;(水仙花数,例:

153=1³+5³+3³)

#include

main()

{

inta,b,c,n;

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

{

a=n%10;

b=((n-a)/10)%10;

c=((n-10*b-a)/100)%10;

if(n==a*a*a+b*b*b+c*c*c)

printf("%5d",n);

}

}

21.编写一个程序,输出1~100的所有素数;

#include

intf(intn)/*有返回值的不能用viod*/

{

inti;

for(i=2;i<=n/2;i++)

if(n%i==0)

return0;

return1;

}

voidmain()

{

inti,count=0;

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

if(f(i)==1)

{

printf("%4d",i);

count++;

if(count%5==0)

printf("\n");/*一行输入5个数*/

}

printf("\n");

}

22.编写一个程序,输出用数字0~9可以组成的三位奇数及其个数;

#include

main()

{

inti,j,k,num,count=0;

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

{

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

{

for(k=1;k<=9;k=k+2)

{

if(i!

=j&&j!

=k&&i!

=k)

{

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

count++;

printf("%4d",num);

if(count%8==0)

printf("\n");

}

}

}

}

printf("\n三位奇数的总数为:

%d\n",count);

}

23.编写一个程序,输入10个同学的成绩,求出其最高分,最低分,和平均值;

#include

main()

{

inti;

floata[10],max,min,aver=0;

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

{

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

}

max=min=a[0];

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

{

if(a[i]

min=a[i];

if(a[i]>max)

max=a[i];

aver+=a[i];

}

printf("平均成绩为:

%f\n",aver/10);

printf("最高成绩为:

%f,最低成绩为:

%f\n",max,min);

}

24.编写一个程序,删除数组中指定的第n个元素;

#include

main()

{

inti,a[10],n;

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

{

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

}

printf("请输入要删除第几个数:

\n");

scanf("%d",&n);

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

{

a[i-1]=a[i];

}

a[9]=0;

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

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

}

25.编写一个程序,输出Fibonacci数列的前二十项;

#include

main()

{

inta[20]={1,1},i;

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

{

a[i]=a[i-2]+a[i-1];

}

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

{

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

if(i%4==0)

printf("\n");

}

printf("\n");

}

26.编写一个程序,输出数组中小于5的数;

#include

main()

{

inta[10]={21,32,2,14,5,25,39,51,8,12},*p;

intcount=0;

for(p=a;p

{

if(*p<20)

printf("%d\t",*p);

if(++count==10)

break;

}

}

27.利用指针法,对数组中的元素加一;

#include

main()

{

inta[20]={1,3,5,7,9},i,*p;

for(p=a;p

{

printf("%4d",*p);

}

printf("\n");

for(p=a;p

{

*p=*p+1;

printf("%4d",*p);

}

printf("\n");

}

28.用指针法实现一组整数的输入,并统计其中偶数和奇数的个数;

#include

main()

{

inta[10]={0,2,3,4,5,6,7,8,14,10};

int*p,i=0,j=0;

for(p=a;p

{

if(*p%2==0)

i=i+1;

else

j=j+1;

}

printf("奇数的个数为%d,偶数的个数为:

%d\n",j,i);

}

29.利用多维数组,输出一个简单图形;

*

**

***

#include

main()

{

inti,j;

inta[3][3]={{'','','*'},{'','*','*'},{'*','*','*'}};

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

{

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

{

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

}

printf("\n");

}

}

30.字符串的简单输出;

#include

main()

{

chars[]="welcometochina!

";

inti;

printf("%c%c%c\n",s[1],s[2],s[3]);

for(i=0;s[i]!

='\0';i++)

printf("%c",s[i]);

printf("\n");

}

31.编写一个用于实现strcmp功能的程序,对于用户所输入的两个字符串,如果;两个字符串相等,则输出零;如如果字符串1大于字符串2,则输出正数;如果字符串1小于字符串2,则输出负数;

#include

main()

{

chars1[100],s2[100];

inti,s3;

printf("Pleaseinputfirststring:

\n");

gets(s1);

printf("Pleaseinputsecondstring:

\n");

gets(s2);

for(i=0;;i++)

{

s3=s1[i]-s2[i];

if(s3!

=0)

break;

if(s1[i]=='\0')

break;

}

if(s3>0)

printf("%s>%s\n",s1,s2);

elseif(s3<0)

printf("%s<%s\n",s1,s2);

else

printf("%s=%s\n",s1,s2);

}

32.编写一个程序,将两个字符串连在一起,(实现stract)函数的功能;

#include

main()

{

chars1[40],s2[20],*p1,*p2;

p1=s1;p2=s2;

gets(s1);

gets(s2);

while(*p1)

p1++;

while(*p1++=*p2++);

puts(s1);

}

33.输入一个m*n的整形矩阵,将矩阵中最大的元素所在的行和最小元素所在的行互换后在输出矩阵(m,n要小于10)

#include

main()

{

intm,n,i,j,max,min,l1=0,l2=0,t;

inta[9][9];/*输入的数组的长度必须声明*/

printf(“Pleaseinputmandn:

\n”);

scanf(“%d%d”,&m,&n);

printf(“您输入的矩阵为:

\n”);

for(i=0;i

{

for(j=0;j

{

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

}

}

max=min=a[0][0];

for(i=0;i

{

for(j=0;j

{

if(a[i][j]>max)/*if的条件后面不能加“;”*/

{

max=a[i][j];

l1=i;

}

if(a[i][j]

{

min=a[i][j];

l2=i;

}

}

}

for(j=0;j

{

t=a[l1][j];

a[l1][j]=a[l2][j];

a[l2][j]=t;

}

printf("变换后的矩阵为:

\n");

for(i=0;i

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

当前位置:首页 > 教学研究 > 教学计划

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

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