news 2026/9/2 13:09:26

C++ 语言课程笔记

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
C++ 语言课程笔记

C++ 语言课程笔记

C语言程序设计第四版——谭浩强著,此书中的代码题大部分已经在本文中展示,以及南开大学 C 语言上机题库 100 题的作答,如果有作答不正确的地方或者可优化的地方,欢迎指正,谢谢!

001 屏幕输出指定信息

【题目】要求再屏幕上输出以下一行信息

This is a C program.

【代码】

#include <stdio.h> ​ int main(){ printf("This is a C program.\n"); return 0; }

002 求两个整数之和

【题目】a + b = ?

【代码】

#include <stdio.h> ​ int main(){ int a,b,sum; a = 123; b = 456; sum = a + b; printf("sum = %d\n",sum); return 0; }

003 求两个整数中较大者

【题目】求两个整数中较大者

【代码】

#include <stdio.h> ​ int max(int x,int y); ​ int main(){ int a,b,c; scanf("%d,%d",&a,&b); c = max(a,b); printf("max = %d\n",c); return 0; } //求两个整数中较大者 int max(int x,int y){ return x>y?x:y; }

004 求三个整数中的最大者

【题目】编写一个 C 程序,输入 a,b,c 三个整数,输出其中最大者

【代码】

  • Example 01:

#include <stdio.h> ​ int max(int x,int y,int z); ​ int main(){ int a,b,c,d; scanf("%d,%d,%d",&a,&b,&c); d = max(a,b,c); printf("max = %d\n",d); return 0; } //求3个整数中较大者 int max(int x,int y,int z){ int t; if(x>y) { if(x>z){ t = x; }else { t = z; } }else if(y<z){ t = z; }else{ t = y; } return t; }
  • Example 02:对 01 代码进行了优化

#include <stdio.h> ​ int max(int x,int y,int z); ​ int main(){ int a,b,c,d; scanf("%d,%d,%d",&a,&b,&c); d = max(a,b,c); printf("max = %d\n",d); return 0; } //求3个整数中较大者 int max(int x,int y,int z){ int max = x; if(max<y){ max = y; } if(max<z){ max = z; } return max; }

005 求1×2×3×4×5

【题目】求1×2×3×4×5

【代码】

#include <stdio.h> ​ int factorial(int n); ​ int main(){ int result; result = factorial(5); printf("1×2×3×4×5 = %d\n",result); return 0; } //求1×2×3×4×5 (5! 阶乘) int factorial(int n){ int i=2,t=1; while(i<=n){ t *= i; i++; } return t; }

006 求多项式1-1/2+1/3-1/4+...+1/99-1/100

【题目】求多项式1-1/2+1/3-1/4+...+1/99-1/100

【代码】

#include <stdio.h> ​ double sum(int n); ​ int main(){ printf("%lf\n",sum(100)); return 0; } ​ double sum(int n){ int sign = 1; double result = 1.0; int i = 2; while(i<=n){ sign = -sign; result += (double)sign/i; i++; } return result; }

007 输出给定小写字母

【题目】给定一个大写字母,要求用小写字母输出

【代码】

#include <stdio.h> ​ int main(){ char c1,c2; c1 = 'A'; c2 = c1 + 32; printf("%c\n",c2); printf("%d\n",c2); return 0; }

008 从键盘输入字符输出

【题目】从键盘输入BOY 3个字符,然后把他们输出到屏幕

【代码】

#include <stdio.h> ​ int main(){ char a,b,c; a = getchar(); b = getchar(); c = getchar(); putchar(a); putchar(b); putchar(c); putchar('\n'); return 0; }

009 输出任意小写字母

【题目】改写 007,从键盘上输入一个大写字母,在显示屏上显示对应的小写字母

【代码】

#include <stdio.h> ​ int main(){ char c1,c2; c1 = getchar(); c2 = c1 + 32; putchar(c2); putchar('\n'); return 0; }

010 判别是否为大写字母

【题目】输入一个字符,判别它是否为大写字母,如果是,将它转换成小写字母;如果不是,则不转换。然后输出最后得到的字符

【代码】

#include <stdio.h> ​ int main(){ char c; scanf("%c",&c); c = (c>='A'&&c<='Z')?(c+32):c; printf("%c\n",c); return 0; }

011 成绩按等级输出

【题目】要求按照考试成绩的等级输出百分制分数段,A等为85分以上,B等为70 ~ 84,C等60 ~ 69,D等为60分以下。成绩的等级由键盘输入

【代码】

#include <stdio.h> ​ int main(){ char grade; scanf("%c",&grade); printf("Your score:"); switch(grade){ case 'A': printf("85-100\n");break; case 'B': printf("70-84\n");break; case 'C': printf("60-69\n");break; case 'D': printf("<60\n");break; default:  printf("enter data error!\n"); } return 0; }

012 判断闰年

【题目】写一程序,判断某一年是否为闰年

【代码】

#include <stdio.h> #include <stdbool.h> ​ bool isLeap(int year); ​ int main(){ int year; scanf("%d",&year); if(isLeap(year)){ printf("%d is ",year); }else{ printf("%d is not ",year); } printf("a leap year.\n"); return 0; } ​ bool isLeap(int year){ bool leap = false; if((year%4==0 && year%100!=0)||(year%400==0)){ leap = true; } return leap; }

013 求1+2+3+...+100

【题目】

【代码】

  • Example 01:[ while 语句实现 ]

#include <stdio.h> int sum(int n); int main(){ printf("%d\n",sum(100)); return 0; } int sum(int n){ int result = 0; int i = 1; while(i<=n){ result += i; i++; } return result; }
  • Example 02:[ do...while 语句实现 ]

#include <stdio.h> int sum(int n); int main(){ printf("%d\n",sum(100)); return 0; } int sum(int n){ int result = 0; int i = 1; do{ result += i; i++; }while(i<=n); return result; }
  • Example 03:[ for 语句实现 ]

#include <stdio.h> int sum(int n); int main(){ printf("%d\n",sum(100)); return 0; } int sum(int n){ int result = 0; int i; for(i=1;i<=n;i++){ result += i; } return result; }

014 输出以下4*5的矩阵

【题目】输出以下4*5的矩阵

1 2 3 4 5

2 4 6 8 10

3 6 9 12 15

4 8 12 16 20

【代码】

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

015 求最大公约数和最小公倍数

【题目】输入两个正整数m和n,求其最大公约数和最小公倍数

【思路】

  • 思路一:辗转相除法

    • 有两整

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/2 13:09:10

2024安徽村级行政区划数据深度解析:从GIS处理到空间分析实战

简介&#xff1a;本资源为2024年安徽省村级&#xff08;居委会&#xff09;级行政区划GIS矢量数据集&#xff0c;面向地理信息、城乡规划、公共管理及社会科学研究领域的从业者与高校师生&#xff0c;用于空间分析、地图制图、人口统计建模与基层治理可视化等实际场景。数据采用…

作者头像 李华
网站建设 2026/9/2 13:04:41

RVC模型融合完全指南:不重训10分钟拿到新音色

RVC模型融合完全指南&#xff1a;不重训10分钟拿到新音色 【免费下载链接】Retrieval-based-Voice-Conversion-WebUI Easily train a good VC model with voice data < 10 mins! 项目地址: https://gitcode.com/GitHub_Trending/re/Retrieval-based-Voice-Conversion-WebU…

作者头像 李华
网站建设 2026/9/2 13:04:33

4GB 显存跑 70B:AirLLM 的分层流式推理逻辑与模型覆盖一览

4GB 显存跑 70B&#xff1a;AirLLM 的分层流式推理逻辑与模型覆盖一览 【免费下载链接】airllm AirLLM 70B inference with single 4GB GPU 项目地址: https://gitcode.com/GitHub_Trending/ai/airllm 一张 4GB 显存的显卡&#xff0c;常规用法只能装下 7B 级别的模型&a…

作者头像 李华
网站建设 2026/9/2 13:04:08

从第一次运行到小项目:Python入门与兴趣持续路线

大一导员第一次提 Python 时&#xff0c;我其实没把这句话放在心上。后来我顺着他推荐的那个网站点进去试了试&#xff0c;才发现 Python 兴趣是可以被“第一次跑出结果”的那个瞬间点着的。真正让我上瘾的不是某个学习平台的名字&#xff0c;而是我第一次在浏览器里看到代码输…

作者头像 李华