当前位置: 首页 > 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[])

相关文章:

  • 24体育NBA足球直播M28模板体育赛事直播源码
  • Rmarkdown输出为pdf的方法与问题解决
  • 从代码学习机器学习 - UMAP降维算法 scikit-learn版
  • Android 消息队列之MQTT的使用(二):会话+消息过期机制,设备远程控制,批量控制实现
  • JavaScript高级进阶(四)
  • Crusader Kings III 王国风云 3(十字军之王 3) [DLC 解锁] [Steam] [Windows SteamOS macOS]
  • Python(14)推导式
  • PCI/PXI 总线的可编程电阻卡
  • JVM模型、GC、OOM定位
  • leetcode 876. 链表的中间结点
  • 云上玩转DeepSeek系列之六:DeepSeek云端加速版发布,具备超高推理性能
  • SpringBoot实现接口防刷的5种高效方案详解
  • 安装qt4.8.7
  • cuDNN 安装、版本查看及指定版本删除操作指南
  • 社交电商和泛娱乐平台出海南美市场支付方式与策略
  • 人工智能搜索时代:如何优化SEO以保持领先
  • Context7 MCP:提供实时、版本特定的文档以解决AI幻觉问题
  • 【爬虫】一文掌握 adb 的各种指令(adb备忘清单)
  • 普发ASM392EUV检漏仪维修说明手测内容可目录
  • 厚铜pcb生产厂家哪家好?
  • 人民日报社论:做新时代挺膺担当的奋斗者
  • 下任美联储主席热门人选沃什:美联储犯下“系统性错误”,未能控制一代人以来最严重的通胀
  • 滨江集团去年营收约691亿元,尚未结算的预收房款1253亿元
  • 湖州通告13批次不合格食品,盒马1批次多宝鱼甲硝唑超标
  • 西北大学党委副书记吕建荣调任西安财经大学党委书记
  • 演员孙俪:中年人没有脆弱的时间,学习胡曼黎不内耗