鹏哥C语言红皮书(52-54)笔记回顾

1.关于while(条件表达式)循环体以下叙述正确的是(循环体的条件表达式的执行次数比判断表达式多一次),假设循环体里面没有break,countinue,return,god等等语句

2.以下代码中结果为:a的结果为8

int main()
{
    int a = 0,b=0;
    for(a=1,b=1;a<100;a++)
    {
        if(b>=20) break;
        if(b % 3 ==1){
            b = b+3;
            continue;
        }
        b=b-5;
    }
    printf("%d\n",a);
    return 0;
}

3.数9的个数

        编写程序数一下1-100的所有整数中出现了多少个数字9

int main()
{
    int i =0;
    int count = 0;
    for(i=1;i<=100;i++)
    {
        if(i % 10 ==9)
            count++
        if(i/10==9)
            count++;
    }
printf("%d\n",count);
return 0;
}

4.计算1/1-1/2+1/3-1/4+1/5......+1/99-1/100的值,打印出结果

        

int main()
{
    int i = 0;
    double sum =0.0;
    int flag = 1
    for(i=1;i<100;i++)
    {
        sum+=flag * 1.0 /i;
        flag = -flag;
    }
    printf("%if\n",sum);
    
    return 0;
}

5.求10个整数最大值

       

int main()
{
    int arr[10] = {-1,-2,-3,-4,-5,-6,-7,-8,-9,-10};
    int max = arr[10];
    int i =0;
    for(i =1;i<10;i++)
    {
        if(arr[i] > max){
        max = arr[i];
    }
    }
    printf("%d\n",max);
    return 0;    
}

6.计算9*9乘法表

int main()
{
    int i =1;
    //行数
    for(i=1;i<=9;i++){
    //打印一行
    int j = 0;
    for(j=1;j<=i;j++){
        printf("%d%d=%-2d",i,j,i*j);
    }
    printf("\n");
}
    return 0;
}

7.以下关于函数设计语言不正确的说法是:尽可能多的使用全局变量

8.关于C语言函数描述正确的是:(库函数的使用必须包含对应的头文件)

9.C语言规定,在一个源程序中,main函数的位置(可以任意)

10.以下叙述中不正确的是:在一个函数内部复合语句中定义的变量在本函数范围内有效(复合语句指函数中的成对括号构成的代码))

11.能把函数处理结果的二个数据返回给主调函数,在下面的方法中不正确的是:

12.关于函数调用说法不正确的:函数可以嵌套定义,但是不能嵌套调用;

13.在函数时以下说法正确的时:实际参数和形式参数可以同名;

14.关于函数的声明和定义说法正确的是:函数必须保证先声明后使用;

15.关于实参形参描述错误的是:改变实参就是改变形参

16.函数调用exect((v1,v2,(v3,v4),(v5,v6))中,实参的个数是:(4)

17.打印乘法口诀表,口诀表的行数和列数自己指导

#include <stdio.h>
void print_table(int n)
{
    int i =0;
    //行
    for(i=1;i<=n;i++)
    {
        //打印一行
        int j = 0;
        for(j=1;j<=i;j++){
                printf("%d*%d=2%d",i,j,i*j);
            }
        printf("\n");

        }
}
int main()
{
     int n = 0;
     scanf("%d",&n); //9
    //函数
        print_table(n);

    //函数的起名是非常关键的,名字最好能体现函数的功能

    return 0;   
}

2.递归的作业:

        1,关于递归的描述错误的是:(递归可以无限递归下去)

        2.根据下面递归函数:

int Fun(int n)
{
    if(n==5)
        return 2;
    else
        return 2 * Fun(n+1);
}

int main()
{
    printf("%d\n",Fun(2));
    
    return 0;
    
}

调用函数Fun(2),返回值是多少(16)

6.字符串的逆序(递归实现)

my_strlen(char* str)
{
    int count = 0;
    while(*str != '\0')
    {
        count++;
        str++;
    }
    return count;
}
void reverse_string(char*str)
{
    int left = 0;
    int right = my_strlen(str) - 1;
    while(left < right){
        char map = str[left];
        str[left] = str[right];
        str[right] = tmp;
        left++;
        right--;
    }

}
int main()
{
    char arr[] = "abcdef";
    reverse_string(arr);//数组名arr是数组arr首元素的地址

    printf("%s\n",arr); //fedcba
    return 0;

}

        

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值