初识C语言
(1)算法(Algorithm)是一组明确的解决问题的步骤,它产生结果并可在有限的时间内终止。可以用(
自然语言 伪代码 流程图
)多种方式来描述算法。
(2)C 语言程序的三种基本控制结构是
顺序结构、分支(又称选择)结构和循环结构
。
(3)在算术、赋值和关系运算符中,按照优先级从高到低的顺序排列为:
算
术
运算符、关系 运算符、赋值运算符。
(4)
写出以下程序段的运行结果。请注意,直接填单词、字符或者两者的组合,前后不要加空格等任何其他字符。
double grade;
scanf ("%lf", &grade);
if(grade < 60); {
printf("Fail");
}
printf("?");
无论何值输出Fail?注意if语句后有一个分号
(5)写出以下程序段的运行结果。请注意,直接填单词,前后不要加空格等任何其他字符。
mynumber = 38;
scanf ("%d", &yournumber);
if(yournumber == mynumber){
printf("Right");
}
if(yournumber > mynumber ){
printf("Big");
}else{
printf("Small");
}
else会与离他最近的未与else配对的if进行配对,所以最上面那个if语句与下面的ifelse语句分别判断
1>38,RightSmall
2>30, Small
3>40,Big
(6)输入赋值时无需格式限制符,否则读取数据会出错
(7)若变量已正确定义,写出以下程序段的运行结果。
scanf ("%d", &k);
while(k >= 0){
printf("%d#", k);
scanf ("%d", &k);
}
一旦输入负数,跳出循环
(8)注意逻辑顺序,如先++还是先判断,先求和还是先跳出循环
(9)注意除号与百分号运算不要弄混
(10)循环体中出现单个分号可以忽略
(11)因为定义缺失,得从输入输出中确定数据类型,从而在计算式中加入类型转换操作
printf("%.8f\n", sum);
如:sum是浮点数,那么计算sum如果含除法得乘上1.0或进行强转,否则结果出问题
(12)根据题目输出考虑是否单独输出换行符或空格等
(14)switch语句中不能漏掉switc
(15)
int 定义了数组fib,且45个数组元素的值都为随机值,大小取决于编译器,加static才赋值0
字符串
(16)static char s[6] = {‘H’, ‘a’, ‘p’, ‘p’, ‘y’, 0} 与 static char s[6] = {‘H’, ‘a’, ‘p’, ‘p’, ‘y’, ‘\0’}等价
(17)while( str[k] = getchar() != ‘\n’),读取长串字符标准代码
(18)记得结尾的 ‘\0’
(19)字符串可以通过两个指针变量,一个指向首地址一个指向尾地址作差求得长度
函数
(13)
函数是一个完成特定工作的独立程序模块,包括自定义函数 和库函数两种
(14)选择排序法
for(k = 0; k < n-1; k++){
index = k;
for(i=k;i<n;i++){
if(a[i]<a[index]){
index = i;
}
}
temp=a[k];a[k]=a[index];a[index]=temp;
}
()
运算符
运算符
(19)c语言(8,10)的意思
如果前面有函数的话,那就是函数调用中的参数传值,如果仅仅只是(8,10)的话,那应该是逗号表达式,所谓逗号表达式,就是逗号后面的那个值。举例如下:
y=(8,10);那么y=10;
需要注意的是逗号表达式的优先级比赋值运算还低,所以如果你写成:
y=8,10;那么y=8的。
(20)假设计算机内用2个字节表示一个整型数据。则-5的补码是
1个字节8个比特位(二进制位)组成
-5原码:
1
000 0000 0000 0101
反码: 1111 1111 1111 1010
补码: 1111 1111 1111 1011