其他分享
首页 > 其他分享> > 寒假,C,自己遇到的问题,留作纪念(二)

寒假,C,自己遇到的问题,留作纪念(二)

作者:互联网

https://www.runoob.com/cprogramming/c-100-examples.html

寒假解决菜鸟课程的C语言经典100例,顺便督促学习,留作纪念

自己就是简单在菜鸟课程学习的,利用寒假把这100道例题解决掉。


实例51-53:&,|,^,~;

0 & 0 = 0;  0 & 1 = 0 ; 1 & 0 = 0 ; 1 & 1 = 1;

0 | 0 = 0 ; 0 | 1 = 1 ;  1 | 0 = 1 ;  1 | 1 = 1;

0 ^ 0 = 0 ; 0 ^ 1 = 1; 1 ^ 0 = 1;  1 ^ 1 = 0.

~ 0 = 1 ;  ~ 1 = 0 ;

 

实例61: 二维数组;

//杨辉三角形
int a[N][N];

for (size_t i = 0; i < N; i++)
{
    a[i][0] = 1;
    a[i][i] = 1;
}

for (size_t i = 2; i < N; i++)
{
    for (size_t j = 1; j < i; j++)
    {
        a[i][j] = a[i-1][j-1] + a[i-1][j];
    }
}

for (size_t i = 0; i < N; i++)
{
    for (size_t j = 0; j <= i; j++)
    {
    printf("%5d",a[i][j]);
    }
    printf("\n");
}

 

实例66:指针运用;

void swap(int *s1, int *s2)
{
    int temp;
    temp = *s1;
    *s1 = *s2;
    *s2 = temp;
}

int main (void)
{   int a, b;
    int *p1, *p2;
    printf("请输入两个数:");
    scanf("%d %d",&a,&b);
    p1 = &a; p2 = &b;
    if (a > b)
    {
        swap(p1,p2);
    }
    printf("更改后顺序为:%d,%d\n",a,b);
}

实例68:调试;

F9设置断点->F5(开始调试(运行至断点处))->F11(逐语句(遇到函数则进入函数))
shift+F5 结束调试
shift+F11 退出函数

 

实例68:size_t 与int 的区别:

这里我犯了很多难以发现的错误,经别人帮助,才有所发现,size_t与int的核心区别:

1)size_t 是 根据32/64位机器而变化的,在64位上是 unsigned long int,也就是不能出现负数;

2)在实际情况下,出现 size_t 0 < -1,这主要是因为int型的-1会转变成无符号型,变成一个很大的数,从而大于0

总的来说,少用size_t就行了

参考:https://blog.csdn.net/lemoncyb/article/details/12012987

https://blog.csdn.net/C1550153993/article/details/91548889

 

实例68:for循环顺序;

for(1;2;3)

{

4

}

循环过程:1→2→4→3→2→4→3→2→4.....

关于3过程的i--描述:i--的确是先引用后计算,这里在for循环中,可以发现,这里是直接利用i--的值来做判断的,也就是说在for循环中,i--和--i并没有区别

 

实例79:sizeof str1/sizeof str1[0] & gets函数 & fgets函数 & strcmp函数 & strcpy函数 & strcat函数 & puts函数 & strstr函数

sizeof str1/sizeof str1[0]:计算str1的字符串数

 gets函数:printf("请输入一个8进制数:\n");gets(s);将输入的量存储在字符串s中;

fgets函数:fgets(str1,(sizeof str1/sizeof str1[0]),stdin),将输入的量储存在字符串str1中;相比gets函数能控制大小;

strcmp函数:strcmp(str1,str2) ;比较str1与str2的大小,以ASCII 码表上的顺序来决定;

strcpy函数:strcpy(tem,str1);将str1字符串复制到tem字符串;

strcat函数:strcat(a,b);将字符串b复制到字符串a尾部;

puts()函数;puts(s);将字符串s内容输出到屏幕;

strstr()函数:返回字符串中首次出现子串的地址;

 

实例91:获取时间;

time_t rawtime;
struct tm * timeinfo;
    
time ( &rawtime );
timeinfo = localtime ( &rawtime );
printf ( "当前本地时间为: %s", asctime (timeinfo) );

 

实例92:判断程序运行时间;

time_t start,end;
int i;
start=time(NULL);
for(i=0;i<300000;i++)
{
    printf("\n");  // 返回两个time_t型变量之间的时间间隔
}
end=time(NULL);
    
// 输出执行时间
printf("时间间隔为 %6.3f\n",difftime(end,start));

 

实例94:srand( (time(NULL) )  & rand()%100;

srand( (time(NULL) ) ; 表示设置一个随机种子,每次运行都能保证随机种子不同。

rand()%100;表示获得一个100以内的随机数,其结果在[0-99]中

 

实例97:文件创建、写入、保存处理;

//从键盘输入一个字符串,将小写字母全部转换成大写字母,然后输出到一个磁盘文件"test"中保存。
FILE *fp;   //先赋初值,让文件指针指向空
char in;
fp = fopen("test.txt","w"); //创建写入空文件
printf("请输入一个字符串(以!结束):\n");
while((in=getchar()) != '!')
{
    if(in <='z' && in >= 'a')
    {
        in -= 32;
    }
    //fprintf(fp,"%c",in);    //写入的另一种写法
    fputc(in,fp);   //把in内容写入fp文件中
}
fclose(fp);

 

实例98:ASCII码表

65~90为26个大写英文字母,97~122号为26个小写英文字母

参考:https://blog.csdn.net/ttmice/article/details/50978054

hilbert-wy 发布了2 篇原创文章 · 获赞 0 · 访问量 16 私信 关注

标签:函数,实例,遇到,int,纪念,str1,寒假,字符串,size
来源: https://blog.csdn.net/qq_40249864/article/details/104116835