c语言初步经典题

1.输入圆柱半径r,高度h, 求圆柱体表面积S.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float r,h,S;
    float pie = 3.1415926;
    printf("请输入圆柱体的半径r和高h");
    scanf("%f %f",&r,&h);
    S = 2*r*h*pie+2*pie*r*r;
    printf("此圆柱体的表面积为:%f",S);
    return 0;
}

2.根据自变量x,求y,y和x的关系如下(分段函数):

#include <stdio.h>
#include <stdlib.h>

int main()
{
    float x,y;
    scanf("%f",&x);
    if(x<=3){
        y= 2*x-1;
    }else if(x>3&&x<=7){
        y=5*x;
    }else{
        y=6;
    }
    printf("y=%f",y);
	return 0;
}

3.输入正整数n,求数列和S = 1+3+5+...+(2n-1);

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n,S=0,i=0;
    printf("请输入正整数n \n");
    scanf("%d",&n);
    //S = n*n;// 高斯公式:(1+(2n-1))*n/2
    for(i=1;i<=n;i++){
		S=S+(2*i -1);
    }
    printf("\n 数列和S=%d",S);
    return 0;
}

4.输入一个正整数数组a[n],找出最大值max及其下标m。

#include <stdio.h>

int main(void){
	int n;
	printf("请输入正整数n \n");
	scanf("%d",&n);
	int a[n],i,max,m;
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	max=a[0];
	m=0;
	for(i=0;i<n;i++){
		if(max<a[i]){
			max=a[i];
			m=i;
		}	
	}
	printf("最大值max=%d,下标位m=%d",max,m);
	return 0;
}

5.输入一个正整数数组a[n],使用冒泡排序法从大到小排序并输出;

#include <stdio.h>

int main(void){
	int n;
	printf("请输入正整数n \n");
	scanf("%d",&n);
	int a[n],i,j,k,temp;
	for(i=0;i<n;i++){
		scanf("%d",&a[i]);
	}
	// 冒泡排序
	for (j=0; j<n-1; j++) {/* 外循环为排序趟数,len个数进行len-1趟 */
		for (k=0; k<n-1-j; k++) { /* 内循环为每趟比较的次数,第i趟比较len-i次 */
			if (a[k] > a[k+1]) { /* 相邻元素比较,若逆序则交换(升序为左大于右,降序反之) */
				temp = a[k];
				a[k] = a[k+1];
				a[k+1] = temp;
			}
		}
	}
	// 打印排序后的数组
	for(i=0;i<n;i++){
		printf("%d ",a[i]);
	}
	return 0;
}

6.输入一个3X2的整型数组,将其转置为2X3型.

#include <stdio.h>

int main(void){
	int a[3][2],b[2][3];
	int i,j;
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
		scanf("%d",&a[i][j]);
	}
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
		b[i][j]=a[j][i];
		}
	}
	printf("转置前:\n ");
	for(i=0;i<3;i++){
		for(j=0;j<2;j++){
		printf("%d ",a[i][j]);
		}
		printf("\n");
	}
	printf("转置后:\n ");
	for(i=0;i<2;i++){
		for(j=0;j<3;j++){
		printf("%d ",b[i][j]);
		}
		printf("\n");
	}
	return 0;
}

7.编写程序,将一个字符串从第k个字符开始的连续n个字符复制到另外一个字符串中。

#include <stdio.h>
void substr(char *a,int k,int n,char *b)//将a中第m个开始的n个字符复制到b中。
{
	int i,j=0;
	for(i=m-1;i<m+n-1;i++){
		b[j++]=a[i];
	}
	b[j]='\0';
}
int main()
{
	char a[81]="abcdefghijkl",b[81];
	substr(a,3,6,b); //将a中第3个开始的6个字符复制到b中。
	printf("%s\n",b);
	return 0;
}

暂未考虑数组越界的保护。

持续更新中。。。

发布了142 篇原创文章 · 获赞 258 · 访问量 16万+

猜你喜欢

转载自blog.csdn.net/conconbenben/article/details/103447226
今日推荐