010303_判断与循环语句
- 格式:ppt
- 大小:364.50 KB
- 文档页数:30


c语言基础总结
第一篇:c语言基础总结
常见错误
1.使用未初始化和未赋值的变量
描述:非全局变量和静态变量在定义时不自动进行初始化,初值为一个与该程序运行环境有关的随机数。不赋值或没有显示初值就直接使用这样的变量是错误的。
解决:所有变量都显示地进行初始化,建议数值变量初始化为0,指针变量初始化为NULL
2.不考虑数值溢出的可能
描述:当赋值超过此范围数值,就会产生数值溢出,得到不正确的值。
解决:预先估算运行结果的可能范围,采用可能范围更大的,不处理负数,就用无符号类型。运算还没开始前,判断运算数是否在合理取值的范围内,超出则停止运算。采用第三方无取值范围的运算库。
3.不用sizeof()获得类型或变量的字长
描述:相同类型在不同平台上占得字节数不同。Int在16位,32位,64位系统分别占2,4,8个字节。结构体所占字节也不是所有成员字长的简单相加,而是和平台与编译器,编译项都有关系。
解决:用且只用sizeof获得字长
Intwriteint(intfh ,inti)
{
Returnwrite(fh ,&i,sizeof(i));
}
4.假定类型的取值范围
描述:类型的取值范围与程序编译息息相关。
解决:使用limits.h和float.h定义的宏(INT--MAX,INT----MINULONG--MAXFLT---MAX
5.期望两个整数的运算自动获得浮点数的结果 描述:两个数运算的结果还是整数,不是浮点数
方案:强制转换为浮点数,再运算
例:voidfunc(void)voidfunc(void)
{{
Floatf=0.0;floatf=0.0;
Inta =3,b=2;int a=3,b=2;
f=a/b;f=a/(float)b;
printf(“%f,f);printf
}
6.不预先判除除数是否为0
编译器反应:直接写入inti=100/0,编译器会报错,编译器对此问题沉默
题干 答案
'\n'是一个转义字符. Y
#define 和printf 都不是C语句. Y
#include "stdio.h" 是每个程序中必须写的. N
[3,6,18,23]是合法的表达式. N
0x173是"正确"的十六进制常数. Y
7&3+12的值是15. N
a=(b=4)+(c=6) 是一个合法的赋值表达式. Y
char (*p)[6]; 若p值为1000,则p++;后p值为1006. Y
int k=8567;printf("|%-6d|\n",k);的输出为|008567|. N
int x=3,y=2;printf("%d",x*=y+8);输出为30. Y
r_1_2是C语言合法的用户定义标识符. Y
若i =3,则printf("%d",-i++);输出的值为 -4. N
若x为float型变量,则以下语句x=213.82631;printf("%-4.2f\n",x);的输出为213.82. N
若有定义和语句:int a;char c;float
f;scanf("%d,%c,%f",&a,&c,&f);
若通过键盘输入:10,A,12.5则a=10,c='A',f=12.5. Y
一个C程序中至少有一对大花括号{}. Y
语句 printf("%f%%",1.0/3);输出为
0.333333. N
语句scanf("%7.2f",&a);是一个合法的scanf函数. N
在C语言程序设计中,"/*"和"*/"之间的内容是C语言的注释. Y
C程序中的关键字必须小写,其他标识符不区分大小写. N
在C程序中,每行中只能写一条语句 . N
C程序中的#include 和#define均不是C语句. Y
用scanf函数输入数据可以规定精度,所以scanf("%6.2f",&x)是正确的. N
在C程序中,语句之间必须要用分号";"分隔. Y
char c;c=getchar();该程序段的功能是将用户从键盘输入的字符赋给变量c. Y
国家开放大学《11253丨C语言程序设计(统设课)》机考题库
一、单项选择题。把合适的选项编号填写在括号内。
1.不符合 C 语言规定的复合语句是( )。D
A.{}
B.{;}
C.{x=0;}
D.{y=10}
2.C 语言中的选择类语句有两条,它们是( )。
A.if 和 switch
B.if 和 else
C.switch 和 case
D.else 和 case
3.在每个 C 语言程序中都必须包含有这样一个函数,该函数的函数名为( )。
A. main
B. MAIN
C. name
D. function
4. 在 C 语言程序中,多行注释语句使用的开始标记符为( )。
A. //
B. /*
C. */
D. **
5. 用于输出表达式值的标准输出函数是( )。 A. scanf()
B. print()
C. printf()
D. output()
6. 在 printf()函数调用的格式字符串中,每个格式符的先导字符为( )。
A. #
B. %
C. $
D. @
7. 由 C 语言源程序文件编译而成的目标文件的扩展名为( )。
A. cpp
B. exe
C. obj
D. C
8. 由 C 语言目标文件连接而成的可执行文件的扩展名为( )。
A. cpp
B. exe
C. obj
D. c
9.每个 C 程序文件在编译时可能出现有警告性错误,其对应的标识符号为( )。
A. warning
B. error
C. warn
D. err
10. 在 C 语言中,表示换行符的转义字符为( )。
A. \f
B. \r
C. \n
D. \m
11. 字符串“a+b=12\n”的长度为( )。
A. 6
B. 7
C. 8
D. 9
12. 要定义 a 和 b 为两个整型变量,则使用的定义语句为( )。
A. int a;b;
B. int a,b;
C. int a b;
判断
1 1.for (i=1;i<=10; i++) printf("*"); 语句中循环体共执行11次。 错误
2.在C语言中,仅由一个分号“;”构成的语句称为空语句。 正确
3.任何数组下标都是从0开始。 正确
4.C程序的执行总是从程序第一句开始。 错误
5.一个C程序可以有两个main()函数。 错误
6.for (i=1;i<10; i++) printf("*"); 此循环结构中的循环体共执行10次。 错误
7.putchar()函数可以输出实数。 错误
8.一个C程序可以没有main()函数。 错误
9.在printf( )函数的格式输出中,%x表示输出十进制的整数。 错误
10.#define PI 3.14159是定义变量PI并初始化的语句。 错误
11.C语言中整型、实型和字符型数据都属于基本的数据类型。 正确
12.C语言中,x的平方根可以用sqrt(x) 函数表达式来表示。 正确
13.C语言中,int型属于基本数据类型。 正确
14.一个未赋值的普通变量的初始值是随机值。 正确
15.break语句和continue语句都可以用在循环结构中。 正确
16.C语言中, pow 函数在系统头文件“stdio.h”中定义。 错误
17.continue语句用于循环语句内部中。当遇到continue语句之后,循环体中continue语句后面的语句将被跳过,计算机将接着开始执行下一次循环。 正确
18.break语句只能用于switch语句。 错误
19.int a[2][3]定义了一个二维数组,元素的个数是5个。 错误
20.C语言中,给变量x赋值3可以写成语句"3=x;"。 错误
21.任何变量在使用之前可以不用定义。 错误