C语言机试编程题

news2025/2/28 16:42:13

编写版本:vc++2022

1.求最大/小值

#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

#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项和

#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.求阶乘

#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的整数的个数

#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.输入字符串打印除小写,元音,字母之外的。用数组

#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个整数中的,偶数的和,偶数平均值(小数表示)

#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由键盘输入

#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!……

#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)

#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.输入正数判断是否为素数

#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.编写一个计算器,可以计算+-*/

#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的最小公倍数

#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个数排序

#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块。问男,女,小孩各多少人可以一次搬完

#include<stdio.h>
int main() {
    int man, woman, kid;
    for (man = 0; man <= 9; man++)
        for (woman = 0; woman <= 12; woman++)
            for (kid = 0; kid <= 72; kid++)
                if (4 * man + 3 * woman + 0.5 * kid == 36)
                    printf("%d,%d,%d\n", man, woman, kid);
    return 0;
}

16.输入一个字符串,将其正序反序输出

#include<stdio.h>
#include<string.h>
int main() {
	char array[50];
	int n=0;//n是数组的长度
	scanf_s("%s", array, 50);
	n = strlen(array);
	for (int i = 0; i < n; i++)
		printf("%c", array[i]);
	printf("\n");
	for(int i=n-1;i>=0;i--)
		printf("%c", array[i]);
	return 0;
}

计算字符数组的长度:

#include<string.h>

strlen(array);

17.求一个整数在存储单元中,从右端开始第4到第7位的值

#include<stdio.h>
int main() {
    unsigned a, b, c;
    scanf_s("%o", &a);
    b = a >> 4;//右移四位
    c = b & 15;//和15按位与,15的二进制编码为1111
    printf("%o,%d\n%o,%d\n", a, a, c,c);
    return 0;
}

18.楼梯一共有n级,一次爬1级或2级,有几种不同的路径

#include<stdio.h>
int ClimbStairs(int n) {
    if (n == 0) return 1;
    else if (n == 1) return 1;
    else return ClimbStairs(n - 1) + ClimbStairs(n - 2);
}
int main() {
    int n;
    scanf_s("%d", &n);
    printf("%d", ClimbStairs(n));
    return 0;
}

19.十六进制转换成十进制

#include<stdio.h>
#include<string.h>
#include<math.h>
int f(char* a);//声明
int main() {
    char a[30];
    int n=0,ten=0;
    gets(a);
    printf("%d", f(a));
    return 0;
}
int f(char* a) {
    int i, c, sum = 0, n;
    c = strlen(a);
    for (i = 0; i < c; i++) {
        if (a[i] >= 'A' && a[i] <= 'Z')
            a[i] -= 55;
        if (a[i] >= '0' && a[i] <= '9')
            a[i] -= '0';
    }
    n = c - 1;
    for (i = 0; i <= c; i++) {
        sum = sum + a[i] * pow(16, n);
        n--;
    }
    return sum;
}

20.创建链表,头/尾插法插入数据

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

struct Node {
	int data;
	struct Node* next;
};

//头插法创建链表
struct Node* createList(int arr[], int n) {
	struct Node* head = NULL;//初始化头节点为null
	for (int i = 0; i < n; i++) {
		//创建新结点
		struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
		newNode->data = arr[i];

		newNode->next = head;
		head = newNode;
	}
	return head;
}

//尾插法创建链表
struct Node* createList_2(int arr[], int n) {
	struct Node* head = NULL;
	struct Node* tail = NULL;
	for (int i = 0; i < n; i++) {
		struct Node* newNode = (struct Node*)malloc(sizeof(struct Node));
		newNode->data = arr[i];
		newNode->next = NULL;

		if (head == NULL) {
			head = newNode;
			tail = newNode;
		}else {
			tail->next = newNode;
			tail = newNode;
		}
	}
	return head;
}

//打印链表
void printList(struct Node* head) {
	struct Node* temp = head;
	while (temp != NULL) {
		printf("%d ->", temp->data);
		temp = temp->next;
	}
	printf("NULL\n");
}

int main() {
	int arr[] = { 1,2,3,4,5 };
	int n = sizeof(arr) / sizeof(arr[0]);//数组长度

	//头插法创建链表
	struct Node* head = createList(arr, n);
	//打印链表
	printList(head);

	//尾插法创建链表
	struct Node* head_2 = createList_2(arr, n);
	//打印链表
	printList(head_2);

	return 0;
}

21.删除链表中的指定数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2307477.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lowagie(itext)老版本手绘PDF,包含页码、水印、图片、复选框、复杂行列合并、行高设置等。

入口类&#xff1a;exportPdf package xcsy.qms.webapi.service;import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alibaba.nacos.common.utils.StringUtils; import com.ibm.icu.text.RuleBasedNumberFormat; import com.lowagie…

第002文-kali虚拟机安全与网络配置

1、kali系统介绍 kali是一个基于Linux kernel的操作系统&#xff0c;由BackTrack(简称BT)发展而来。BackTrack是2006年推出的一个用于渗透测试及黑客攻防的专用平台&#xff0c;基于Knoppix(linux的一个发行版)开发。BackTrack版本周期&#xff1a;2006年的起始版本BackTrack …

软件工程复试专业课-软件生命周期

文章目录 软件过程模型瀑布模型模型图特点优缺点改进后的瀑布模型 快速原型模型模型图优缺点 增量模型&#xff08;迭代-递增模型&#xff09;原型图与瀑布和快速原型的区别优缺点风险更大的增量模型 螺旋模型简介模型图优缺点 喷泉模型模型图优缺点 编码修补模型敏捷过程优缺点…

DILLEMA:扩散模型+大语言模型,多模态数据增强框架

引言&#xff1a;深度学习模型的鲁棒性测试需要全面且多样化的测试数据。现有的方法通常基于简单的数据增强技术或生成对抗网络&#xff0c;但这些方法在生成真实且多样化的测试数据集方面存在局限性。为了克服这些限制&#xff0c;DILLEMA框架应运而生&#xff0c;旨在通过结合…

C++程序员内功修炼——Linux C/C++编程技术汇总

在软件开发的宏大版图中&#xff0c;C 语言宛如一座巍峨的高山&#xff0c;吸引着无数开发者攀登探索。而 Linux 操作系统&#xff0c;以其开源、稳定、高效的特性&#xff0c;成为了众多开发者钟爱的开发平台。将 C 与 Linux 相结合&#xff0c;就如同为开发者配备了一把无坚不…

苍穹外卖-阿里云OSS文件上传

苍穹外卖-阿里云OSS文件上传 一、阿里云OSS简介**获取AccessKey**获取enpoint 二、代码实现1 引入依赖2 定义OSS相关配置2.1 application-dev.yml2.2 application.yml 3 读取OSS配置3.1 AliOssProperties 4 生成OSS工具类对象4.1 AliOssUtil4.2 OssConfiguration2.5 CommonCont…

DeepSeek 提示词:常见指令类型

&#x1f9d1; 博主简介&#xff1a;CSDN博客专家&#xff0c;历代文学网&#xff08;PC端可以访问&#xff1a;https://literature.sinhy.com/#/?__c1000&#xff0c;移动端可微信小程序搜索“历代文学”&#xff09;总架构师&#xff0c;15年工作经验&#xff0c;精通Java编…

springai系列(二)从0开始搭建和接入azure-openai实现智能问答

文章目录 前言1.从0开始搭建项目2.进入微软openai申请key3.配置application.yaml4.编写controller5.测试源码下载地址总结 前言 之前使用openai的官网的api需要科学上网&#xff0c;但是我们可以使用其他的代理间接实现使用chatgpt的相关模型&#xff0c;解决这个问题。比如:本…

Go在1.22版本修复for循环陷阱

记录 前段时间升级Go版本碰到一个大坑&#xff0c;先记录。 先上代码案例&#xff1a; func main() {testClosure() }func testClosure() {for i : 0; i < 5; i {defer func() {fmt.Println(i)}()} }在1.22之下&#xff08;不包括1.22&#xff09;版本&#xff1a; 输出的…

可视化约瑟夫生死环小游戏

这是一个基于Tkinter的图形界面应用程序&#xff0c;用于模拟约瑟夫环问题。约瑟夫环问题是一个经典的数学问题&#xff0c;描述的是N个人围成一圈&#xff0c;从第一个人开始报数&#xff0c;每数到第M个人就将其淘汰&#xff0c;然后从下一个人继续报数&#xff0c;直到剩下最…

【深入理解JWT】从认证授权到网关安全

最近的项目学习中&#xff0c;在进行登陆模块的用户信息验证这一部分又用到了JWT的一些概念和相关知识&#xff0c;特在此写了这篇文章、方便各位笔者理解JWT相关概念 目录 先来理解JWT是什么&#xff1f; 区分有状态认证和无状态认证 有状态认证 VS 无状态认证 JWT令牌的…

学习路之PHP --TP6异步执行功能 (无需安装任何框架)

学习路之PHP --异步执行功能 &#xff08;无需安装任何框架&#xff09; 简介一、工具类二、调用三、异步任务的操作四、效果&#xff1a; 简介 执行异步任务是一种很常见的需求&#xff0c;如批量发邮箱&#xff0c;短信等等执行耗时任务时&#xff0c;需要程序异步执行&…

九、数据治理架构流程

一、总体结构 《数据治理架构流程图》&#xff08;Data Governance Architecture Flowchart&#xff09; 水平结构&#xff1a;流程图采用水平组织&#xff0c;显示从数据源到数据应用的进程。 垂直结构&#xff1a;每个水平部分进一步划分为垂直列&#xff0c;代表数据治理的…

【数据结构】 最大最小堆实现优先队列 python

堆的定义 堆&#xff08;Heap&#xff09;是一种特殊的完全二叉树结构&#xff0c;通常分为最大堆和最小堆两种类型。 在最大堆中&#xff0c;父节点的值总是大于或等于其子节点的值&#xff1b; 而在最小堆中&#xff0c;父节点的值总是小于或等于其子节点的值。 堆常用于实…

51c自动驾驶~合集52

我自己的原文哦~ https://blog.51cto.com/whaosoft/13383340 #世界模型如何推演未来的千万种可能 驾驶世界模型&#xff08;DWM&#xff09;&#xff0c;专注于预测驾驶过程中的场景演变&#xff0c;已经成为追求自动驾驶的一种有前景的范式。这些方法使自动驾驶系统能够更…

【我的 PWN 学习手札】House of Husk

House of Husk House of Husk是利用格式化输出函数如printf、vprintf在打印输出时&#xff0c;会解析格式化字符如%x、%lld从而调用不同的格式化打印方法&#xff08;函数&#xff09;。同时C语言还提供了注册自定义格式化字符的方法。注册自定义格式化字符串输出方法&#xf…

Nmap使用指南

Nmap使用指南 Nmap (网络映射器) 是一款强大的应用网络扫描和安全核查工具&#xff0c;适合于网络管理和安全专家。本文将介绍Nmap的基本使用方法&#xff0c;包括基本命令和常用功能。 1. 基本使用方式 Nmap的基本命令格式如下&#xff1a; nmap [选项] 目标地址目标地址 可…

傅里叶分析

傅里叶分析之掐死教程&#xff08;完整版&#xff09;更新于2014.06.06 要让读者在不看任何数学公式的情况下理解傅里叶分析。 傅里叶分析不仅仅是一个数学工具&#xff0c;更是一种可以彻底颠覆一个人以前世界观的思维模式。但不幸的是&#xff0c;傅里叶分析的公式看起来太复…

从零开始用react + tailwindcss + express + mongodb实现一个聊天程序(五) 实现登录功能

1.登录页面 完善登录页面 和注册差不多 直接copy signUpPage 内容 再稍微修改下 import { useState } from "react"; import { useAuthStore } from "../store/useAuthStore"; import { MessageSquare,Mail,Lock,Eye, EyeOff,Loader2} from "lucide…