0
点赞
收藏
分享

微信扫一扫

c语言基础21题总结(代码)


一共总结了21道题,这个其实是我自己 在大一考前自己总结的咯,可以在下面的函数声明中看到,从p1()~p21(),用了一个switch语句,想运行哪段函数直接在屏幕上输入序号就行,编译环境是visual stidio 2017:

// 考前复习用.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include "pch.h"
#include <iostream>

#include<stdio.h>
#include<math.h>
#include<string.h>
#define N 4;
void p1();//求1-1/2+1/3-1/4+...+1/99-1/100;
void p2();//使用getchar输入"BOY",再使用putchar输出;
void p3();//大写字母转小写;
void p4();//全系1000人捐款,达到10万时结束,统计捐款人数以及每个人捐款的数目;
void p5();//求派的近似值;
void p6();//斐波那契数列兔子问题;
void p7();//100~200之间的全部素数;
void p8();//水仙花数;
void p9();//选择法排序;
void p10();//起泡法排序;
void p11();//找出一个3*4的数列中的最大值,以及他的位置;
void p12();//三行文字,每行80个字符,要求分别统计出其中英文大写字母、小写字母、数字、空格、以及其他字符的个数;
void p13();//字符串连接,并用strcat函数;
void p14();//一个一维数组,内放10个学生成绩,调用三个函数分别求其平均分、最高分、最低分;
void p15();//对输入的两个整数按大小顺序输出,要求调用函数,运用指针;
void p16();//将数组a中n个整数按相反的顺序存放;
void p17();//用指针方法实现10个整数的排序;
void p18();//用函数调用实现字符串的复制;
void p19();//输入十个整数,将其中最小的整数与第一个数对换,最大的整数与最后一个对换,并调用函数处理和输出;
void p20();//有n个学生的信息(包括学号、姓名、成绩),要求按照成绩的高低顺序输出各学生信息;
void p21();//有10个学生,每个学生的数据包括学号、姓名、三科成绩、从键盘输入10个学生的信息,要求输出3门课程总平均成绩,以及最高分学生的数据;
int main()
{
	int i;
	scanf_s("%d", &i);
	switch(i)
	{
	case 1:p1(); break;
	case 2:p2(); break;
	case 3:p3(); break;
	case 4:p4(); break;
	case 5:p5(); break;
	case 6:p6(); break;
	case 7:p7(); break;
	case 8:p8(); break;
	case 9:p9(); break;
	case 10:p10(); break;
	case 11:p11(); break;
	case 12:p12(); break;
	case 13:p13(); break;
	case 14:p14(); break;
	case 15:p15(); break;
	case 16:p16(); break;
	case 17:p17(); break;
	case 18:p18(); break;
	case 19:p19(); break;
	case 20:p20(); break;
	case 21:p21(); break;
	default:printf("please input again!");
	}
	return 0;
}
void p1()
{
	float sum=1.0;
	int i;
	for (i = 2; i <= 100; i++)
	{
		if (i % 2 == 0)
			sum = sum - (1.0 / i);//注意不可以用1/i,若如此则归为整型。
		else
			sum =sum + (1.0 / i);	
	}
	printf("%f", sum);
}
void p2()
{
	getchar();
	char a, b, c;
	a=getchar();
	b=getchar();
	c=getchar();
	putchar(a);
	putchar(b);
	putchar(c);
}
void p3()
{
	getchar();
	char a, b;
	scanf_s("%c", &a);
	printf("%c", a + 32);
}
void p4()
{
	float aver;
	int a, sum=0, i, p=0;
	for (i = 0; i < 1000; i++)
	{
		scanf_s("%d", &a);
		p += 1;
		sum += a;
		if (sum >= 100000)
		{
			aver = sum / p;
			printf("%d\n%f", p, aver);
			break;
		}
	}
}
void p5()
{
	float sum=1.0;
	int i, p = 1;
	for (i = 3; fabs(1.0 / i) >= 1e-6;)//1.0,而非1
	{
		if (p % 2 != 0)
			sum -= (1.0 / i);
		else
			sum += (1.0 / i);
		p += 1;
		i += 2;
	}
	sum = 4.0 * sum;
	printf("%f", sum);
}
void p6()
{
	int a = 1, c = 1, b, i, sum;
	printf("几个月?\n");
	scanf_s("%d", &b);
	for (i = 3; i <= b; i++)
	{
		sum = a + c;
		a = c;
		c = sum;
	}
	printf("%d", sum);
}
void p7()
{
	int i, b;
	for (b = 101; b <= 200; b++)
	{
		for (i = 2; i < sqrt(b); i++)
		{
			if (b%i == 0) break;
			else { printf(" %2d", b); break; }
		}
	}
}
void p8()
{
	int i, a, b, c, d;
	for (i = 100; i < 1000; i++)
	{
		a = i / 100;
		b = i / 10 - a * 10;
		c = i % 10;
		if (i == a * a*a + b * b*b + c * c*c)
			printf("水仙花数为:%d", i);
	}
}
void p9()//选择法排序
{
	int i, j, k, a[11], min;
	for(i=0;i<10;i++)
		scanf_s("%d", a+i);
	for (i = 0; i < 9; i++)
	{
		min = i;
		for (j = i + 1; j < 10; j++)
		{
			if (a[min] > a[j])
			{
				min = j;
				k = a[min];
				a[min] = a[i];
				a[i] = k;
			}
		}
	}
	for(i=0;i<10;i++)
		printf("%d", a[i]);
}
void p10()//起泡法排序
{
	int a[10], j, i, b;
	for (i = 0; i < 10; i++)
		scanf_s("%d", a + i);
	for (i = 0; i < 9; i++)
		for (j = 0; j < 9 - i; j++)
			if (a[j] > a[j + 1])
			{
				b = a[j+1];
				a[j+1] = a[j];
				a[j] = b;
			}
	for (i = 0; i < 10; i++)
		printf("%d", a[i]);
}
void p11()
{
	int a[3][4], i, j, max, c, b;
	for (i = 0; i < 3; i++)
		for (j = 0; j < 4; j++)
			scanf_s("%d", &a[i][j]);
	for (i = 0; i < 3; i++)
		for (j = 0; j < 4; j++)
			if (a[i][j + 1] > a[i][j])
				max = a[i][j + 1];
	for (i = 0; i < 3; i++)
		for (j = 0; j < 4; j++)
			if (a[i][j] == max)
				printf("第%d行,第%d列有最大值为:%d", i+1, j+1, max);
}
void p12()
{
	int b, c, d, e, f, i, j;
	char  a[3][80] = { "asdfghjklqwe rSHGA Syw123riw","KASGa gsGSa gsKG65Sg","jaSKsg AKG Ss28gASG" };
	for (i = 0; i < 3; i++)
	{
		b = 0;
		c = 0;
		d = 0;
		e = 0;
		f = 0;
		for (j = 0; j < 80 && a[i][j]!='\0'; j++)
		{
			if ( a[i][j]<='z' && a[i][j] >= 'a')
				b += 1;//小写字母
			else if ( a[i][j]>='A' && a[i][j] <= 'Z')
				c += 1;//大写字母
			else if (a[i][j]<'9' && a[i][j]>'0')
				d += 1;//数字
			else if (a[i][j] == ' ')
				e += 1;//空格键
			else f += 1;
		}
		printf("在第%d行中,小写字母有%d个,大写字母有%d个,数字有%d个,空格键有%d个,其他字符有%d个\n", i + 1, b, c, d, e, f);
	}
}
void p13()
{
	int i, j;
	char b[40] = { "jdhaiudh" }, c[20] = { "sdshcbeekcb" };
	for (i = 0; b[i] != '\0'; i++);
	j = i;
	for (i = 0; c[i]!='\0';)
		b[j++] = c[i++];
	b[j+1] = '\0';
	printf("%s", b);
}
int aver(int*p);
int imax(int*p);
int imin(int*p);
void p14()
{
	int ave, max, min, i, a[10];
	for (i = 0; i < 10; i++)
		scanf_s("%d", &a[i]);
	ave = aver(a);
	max = imax(a);
	min = imin(a);
	printf("十个学生成绩的平均值为%d,最大值为%d,最小值为%d", ave, max, min);
}
int aver(int*p)
{
	int sum=0, i;
	for (i = 0; i < 10; i++)
		sum += *(p + i);
	sum = sum / 10;
	return sum;
}
int imax(int*p)
{
	int cmax=*p, j, i;
	for (i = 1; i < 10; i++)
	{
		if (*(p + i) > cmax)
			cmax = *(p + i);
	}
	return cmax;
}
int imin(int*p)
{
	int cmin=*p, j, i;
	for (i = 1; i < 10
; i++)
	{
		if (*(p + i) < cmin)
			cmin = *(p + i);
	}
	return cmin;
}
void swap(int*p,int*q);
void p15()
{
	int a, b, i;
	scanf_s("%d", &a);
	scanf_s("%d", &b);
	if (a < b)
		swap(&a, &b);
	printf("%d %d", a, b);
}
void swap(int*p,int*q)
{
	int temp;
	temp = *p;
	*p = *q;
	*q = temp;
}
void p16()
{
	int a[10], j, i, b[10];
	for(i=0;i<10;i++)
		scanf_s("%d", a+i);
	for (i = 0; i < 10; i++)
		b[i] = a[9 - i];
	for (i = 0; i < 10; i++)
		printf("%d", b[i]);
}
void paixu(int*p);
void p17()
{
	int a[10], i;
	for (i = 0; i < 10; i++)
		scanf_s("%d", a+i);
	paixu(a);
	for (i = 0; i < 10; i++)
		printf("%d", a[i]);
}
void paixu(int*p)
{
	int i, j, max, temp;
	for (i = 0; i < 9; i++)
	{
		max = i;
		for (j = i + 1; j < 10; j++)
			if (*(p + j) > *(p + max))
			{
				max = j;
				temp = *(p + max);
				*(p + max) = *(p + i);
				*(p + i) = temp;
			}
	}
}
void copy(char*p, char*q);
void p18()
{
	char a[10], b[10], i;
	scanf_s("%s", a, 10);
	copy(a, b);
	for (i = 0; i < 10; i++)
		printf("%c", b[i]);
}
void copy(char*p, char*q)
{
	int i;
	for (i = 0; i < 10; i++)
		*(q + i) = *(p + i);
	*(q + i - 1) = '\0';
}
void chuli(int*p);
void sprintf(int*q);
void p19()
{
	int a[10], i;
	for(i=0;i<10;i++)
		scanf_s("%d", a+i);
	chuli(a);
	sprintf(a);
}
void chuli(int*p)
{
	int temp, i, max, min;
	max = min = *p;
	for (i = 0; i < 10; i++)
	{
		if (*(p + i) > max)
			max = *(p + i);
		if (*(p + i) < min)
			min = *(p + i);
	}
	temp = max;
	max = *(p + 9);
	*(p + 9) = temp;
	temp = min;
	min = *p;
	*p = temp;
}
void sprintf(int*q)
{
	int i;
	for (i = 0; i < 10; i++)
		printf("%d", *(q + i));
}
struct student
{
	int num;
	char name[20];
	float score;
};
void p20()
{
	struct student stu[3] = { {002,"ah",99},{003,"sh",98},{001,"ch",100} };
	struct student temp;
	int i, j, max;
	for (i = 0; i < 2; i++)
	{
		max = i;
		for (j = i + 1; j < 3; j++)
		{
			if (stu[max].score < stu[j].score)
			{
				max = j;
				temp = stu[max];
				stu[max] = stu[i];
				stu[i] = temp;
			}
		}
	}
	for (i = 0; i < 3; i++)
		printf("%d%s%f\n", stu[i].num, stu[i].name, stu[i].score);
}
struct stu 
{
	int num;
	char name[20];
	int score1,score2,score3;
};
void p21()
{
	struct stu sti[10];
	int i, j=0, max, sum1 = 0, sum2 = 0, sum3 = 0, sum[10];
	float aver1, aver2, aver3, aver;
	for (i = 0; i < 10; i++)
	{
		scanf_s("%d%s%d%d%d", &sti[i].num, sti[i].name, 20,&sti[i].score1, &sti[i].score2, &sti[i].score3);
		sum1 += sti[i].score1;
		sum2 += sti[i].score2;
		sum3 += sti[i].score3;
		sum[i]= sti[i].score1 + sti[i].score2 + sti[i].score3;
	}
	aver1 = sum1 / 10;
	aver2 = sum2 / 10;
	aver3 = sum3 / 10;
	max = sum[0];
	for (i = 0; i < 9; i++)
		if (sum[i] > max)
		{
			max = sum[i];
			j = i;
		}
	printf("三科平均值分别为:%f %f %f", aver1, aver2, aver3);
	printf("%d %s %d %d %d %f", sti[j].num, sti[j].name, sti[j].score1, sti[j].score2, sti[j].score3,(sti[j].score1 + sti[j].score2 + sti[j].score3)/3.0);
}


举报

相关推荐

0 条评论