当前位置: 首页 > news >正文

计算机基础—(九道题)

1. 流程控制题

编写一个程序,输入一个整数,判断它是否是素数(质数)。
如果是素数,输出`Yes`,否则输出`No`。

#include <stdio.h>
int main()
/*
1. 流程控制题编写一个程序,输入一个整数,判断它是否是素数(质数)。如果是素数,输出`Yes`,否则输出`No`。*/
{int n, i, a = 1;printf("请输入一个整数:");scanf("%d", &n);if (n <= 1){a = 0;}else{for (i = 2; i <= n / 2; i++){if (n % i == 0){a = 0;break;}}}if (a){printf("Yes\n");}else{printf("No\n");}return 0;
}

 2. 函数题

编写一个函数`int max(int a, int b, int c)`,
返回三个整数中的最大值。在主函数中调用该函数并输出结果。

 

#include <stdio.h>
/*编写一个函数`int max(int a, int b, int c)`,返回三个整数中的最大值。在主函数中调用该函数并输出结果。*/
int max(int a, int b, int c)
{int max = a;if (b > max){max = b;}if (c > max){max = c;}return max;
}int main()
{int result = max(3, 5, 2);printf("The maximum value is: %d\n", result);
}

 3. 指针题

编写一个程序,使用指针交换两个整数的值。要求:
- 定义一个函数`void swap(int a, int b)`,用于交换两个整数的值。
- 在主函数中调用该函数并输出交换后的结果。

#include <stdio.h>
/*编写一个程序,使用指针交换两个整数的值。要求:
- 定义一个函数`void swap(int a, int b)`,用于交换两个整数的值。
- 在主函数中调用该函数并输出交换后的结果。
*/
void swap(int *a, int *b)
{int temp = *a;*a = *b;*b = temp;
}
int main()
{int x, y;printf("请输入两个整数:");scanf("%d %d", &x, &y);printf("交换前:x = %d, y = %d\n", x, y);swap(&x, &y);printf("交换后:x = %d, y = %d\n", x, y);return 0;
}

 4. 字符串题

编写一个程序,输入一个字符串,统计其中大写字母、小写字母、数字和其他字符的个数,并输出结果。

#include <stdio.h>
#include <string.h>
/*4. 字符串题
编写一个程序,输入一个字符串,统计其中大写字母、小写字母、数字和其他字符的个数,并输出结果。*/
int main(int argc, char const *argv[])
{char str[] = {'a', '1', 'A', '@'};int i = 0, upper = 0, lower = 0, digit = 0, other = 0;int len = sizeof(str) / sizeof(str[0]);for (i = 0; i < len; i++){if (str[i] >= 'A' && str[i] <= 'Z'){upper++;}else if (str[i] >= 'a' && str[i] <= 'z'){lower++;}else if (str[i] >= '0' && str[i] <= '9'){digit++;}else{other++;}}return 0;
}

 5. 数组和指针题

编写一个程序,定义一个整型数组`int arr[] = {1, 2, 3, 4, 5}`,
    使用指针遍历数组并输出每个元素的值。

#include <stdio.h>
/*5. 数组和指针题编写一个程序,定义一个整型数组`int arr[] = {1, 2, 3, 4, 5}`,使用指针遍历数组并输出每个元素的值。*/
int main(int argc, char const *argv[])
{int arr[] = {1, 2, 3, 4, 5};int *p = arr; // 指针指向数组的首元素// 遍历数组并输出每个元素的值for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++){printf("%d ", *(p + i)); // 使用指针访问数组元素}printf("\n");// 也可以使用指针的方式遍历数组for (int *ptr = arr; ptr < arr + sizeof(arr) / sizeof(arr[0]); ptr++){printf("%d ", *ptr); // 使用指针访问数组元素}return 0;
}

 6. 综合题

编写一个程序,输入一个字符串,判断它是否是回文字符串(正读和反读都相同)。
    例如,`"level"`是回文字符串,`"hello"`不是回文字符串。

#include <stdio.h>
/*6. 综合题编写一个程序,输入一个字符串,判断它是否是回文字符串(正读和反读都相同)。例如,`"level"`是回文字符串,`"hello"`不是回文字符串。*/
int main(int argc, char const *argv[])
{char str[100];printf("请输入一个字符串: ");scanf("%s", str);int len = strlen(str);int isPalindrome = 1;for (int i = 0; i < len / 2; i++){if (str[i] != str[len - i - 1]){isPalindrome = 0;break;}}if (isPalindrome){printf("是回文字符串\n");}else{printf("不是回文字符串\n");}return 0;
}

 7. 综合题

编写一个程序,定义一个函数`void reverse_string(char str)`,
    用于反转字符串。例如,输入`"hello"`,输出`"olleh"`。在主函数中调用该函数并输出结果。

#include <stdio.h>
/*6. 综合题编写一个程序,输入一个字符串,判断它是否是回文字符串(正读和反读都相同)。例如,`"level"`是回文字符串,`"hello"`不是回文字符串。*/
int main(int argc, char const *argv[])
{char str[100];printf("请输入一个字符串: ");scanf("%s", str);int len = strlen(str);int isPalindrome = 1;for (int i = 0; i < len / 2; i++){if (str[i] != str[len - i - 1]){isPalindrome = 0;break;}}if (isPalindrome){printf("是回文字符串\n");}else{printf("不是回文字符串\n");}return 0;
}

8. 结构体和函数题

定义一个结构体`Point`,包含以下成员:
- `x`(横坐标,整数)
- `y`(纵坐标,整数)
编写一个函数`double distance(Point p1, Point p2)`,
    计算两个点之间的距离。在主函数中调用该函数并输出结果。

#include <stdio.h>
/*
8. 结构体和函数题定义一个结构体`Point`,包含以下成员:- `x`(横坐标,整数)- `y`(纵坐标,整数)编写一个函数`double distance(Point p1, Point p2)`,计算两个点之间的距离。在主函数中调用该函数并输出结果。*/
typedef struct
{int x;int y;
} Point;double distance(Point p1, Point p2)
{return sqrt((p2.x - p1.x) * (p2.x - p1.x) + (p2.y - p1.y) * (p2.y - p1.y));
}int main(int argc, char const *argv[])
{Point p1 = {0, 0};Point p2 = {3, 4};double dist = distance(p1, p2);printf("Distance: %.2f\n", dist);return 0;
}

三、编程题

编写一个程序,模拟简单的计算器功能。要求:
- 支持加(`+`)、减(`-`)、乘(``)、除(`/`)四种运算。
- 使用函数指针数组实现功能选择。
- 用户输入两个数字和运算符,程序输出计算结果。

#include <stdio.h>
/*
三、编程题
编写一个程序,模拟简单的计算器功能。要求:
- 支持加(`+`)、减(`-`)、乘(``)、除(`/`)四种运算。
- 使用函数指针数组实现功能选择。
- 用户输入两个数字和运算符,程序输出计算结果。
*/
#include <stdio.h>double add(double a, double b)
{return a + b;
}double subtract(double a, double b)
{return a - b;
}double multiply(double a, double b)
{return a * b;
}double divide(double a, double b)
{if (b != 0){return a / b;}else{printf("Error: Division by zero.\n");return 0;}
}int main(int argc, char const *argv[])

http://www.xdnf.cn/news/199045.html

相关文章:

  • 云上玩转DeepSeek系列之六:DeepSeek云端加速版发布,具备超高推理性能
  • AI图片跳舞生成视频,animate X本地部署。
  • 2025系统架构师---论企业集成平台的技术与应用
  • 永磁同步电机控制算法-反馈线性化滑模控制
  • Telephony VoiceMail
  • 数据库基础与核心操作:从概念到实战的全面解析
  • 嵌入式多功能浏览器系统设计详解
  • 使用双端队列deque模拟栈stack
  • 获得ecovadis徽章资格标准是什么?ecovadis评估失败的风险
  • sortablejs + antd-menu 拖拽出重复菜单
  • 【个人理解】MCP server和client二者各自的角色以及发挥的作用
  • 【TS入门笔记4---装饰器】
  • DPanel 一款更适合国人的 Docker 管理工具
  • linux 使用nginx部署vue、react项目
  • 结合大语言模型的机械臂抓取操作学习
  • Python 中支持函数式编程的 operator 与 functools 包
  • 第一节:Linux系统简介
  • Android显示学习笔记本
  • 打造即插即用的企业级云原生平台——KubeSphere 4.1 扩展组件在生产环境的价值全解
  • 解决跨域实现方案
  • 用vite动态导入vue的路由配置
  • 本地部署Qwen-7B实战 vLLM加速推理
  • 网络协议之为什么要分层
  • 论文分享 | 基于区块链和签名的去中心化跨域认证方案
  • 受限字符+环境变量RCE
  • vue3:v-model的原理示例
  • python练习:求数字的阶乘
  • 思科bsp社招面试
  • JavaScript 与 Java 学习笔记
  • day9 python 热力图与子图的绘制