C语言编程习题.docx
《C语言编程习题.docx》由会员分享,可在线阅读,更多相关《C语言编程习题.docx(12页珍藏版)》请在冰豆网上搜索。
C语言编程习题
编程习题
1.交换2个变量的值。
#include
intmain(intargc,char*argv[])
{
intx,y,temp;
scanf("%d%d",&x,&y);
printf("x=%d,y=%d\n",x,y);
temp=x;
x=y;
y=temp;
printf("x=%d,y=%d\n",x,y);
}
2.从键盘输入5个学生的成绩,计算出总成绩和平均成绩。
#include
intmain(intargc,char*argv[])
{
floati,j,n,m,z;
intsum=0,avg=0;
printf("请输入成绩\n");
scanf("%f%f%f%f%f",&i,&j,&n,&m,&z);
sum=i+j+n+m+z;
avg=sum/5;
printf("%.1d\n%.ld\n",sum,avg);
}
3.用if或switch语句编程,将百分制成绩转换为等级分:
90以上A,80-89为B,70-79为C,60-69为D,其他为F.
解法一switch:
#include
intmain(intargc,char*argv[])
{intx;
scanf("%d",&x);
switch(x/10)
{case9:
printf("A\n");break;
case8:
printf("B\n");break;
case7:
printf("C\n");break;
case6:
printf("D\n");break;
default:
printf("F\n");
}
}
解法二if:
#include
intmain(intargc,char*argv[])
{intx;
scanf("%d",&x);
if(x/10<=10&&x/10>=9)
printf("A\n");
elseif(x/10>=8&&x/10<9)
printf("B\n");
elseif(x/10>=7&&x/10<8)
printf("C\n");
elseif(x/10>=6&&x/10<7)
printf("D\n");
elseprintf("F\n");
}
4.用if或switch语句编程,要求实现:
从键盘输入1、2、3、4,分别显示excellent、good、pass、fail,输入其他键时显示“error”。
解法一switch:
#include
intmain(intargc,char*argv[])
{intx;
printf("请输入数字\n");
scanf("%d",&x);
switch(x)
{case1:
printf("excellent\n");break;
case2:
printf("good\n");break;
case3:
printf("pass\n");break;
case4:
printf("fail\n");break;
default:
printf("error\n");
}
}
解法二if:
#include
intmain(intargc,char*argv[])
{intx;
printf("请输入数字\n");
scanf("%d",&x);
if(x>0&&x<=4)
{if(x==1)
printf("excellent\n",1);
if(x==2)
printf("good\n",2);
if(x==3)
printf("pass\n",3);
if(x==4)
printf("fail\n",4);
}
else
printf("error\n");
}
5.编写一个程序,计算并输出一个整数n的个位数字之和。
比如n=5678,各位数字之和为5+6+7+8,n的值由键盘输入,可以是任意几位数。
#include
intmain(intargc,char*argv[])
{intn,sum=1,i,j=0;
printf("输入整数n");
scanf("%d",&n);
for(i=0;i{
j=n-n/10*10;n=n/10;
sum=sum+j;
if(n==0)
break;
}
printf("%d\n",sum);
}
6.编写程序实现编程输出所有的水仙花数,并统计输出个数,所谓水仙花数是指一个3位自然数,其各位数字的立方和等于该数本身。
例如153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3
7.编程实现九九乘法表
#include
intmain(intargc,char*argv[])
{inti,j;
for(i=1;i<10;i++)
{for(j=1;j<=i;j++)
printf("%d*%d=%d",i,j,i*j);
printf("\n");
}
printf("\n");
}
8.编一函数判别某一数是否为素数,若是,返回值为1,否则,返回值为0。
main函数中调用该函数
9.编写函数输出1-20的所以素数。
#include
intmain(intargc,char*argv[])
{
intflag=0;
for(inti=1;i<=20;i++)
{
flag=0;
for(intj=2;j
{
if(i%j==0)
{flag=1;
break;
}
}
if(!
flag)
printf("%d\n",i);
}
return0;
}
10.编写程序实现编程输出所有的水仙花数,并统计输出个数,所谓水仙花数是指一个3位自然数,其各位数字的立方和等于该数本身。
例如153就是一个水仙花数,因为153=1*1*1+5*5*5+3*3*3。
要求设计一个函数shuixian用于判断一个数是否为水仙花数,在main函数中调用该函数,输出所有水仙花数。
#include
intshuixian(intn)
{intflag=0,n1,n2,n3;
n1=n%10;
n2=(n/10)%10;
n3=n/100;
if(n1*n1*n1+n2*n2*n2+n3*n3*n3==n)
flag=1;
elseflag=0;
returnflag;
}
intmain(intargc,char*argv[])
{
inti;
for(i=100;i<1000;i++)
if(shuixian(i))
printf("%6d",i);
printf("\n");
return0;
}
10.运用指针,将abcde反向输出。
#include
intmain(intargc,char*argv[])
{charst[]="abcde",*p;
inti,n;
n=strlen(st);
puts(st);
for(i=0;i<2;i++)
{
*p=*(st+i);
*(st+i)=*(st+n-i-1);
*(st+n-i-1)=*p;
}
puts(st);
return0;
}
11.编程实现菱形*图。
【要求:
菱形行数从键盘输入。
】
#include
intmain(intargc,char*argv[])
{
inti,k,j,n;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
for(k=1;k<=n-i;k++)
printf("");
{for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
for(i=n-1;i>0;i--)
{
for(k=1;k<=n-i;k++)
printf("");
{for(j=1;j<=2*i-1;j++)
printf("*");
printf("\n");
}
}
}
12.编程求1+1/2+1/3+1/4+...+1/n
#include
intmain(intargc,char*argv[])
{
doublefun(intn);
intn;
scanf("%d",&n);
printf("sum=%f",fun(n));
}
doublefun(intn)
{
doublesum=0;
inti;
for(i=1;i<=n;i++)
sum+=1.0/i;
returnsum;
}
13编程.输出“thisisateststring,haha!
”的字符串的长度,空格出现的次数和元音字母的个数。
#include
intmain(intargc,char*argv[])
{intn=0,m=0,s=0;
charch[50]="thisisateststring,haha!
";
while(ch[n]!
='\0')
{if(ch[n]=='')
m++;
elseif(ch[n]=='a'||ch[n]=='e'||ch[n]=='i'||ch[n]=='o'||ch[n]=='u')
s++;
n++;
}
printf("字符串的长度(n)为:
%d\n",n);
printf("空格出现的次数(m)为:
%d\n",m);
printf("元音字母个数(s)为:
%d\n",s);
return0;
}
14.二维数组,求一个4*4阶矩阵元素的最小值。
#include
intmain(intargc,char*argv[])
{
staticinta[4][4]={{12,76,4,1},{-19,28,55,-6},{2,10,13,-3},{3,-9,112,111}};
inti,j,row,column,min;
min=a[0][0];
for(i=0;i<4;i++)
for(j=0;j<4;j++)
if(a[i][j]{
min=a[i][j];
row=i,column=j;
}
printf("Min=%d,%drows,%dcolumn\n",min,row+1,column+1);
}