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

C语言考试经典999题--编程题--持续更新中-----

一、数学+循环类

1.求1~100奇数和、偶数和

考点:for循环、分支、累加

#include <stdio.h> int main() { int i, sum_odd=0, sum_even=0; for(i=1; i<=100; i++){ if(i%2==0) sum_even += i; else sum_odd += i; } printf("奇数和=%d\n偶数和=%d\n", sum_odd, sum_even); return 0; }

2.判断素数(质数)

考点:函数、循环、素数判定逻辑。

#include <stdio.h> int isPrime(int n){ if(n<=1) return 0; for(int i=2; i*i<=n; i++) if(n%i==0) return 0; return 1; } int main() { int x; scanf("%d",&x); if(isPrime(x)) printf("是素数\n"); else printf("不是素数\n"); return 0; }

3. 求最大公约数(辗转相除法)

考点:while 循环、函数、取模运算。

#include <stdio.h> int gcd(int a,int b){ while(b){ int t=a%b; a=b; b=t; } return a; } int main() { int x,y; scanf("%d%d",&x,&y); printf("gcd=%d\n",gcd(x,y)); return 0; }

二、数组/字符串类

1.数组排序(冒泡)

考点:一维数组、双重循环、排序。

#include <stdio.h> int main() { int a[5]={3,1,4,2,5}; int i,j,t; for(i=0; i<4; i++) for(j=0; j<4-i; j++) if(a[j]>a[j+1]){ t=a[j]; a[j]=a[j+1]; a[j+1]=t; } for(i=0; i<5; i++) printf("%d ",a[i]); return 0; }

2.小写转大写(不用strupr())

考点:字符串遍历、ASCII 码差。

#include <stdio.h> int main() { char s[100]; gets(s); // 考试常用 for(int i=0; s[i]!='\0'; i++) if(s[i]>='a' && s[i]<='z') s[i] -= 32; printf("%s\n",s); return 0; }

3.字符串连接(不用strcat)

考点:字符串结束符、数组下标操作。

#include <stdio.h> int main() { char a[200], b[100]; gets(a); gets(b); int i=0,j=0; while(a[i]!='\0') i++; while(b[j]!='\0') a[i++]=b[j++]; a[i]='\0'; printf("%s\n",a); return 0; }

4. 找字符串中最长连续数字串(安徽高频)

考点:字符判断、连续统计、边界处理

#include <stdio.h> #include <ctype.h> int main() { char s[100]; gets(s); int max_len=0, cur_len=0, start=0, max_start=0; for(int i=0; s[i]!='\0'; i++){ if(isdigit(s[i])){ cur_len++; if(cur_len>max_len){ max_len=cur_len; max_start=start; } }else{ cur_len=0; start=i+1; } } for(int i=max_start; i<max_start+max_len; i++) printf("%c",s[i]); return 0; }

三、结构体类(每年必考 1 题)

1.学生结构体:输入 + 求平均分

考点:结构体定义、数组、成员访问。

#include <stdio.h> #define N 3 struct Stu{ char name[20]; int score; }; int main() { struct Stu s[N]; int sum=0; for(int i=0; i<N; i++){ scanf("%s%d", s[i].name, &s[i].score); sum += s[i].score; } printf("平均分=%.2f\n", sum*1.0/N); return 0; }

四、指针类(中等难度,常考)

1.指针实现数组逆序

考点:指针变量、地址运算、解引用。

#include <stdio.h> int main() { int a[5]={1,2,3,4,5}; int *p=a, *q=a+4, t; while(p<q){ t=*p; *p=*q; *q=t; p++; q--; } for(int i=0; i<5; i++) printf("%d ",a[i]); return 0; }

五、打印图形

1.正等腰三角形(常考)

思路:每行由前置空格 + 星号组成,设总行数 n=5,当前行 i(从 1 开始)

①空格数:n - i,逐行减少
②星号数:2*i - 1,逐行增多
③外层循环控制行数,两层内层循环分别打空格、星号

#include <stdio.h> int main() { int n = 5; // 总层数 int i, j; // 外层:控制行数 for (i = 1; i <= n; i++) { // 打印前置空格 for (j = 1; j <= n - i; j++) { printf(" "); } // 打印星号 for (j = 1; j <= 2 * i - 1; j++) { printf("*"); } printf("\n"); // 每行结束换行 } return 0; }

2.倒等腰三角形

思路:和正三角规律相反,i 从总行数递减到 1:
①空格数:n - i,逐行增多
②星号数:2*i - 1,逐行减少

#include <stdio.h> int main() { int n = 5; int i, j; for (i = n; i >= 1; i--) { for (j = 1; j <= n - i; j++) { printf(" "); } for (j = 1; j <= 2 * i - 1; j++) { printf("*"); } printf("\n"); } return 0; }

3.左对齐直角三角形(正直角三角形)

#include <stdio.h> int main() { int n = 5; int i, j; for (i = 1; i <= n; i++) { // 无前置空格,直接打印星号 for (j = 1; j <= i; j++) { printf("*"); } printf("\n"); } return 0; }

4.左对齐直角三角形(倒直角三角形)

#include <stdio.h> int main() { int n = 5; int i, j; for (i = n; i >= 1; i--) { for (j = 1; j <= i; j++) { printf("*"); } printf("\n"); } return 0; }

5.空心三角形(进阶考点)

#include <stdio.h> int main() { int n = 5; int i, j; for (i = 1; i <= n; i++) { // 打印前置空格 for (j = 1; j <= n - i; j++) printf(" "); for (j = 1; j <= 2 * i - 1; j++) { // 第一行、最后一行、左右边界打印*,其余打空格 if (i == 1 || i == n || j == 1 || j == 2*i-1) printf("*"); else printf(" "); } printf("\n"); } return 0; }

6.打印固定行数菱形(7行为例)

考点:多重循环

思路:

①设总奇数行(示例 7 行),上半 4 行(递增),下半 3 行(递减)
②每一行由空格 + 星号组成:
③空格:行数越大,空格越少
④星号:每行星号数量 = 2*当前行号 - 1

#include <stdio.h> int main() { int i, j, k; int n = 4; // 上半部分行数,控制菱形大小 // 打印上半部分(递增) for (i = 1; i <= n; i++) { // 打印前面空格 for (j = 1; j <= n - i; j++) { printf(" "); } // 打印星号 for (k = 1; k <= 2 * i - 1; k++) { printf("*"); } printf("\n"); // 换行 } // 打印下半部分(递减) for (i = n - 1; i >= 1; i--) { // 打印前面空格 for (j = 1; j <= n - i; j++) { printf(" "); } // 打印星号 for (k = 1; k <= 2 * i - 1; k++) { printf("*"); } printf("\n"); } return 0; }

7.空心菱形

思路:

①每行空格数:n - i
②每行星号数:2 * i - 1

#include <stdio.h> int main() { int n = 4; int i,j; for(i=1;i<=n;i++) { for(j=1;j<=n-i;j++) printf(" "); printf("*"); for(j=1;j<=2*i-3;j++) printf(" "); if(i!=1) printf("*"); printf("\n"); } for(i=n-1;i>=1;i--) { for(j=1;j<=n-i;j++) printf(" "); printf("*"); for(j=1;j<=2*i-3;j++) printf(" "); if(i!=1) printf("*"); printf("\n"); } return 0; }
http://www.jsqmd.com/news/926605/

相关文章:

  • AutoSar MCAL开发避坑指南:EB配置如何无缝对接S32DS工程?一次讲清文件搬运与编译设置
  • 罗技G HUB 2023.10版开机自启的正确姿势:为什么你禁用了启动项还要用任务计划?
  • Linux系统编程—库制作与原理
  • Ansys Lumerical实战:如何用MODE求解器里的‘模式扩展监视器’,精准分析波导锥度的模式耦合
  • 2026年Q2福州拆迁补偿律师效率排行:福州长乐律师、福州闽侯律师、福州个人维权律师、福州交通事故律师、福州刑事专业律师选择指南 - 优质品牌商家
  • 2026年性价比高的通用变速箱一站式维修厂家 - 工业推荐榜
  • 告别网络依赖:用pip download和ms-playwright文件夹实现Playwright自动化环境一键离线部署
  • Mybatis-Plus条件构造器实战:从QueryWrapper到UpdateWrapper,搞定用户管理模块的增删改查
  • K8s新手实操|emptyDir卷超详细实战(附完整命令+核心理解)
  • 避坑指南:UE5 Control Rig绑定骨骼后,为什么在Sequencer里动不了?(附排查步骤)
  • 告别刻盘时代!用Ventoy一个U盘搞定Win11、Ubuntu、黑苹果多系统安装(保姆级教程)
  • claude-mem——关了终端再打开,AI 还记得上次聊到哪
  • 多保真贝叶斯优化在数字孪生参数调优中的应用
  • 2026年研发试样小批量不锈钢板选购指南 - 工业推荐榜
  • 2026年4月数控钢筋锯切生产线源头厂家哪个好,智能梁场大型钢筋加工设备,数控钢筋锯切生产线生产厂家选哪家 - 品牌推荐师
  • 告别Godot4.2代码一团糟:用这5个注释技巧,让团队协作效率翻倍
  • 吊挂控制机箱技术选型要点与行业合规应用指南:不锈钢防爆箱/吊挂控制机箱/悬臂控制箱/数控控制机箱/数控控制箱/机床控制机箱/选择指南 - 优质品牌商家
  • 不止于“你好”:用科大讯飞离线SDK在GEC6818上打造你的第一个语音控制项目
  • 别再搞混了!ROS机器人建图时,map、odom、base_link三个坐标系到底该怎么用?
  • 如何永久收藏心爱小说:fanqienovel-downloader番茄小说下载工具完整指南
  • 苍穹外卖-Day09(用户下单)
  • 2026年进口起重机推荐,靠谱品牌大盘点 - 工业推荐榜
  • 2026年深圳logo设计全包TOP5品牌推荐:农产品商标设计/医疗健康logo设计/医疗健康商标设计/原创logo设计/选择指南 - 优质品牌商家
  • Arm Neoverse V3核心PMU架构与性能监控实战
  • 2026年深圳实惠搬家公司TOP5推荐:深圳实验室搬迁公司、深圳工厂搬家公司、深圳工厂搬迁公司、深圳搬家公司电话选择指南 - 优质品牌商家
  • 告别病理图染色差异!用这个Python库一键搞定WSI染色归一化(支持GPU加速)
  • 2026年专业北斗定位器技术解析与标杆产品盘点:定位器产品/微型定位器/无线定位器/汽车北斗定位器/汽车定位器/选择指南 - 优质品牌商家
  • RLFT技术在工程机械自动化中的实践与优化
  • Win7绝境求生:手把手教你离线搞定Python 3.7.8和Playwright 1.15.3(附KB2533623补丁)
  • 从Cadence Tempus到Synopsys PT:聊聊两家工具check_timing的异同与迁移心得