c语言课本题目

第一章 初识c语言

例1.1 屏幕输出一行信息

具体代码

1
2
3
4
5
6

#include <stdio.h>
int main(){
printf("hello world");
return 0;
}

执行结果


例1.2 求两个整数之和

具体代码

1
2
3
4
5
6
7
8
9
10

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

执行结果


例1.3 求最大值

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include <stdio.h>
int main(){
int a,b,sum;
int da(int a,int b); //一定要定义方法 而且里面要有数据类型
scanf("%d,%d",&a,&b); ///scanf输入
sum=da(a,b); //调用方法返回max给sum
printf("两个之中最大的是:%d\n",sum);
return 0;
}

int da(int a,int b){
int max; //存储最后的最大值
if(a>b){
max=a; //a大
}else{
max=b; //b大
}
return max;
}

执行结果


习题5 输出*****图形

具体代码

1
2
3
4
5
6
7
8
9

#include <stdio.h>
int main(){
printf("*****\n");
printf(" *****\n");
printf(" *****\n");
printf(" *****\n");
return 0;
}

执行结果


第二章 算法

例2.1 求1到5乘积

具体代码

1
2
3
4
5
6
7
8
9
10

#include <stdio.h>
int main(){
int sum=1;
for(int i=1;i<=5;i++){ //循环乘1*2*3*4*5
sum*=i;
}
printf("%d",sum); //输出结果
return 0;
}

执行结果


例2.3 判断闰年

具体代码

1
2
3
4
5
6
7
8
9
10

#include <stdio.h>
int main(){
for(int i=2000;i<=2500;i++){
if(i%400==0||(i%4==0&&i%100!=0)){ //符合条件输出
printf("%d ",i);
}
}
return 0;
}

执行结果


例2.4 求1-(1/2)+(1/3)-(1/4)到-(1/100)

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
int main(){
double sum=0; //得到最后结果
double temp=0; //获取每次的值
for(int i=1;i<=100;i++){ //相加100次
temp=1.0/i; //一定是1.0 不然就是整除为0了
if(i%2==0){
temp=temp*(-1); //奇数都是负的
}
sum+=temp; //每次相加
}
printf("%.10f",sum); //输出小数点后10位
return 0;
}

执行结果


例2.5 判断素数

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

#include <stdio.h>
int main(){
int n;
scanf("%d",&n); //输入一个整数
if(n>=3){
for(int i=2;i<n;i++){ //从2开始依次
if(n%i!=0){ //如果不能被整除就不是素数
printf("%d",n);
break;
}else{
break; //如果可以被整除那就不是
}
}

}
else{
printf("输入的数字不比3大,输入错误请重新输入!");
}

return 0;
}

执行结果


第三章 顺序程序设计

例3.1 温度转换

具体代码

1
2
3
4
5
6
7
8
9
10

#include <stdio.h>
int main(){
double n; //华氏法
double res; //转换结果
scanf("%lf",&n); //一定是lf
res=5.0*(n-32)/9; //转化公式
printf("%f\n",res); //输出结果
return 0;
}

执行结果


例3.3 大小写转换

具体代码

1
2
3
4
5
6
7
8

#include <stdio.h>
int main(){
char a;
a='A'; //赋值
a=a+32; //大写+32=小写
printf("%c\n",a);
}

执行结果


例3.4 求三角形面积(海伦公式)

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
#include <Math.h> //后面要用sqrt开根号的函数
int main(){
double a; //边1
double b; //边2
double c; //边3
double s; //海伦公式里面的s
double res; //获取最终结果
scanf("%lf,%lf,%lf",&a,&b,&c); //输入三边
s=(a+b+c)/2;
res=sqrt(s*(s-a)*(s-b)*(s-c)); //海伦公式
printf("%.5f",res);
return 0;
}

执行结果


例3.5 求一元二次方程的根

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

#include <stdio.h>
#include <Math.h>
int main(){
int a; //x2的系数
int b; //x的系数
int c; //常数的系数
double temp;
double res1;
double res2;
scanf("%d,%d,%d",&a,&b,&c); //输入一定要用逗号隔开
temp=b*b-4*a*c;
res1=(-b+sqrt(temp))/(2.0*a);
res2=(-b-sqrt(temp))/(2.0*a);
printf("%7.2f",res1);
printf("%7.2f",res2);
return 0;
}

执行结果


例3.9 输入三个字符,然后putchar输出

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
#include <Math.h>
int main(){
char a='B';
char b='O';
char c='Y';
printf("输入新的之前%c%c%c\n",a,b,c);
scanf("%c",&a);
printf("输入新的之后");
putchar(a); //putchar输出单个字符
putchar(b);
putchar(c);
return 0;
}

执行结果


例3.10 输入大写字母输出小写

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
#include <Math.h>
int main(){
char a='B';
char b='O';
char c='Y';
printf("输入新的之前%c%c%c\n",a,b,c);
scanf("%c",&a);
printf("输入新的之后");
putchar(a); //putchar输出单个字符
putchar(b);
putchar(c);
return 0;
}

执行结果


习题3.4 输入不同类型的c1和c2字符

1.输入字符类型范围内c1和c2

具体代码

1
2
3
4
5
6
7
8
9
10
11

#include <stdio.h>
#include <Math.h>
int main(){
char c1,c2;
c1=97; //char范围是-127到128
c2=98;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}

执行结果

2.输入字符类型范围外c1和c2

具体代码

1
2
3
4
5
6
7
8
9
10
11

#include <stdio.h>
#include <Math.h>
int main(){
char c1,c2;
c1=197; //char范围是-127到128 所以输入的是范围外
c2=198;
printf("c1=%c,c2=%c\n",c1,c2);
printf("c1=%d,c2=%d\n",c1,c2);
return 0;
}

执行结果

3.输入整数类型范围内c1和c2

具体代码

1
2
3
4
5
6
7
8
9
10
11

#include <stdio.h>
#include <Math.h>
int main(){
int c1,c2; //整数类型c1和c2
c1=97;
c2=98;
printf("c1=%c,c2=%c\n",c1,c2); //整数类型赋给字符类型 可能存在截取
printf("c1=%d,c2=%d\n",c1,c2); //本来输入的就是int类型 所以就输出原样
return 0;
}

执行结果


习题3.5 多种类型输入和输出

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
#include <Math.h>
int main(){
int a,b;
float x,y;
char c1,c2;
scanf("a=%db=%d",&a,&b);
scanf("%f%e",&x,&y);
scanf("%c%c",&c1,&c2);
printf("a=%d,b=%d",a,b);
printf("x=%f,y=%e",x,y);
printf("a=%c,b=%c",c1,c2);
return 0;
}

执行结果


习题3.6 China译成密码

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <stdio.h>
int main(){
char c1,c2,c3,c4,c5; //定义五个字符
c1='C'; //给五个字符赋初值
c2='h';
c3='i';
c4='n';
c5='a';
c1=c1+4; //直接加4就行
c2=c2+4;
c3=c3+4;
c4=c4+4;
c5=c5+4;
putchar(c1); //使用输出单个字符函数输出
putchar(c2);
putchar(c3);
putchar(c4);
putchar(c5);
printf("\n");
printf("%c",c1); //使用printf输出
printf("%c",c2);
printf("%c",c3);
printf("%c",c4);
printf("%c",c5);
return 0;
}

执行结果


第4章 选择结构程序设计

例4.2 输入两个数排序

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <stdio.h>
int main(){
double a,b; //要排序的a和b
double t; //中间变量
scanf("%lf,%lf",&a,&b);
if(a<b){ //两个数交换 一定要有个中间变量t
t=a;
a=b;
b=t;
}
printf("最大的是%.5f,最小的是%.5f\n",a,b);
return 0;
}

执行结果


例4.3 输入三个数排序

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

#include <stdio.h>
int main(){
double a,b,c; //要排序的三个数
double t; //中间变量
scanf("%lf,%lf,%lf",&a,&b,&c); //double要用lf输入
if(a>b){ //b小 放前面
t=a;
a=b;
b=t;
}
if(a>c){ //说明a<b 如果c小 交换a和c
t=a;
a=c;
c=t;
}
if(b>c){ //前面都不符合说明a是最小的 要比较b和c
t=b;
b=c;
c=t;
}
printf("%.5f,%.5f,%.5f\n",a,b,c);
return 0;
}

执行结果


例4.4 大小写转换

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13

#include <stdio.h>
int main(){
char a;
scanf("%c",&a); //a=getchar();
if(a>='A'&&a<='Z'){ //大写转小写
a=a+32;
}else{ //小写不用转换

}
printf("%c\n",a);
return 0;
}

执行结果


例4.5 分段函数

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18

//1.简单的if语句
#include <stdio.h>
int main(){
int x,y; //
scanf("%d",&x); //输入x 对应输出y
if(x<0){
y=-1;
}
if(x=0){
y=0;
}
if(x>0){
y=1;
}
printf("%d",y); //输出对应y
return 0;
}

执行结果


例4.6 按照等级输出成绩

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include <stdio.h>
int main(){
char grade;
scanf("%c",&grade); //输入分数
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("重新输入成绩等级!");
}
return 0;
}

执行结果


例4.7 switch语句处理菜单命令

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

#include <stdio.h>
int main(){
void action1(int a,int b); //声明两个函数
void action2(int a,int b);
char ch; //要判断的字符
int a=15;
int b=23;
ch=getchar(); //输入一个字符
switch(ch)
{
case 'A':
case 'a':action1(a,b);break; //A和a同时跳转action1方法
case 'B':
case 'b':action2(a,b);break; //B和b同时跳转action1方法
default:printf("不符合题意,重新登陆!");
}
return 0;
}

void action1(int a,int b){
printf("执行action1方法之后结果是%d\n",a+b); //加法
}

void action2(int a,int b){
printf("执行action2方法之后结果是%d\n",a*b); //乘法
}

执行结果


习题4.4 输出三个数最大数

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#include <stdio.h>
int main(){
int a,b,c;
int t; //作为中间值
scanf("%d,%d,%d",&a,&b,&c); //输入三个整数
if(a>b){ //a大 往后放
t=a;
a=b;
b=t;
}
if(a>c){ //a<b 看看a和c的大小
//a大 往后放 这样的话就是 c<a<b
t=a;
a=c;
c=t;
}
if(b>c){ //a<b a<c 但是b和c的大小要排序
//b>c>a 要把b和c换一下
t=b;
b=c;
c=t;
}
printf("三个数中最大的是:%d",c);
return 0;
}

执行结果


习题4.5 输出平方根

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14

#include <stdio.h>
#include <math.h> //使用sqrt函数
int main(){
int a;
int res;
scanf("%d",&a); //输入一个<1000的正数
if(a>=1000){
printf("输入有误,请重新输入!!!");
}
res=(int)sqrt(a); //强转为int 这样输出整数部分
printf("平方根为:%d",res);
return 0;
}

执行结果


习题4.5 分段函数输出y值

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

#include <stdio.h>
int main(){
int x,y;
scanf("%d",&x); //输入整数x
if(x<1){
y=x;
}else if(x>=1&&x<10){
y=2*x-1;
}else if(x>=10){
y=3*x-11;
}
printf("输入的x值是:%d\n",x);
printf("对应的y值是:%d",y);
return 0;
}

执行结果


习题4.9 拆每位数字

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16

#include <stdio.h>
int main(){
int x;
scanf("%d",&x); //输入一个整数
int n=0;
int ge=0; //统计多少位
while(x!=0){ //每一位都拆完就结束
n=x%10; //取出每一位
printf("第%d位是%d\n",ge+1,n);
ge++;
x=x/10;
}
printf("一共是%d位",ge); //输出多少位
return 0;
}

执行结果


习题4.11 输入4个整数按序输出

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39

#include<stdio.h>
int main()
{
int a,b,c,d,t;
scanf("%d,%d,%d,%d",&a,&b,&c,&d);
if(a>b){
t=a;
a=b;
b=t;
}
if(a>c){
t=a;
a=c;
c=t;
}
if(a>d){
t=a;
a=d;
d=t;
}
if(b>c){
t=b;
b=c;
c=t;
}
if(b>d){
t=b;
b=d;
d=t;
}
if(c>d){
t=c;
c=d;
d=t;
}
printf("%d,%d,%d,%d\n",a,b,c,d); //输出四个数字
return 0;
}

执行结果


第5章 循环结构程序设计

例5.8 斐波拉契数列

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

#include<stdio.h>
int main()
{
int a,b,c;
int flag=2; //记录是第几个数
a=1;
b=1;
printf("第1位的数字是:%d\n",a); //先输出前两个数
printf("第2位的数字是:%d\n",b);
for(int i=1;i<39;i++){ //循环40次
c=a+b; //当前值是前两者之和
flag++; //成功计算一次+1
printf("第%d位的数字是:%d\n",flag,c);
//替换新的a和b
a=b; //递推方式
b=c;
}
return 0;
}

执行结果


例5.10 100-200之内素数

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#include<stdio.h>
#include<math.h> //要用sqrt函数
int main()
{
//求100-200所有素数
for(int i=100;i<200;i++){
int k=sqrt(i); //开根号
int flag=0; //标志位
for(int j=2;j<=k;j++){ //从2-k就可以
if(i%j==0){
flag=1; //能被整除就不是素数设置为1
}
}
if(flag==0){
printf("%d\n",i); //flag没变就是素数
}
}

return 0;
}

执行结果


习题5.3 求最大公约数和最小公倍数

具体代码

1
2


执行结果


习题5.4 分析字符串组成

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

#include<stdio.h>
int main()
{
int a=0; //统计英文字母个数
int b=0; //统计空格个数
int c=0; //统计数字个数
int d=0; //统计其他字符个数
char temp; //c语言没有字符串string类 所以用char输入
while((temp=getchar())!='\n'){ //换行键就结束
if((temp>='a'&&temp<='z')||(temp>='A'&&temp<='Z')){
a++;
}else if(temp>='0'&&temp<='9'){
c++;
}else if(temp==' '){
b++;
}else {
d++;
}
}
printf("英文字符的个数是:%d\n",a); //输出对应个数
printf("空格字符的个数是:%d\n",b);
printf("数字的个数是:%d\n",c);
printf("其他字符的个数是:%d\n",d);
return 0;
}

执行结果


习题5.8 水仙花数

具体代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#include<stdio.h>
int main()
{
//水仙花数只能在3位数中出现
for(int i=100;i<999;i++){
int a=i/100; // 假以187为例 187/100=1
int b=i/10%10; // 187/10=18 18%10=8
int c=i%10; // 187%10=7
if(a*a*a+b*b*b+c*c*c==i){ //每位的立方次==原数
printf("%d\n",i);
}
}
return 0;
}

执行结果


×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 第一章 初识c语言
    1. 1.1. 例1.1 屏幕输出一行信息
    2. 1.2. 例1.2 求两个整数之和
    3. 1.3. 例1.3 求最大值
    4. 1.4. 习题5 输出*****图形
  2. 2. 第二章 算法
    1. 2.1. 例2.1 求1到5乘积
    2. 2.2. 例2.3 判断闰年
    3. 2.3. 例2.4 求1-(1/2)+(1/3)-(1/4)到-(1/100)
    4. 2.4. 例2.5 判断素数
  3. 3. 第三章 顺序程序设计
    1. 3.1. 例3.1 温度转换
    2. 3.2. 例3.3 大小写转换
    3. 3.3. 例3.4 求三角形面积(海伦公式)
    4. 3.4. 例3.5 求一元二次方程的根
    5. 3.5. 例3.9 输入三个字符,然后putchar输出
    6. 3.6. 例3.10 输入大写字母输出小写
    7. 3.7. 习题3.4 输入不同类型的c1和c2字符
      1. 3.7.1. 1.输入字符类型范围内c1和c2
      2. 3.7.2. 2.输入字符类型范围外c1和c2
      3. 3.7.3. 3.输入整数类型范围内c1和c2
    8. 3.8. 习题3.5 多种类型输入和输出
    9. 3.9. 习题3.6 China译成密码
  4. 4. 第4章 选择结构程序设计
    1. 4.1. 例4.2 输入两个数排序
    2. 4.2. 例4.3 输入三个数排序
    3. 4.3. 例4.4 大小写转换
    4. 4.4. 例4.5 分段函数
    5. 4.5. 例4.6 按照等级输出成绩
    6. 4.6. 例4.7 switch语句处理菜单命令
    7. 4.7. 习题4.4 输出三个数最大数
    8. 4.8. 习题4.5 输出平方根
    9. 4.9. 习题4.5 分段函数输出y值
    10. 4.10. 习题4.9 拆每位数字
    11. 4.11. 习题4.11 输入4个整数按序输出
  5. 5. 第5章 循环结构程序设计
    1. 5.1. 例5.8 斐波拉契数列
    2. 5.2. 例5.10 100-200之内素数
    3. 5.3. 习题5.3 求最大公约数和最小公倍数
    4. 5.4. 习题5.4 分析字符串组成
    5. 5.5. 习题5.8 水仙花数
,