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个字符,并以字符串形式输出。要求不能定义第二个字符数组。
输入:先输入字符,再输入截取字符的个数