1、输入一个整数n,然后依次输入n组下标序号和字符串,要求把字符串的对应序号下标的字符删除后依次输出。
标准输入:
2
1
abcdef
3
ABCDEF
标准输出:
acdef
ABCEF
#include<stdio,h>
int main(){
int n,index[100],i,j;
char str[100][100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&index[100]);
getchar();
gets(str[i]);
}
for(i=0;i<n;i++){
j=index[i];
while(str[i][j]!='\0'){
str[i][j]=str[i][++j];
}
puts(str[i]);
printf("\n");
}
}
2、定义容量为10的浮点型数组,要求输出这10个数的平均值,然后将这个数组中比平均值大的元素按照原来的顺序排列在前,比平均值小的元素按照原来的顺序排列在后面输出(结果保留一位小数)。
标准输入:
1 2 3 4 5 6 7 8 9 10
标准输出:
5.500000
6.0 7.0 8.0 9.0 10.0 1.0 2.0 3.0 4.0 5.0
#include<stdio.h>
int main(){
float num[10],ave=0.0,res[10];
int i,j=0,k=4;
for(i=0;i<10;i++){
scanf("%d",&num[i]);
ave+=num[i];
}
ave/=10;
printf("%f\n",ave);
for(i=0;i<10;i++){
if(num[i]>ave){
res[j++]=num[i];
}else{
res[k++]=num[i];
}
}
res[k]='\0';
puts(res);
return 0;
}
3、输入三个3位整数,然后输出一个新数,它的百位为第一个数的百位,十位为第二个数的十位,个位为第三个数的个位。
标准输入:
234 567 789
标准输出:
269
#include<stdio.h>
int main(){
int a,b,c;
int d,e,f;
scanf("%d %d %d",&a,&b,&c);
d=a/100;
e=(b%100)/10;
f=c%10;
printf("%d%d%d",d,e,f);
}
4、输入一个整数n,计算并输出数列的通项An:A1=1,A2=1/(1+A1),...,An=1/(1+An-1)
标准输入:
10
标准输出:
0.617977
#include<stdio.h>
int main(){
double A=1.0;
int i,n;
scanf("%d",&n);
for(i=1;i<n;i++){
A=1/(1+A);
}
printf("%.7lf",A);
return 0;
}
5、输入一个长整数,计算并输出它各位数码的积
标准输入:
123456
标准输出:
720
#include<stdio.h>
int main(){
long n,result;
scanf("%ld",&n);
while(n){
result *= n%10;
n /= 10;
}
printf("%ld",result);
return 0;
}
6、略
7、略
8、输入三个整数,按从小到大的顺序输出
标准输入:
23 22 27
标准输出:
22 23 27
#include<stdio.h>
int main(){
int a,b,c,t;
scanf("%d %d %d",&a,&b,&c);
if(a>b){
t=a;
a=b;
b=t;
}
if(b>c){
t=c;
c=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
printf("%d %d %d",a,b,c);
return 0;
}
9、定义并输出一维整型数组(先输入n,再输入n个整数),输入一个整数m,输出一个新的n维数组,要求从下标m(包括m)开始以后的元素按照原来的顺序放到数组前,前面的m项按照原来的顺序放在数组后。
标准输入:
10
1 2 3 4 5 6 7 8 9 10
7
标准输出:
8 9 10 1 2 3 4 5 6 7
#include<stdio.h>
int reverse(int num[],int start,int end){
int temp;
for(;start<end;start++,end--){
temp=num[start];
num[start]=num[end];
num[end]=temp;
}
}
int main(){
int n,m,i;
int num[100];
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&num[i]);
}
scanf("%d",&m);
reverse(num,0,m-1);
reverse(num,m,n-1);
reverse(num,0,n-1);
for(i=0;i<n;i++){
printf("%d ",num[i]);
}
return 0;
}
10、输入一个3位整数,将其数码倒置并输出
标准输入:
369
标准输出:
963
#include<stdio.h>
int main(){
int n,a,b,c;
scanf("%d",&n);
a=n%10;
b=(n/10)%10;
c=n/100;
printf("%d%d%d",a,b,c);
return 0;
}
11、输入一个整数n,求Sn=1-1/2+1/3-1/4+...+(-1)^(n+1)/n的值并输出
标准输入:
3
标准输出:
0.833333
#include<stdio.h>
int main(){
int sign=1;
int i,n;
double Sn=1;
scanf("%d",&n);
for(i=2;i<=n;i++){
sign*=-1;
Sn+=1.0/n*sign;
}
printf(".6lf",Sn);
return 0;
}
12、从键盘输入一个字符串,将其所有大写字母转换为小写,小写英文字母转换为大写,输出结果(其他字符不变)
标准输入:
12Ad56b%
标准输出:
12aD56B%
#include<stdio.h>
int main(){
int ch;
while(ch=getchar()!='\n'){
if(ch>='A'&&ch<='Z'){
ch+=32;
}else if(ch>='a'&&ch<='z'){
ch-=32;
}
printf("%c",ch);
}
return 0;
}
13、略
14、略
15、输入一个整数n,输出斐波那契数列前n项的和
标准输入:
6
标准输出:
20
#include<stdio.h>
int main(){
int i,n,f1=1,f2=1,f,sum=2;
scanf("%d",&n);
if(n==1)
sum=1;
else if(n==2)
sum=2;
else
for(i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
sum+=f;
}
printf("%d",sum);
return 0;
}
16、输入一个数列的首项a,公比q,项数n,输出其前n项和。
标准输入:
1 2 10
标准输出:
1023
#include<stdio.h>
#include<math.h>
int main(){
double a,q,Sn=0;
int n,i;
scanf("%lf %lf %d",&a,&q,&n);
for(i=1;i<=n;i++){
Sn+=a*pow(q,i-1);
}
printf("%.0lf",Sn);
return 0;
}
17、以链表的形式,将两个字符串连接在一起并输出。
标准输入:
123456AB
qwerty789
标准输出:
123456ABqwerty789
#include<stdio.h>
typedef struct node{
char data;
struct node *next;
}LinkList;
int main(){
LinkList *head,*node,*end;
head=(LinkList*)malloc(sizeof(LinkList));
end=head;
while(ch=getchar()!='\n'){
node=(LinkList*)malloc(sizeof(LinkList));
node->data=ch;
end->next=node;
end=node;
}
while(ch=getchar()!=\n){
node=(LinkList*)malloc(sizeof(LinkList));
node->data=ch;
end->next=node;
end=node;
}
end->next=NULL;
while(head->next!=NULL){
head=head->next;
printf("%c",head->data);
}
return 0;
}
18、略