1..实现求30、15这两个数的差和乘积,并将结果输出到屏幕上。
#include <stdio.h>
int main()
{
int a,b;
a=30;
b=15;
printf("30-15=%d\n30*15=%d\n",a-b,a*b);
return 0;
}
2..输入:输入两个整数,两个整数之间用空格分隔,如输入 20 30
输出:输出两个数中的较小数
#include <stdio.h>
int min(int x,int y)
{ return(x<y?x:y);
}
int main()
{ int num1,num2,m;
scanf("%d %d",&num1,&num2);
m=min(num1,num2);
printf("%d\n",m);
return 0;
}
3..已知矩形的长和宽分别是300和20,编程计算周长和面积.
#include <stdio.h>
int main()
{
int a,b,l,s;
a=300;
b=20;
l=2*(a+b);
s=a*b;
printf("周长=%d\n面积=%d\n",l,s);
return 0;
}
4..输入:一个圆的半径 ,设圆周率为 3.14
输出:圆的周长和面积
#include <stdio.h>
#define PI 3.14
int main()
{
double r,s,l;
r=10;
s=PI*r*r;
l=2*PI*r;
printf("周长=%f\n面积=%f\n",l,s);
return 0;
}
5..输入一个华氏温度,要求计算出摄氏温度。计算公式如下:
C=5/9(F-32)
#include<stdio.h>
int main()
{
float c,f;
scanf("input F:");
scanf("%f",&f);
c=5.0/9.0*(f-32);
printf("c:%1.2f\n",c);
return 0;
}
6..已知笼中有头h个,有脚f条。问笼中鸡兔各有多少只?
要求:头和脚从键盘输入
#include <stdio.h>
int main()
{int h,f,chick,rabbit;
scanf("%d,%d",&h,&f);
chick=(4*h-f)/2;
rabbit=(f-2*h)/2;
printf("rabbit:%d\nchick:%d\n",rabbit,chick);
return 0;
}
7..输入三角形的三条边的边长,编写求其面积的程序。
提示:三角形面积公式:area=sqrt(s*(s-a)*(s-b)*(s-c)),s=1/2*(a+b+c)
#include <stdio.h>
#include <math.h>
int main()
{float a,b,c,s,area;
a=3;
b=4;
c=5;
s=1.0/2*(a+b+c);
area=sqrt(s*(s-a)*(s-b)*(s-c));
printf("a=%1.2f,b=%1.2f,c=%1.2f,s=%1.2f\n",a,b,c,s);
printf("area=%1.2f\n",area);
return 0;
}
8..从键盘上任意输入一个3位数,分离出它的个位、十位和百位上的数字,并输出各位数字的和。
#include <stdio.h>
int main()
{
int m,k,i,sum;
i=0;
sum=0;
scanf("%d",&m);
while(i<=2)
{
k=m%10;
m=m/10;
sum=sum+k;
printf("%d\n",k);
i=i+1;
}
printf("%d\n",sum);
return 0;
}
9..从键盘输入一个字符,如果是大写字母或小写字母,就输出其对应的ASCII
码。
# include <stdio.h>
int main()
{
char p;
scanf("%c",&p);
if(p>='a'&&p<='z'||p>='A'&&p<='Z')
printf("%d\n",p);
}
10..输入任一平年的月份,输出该月份对应的天数。提示:设月份为month,天数为day,则:month=1,3,5,7,8,10,12 day=31
#include <stdio.h>
int main()
{
int m;
scanf("%d",&m);
switch(m)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:printf("31\n");break;
case 4:
case 6:
case 9:
case 11:printf("30\n");break;
case 2:printf("20\n");break;
}
return 0;
}
11..从键盘输入小写字母,要求改用大写字母输出.
#include <stdio.h>
int main()
{
char a,b;
scanf("%c",&a);
b=a-32;
printf("%c\n",b);
return 0;
}
12..输入一个正整数,编程判断其是否既是5又是7的倍数。
若是,则输出“yes”;否则输出“no”。
#include <stdio.h>
int main()
{int a;
scanf("%d",&a);
if(a%5==0&&a%7==0)
printf("yes\n");
else
printf("no\n");
return 0;
}
13.. 对于给定的百分制成绩,输出相应的五分制成绩。提示:90分以上为‘A’,80~89分为‘B’,70~79分为‘C’,60~69分为‘D’,60分以下为‘E’。要求,必须使用switch语句,并且只用一个输出语句输出计算结果。
# include <stdio.h>
int main()
{
char x;
int y,z;
scanf("%d",&y);
z=y/10;
switch(z)
{
case 10:
case 9:x='A';break;
case 8:x='B';break;
case 7:x='C';break;
case 6:x='D';break;
default:x='E';
}
printf("%c\n",x);
return 0;
}
14..要求:从键盘输入10个整型数,求出最大数和最小数。
#include <stdio.h>
int main()
{
int i;
int x,min,max;
scanf("%d",&x);
scanf(" ");
max=min=x;
i=1;
while(i<10)
{i=i+1;
scanf("%d",&x);
scanf(" ");
if(min>x)
min=x;
if(max<x)
max=x;
}
printf("min=%d\n",min);
printf("max=%d\n",max);
return 0;
}
<=1+1/1!+2/2!+1/3!+...,要求精确到小数点后5位。
#include <stdio.h>
int main()
{
int i=1;
double e=1,t=1;
while(t<1e5)
{t=t*i;
e=e+1/t;
i=i+1;
}
printf("e=%.6f\n",e);
return 0;
}
16..从键盘输
入数组:如a[5]={3,15,56,66 ,88} ,输出最大元素下标5和最小元素下标1。
#include<stdio.h>
#define N 5
int main()
{ int i,x,y,max,min;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
x=y=1;
max=a[0];
for(i=0;i<N;i++)
if(max<a[i])
{max=a[i];
x=i+1;
}
min=a[0];
for(i=0;i<N;i++)
if(min>a[i])
{min=a[i];
y=i+1;
}
printf("%d\n",x);
printf("%d\n",y);
return 0;
}
17..数组中输入5个整数,输出最大和第二大元素的下标,并输出相应的元素的值.
#include<stdio.h>
#define N 5
int main()
{ int i,x,y;
int a[N];
for(i=0;i<N;i++)
scanf("%d",&a[i]);
x=y=0;
for(i=0;i<N;i++)
if(a[x]<a[i])x=i;
for(i=0;i<N && i!=x;i++)
if(a[y]<a[i]) y=i;
printf("%d\n%d\n",x+1,a[x]);
printf("%d\n%d\n",y+1,a[y]);
return 0;
}
19..要求:从键盘输入4行4列的矩阵,把矩阵的行和列互换得到该矩阵的转置矩阵,并输出4行4列的转置矩阵,输出的每行各个元素使用"%6d"的格式输出。
#include<stdio.h>
#define N 4
int main()
{ int i,j,t;
int a[N][N];
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
scanf("%d",&a[i][j]);
}
for(i=0;i<N;i++)
for(j=0;j<N;j++)
{ t=a[i][j];
a[i][j]=a[j][i];
a[j][i]=t;
}
for(i=0;i<N;i++)
{for(j=0;j<N;j++)
printf(" %d",a[j][i]);
printf("\n");
}
return 0;
}
20..输入:
10个实数存于数组,阀值X
输出:
所有大于阀值X的实数存于的数组的内容。
#include<stdio.h>
#define N 10
int main()
{ int i;
int a[N],b[N],*p,*q;
float x;
for(p=a;p<=a+N-1;p++)
scanf("%d",p);
scanf("%f",&x);
q=b;
i=0;
for(p=a;p<=a+N-1;p++)
if(*p>x)
{ *q++=*p;
i++;
}
for(q=b;q<b+i;q++)
printf("%d ",*q);
printf("\n");
return 0;
}
21..用指针实现判断两个数组是否相同.
输入两个数组,各存放10个数.
输出:若相同,显示"yes",否则显示"no".
#include<stdio.h>
int main()
{
int a[10],b[10],*p,*q,leap=0;
for(p=a;p<a+10;p++)
scanf("%d",p);
for(q=b;q<b+10;q++)
scanf("%d",q);
p=a;
q=b;
while(p-a==q-b&&p<a+10)
{
if(*p!=*q)
leap=1;
p++;
q++;
}
if(leap)
printf("no\n");
else
printf("yes\n");
return 0;
}
22..输入:
10个整数,一个X
c编程必背100题输出:
如果有输出X的位置,没有就输出“没有这个数”。
#include<stdio.h>
#define N 10
int main()
{ int a[N],*p;
int x,i,t=0;
for(i=0;i<N;i++)
scanf("%d",&a[i]);
scanf("%d",&x);
for(p=a,i=0;i<N;p++,i++)
if(x==*p && i<N)
{ t=i+1;
break;
}
if(t==0)
printf("没有这个数");
else printf("第%d个数",t);
printf("\n");
return 0;
}
23..输入:
实数个数:n,并输入n个实数。
输出:
平均值、最大值、最小值。
#include<stdio.h>
int main()
{
float *p,*q,*max,*min,ave=0;
int n;
scanf("%d",&n);
q=(float*)calloc(n,sizeof(float));
for(p=q;p<q+n;p++)
scanf("%f",p);
max=q;
min=q;
ave=*q;
for(p=q+1;p<q+n;p++)
{
ave+=*p;
if(*max<*p)max=p;
if(*min>*p)min=p;
}
ave/=n;
printf("最大值:%.f\n最小值:%.f\n平均值:%.f\n",*max,*min,ave);
return 0;
}
24..用指针实现统计数组中正数、负数和0的个数。
要求:输入10个数,输出正数、负数和0的个数。
#include<stdio.h>
#define N 10
int main()
{ int i,zh,fu,ling;
int a[N];
int *pa; pa=a;
for(i=0;i<N;i++)
scanf("%d",pa++);
zh=ling=fu=0;
for(pa=a;pa<a+N;pa++)
{ if(*pa>0)
zh++;
else if(*pa==0)
ling++;
else fu++;
}
printf("正数:%d\n",zh);
printf("负数:%d\n",fu);
printf("0:%d\n",ling);
return 0;
}
25..输入一句英文,然后将每个单词的第一个字母改为大写,输出最后结果。
#include <stdio.h>
#define N 256
int main()
{char a[N];
int i,Flag=0;
gets(a);
for(i=0;a[i]!=0;i++)
{if((a[i]>='A'&&a[i]<='Z')||(a[i]>='a'&&a[i]<='z'))
{if(Flag==0)
{Flag=1;
if(a[i]>='a'&&a[i]<='z')
a[i]=a[i]-32;
}
}
else Flag=0;
}
puts(a);
return 0;
}
26..用空格或换行分开的字符串称为单词。输入多行字符串,直到遇到了单词 "stop" 时才停止。最后输出单词的数量。用于分割单词的空格或换行可能多于1个。
输入: 多个字符串
输出: 单词的数量
#include <stdio.h>
#define N 6
int main()
{char a[N][10];
int i,m=0;
for(i=0;i<N;i++)
scanf("%s",a[i]);
for(i=0;i<N;i++)
if(a[i]!="stop")
{m=m+1;
}
printf("%d\n",m
-1);
return 0;
}
27..输入两个已经按从小到大顺序排列好的字符串,编写一个合并两个字符串的函数,使合并后的字符串,仍然是从小到 大排列。
输入:
两个已经排好顺序(升序)的两个字符串
输出:
一个合并在一起的有序(升序)的字符串
#include<stdio.h>
#define N 100
int main()
{
char a[N],b[N],n[2*N],t;
int i,j,k,m;
scanf("%s%s",a,b);
for(i=0;a[i]!=0;i++)
n[i]=a[i];
for(j=0;b[j]!=0;j++,i++)
n[i]=b[j];
n[i]='\0';
for(k=0;k<i;k++)
{
for(m=k+1;m<i;m++)
if(n[k]>n[m])
{
t=n[k];
n[k]=n[m];
n[m]=t;
}
}
puts(n);
return 0;
}
28..背景:
输入一个长度不超过 100 的字符串,删除串中的重复字符。
输入:
输入要检查的字符串,长度不超过100个字符。例如:aabbccdddeeeff。
输出:
删除重复字符后的字符串。例如:abcedf。
#include <stdio.h>
#define N 100
int main()
{
char a[N];
int i,j,m;
scanf("%s",a);
for(i=0;a[i]!=0;i++)
for(j=i+1;a[j]!=0;j++)
if(a[i]==a[j])
{
for(m=j;a[m]!=0;m++)
{
a[m]=a[m+1];
}
j--;
}
puts(a);
return 0;
}
29..输入两个字符串 s1 、 s2 和 s1 中任意字符 k ,在 s1 中的指定字符 k 第一次出现的位置处插入字符串 s2 并输出。
输入: 两个字符串 s1 、 s2 和 s1 中任意字符 k
输出: 插入后的字符串 s1
#include<stdio.h>
#define N 256
int main ()
{
char a[N],c,b[N];
int i,j,k,n;
scanf("%s\n%c\n%s",a,&c,b);
for(i=0,j=0;a[i]!=0;i++)
if(a[i]==c)
{j=i-1;
break;}
for(i=0;a[i]!=0;i++);
for(k=0;b[k]!=0;k++);
for( ;i>j;i--)
a[i+k]=a[i];
for(n=0;j<i+k;j++,n++)
a[j+1]=b[n];
printf("%s\n",a);
return 0;
}
30..截取某字符串的最后n个字符,并以字符串形式输出。要求不能定义第二个字符数组。
输入:先输入字符,再输入截取字符的个数
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论