课堂笔记:
需要加强记忆的有
- 数据类型转换:
强制类型转换时,数据只变换一次,并不改变原来的数据类型。 - 位运算
^:异或,相异时为一
~:取反
计算机是补码存储,原码输出!!!
正数的补码是他本身,负数的补码时原码取反加一;
~23:-24
原码:00010111
反码:11101000 (是一个负数的补码)
负数的反码(-1):11100111
负数的原码:10011000(-24)
三目运算: a?b:c
- 运算符级别问题:
括号成员第一,全体单目第二,乘除余第三,加减第四,位移第五,关系第六,等或不等于第七。。
即昨天之后继续
2)用空指针作函数调用失败时的返回值
在函数调用成功时,函数返回一个指向某一对象的指针;反之,则返回一个空指针。
3)用空指针作警戒值
指针数组和数组指针的区别:
int *p[2]
;首先声明一个数组,数组的元素是int类型;
int (*p)[2]
;声明了一个指针,指向了一个有两个int元素的数组。
typedef int* intPtr;
intPtr p[2];```
typedef int intArray2[2];
intArray2 *p;
* ######程序挂起时,应该怎么办。。
调试程序思想及方法。
应该先检测一下程序的结构,按顺序执行一下函数列表,检测函数是否可行正常运行;程序本身正常完成正常的,**问题可能出现该函数从别的地方得到了一些错误的数据**
* 等于运算符的误用;
* 未初始化的变量
* 变量的隐式类型转换。
用什么方法找出程序中的错误:
(1)先调试程序中较小的组成部分,然后调试较大的组成部分;
(2)彻底调试好程序的一个组成部分后,怎么调试下一个组成部分;
(3)连续观察程序流(flow)的数据变化;
(4)始终打开编译程序警告选项 并试图消除所有警告;
(5)准确地缩小存在错误的范围。
**从一开始就避免错误的出现**
(1)程序中应有足够的注释
(2)函数应当简洁——如果一个函数很简洁,你就应该多花一点时间去仔细的分析和检测确保准确无误。
(3)程序流应该清晰,避免使用goto语句和其他跳转语句
(4)函数名和变量应具有描述性
####作业:
要求:用for循环或者while循环实现!
路人1.1.字母金字塔
A
BBB
CCCCC
DDDDDDD
EEEEEEEEE
....................
......................................
ZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZZ
include<stdio.h>
int main(int argc,char argv[]){
int i,j;
char k = 'A';
i = 1;
j = 1;
for(i = 1;i <= 26;i++){
for(j = 1;j <= 26-i;j++){
printf(" ");
}
for(j = 1;j <= 2i-1;j++){
printf("%c",k+i-1);
}
printf("\n");
}
return 0;
}
2.模拟电子时钟:
清屏system("clear");
休眠函数:sleep(n); //休眠n秒
include<stdio.h>
include<unistd.h>
int main(int argc,char *argv[]){
int hours,minutes,seconds;
// printf("Please times at present:hours minutes seconds");
hours = 19;
minutes = 30;
seconds = 0;
int i = hours,j = minutes,k = 0;
for(;i < 24;i++){
for(;j < 60;j++){
for(;k < 60;k++){
printf("%d:%d:%d",i,j,k);
sleep(1);
system("clear");
printf("\n");
}
k = 0;
}
j = 0;
}
}
3.阶梯问题:
在你面前有一条长长的阶梯:若每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨6阶,则最后剩5阶;只有每步7阶时,才刚好走完,一阶不剩,请问这条阶梯至少有多少阶?(求所有三位阶梯数)
include<stdio.h>
int main(int argc,char *argv[]){
int i,sum;
for(i=1;i<1000;i++){
if(i%2==1 && i%3==2 && i%5==4 && i%6==5 && i%7==0){
printf("%d\t",i);
}
}
return 0;
}
4.预习数组和指针
已完成