1. 从键盘输入一个大写字母,要求改用小写字母输出,并输出与这个小写字母相邻的两个字母及它们的ASCII码的值1. 从键盘输入一个大写字母,要求改用小写字母输出,并输出与这个小写字母相邻的两个字母及它们的ASCII码的值
样例输入:B
样例输出:b a c
98 97 99
测试输入: D
测试输出: d c e
100 99 101
#include<stdio.h>
int main()
{
char s1,s2,s3;
int a,b,c;
scanf("%c",&s1);
s1=s1+32;
s2=s1-1;
s3=s1+1;
a=s1;
b=s2;
c=s3;
printf("%c %c %c\n",s1,s2,s3);
printf("%d %d %d\n",a,b,c);
return 0;
}
2. 输入两个整数,并将其中较大的显示出来。
样例输入:5 4
样例输出:max=5
测试输入:2 8
测试输出:max=8
#include<stdio.h>
int main()
{
int a,b,max=0;
scanf("%d%d",&a,&b);
max=a;
if(a<b)
max=b;
printf("%d\n",max);
return 0;
}
3. 输入a,b,c三个整型变量的值,输出其中的最小值。
样例输入:5 4 8
样例输出:4
测试输入:2 6 8
测试输出:2
#include<stdio.h>
int main()
{
int a[3],i,j,t;
for(i=0;i<3;i++)
scanf("%d",&a[i]); //对数组进行赋值
//第一次循环 i=0 a[0] 第二次循环时:i=1 a[1]
for(i=0;i<3;i++)
for(j=i+1;j<3;j++)
{
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
}
}
printf("%d\n",a[0]);
return 0;
}
4. 输入年号y,月份m,输出该年该月天数。
31 30 29 28
样例输入:2004 2
样例输出:29
测试输入: 2015 2
测试输出: 28
#include<stdio.h>
int main()
{
int y,m;
scanf("%d%d",&y,&m);
switch(m)
{
case 1:
printf("30\n");break;
case 2:
{
if((y%4==0&&y%100!=0)||(y%400==0))
printf("29\n");2012 2016 2020 2024 二月份是29天
1 3 5 7 8 10 12 是有31日
else
printf("28\n");break;
}
case 3:
printf("31\n");break;
case 4:
printf("30\n");break;
case 5:
printf("31\n");break;
case 6:
printf("30\n");break;
case 7:
case 8:
printf("31\n");break;
case 9:
printf("30\n");break;
case 10:
printf("31\n");break;
case 11:
printf("30\n");break;
case 12:
printf("31\n");break;
}
return 0;
}
5. 输入若干非0整数,直到输入0时停止,要求输入的整数最多不超过20个,统计其中正数的个数,负数的个数。
样例输入:5 4 8 -2 6 -9 7 3 -1 9 0
样例输出:posn=7,negn=3
测试输入: 9 -8 2 -6 8 6 -7 -3 1 -5 0
测试输出: posn=5,negn=5
#include<stdio.h>
int main()
{
int a[20],n=0,c=0,b=0,i;
while((getchar())!='0')
for(i=0;i<20;i++)
{
scanf("%d",&a[i]);
n=n+1;
if(a[i]==0)
break;
}
for(i=0;i<n;i++)
{
if(a[i]>0)
c=c+1;
if(a[i]<0)
b=b+1;
}
printf("posn=%d,negn=%d\n",c,b);
return 0;
}
6. 从键盘上输入m的值,判断其是否素数
样例输入:7
样例输出:7 is a prime number
测试输入: 9
测试输出: is not a prime number
#include<stdio.h>
int main()
{
int m,i,flag=1;
scanf("%d",&m);
for(i=2;i<m;i++)
if(m%i==0)
{
flag=0;
break;
}
if(flag==1)
printf("%dis a prime number\n",m);
else
printf("%dis not a prime number\n",m);
return 0;
}
7.打印如下图形到屏幕上,打印行数n由键盘输入。(直角三角形)
*
* *
* * *
* * * *
* * * * *
样例输入:4
样例输出:
*
* *
* * *
* * * *
* * * * *
#include<stdio.h>
int main()
{
int i,n,j;
scanf("%d",&n);
for(i=0;i<=n+1;i++)
{
for(j=1;j<=n+1-i;j++)
printf(" ");
for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
return 0;
}
8. 请输入10个整数,并将其由小到大排序,然后将排序后的结果输出到屏幕上。
排序
样例输入:5 4 8 2 6 0 7 3 1 9
样例输出:0 1 2 3 4 5 6 7 8 9
测试输入: 9 7 6 5 2 3 1 8 4 0
测试输出: 0 1 2 3 4 5 6 7 8 9
#include<stdio.h>
int main()
{
int a[10],i,j,t;
for(i=0;i<10;i++)
scanf("%d",&a[i]); 数组进行赋值
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{
t=a[i];
a[i]=a[j];
a[j]=t;
var temp = arr[j+1]; // 元素交换
arr[j+1] = arr[j];
arr[j] = temp;
}
for(i=0;i<10;i++)
printf("%d ",a[i]);
printf("\n");
return 0;
}
9. 输入一句英文,按单词分行输出.
样例输入:
spring summer fall winter
样例输出:
spring
summer
fall
winter
测试输入:
We are students
测试输出:
We
are
students
#include<stdio.h>
int main()
{
char s[100];
int i,n=0;
gets(s);
for(i=0;s[i]!='\0';i++)
{
if(s[i]==' ')
s[i]='\n';
n++;
}
s[n]='\0';
puts(s);
return 0;
}
10.输入六个双精度的数,求出其中负数的平均值(保留4位小数)
#include<stdio.h>
int main()
{
double a[6],n=0,s=0,m;
int i;
for(i=0;i<6;i++)
scanf("%lf",&a[i]);
for(i=0;i<6;i++)
if(a[i]<0)
{
s=s+a[i];
n=n+1;
}
m=s/n;
printf("%.4lf\n",m);
return 0;
}
11.输入一亇数组,以0结束,求出所有负数的平均值。
#include<stdio.h>
int main()
{
int a[100];
int i;
double m,n=0,s=0,ave;
for(i=0;i<100;i++)
{
scanf("%d",&a[i]);
if(a[i]==0)
{
m=i;
break;
}
}
for(i=0;i<m;i++)
if(a[i]<0)
{
s=s+a[i];
n=n+1;
}
ave=s/n;
printf("%lf\n",ave);
return 0;
}
12.输入一亇字符串,将下标为奇数的字符选出来,将其按ASCALL码升序排列。
#include<stdio.h>
int main()
{
char s[100],s2[100],t;
int i,n,j=0,q;
gets(s);
for(i=0;s[i]!='\0';i++)
{
if((i%2)!=0)
{
s2[j]=s[i];
j++;
}
}
s2[j]='\0';
for(i=0;i<j;i++)
for(q=i;q<j;q++)
{
if(s2[i]>s2[q])
{
t=s2[i];
s2[i]=s2[q];
s2[q]=t;
}
}
puts(s2);
return 0;
}
13.输入一个n,k,n为十进制数字,将其转换为k进制输出(k为大于等于2小于等于9的整数).
#include<stdio.h>
int main()
{
int n,k,m,t,s,i;
int a[100];
scanf("%d%d",&n,&k);
m=n;
t=n;
for(i=0;i<100;i++)
{
m=m/k;
t=t-m*k;
if(m!=0)
{
a[i]=t;
t=m;
}
else
{
a[i]=t;
t=m;
break;
}
}
s=i;
for(i=s;i>=0;i--)
printf("%d",a[i]);
printf("\n");
return 0;
}
14.输入一个字符串,将其奇数下标的字符移动到下一个奇数下标的位置。最后一个奇数位上的数字平移到第一个奇数下标处。
#include<stdio.h>
int main()
{
char s[100],a[100];
int i,j=0,q=0;
gets(s);
for(i=0;s[i]!='\0';i++)
{
if((i%2)!=0)
{
a[j]=s[i];
j++;
}
}
a[j]='\0';
j=0;
for(i=0;s[i+2]!='\0';i++)
if((i%2)!=0)
{
s[i+2]=a[j];
j++;
}
s[i+2]='\0';
s[1]=a[j];
puts(s);
return 0;
}
15.
编写程序,从键盘输入一个字符串,并将字符串中的小写字母都改为相应的大写字母,其他字符不变。
标准输入:23efHI4why80NO
标准输出:23EFHI4WHY80NO
#include<stdio.h>
int main()
{
char s[100];
int i;
gets(s);
for(i=0;s[i]!='\0';i++)
if(s[i]>='a'&&s[i]<='z')
s[i]=s[i]-32;
s[i]='\0';
puts(s);
return 0;
}
16.
编写程序,从键盘输入一个字符串ss,并将ss中所有下标为偶数的位置上的字母转换为小写,(若该位置上不是字母,则不转换)。
标准输入:ABC4efGHS
标准输出:aBc4efgHs
#include<stdio.h>
int main()
{
char ss[100];
int i;
gets(ss);
for(i=0;ss[i]!='\0';i++)
if((i%2)==0)
if(ss[i]>='A'&&ss[i]<='Z')
ss[i]=ss[i]+32;
ss[i]='\0';
puts(ss);
return 0;
}
17.编写程序,从键盘输入两个字符串str1和str2,并将字符串str2接在str1后面(不得用字符串处理函数),样例输入的第一行是先读入整数n,表示有几组字符串(两个字符串为一组),然后读入字符串。
标准输入:2
aaaaaa
bbbbb
cccc
dsdsds
标准输出:aaaaaabbbbb
Ccccdsdsds
#include<stdio.h>
void fun(char s1[],char s2[])
{
int i,j,q;
for(i=0;s1[i]!='\0';i++)
;
for(j=i,q=0;s2[q]!='\0';j++,q++)
{
s1[j]=s2[q];
}
s1[j]='\0';
}
int main()
{
int n;
char s[100][100];
int i,j;
scanf("%d\n",&n);
for(i=0;i<2*n;i++)
gets(s[i]);
for(i=0;i<2*n;i++)
if((i%2)==0)
{
fun(s[i],s[i+1]);
puts(s[i]);
}
return 0;
}
18.编写程序,从键盘输入m值,根据m,计算下列公式t的值(m为int型,t为double型),结果保留小数点4位,公式:t=1-1/2+1/3-1/4+……(-1)(m+1)/m(最后一项分子为-1的m+1次方)
标准输入:5
标准输出:0.7833
#include<stdio.h>
int main()
{
int m;
double t=0,n,q=-1,i;
scanf("%d",&m);
for(i=1;i<=m;i++)
{
q=q*(-1);
n=q/i;
t=t+n;
}
printf("%.4lf\n",t);
return 0;
}
19.编写程序,输入一个字符串str,依次取出字符串中的所有的字母,形成新的字符串,并取代原字符串。
标准输入::123dfsad43mln&*d
标准输出:dfsadmlnd
#include<stdio.h>
int main()
{
char str[100],s[100];
int i,j;
gets(str);
for(i=0,j=0;str[i]!='\0';i++)
if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='B'))
{
s[j]=str[i];
j++;
}
for(i=0;i<j;i++)
str[i]=s[i];
str[i]='\0';
puts(str);
return 0;
}
20.编写一个程序,从键盘输入一个三位数,判断这个数的个位数字和百位数字之和是否等于其十位上的数字,是则返回“yes!”,否则返回“no!”。例如:输入123,结果显示“no!”
标准输入: 123
#include<stdio.h>
int main()
{
int n;
int a,b,c;
scanf("%d",&n);
a=n%10;
b=n/10%10;
c=n/100;
if(a+c==b)
printf("yes!\n");
else
printf("no!\n");
return 0;
}
21.编写一个程序,输入一个5×5的二维数组a,实现:使数组对角线及右上半三角元素中的值全部置成0。注意每个数字后都有空格,每行输出都有换行
标准输入:
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
标准输出:
0 0 0 0 0
1 0 0 0 0
1 2 0 0 0
1 2 3 0 0
1 2 3 4 0
#include<stdio.h>
int main()
{
int a[5][5];
int i,j;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(i=0;i<5;i++)
for(j=0;j<5;j++)
if((i==j)||(j>i))
a[i][j]=0;
for(i=0;i<5;i++)
{
for(j=0;j<5;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
22.编写一个程序,从键盘输入含有n个实数的一维数组,求此一维数组的平均值,结果保留两位小数, 其中n为int型,数组为double型。
标准输入5
1.1 2.2 3.3 4.4 5.5
标准输出 3.30
#include<stdio.h>
int main()
{
int n,i;
double a[100],s=0,ave;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%lf",&a[i]);
for(i=0;i<n;i++)
{
s=s+a[i];
}
ave=s/(double)n;
printf("%.2lf\n",ave);
return 0;
}
23.编写一个程序,从键盘输入一个含有n个整数的一维数组,并移动一维数组中的内容,要求把下标从p到n-1(p≤n-1)的数组元素平移到数组的前面。 样例输入分3行,第一行为整数的个数n,第二行为n个整数,第三行为下标p。
标准输入: 15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
9
标准输出: 10 11 12 13 14 15 1 2 3 4 5 6 7 8 9
#include<stdio.h>
int main()
{
int a[100],b[100];
int n,j,i,p;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&p);
for(i=p,j=0;i<n;i++)
{
b[j]=a[i];
j=j+1;
}
for(i=0;i<p;i++)
{
b[j]=a[i];
j=j+1;
}
for(i=0;i<n;i++)
{
a[i]=b[i];
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
24.移动一维数组中的内容;若数组中有n个整数,要求把下标从0到p(不含p)的数组元素平移到数组的最后。例如,输入:1,2,3,4,5,6,7,8,9,10;p的值为3。移动后数组内容应为4,5,6,7,8,9,10,1,2,3。
#include<stdio.h>
int main()
{
int a[100],b[100];
int n,j,i,p;
scanf("%d",&n);
for(i=0;i<n;i++)
scanf("%d",&a[i]);
scanf("%d",&p);
for(i=p,j=0;i<n;i++)
{
b[j]=a[i];
j=j+1;
}
for(i=0;i<p;i++)
{
b[j]=a[i];
j=j+1;
}
for(i=0;i<n;i++)
{
a[i]=b[i];
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
25.从键盘输入一个字符串并保存在字符strl中,把字符串中strl下标为偶数的字符保存在字符串strl2中并输出。
例如,当strl=“cdefghij",则strl2="cegi".标准输入:whatisit,标准输出waii
#include<stdio.h>
int main()
{
char str1[100],str12[100];
int i,j;
gets(str1);
for(i=0,j=0;str1[i]!='\0';i++)
if(i%2==0)
{
str12[j]=str1[i];
j++;
}
str12[j]='\0';
puts(str12);
return 0;
}
26.)编写一个程序,程序定义一个5*5二维数组,二维数组题目中给出,编写程序,求数组周边元素的平方和。数组a为{0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1}求出结果为310.样例输出占2行,1行为整形数据,其值为平方和,另一行为回车符。
标准输入0,1,2,7,9,1,11,21,5,5,2,21,6,11,1,9,7,9,10,2,5,4,1,4,1
标准输出310
#include<stdio.h>
int main()
{
int a[5][5];
int i,j,s=0;
for(i=0;i<5;i++)
for(j=0;j<5;j++)
scanf("%d",&a[i][j]);
for(j=0;j<5;j++)
s=s+a[0][j]*a[0][j];
for(i=1;i<5;i++)
s=s+a[i][0]*a[i][0];
for(j=1;j<5;j++)
s=s+a[4][j]*a[4][j];
for(i=1;i<4;i++)
s=s+a[i][4]*a[i][4];
printf("%d\n",s);
return 0;
}
27.从键盘输入3*3的矩阵的各元素之值,输出主对角线上元素之积。
#include<stdio.h>
int main()
{
int a[3][3];
int i,j,s=1;
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++)
if(i==j)
s=s*a[i][j];
printf("%d\n",s);
return 0;
}
28.编写一个程序,从键盘输入一个长整数,从低位开始取出长整型数中奇数位上的数,依次构成一个人新长整数,并输出。
标准输入 4576235
标准输出4725
#include<stdio.h>
int main()
{
char s[100],a[100];
int i,n,j,q;
gets(s);
for(i=0;s[i]!='\0';i++)
;
n=i;
for(i=n-1,j=0,q=1;i>=0;i--)
{
if((q%2)!=0)
{
a[j]=s[i];
j++;
q++;
}
else
q++;
}
a[j]='\0';
for(i=j-1;i>=0;i--)
printf("%c",a[i]);
printf("\n");
return 0;
}
29.
键盘输入两个正整数m和n,在屏幕上输出m和n的所有公约数与各公约数之和
#include<stdio.h>
int main()
{
int m,n,min;
int i;
int s=0;
scanf("%d%d",&m,&n);
if(m>n)
min=n;
else
min=m;
for(i=2;i<min;i++)
if((min%i)==0)
{
printf("%d ",i);
s=s+i;
}
printf("\n");
printf("%d\n",s);
return 0;
}
30.
数组a、b中各存放一个字符串,将b中所有字符插入a中,a中字符按递增顺序排放并输出
#include<stdio.h>
int main()
{
char a[100],b[100],t;
int i,j,q;
gets(a);
gets(b);
for(i=0;a[i]!='\0';i++)
;
for(j=i,q=0;b[q]!='\0';q++,j++)
{
a[j]=b[q];
}
a[j]='\0';
for(i=0;i<j;i++)
for(q=i+1;q<j;q++)
{
if(a[i]<a[q])
{
t=a[i];
a[i]=a[q];
a[q]=t;
}
}
puts(a);
return 0;
}
31.从键盘输入一个含多个单词的字符串,字符串前后有空格若干,与单词之间有若干空格,删除字符串前后的所有空格和单词之间的空格(单词之间保留一个空格)然后输出结果字符串。
#include<stdio.h>
int main()
{
char a[100],s[100];
int i,j,q,word=0;
gets(a);
for(i=0;a[i]!='\0';i++)
{
if(a[i]==' ')
continue;
else
break;
}
q=i;
for(i=q,j=0;a[i]!='\0';i++)
{
if(a[i]!=' ')
{
word=0;
s[j]=a[i];
j++;
}
if(a[i]==' ')
{
if(word==0)
{
word=1;
s[j]=' ';
j++;
}
else
continue;
}
}
s[j]='\0';
puts(s);
return 0;
}
31.从键盘输入两个由二进制数组成的字符串(小于32位),转化为无符号十进制数,相加并输出
#include<stdio.h>
int main()
{
char s[100],a[100];
int m=0,n=0,p,q,k;
int i,j,t;
gets(s);
gets(a);
for(i=0;s[i]!='\0';i++)
;
p=i;
t=0;
for(i=p-1;i>=0;i--)
{
k=s[i]-48;
for(j=1;j<=t;j++)
k=k*2;
t=t+1;
m=m+k;
}
for(i=0;a[i]!='\0';i++)
;
q=i;
t=0;
for(i=q-1;i>=0;i--)
{
k=a[i]-48;
for(j=1;j<=t;j++)
k=k*2;
n=n+k;
t=t+1;
}
printf("%d %d %d ",m,n,m+n);
printf("\n");
return 0;
}
32某项比赛10人参加,依此输入其成绩,然后按原顺序输出成绩,名次。
#include<stdio.h>
int main()
{
int a[10],b[10],c[10];
int i,t,j;
for(i=0;i<10;i++)
{
scanf("%d",&a[i]);
b[i]=a[i];
}
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
{
if(b[i]<b[j])
{
t=b[i];
b[i]=b[j];
b[j]=t;
}
}
for(i=0;i<10;i++)
for(j=0;j<10;j++)
if(a[i]==b[j])
c[i]=j+1;
for(i=0;i<10;i++)
printf("%d %d \n",a[i],c[i]);
return 0;
}
33.
编写一个程序,输入一个字符串str和一个字符串ch,判断ch是否与str中的某个字符相同,若有相同的,输出str;若无相同的,将其插在字符串的最后输出