0%

C/计算机二级考试临时抱佛脚

计算机二级考试临时抱佛脚

基础知识

软件危机

软件危机的表现包括:①对软件开发的进度和费用估计不准确;②用户对已完成的软件系统不满意的现象时常发生;③软件产品的质量‘往往靠不住;④软件常常是不可维护的;⑤软件通常没有适当的文档;⑥软件成本在计算机系统总成本中所占的比例逐年上升;⑦软件开发生产率提高的速度远远跟不上计算机应用迅速普及深入的趋势。

地址即指针。

不能将一个整数直接赋给指针变量作为地址;函数的返回值可以说指针。

sizeof函数和int,double字节问题

C语言中用sizeof判断数据类型长度,在vc平台上,整型int占有4字节,double占有8个字节

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include "stdio.h"
int main(){
char a,b,c,d;
scanf("%c%c",&a,&b);
c=getchar();d=getchar();
printf("%c%c%c%c\n",a,b,c,d);
}
/*按照下列方式输入数据:
12<CR>
34<CR>
其中<CR>表示回车。
输出结果为:
12
3

case常量表达式只是起语句标号的作用,并不是该处进行条件判断。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#include "stdio.h"
int main(){
int x=1,y=0,a=0,b=0;
switch (x) {
case 1:
switch (y) {
case 0:a++;break;
case 1:b++;break;
}
case 2:a++;b++;break;
case 3:a++;b++;
}
printf("a=%d,b=%d\n",a,b);
}
/*输出结果为:
a=2,b=1
*/

一个程序选择题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include "stdio.h"
int main(){
int i=0,k=1;
for (i=0; i<4; i++,i++) {
for (k=1; k<3; k++) {
};
}
printf("*\n");
}
/*输出结果为:
*
*/

/*解析:由于内层循环后面直接跟了空语句;所以在循环内部什么操作也不做,跳出循环后执行打印语句,所以就打印了一个“*”。
*/

程序选择题复现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include "stdio.h"
#include "stdlib.h"//rand函数的头文件为:stdlib.h
#include "time.h"//strand()函数需要的参数为seed,通常利用time(0)的返回值作为seed。time.h是time的头文件
int main(){
char s[]="012xy\08s34f4w2";//char型字符串总是自动以\0结尾.但是\0介于两个数字之间时,这种自动结尾实效。具体可以自己看看是如何失效的。
int i,n=0;
for (i=0;s[i]!=0;i++){
if (s[i]>='0'&&s[i]<='9') {
n++;
}
}
printf("%d\n",n);
}
/*所以输出结果为:
3
*/

第二次函数调用时,第一次的调用已经有些参数的值改变了!

在C语言中,只有在使用时才占用内存单元的变量,其存储类型是:auto和register。

不能在定义结构体的同时,由用结构体类型定义变量。所以,下面结构体的定义语句是错误的。

1
struct ord {int x;int y;int z;}struct ord a;

与处理命令是以#开头的命令,它们不是C语言的可执行命令,这些命令应该在函数之外书写,一般在源文件的最前面书写,但不是必须在起始位置书写;C语言的预处理能够实现宏定义和条件编译等功能。