C语言机试编程题

编写版本:vc++2022

1.求最大/小值

cpp 复制代码
#include<stdio.h>
int main(){
	int a[50],n;
	int max, min;
	printf("请输入您要输入几个数");
	scanf_s("%d", &n);
	printf("请输入您要比较的%d个数\n",n);
	for (int i = 0; i<n; i++) {
		scanf_s("%d", &a[i]);
	}
	max = min = a[0];
	for (int i = 0; i < n; i++) {
		if (a[i] > max) max = a[i];
		if (a[i] < min) min = a[i];
	}
	printf("max=%d,min=%d", max, min);
	return 0;
}

2.求一个三位数abc,使a的阶乘+b的阶乘+c的阶乘=abc

cpp 复制代码
#include<stdio.h>
//factorial 阶乘
int jiecheng(int n) {
	int m=1;
	while (n != 0) {
		m *= n;
		n--;
	}
	return m;
}
int main() {
	int a, b, c;
	for (int abc = 100; abc <= 999; abc++) {
		a = abc / 100;
		b = abc / 10 % 10;
		c = abc % 10;
		if (abc == jiecheng(a) + jiecheng(b) + jiecheng(c))
			printf("%d\n", abc);
	}
	return 0;
}

3.求2/1,3/2,5/3,8/5,13/8,21/13,的前20项和

cpp 复制代码
#include<stdio.h>
int main() {
	float sum = 2;
	int i = 1, j = 2;
	float k;
	for (int num = 1; num < 20; num++) {
		k = i + j;
		i = j;
		sum += k / i;
		j = k;
	}
	printf("%0.2f", sum);
	return 0;
}

4.求阶乘

cpp 复制代码
#include<stdio.h>
int main() {
	int N;
	int jiecheng=1;
	scanf_s("%d", &N);
	while (N != 0) {
		jiecheng *= N;
		N--;
	}
	printf("%d\n", jiecheng);
	return 0;
}

5.求10-1000之间所有数字之和为5的整数的个数

cpp 复制代码
#include<stdio.h>
int main() {
	int count = 0;
	for (int i = 10; i <= 99; i++) {//两位数
		if (i/10+i%10== 5)
			count++;
	}
	for (int i = 100; i <= 999; i++) {//三位数
		if ((i/100)+(i/10%10)+(i%10)== 5)
			count++;
	}
	printf("%d\n", count);
	return 0;
}

6.输入字符串打印除小写,元音,字母之外的。用数组

cpp 复制代码
#include<stdio.h>
int main() {
	char a[50];
	scanf_s("%s", a, 50);
	for (int i = 0; a[i] != '\0'; i++)
		if (a[i] != 'a' && a[i] != 'e' && a[i] != 'i' && a[i] != 'o' && a[i] != 'u')
			printf("%c", a[i]);
	return 0;
}

scanf_s输入字符串时,需要添加长度防止溢出

7.计算输入的10个整数中的,偶数的和,偶数平均值(小数表示)

cpp 复制代码
#include<stdio.h>
int main() {
	int a[10];
	int sum=0;
	double avg;
	for (int i = 0; i < 10; i++) {
		scanf_s("%d", &a[i]);
		if (a[i] % 2 == 0) sum += a[i];
	}
	avg = sum / 10.0;
	printf("偶数的和%d,偶数的平均值%0.2f", sum, avg);
	return 0;
}

8.循环语句求a+aa+aaa+aaaa......n个a,n和a由键盘输入

cpp 复制代码
#include<stdio.h>
#include<math.h>
int main() {
	int a, n,m;
	int sum = 0;
	scanf_s("%d %d", &a, &n);
	m = a;
	for (int i = 1; i <= n; i++) {
		sum += m;
		m += a * pow(10, i);
	}
	printf("%d", sum);
	return 0;
}

9.1!+2!+3!+4!......

cpp 复制代码
#include<stdio.h>
int main() {
	int sum = 0, n,m=1;
	scanf_s("%d", &n);
	for (int i = 1; i <= n; i++) {
		m *= i;
		sum += m;
	}
	printf("%d", sum);
	return 0;
}

10.求sum=1-1/3+1/5-1/7+ +1/n(1/n<0.0001)

cpp 复制代码
#include<stdio.h>
int main() {
	float sum = 0;
	int k=1;
	for (int i = 1; (1.0 / i) >= 0.0001; i += 2) {
		sum += (1.0 / i) * k;
		k = -k;
	}
	printf("%0.2f", sum);
	return 0;
}

11.输入正数判断是否为素数

cpp 复制代码
#include<stdio.h>
int main() {
	int i,n;
	scanf_s("%d", &n);
	//素数:=质数,除了1和它本身之外不能被其他数整除。否则称为合数(1既不是质数也不是合数)
	if (n == 1) printf("%d不是素数", n);
	else if (n == 2) printf("%d是素数", n);
	else {
		for (i = 2; i < n; i++) {
			if (n % i == 0) {
				printf("%d不是素数", n);
				break;
			}
		}
		if(i>=n) printf("%d是素数", n);
	}
	return 0;
}

12.编写一个计算器,可以计算+-*/

cpp 复制代码
#include<stdio.h>
int main() {
	float a, b;
	char ch;
	scanf_s("%f", &a);
	ch = getchar();
	scanf_s("%f", &b);
	switch (ch) {
	case '+':printf("=%0.2f", a + b); break;
	case '-':printf("=%0.2f", a - b); break;
	case '*':printf("=%0.2f", a * b); break;
	case '/':printf("=%0.2f", a / b); break;
	}
	return 0;
}

13.求m,n的最小公倍数

cpp 复制代码
#include<stdio.h>
int main() {
	//lcm:lowest common multiple 最小公倍数
	int m, n,min;
	scanf_s("%d %d", &m, &n);
	if (m < n) min = m;
	else min = n;
	for(int i=min;i<=n*m;i++)
		if (i % m == 0 && i % n == 0) {
			printf("最小公倍数:%d", i);
			break;
		}
	return 0;
}

14.对10个数排序

cpp 复制代码
#include<stdio.h>
int quick_one_pass(int a[], int low, int high) {
	int mid = a[low];
	while (low < high) {
		while (low < high && a[high] >= mid) --high;
		a[low] = a[high];
		while (low < high && a[low] <= mid) ++low;
		a[high] = a[low];
	}
	a[low] = mid;
	return low;
}
void quicksort(int a[], int low, int high) {
	int k;
	if (low < high) {
		k = quick_one_pass(a, low, high);
		quicksort(a, low, k - 1);
		quicksort(a, k + 1, high);
	}
}
int main() {
	//快速排序
	int a[10] = { 2,6,4,8,1,9,3,5,7,4 };
	quicksort(a, 0, 9);
	for (int i = 0; i < 10; i++)
		printf("%d ", a[i]);
	return 0;
}

15.36块砖,男人一次可以搬4块,女人:3块,两个小孩:1块。问男,女,小孩各多少人可以一次搬完

相关推荐
wabs6665 分钟前
关于图论【最短路径之Bellman_ford 算法(判断负权回路)|卡码网95.城市间货物运输II的思考】
数据结构·算法·图论·bellman_ford算法·卡码网·判断负权回路
YouonlyliveonceC19 分钟前
《大话数据结构》第4章实战:中缀表达式转后缀 + 后缀表达式求值(完整可运行实现)
算法
phoenix@Capricornus28 分钟前
从统计决策到贝叶斯估计
人工智能·算法·机器学习
运维行者_32 分钟前
企业带宽监控工具实战:网络流量分析与异常排查的5个关键能力
运维·服务器·开发语言·网络·分布式·后端·php
Patrick在香港34 分钟前
Python爬虫框架实战:优雅抓取香港政府公开API数据的通用方案
java·开发语言·爬虫·python·ai编程·数据可视化·可用性测试
AICDragon37 分钟前
1.8%就够了:K3的896个MoE专家,为什么激活率这么低反而是好事?
人工智能·算法
hey_sml43 分钟前
MySQL常用操作速记:从字符集到游标全解析
java·开发语言·mysql
广东程序猿小展43 分钟前
《007初露锋芒》风灵月影13项修改器下载 007初露锋芒修改器使用方法
开发语言·javascript·ecmascript
VALENIAN瓦伦尼安教学设备1 小时前
ASHOOTER激光对中仪如何通过颜色确定调整是否合适
数据库·嵌入式硬件·算法
货拉拉技术1 小时前
重塑 Agent 度量衡:基于 LLM-as-a-Judge 的离线评估体系与实践
算法·设计模式