08 程序题

01 

#include <stdio.h>

int main()
{
    char *s1[] = {"right?"};
    
    // 系统会根据数据总个数和第2维的长度算出第1维的长度
    char s2[][20] = {"right"};
    
    // 存放着 6 个指针变量的一位数组
    char *s3[6];
    s3[1]="right";
    
    char s4[6][20];
    // 报错,s4[1] 是一个地址
    s4[1]="right";
    
    return 0;
}

02

#include <stdio.h>

int main()
{
    int x;
    float y;
    
    scanf("%2d%f",&x,&y);
    printf("x=%d,y=%f\n",x,y);
}

执行结果

03

#include <stdio.h>

int ADD(int x, int y)
{
    return x+y;
}

int main()
{
    int k,x=5,y=10;
    // 定义指向函数的指针变量 f,f先与*结合,表示指针变量,再与()结合,()表示是函数,即该指针变量指向函数
    int (*f)();
    f=ADD;
    
    k=(*f)(x,y);
    k=ADD(x,y);
    // 报错,指针型函数int *func(int x,float y),返回值是地址
    k=*f(x,y);
    k=f(x,y);
}

04 计算 n!

#include <stdio.h>

int main()
{
    int n=3,i,sum=1;
    
    for(i=n;i>=2;i--){
        sum*=i;
    }
    printf("%d\n",sum);
}

05 

#include <stdio.h>

int main()
{
    // s1 无字符串结束符,长度不能确定;s2长度为数组元素的个数
    char s1[]={'x','y','z'}, s2[10]={'x','y','z'};
    // strlen(s)返回s字符串中字符的个数,若s是一个数组,则返回数组元素的个数
    printf("%d %d\n",strlen(s1),strlen(s2));
}

执行结果:

06

#include <stdio.h>

int main()
{
    float a=123.4567;
    // (12345.67+0.5)/100=123.46
    printf("%f\n",(int)(a*100+0.5)/100.0);
}

执行结果:

07

#include <stdio.h>

int main()
{
    int a=3;
    do{
        // %3d:输出最小域宽为3个字符的整数
        // a=3-2=1,1--=0,a=0-2=-2
        printf("%3d\n",a-=2);
    }while(!(--a));

    return 0;
}

执行结果:

08

#include <stdio.h>

struct num{
    int x;
    int y;
}n={1,3};

int main()
{
    struct num *p=&n;
    // 3/1=3 3*4=12
    int result = p->y/n.x*++p->y;
    // 执行结果:12
    printf("%\n",result);
    return 0;
}

09

#include <stdio.h>

int A[3][3] = {1,2,3,4,5,6,7,8,9},*p;
main()
{
    p = (int*)malloc(sizeof(int));
    FUN(p,A);
    // 执行结果:5
    printf("%d\n",*p);
}

int FUN(int *r,int p[][3])
{
    *r=p[1][1];
    return 0;
}

10 写程序输出以下方阵

13 14 15 16

9   10 11 12 

5    6   7   8

1    2   3   4

#include <stdio.h>

int main()
{
    int i,j,x;
    for(j=4;j>0;j--){
        for(i=1;i<=4;i++){
            // 列:3*4+1,2*4+1,1*4+1,0*4+1
            x=(j-1)*4+i;
            printf("%4d",x);
        }
        printf("\n");
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值