浙江大学C语言总复习题基础数据类型和运算
浙江大学C语言总复习题--综合
![浙江大学C语言总复习题--综合](https://img.taocdn.com/s3/m/0c72cf83e53a580216fcfe77.png)
综合练习一、判断题1.在Trubo_C中运行一个C程序时,实际上是运行后缀为.EXE的可执行文件。
2.在C语言中整数可用十进制数、八进制数和二进制数三种数制表示。
3.在程序的运行过程中,整型常量的值是可以改变的。
4. C程序中,用/* 和 */界定的部分称之为注释,注释部分对程序的运行不起作用。
5.大括弧 { } 只能用来括复合语句。
6. do_while语句构成的循环不能用其它循环语句来代替。
7.不能用scanf 函数输入字符。
8.在 C 程序中,函数的定义不可以嵌套,但函数的调用可以嵌套。
9. 一个变量的作用域取决于变量定义语句在程序中出现的位置。
10.C 语言的一个编译预处理命令用 # 开始,最后加分号。
11. C语言源程序文件经过编译、连接之后生成一个后缀为.EXE的文件。
12. C语言中以 %o开头的数是八进制整数。
13.在程序的运行过程中,符号常量的值是可以改变的。
14.在 C 程序中,APH 和 aph 代表不同的变量。
15.一个复合语句在语法上被认为是一条语句。
16. 只能用while语句构成循环。
17.不能用printf函数输出字符。
18. C程序中各函数之间既允许直接递归调用也允许间接递归调用。
19. 在函数外部定义的变量称为全局变量。
20.宏定义的命令行可以看作是一条C 语句。
21. C语言源程序是可以用来直接运行的程序。
22. C语言中以 %x 开头的数是十六进制整数。
23. C程序中定义的变量,代表内存中的一个存储单元。
24.在 C 程序中,9ab是非法的用户标识符。
25. C语句必须用一个分号作为结束。
26. do_while语句构成的循环不能用break语句退出。
27. scanf 函数是 c 语言的标准输入函数。
28. C程序的main函数不能有参数。
29. 在函数内部定义的变量称为局部变量。
30.用#include包含的头文件的后缀必须是.h。
31. C 语言程序的三种基本结构是顺序结构、选择结构和循环结构。
浙江大学C语言总复习题基础数据类型和运算
![浙江大学C语言总复习题基础数据类型和运算](https://img.taocdn.com/s3/m/9cd667e1b14e852458fb573c.png)
第2章基本数据类型和运算学习和解题要点1.数据类型C 语言中的数据类型比别的语言丰富。
要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。
整型数据:以二进制的形式表示(1) int 类型正数:如 123 (+123)用 16 位二进制(二个字节)表示原码最大正整数 215-1=214+213+23+22+21+20=32767负数:如–123原码反码(符号位不动,其它取反)补码(补码加已知补码求原负数符号位不动,其它取反加 1加最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此最大数 215+214+213+23+22+21+20=65535最小数 0(3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。
因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。
PC 586 机int即short,所以一般不用short 。
(5) 在C语言中,整型常量有三种形式的写法:十进制整数(0 - 9)表示。
通常整数的写法。
八进制整数(0 - 7)表示。
在整数的前面加数字0。
十六进制整数(0 - f)表示。
在整数的前面加0x。
长整型常量表示方法:在整数的后面加L或 l。
字符型数据:以二进制的形式表示char 型用 8位二进制(一个字节)表示如‘a’,在程序中要用单引号表示,输出时无单引号,内存中表示为6+25+20=97 即ASCII 码 97实型数据:以二进制的形式表示(1) float 类型如 123.45 (+123.45)用 32 位二进制(四个字节)表示为 0.12345×103不同的系统,n的位数有不同,n长,精度高,但可表示的指数小,能表示的数的范围小。
大一期末c语言复习题库
![大一期末c语言复习题库](https://img.taocdn.com/s3/m/887b437f4a35eefdc8d376eeaeaad1f347931154.png)
大一期末c语言复习题库C语言作为计算机科学与技术专业学生的一门基础课程,对于理解计算机程序设计的原理和思想具有重要意义。
以下是为大一学生准备的C语言期末复习题库,涵盖了C语言的基本概念、数据类型、控制结构、数组、函数、指针、结构体、文件操作等重要知识点。
# 一、基本概念1. 解释C语言的特点。
2. 描述C语言的基本结构,包括预处理指令、函数、语句和注释。
3. 列举C语言中的基本数据类型,并解释它们的区别。
# 二、变量与数据类型1. 什么是变量?如何声明变量?2. 解释整型(int)、浮点型(float)、双精度型(double)和字符型(char)的区别。
3. 写出C语言中不同数据类型所占的存储空间大小。
# 三、运算符与表达式1. 列举C语言中的算术运算符,并给出示例。
2. 描述赋值运算符的用法。
3. 解释条件运算符(?:)的用法。
# 四、控制结构1. 描述if语句的用法,并给出一个例子。
2. 解释while循环和do-while循环的区别。
3. 写出for循环的一般形式,并解释其组成部分。
# 五、数组1. 什么是数组?数组有哪些类型?2. 如何声明和初始化一维数组和二维数组?3. 写出一个程序,实现冒泡排序算法。
# 六、函数1. 解释函数的定义和声明。
2. 描述函数参数的传递方式(值传递和引用传递)。
3. 写出一个自定义函数,实现求最大值的功能。
# 七、指针1. 解释指针的概念和用途。
2. 写出一个程序,使用指针交换两个变量的值。
3. 解释指针数组和数组指针的区别。
# 八、结构体1. 什么是结构体?如何定义结构体?2. 写出一个程序,使用结构体存储学生信息。
3. 解释结构体指针的用法。
# 九、文件操作1. 解释文件的概念和分类。
2. 描述文件的打开、关闭、读写操作。
3. 写出一个程序,实现将数据写入文件,并从文件中读取数据。
# 十、综合应用1. 编写一个程序,实现学生成绩管理系统,包括录入、查询、修改和删除功能。
(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档
![(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档](https://img.taocdn.com/s3/m/38e889415bcfa1c7aa00b52acfc789eb172d9eb4.png)
(完整word)1、c语言-数据类型与运算符(含答案)详解,推荐文档一、选择题1. 可用作C语言用户标识符的一组标识符是( B )。
A. void define +WORDB. a3_b3 _123 YNC. for -abc CaseD. 2a DO sizeof2. 存储以下数据,占用存储字节最多的是(D )。
A. 0B. ‘0’C. “0”D. 0.03. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D )符号作为分隔符。
A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车4. 设”int a=12;”,则执行完语句”a+=a*a;”后,a的值是( C )。
A. 12B. 144C. 156D. 2885. 假设在程序中a、b、c 均被定义成整型,所赋的值都大于1,则下列能正确表示代数式1/abc的表达式是( A)。
A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c6. 设”int a=15,b=26;”,则”printf(“%d,%d”,a,b);”的输出结果是(C )。
A. 15B. 26,15C. 15,26D. 267. 设x是一个int型的,y的值为10,则表达式x && y的值为(C )。
A. 1B. 0C. 与x值相同D. 与x值相反8. x>0 && x<=10的相反表达式为( A )。
A. x<=0 || x>10B. x<=0 && x>10C. x<=0 || x<=10D. x>0 && x>109. x>0 || y==5的相反表达式为( B )。
A. x<=0 || y!=5B. x<=0 && y!=5C. x>0 || y!=5D. x>0 && y==510. 下面的哪个保留字不能作为函数的返回类型?( C ) 。
C语言期末考试复习资料
![C语言期末考试复习资料](https://img.taocdn.com/s3/m/8feaf15fe418964bcf84b9d528ea81c758f52e4a.png)
C语⾔期末考试复习资料C语⾔复习摘要⼀、数据类型:基本类型(整型、实型、字符型、枚举类型),构造类型(数组、结构体、共⽤体)、指针类型、空类型。
基本类型也叫简单类型,构造类型也叫复杂类型⼆、标识符:标识符只能由字母、下划线、数字构成,且必须以字母或下划线开头,且对字母的⼤⼩写敏感。
三、常量1、整型常量,如:32,0x32,0X32,0x3f,0xea,8L,8l,0672、实型常量,如:3.14,1e23,0.8E8,0.8E-8,0.8E+83、字符常量,如:‘a’, ‘\n’, ‘\w’,‘\\’,‘\0’4、字符串常量,如:“windows”,“a”,(其赋值表达式和赋值语句中其本质是⼀个地址常量)5、地址常量,若有定义:int k,a[10];char s[20];则:&k,a,s,NULL都是地址常量6、符号常量,⽤宏定义实现,如:#define PAI 3.14159267、以下都是⾮法常量:0xfg,3.1e2.8,‘aw’,‘w\’,0x,068四、表达式(要点:先确定表达式的类型,再确定表达式的值的类型,最后确定表达式的值):1、算术表达式(应注意变量类型的⾃动转换——原则:低级向⾼级转换):(1)、整型表达式:参加运算的都是整型量,结果也是整型数。
如:x+20*9+3(2)、实型表达式:参加运算的都是实型量,运算过程中先转换成double型,结果也是double型。
如:x+20*9+3.0,x+20*9+sqrt(3)2、赋值表达式:将赋值运算符“=”右边的值赋给左边的变量,其值为赋值后左边变量的值,类型为左边变量的类型。
如:x=3(注:若x为整型变量,则该表达式的值为整型,若x实型变量,则该表达式的值为实型)3、逻辑表达式:⽤逻辑运算符(!,&&,||)连接的整型量,结果为整数(0或1)。
逻辑表达式可认为是整型表达式的⼀种特殊形式。
如:((x=3)&&(y=0))4、关系表达式:⽤关系运算符将两个表达式连接起来的式⼦,结果为整数(0或1)。
c语言第三版期中复习题答案
![c语言第三版期中复习题答案](https://img.taocdn.com/s3/m/e9b2392b03768e9951e79b89680203d8cf2f6a46.png)
c语言第三版期中复习题答案C语言是一种广泛使用的编程语言,以其高效和灵活著称。
在C语言的学习过程中,期中复习是检验学生对基础知识掌握情况的重要环节。
以下是一些C语言第三版期中复习题的答案,供同学们参考。
# 1. C语言的基本数据类型有哪些?答:C语言的基本数据类型主要包括以下几种:- `int`:整型,用于存储整数。
- `float`:单精度浮点型,用于存储单精度浮点数。
- `double`:双精度浮点型,用于存储双精度浮点数。
- `char`:字符型,用于存储单个字符。
- `void`:无类型,用于定义无返回值的函数或指针。
# 2. 什么是变量?如何声明一个变量?答:变量是程序中用于存储数据的容器。
在C语言中,声明变量需要指定其数据类型和变量名。
例如:```cint age; // 声明一个整型变量agefloat price; // 声明一个浮点型变量pricechar initial; // 声明一个字符型变量initial```# 3. 什么是运算符?C语言中有哪些运算符?答:运算符是用于执行程序中操作的符号。
C语言中的运算符主要包括:- 算术运算符:`+`, `-`, `*`, `/`, `%`(加、减、乘、除、取余)- 赋值运算符:`=`, `+=`, `-=`, `*=`, `/=`, `%=`(赋值及其变体)- 比较运算符:`==`, `!=`, `<`, `>`, `<=`, `>=`(等于、不等于、小于、大于、小于等于、大于等于)- 逻辑运算符:`&&`, `||`, `!`(逻辑与、逻辑或、逻辑非)- 位运算符:`&`, `|`, `^`, `~`, `<<`, `>>`(位与、位或、位异或、位非、左移、右移)- 条件运算符:`?:`(三元运算符)# 4. 什么是控制结构?C语言中有哪些控制结构?答:控制结构是程序中用于控制代码执行流程的机制。
浙江大学C程汇总题库(更新)
![浙江大学C程汇总题库(更新)](https://img.taocdn.com/s3/m/298a978ace2f0066f53322df.png)
输入
3 (repeat=3)
0 (计算0+1+2+...+100)
10 (计算10+11+12+...+100)
50 (计算50+51+52+...+100)
输出
sum = 5050
sum = 5005
sum = 3825
#include <stdio.h>
int main(void)
}
}
20035程序填空,不要改变与输入输出有关的语句。
输入一个正整数repeat (0<repeat<10),做repeat次下列运算:
读入一个正整数n,计算1-1/4+1/7-1/10+……的前n项之和,输出时保留3位小数。
输入输出示例:括号内是说明
输入
2 (repeat=2)
3
10
输出
sum = 0.893
输入输出示例:括号内是说明
输入
2 (repeat=2)
10 (x=10)
0 (x=0)
输出
f(10.00) =0.1
f(0.00) = 0.0
#include <stdio.h>
int main(void)
{
int repeat, ri;
double x, y;
scanf("%d", &repeat);
double x, y;
scanf("%d", &repeat);
for(ri = 1; ri <= repeat; ri++){
c语言期末考试题库大题及详解答案
![c语言期末考试题库大题及详解答案](https://img.taocdn.com/s3/m/d120d7dd8662caaedd3383c4bb4cf7ec4bfeb655.png)
c语言期末考试题库大题及详解答案C语言期末考试题库大题及详解答案一、简答题1. 请简述C语言的基本数据类型及其特点。
答案:C语言的基本数据类型包括整型(int)、浮点型(float和double)、字符型(char)和枚举型(enum)。
整型用于存储整数,浮点型用于存储小数,字符型用于存储单个字符,枚举型用于定义一组命名的常量。
每种数据类型都有其特定的取值范围和占用内存大小。
2. 请解释C语言中的数组和指针的区别。
答案:数组是一种数据结构,用于存储固定数量的相同类型元素,可以通过下标访问元素。
指针是一个变量,它存储另一个变量的内存地址。
数组名可以作为指向数组第一个元素的指针使用,但数组本身是一个固定大小的内存块,而指针可以被赋值为不同的地址,具有动态性。
二、编程题1. 编写一个C语言程序,实现输入三个整数,找出其中的最大值并输出。
答案:```c#include <stdio.h>int main() {int num1, num2, num3, max;printf("请输入三个整数:");scanf("%d %d %d", &num1, &num2, &num3);max = (num1 > num2) ? ((num1 > num3) ? num1 : num3) : ((num2 > num3) ? num2 : num3);printf("最大值是:%d\n", max);return 0;}```2. 编写一个C语言程序,实现字符串的反转。
答案:```c#include <stdio.h>#include <string.h>int main() {char str[100];printf("请输入一个字符串:");fgets(str, sizeof(str), stdin); // 使用fgets以包含空格int len = strlen(str) - 1; // 减去换行符长度for (int i = len; i >= 0; --i) {printf("%c", str[i]);}printf("\n");return 0;}```三、综合题1. 请编写一个C语言程序,实现一个简单的计算器,能够进行加、减、乘、除四种基本运算。
c语言试题:数据类型、运算符与表达式 (1)
![c语言试题:数据类型、运算符与表达式 (1)](https://img.taocdn.com/s3/m/cc1d6ceecfc789eb172dc8e7.png)
3 数据类型、运算符与表达式一、单项选择题1、以下选项中,不正确的 C 语言浮点型常量是( C )。
A. 160.B. 0.12C. 2e4.2D. 0.0分析:e 后面的指数必须为整数。
2、以下选项中,( D )是不正确的 C 语言字符型常量。
A. 'a'B. '\x41'C. '\101'D. "a" 分析:在C 语言中,’a ’表示字符常量,”a ”表示字符串。
3、 在 C 语言中,字符型数据在计算机内存中,以字符的(C )形式存储。
A.原码B.反码C. ASCII 码D. BCD 码分析:将一个字符常量放入一个字符变量中,实际上并不是将字符本身放到内存单元中,而是将字符的对应的ASCII 码放到储存单元中。
4、若x 、i 、j 和k 都是int 型变量,则计算下面表达式后,x 的值是( C )。
x=(i=4,j=16,k=32)A. 4B. 16C.32D.52分析:(i=4,j=16,k=32)的值为最后一个表达式的值,即为32,所以x=32.5、算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B )。
A. 算术运算、赋值运算、关系运算B. 算术运算、关系运算、赋值运算C. 关系运算、赋值运算、算术运算D. 关系运算、算术运算、赋值运算分析:算术运算符包括加法运算“+”符减法运算“-”符乘法运算符“*”以及除法运算符“/”,赋值运算符包括“=、+=、-=、*=、/=、……”,关系运算符包括“<、<=、>、>=”。
6、若有代数式bc ae3 ,则不正确的C 语言表达式是( C )。
A.a/b/c*e*3 B. 3*a*e/b/c C.3*a*e/b*c D. a*e/c/b*3分析:C 选项表达的是3ace/b 。
7、表达式!x||a==b 等效于( D )。
A. !((x||a)==b)B. !(x||y)==bC. !(x||(a==b))D. (!x)||(a==b) 分析:由符优先级先后顺序在!x||a==b 中应先算“||”再算“!”,最后算“==”。
c语言基本数据类型及运算试卷答案
![c语言基本数据类型及运算试卷答案](https://img.taocdn.com/s3/m/198016120c22590103029d57.png)
1 - 5 ACAAC6 - 10 AABCD11 - 15 DADAB填空题:1.答案:(1) %d (2)%Ld (3)%f (4)%e (5)%f(6)%e (7) %c (8) %d (9)%s2.答案:一一对应关系:格式串与输入项的个数要相同,顺序要一致,类型要匹配3.答案:(1)int n,d2,d0 (2) d2=n/100 (3) d0=n%10 (4)d2 * 100+d04.答案:①12.770000 ②A ③795.答案:1,0问答题1.解:字符型常量与字符串常量的书写方式不同,用单引号括起来的字符是字符常量,用双引号括起来的字符是字符串常量。
字符串常量与字符型常量的存储方式不同,C编译程序在存储字符串常量时,自动采用\0作为字符串常量的结束标志。
2.答案:(1)-1 (2)1(3)12 (4)103.解:正确程序如下。
#include <stdio.h>void main( ) /*修改*/{float f=7.12;char c='c'; /*修改*/printf("%d\n",(int)f%3); /*修改*/printf("%c",c);}4.答:错误的地方如下:(1)变量k的值溢出,不能得到正确结果。
(2)变量x和y未赋初值。
5.答:输出结果为:i=-1 j=-1编程题【分析与解答】(1)定义4个双精度变量a、b、c和ave,变量a、b、c分别存放读入的3个双精度数,ave存放它们的平均值。
(2)设计输入语句,以及在此之前用于提示输入的(printf)语句。
(3)设计求平均值的算法,把所求得平均值放入变量ave中。
(4)设计把变量ave中的数,从小数点后第二位数进行四舍五入的算法。
现举例说明:若ave中的数为123.4644,为了保留此值小数点后一位,可用表达式:(int)(123.4644*10)/10.0;依次推算,为了保留此值小数点后二位,可用表达式:(int)(123.4644*100)/100.0;其他依次类推。
c 期末复习题
![c 期末复习题](https://img.taocdn.com/s3/m/1c9ec32f59fafab069dc5022aaea998fcc224090.png)
c 期末复习题C 期末复习题期末考试即将到来,作为学生们最重要的考试之一,我们需要做好充分的准备。
为了帮助大家更好地复习,本文将提供一些C语言期末复习题,希望能够对大家有所帮助。
1. 什么是C语言?C语言是一种通用的高级编程语言,由贝尔实验室的Dennis Ritchie于1972年设计开发。
它被广泛应用于系统软件、嵌入式系统和应用软件的开发中。
2. C语言的基本数据类型有哪些?C语言的基本数据类型包括整型、浮点型、字符型和布尔型。
整型可以分为有符号和无符号两种,浮点型可以分为单精度和双精度。
3. 请写一个C语言程序,实现两数相加的功能。
```c#include <stdio.h>int main() {int num1, num2, sum;printf("请输入两个整数:");scanf("%d %d", &num1, &num2);sum = num1 + num2;printf("两数之和为:%d\n", sum);return 0;}```4. C语言中的循环结构有哪些?C语言中的循环结构包括for循环、while循环和do-while循环。
for循环适用于已知循环次数的情况,while循环适用于不确定循环次数的情况,do-while循环至少执行一次循环体。
5. 请写一个C语言程序,计算1到100之间所有偶数的和。
```c#include <stdio.h>int main() {int i, sum = 0;for (i = 1; i <= 100; i++) {if (i % 2 == 0) {sum += i;}}printf("1到100之间所有偶数的和为:%d\n", sum);return 0;}```6. C语言中的条件语句有哪些?C语言中的条件语句包括if语句、if-else语句和switch语句。
浙江大学C语言程序设计复习课件
![浙江大学C语言程序设计复习课件](https://img.taocdn.com/s3/m/75cd54673b3567ec102d8ac6.png)
void main() { struct student s[SIZE];
int k,sub=0; for(k=0; k<SIZE; k++) { scanf("%s%d%d",s[k].name,&s[k].math,&s[k].eng); s[k].aver = (s[k].math+s[k].eng)/2.0 } for(k=1; k<SZIE; k++)
if(s[k].aver>s[sub].aver ) sub = k; printf("%10s%3d%3d\n",s[sub].name,s[sub].math,s [sub].eng); }
(4) 熟练掌握结构指针 (5) 掌握结构中含指针或数组 (6) 掌握嵌套结构 (7) 掌握指向指针的指针(二级) (8) 单向链表 掌握单向链表的建立和遍历 了解插入和删除单向链表中的一个节点
写出下列程序段的输出结果。 float x1, x2; x1=3/2; x2=x1/2; printf("%d, %.1f", (int)x1, x2) ;
表达式 sizeof(“key”) 的值是______。
A、1
B、2
C、3
D、4
static char s[ ]="student"; printf("%d,%c\n",sizeof(s),*(s+2));
2、函数的定义 (1) 熟练掌握函数定义的ANSI C格式 (2) 熟练掌握函数的参数(形式参数和实在参 数)及参数传递,包括指针作为函数的参数 (3) 熟练掌握函数的返回值,包括指针作为函 数的返回值
c语言期末知识点总结
![c语言期末知识点总结](https://img.taocdn.com/s3/m/3553c6c6d5d8d15abe23482fb4daa58da0111cc6.png)
c语言期末知识点总结一、C语言基础1. 数据类型和变量- 基本数据类型:整型、浮点型、字符型- 数据类型修饰符:short、long、signed、unsigned- 枚举类型- 类型别名:typedef- 变量的声明和定义- 变量的作用域2. 运算符和表达式- 算术运算符:+、-、*、/、%- 关系运算符:>、<、>=、<=、==、!=- 逻辑运算符:&&、||、!- 位运算符:&、|、^、~、<<、>>- 赋值运算符:=、+=、-=、*=、/=、%=- 表达式求值顺序3. 分支和循环控制- if语句- switch语句- 循环语句:for、while、do-while- break和continue语句- 嵌套循环4. 数组和字符串- 数组的声明和定义- 一维数组、二维数组- 数组元素的访问和赋值- 字符串的表示和处理- 字符串库函数5. 函数- 函数的声明和定义- 函数的参数和返回值- 函数的递归调用- 内联函数- 函数指针6. 指针- 指针的定义和初始化- 指针和数组的关系- 指针和字符串的关系- 指针运算和指针的比较- 指针和函数的关系- 指针数组和数组指针的区别7. 结构体和共用体- 结构体的定义和访问- 结构体数组- 结构体指针- 共用体的定义和访问- 共用体类型转换- 结构体和共用体的嵌套8. 文件的读写操作- 打开文件- 读写文件- 关闭文件- 文件指针的位置操作- 错误处理- 文件的复制和移动二、高级C语言1. 动态内存分配- 内存管理函数:malloc、calloc、realloc、free- 内存泄漏的问题- 内存对齐的原理- 堆栈的概念和区别2. 预处理指令和宏定义- #include和#include_next的区别- 条件编译指令:#if、#ifdef、#ifndef、#else、#endif - 宏定义的语法和用法- 宏的参数和替换规则3. 文件的读写操作- 打开文件的模式:r、w、a、b- 错误处理和异常情况的处理- 文件指针的操作:fseek、fgetpos、ftell、rewind- 文件的读写操作:fread、fwrite、fscanf、fprintf- 关闭文件:fclose4. 多文件程序设计- 头文件的包含和声明- 多文件的编译链接过程- extern关键字的作用- 静态链接和动态链接的区别5. 指针和数组- 指针和数组的互相转换- 数组参数和指针参数的区别- 指针数组和数组指针的使用- 指针数组的指针和指针的数组的指针6. 异常处理和错误处理- 异常处理的概念和原理- 错误处理的方法和技巧- setjmp和longjmp函数的使用- C++中的异常处理机制- assert断言的使用7. 函数指针和回调函数- 函数指针的概念和用法- 回调函数的概念和用法- 函数指针数组和指针函数数组的区别- 函数指针和指针函数的区别8. 字符串处理函数- 字符串的拼接和复制- 字符串的查找和替换- 字符串的比较和排序- 字符串的分割和连接- 字符串的大小写转换三、C语言标准库函数1. 字符串处理函数- strchr、strrchr、strstr等函数- strcmp、strncmp、strcpy、strncpy等函数- strlen、strcat、strncat、strncpy等函数- sprintf、sscanf、snprintf等函数2. 数学函数- ceil、floor、abs、fmod等函数- pow、sqrt、exp、log等函数- sin、cos、tan、asin、acos、atan等函数- rand、srand、fabs等函数3. 文件操作函数- fopen、fclose、fread、fwrite等函数- fgets、fputs、fseek、ftell等函数- remove、rename、tmpfile等函数- perror、feof、ferror、clearerr等函数4. 时间和日期函数- time、clock函数- localtime、gmtime、strftime等函数- mktime、difftime等函数- gettimeofday、setitimer等函数5. 动态内存管理函数- malloc、calloc、realloc、free等函数- memcpy、memset、memmove、memcmp等函数- atoi、atol、itoa、atof等函数- getenv、system等函数总结:以上就是C语言期末考试的知识点总结,从基础语法到高级应用都涵盖了。
C语言总复习
![C语言总复习](https://img.taocdn.com/s3/m/f1f9b3b14793daef5ef7ba0d4a7302768e996fc4.png)
C语言总复习C语言是一种广泛应用于计算机编程的高级编程语言。
作为一名程序员,熟练掌握C语言的基础知识对于开发高质量的软件至关重要。
本文将对C语言的基础知识进行全面复习,包括数据类型、控制语句、函数、指针等内容。
一、数据类型C语言提供了丰富的数据类型,包括基本数据类型和派生数据类型。
基本数据类型包括整型、浮点型、字符型和布尔型,分别用于表示整数、小数、单个字符和真假值。
派生数据类型包括数组、结构体和联合体,用于组织和表示复杂的数据结构。
1. 整型数据类型C语言提供了不同字节长度的整型数据类型,如char、short、int和long。
这些类型可以表示不同范围的整数值,具体使用时需要根据需求选择适当的类型。
2. 浮点型数据类型浮点型数据类型用于表示带有小数部分的数值,包括float和double。
float可以表示较小范围的浮点数,而double则可以表示更大范围的浮点数,并提供更高的精度。
3. 字符型数据类型字符型数据类型用于表示单个字符,使用char关键字。
每个字符在内存中占用一个字节的空间,可以存储ASCII码或Unicode码中的字符。
4. 布尔型数据类型C语言提供了stdbool.h头文件中定义的bool类型,用于表示真假值。
bool类型只有两个取值:true和false,分别用1和0表示。
二、控制语句控制语句用于控制程序的流程和执行次数。
C语言提供了条件语句和循环语句来实现不同的控制需求。
1. 条件语句条件语句用于根据条件判断来执行不同的代码块。
常用的条件语句有if语句、if-else语句和switch语句。
if语句根据条件的真假执行对应的代码块,if-else语句在条件为真时执行if块,否则执行else块,switch语句根据表达式的值执行对应的case块。
2. 循环语句循环语句用于重复执行相同或类似的代码块。
C语言提供了while循环、do-while循环和for循环三种形式。
while循环在满足条件时执行代码块,do-while循环先执行一次再判断条件,for循环在指定的条件范围内循环执行代码块。
c语言期末复习题纲
![c语言期末复习题纲](https://img.taocdn.com/s3/m/2cab758632d4b14e852458fb770bf78a65293a29.png)
c语言期末复习题纲C语言期末复习题纲一、C语言基础1. C语言的发展历程2. C语言的特点3. C语言的基本组成4. C语言的编译和运行过程二、数据类型与变量1. 基本数据类型- 整型(int)- 浮点型(float, double)- 字符型(char)2. 变量的定义和声明3. 变量的初始化4. 常量的定义和使用三、运算符与表达式1. 算术运算符2. 赋值运算符3. 比较运算符4. 逻辑运算符5. 位运算符6. 条件运算符7. 表达式的求值和类型转换四、控制结构1. 顺序结构2. 分支结构- if语句- switch语句3. 循环结构- while循环- do-while循环- for循环4. 控制语句- break- continue- goto五、数组1. 一维数组的定义和使用2. 二维数组的定义和使用3. 数组的初始化4. 数组的内存分配5. 数组的遍历和搜索六、函数1. 函数的定义和声明2. 函数的参数传递- 值传递- 地址传递3. 函数的返回值4. 递归函数5. 函数的嵌套调用6. 函数的指针七、指针1. 指针的基本概念2. 指针的声明和初始化3. 指针与数组4. 指针与函数5. 指针的指针6. 动态内存分配八、结构体与联合体1. 结构体的定义和使用2. 结构体数组3. 结构体与指针4. 结构体作为函数参数5. 联合体的定义和使用九、预处理指令1. 宏定义(#define)2. 文件包含(#include)3. 条件编译(#ifdef, #ifndef)十、文件操作1. 文件的打开和关闭2. 文件的读写操作3. 文件的定位4. 文件的错误处理十一、C语言中的高级特性1. 位域2. 枚举类型3. 静态存储类4. 动态存储类5. 自动存储类6. 外部存储类十二、C语言的应用1. C语言在系统编程中的应用2. C语言在嵌入式编程中的应用3. C语言在图形编程中的应用结束语:本复习题纲涵盖了C语言的主要知识点,希望能够帮助同学们系统地回顾和巩固C语言的学习内容,为期末考试做好充分的准备。
大一c语言考试复习知识点
![大一c语言考试复习知识点](https://img.taocdn.com/s3/m/6b86923130b765ce0508763231126edb6f1a768e.png)
大一c语言考试复习知识点C语言是计算机科学专业学生必备的编程语言之一,它是一种通用的、高效的、面向过程的编程语言。
作为大一学生,在C语言的学习过程中,我们需要掌握一些基本的知识点,以便能够顺利通过考试。
本文将为大家总结一些大一C语言考试的复习知识点,以供参考。
一、数据类型和变量1. int类型:表示整数,用于存储不超过某个特定范围的整数。
2. float类型:表示单精度浮点数,用于存储小数。
3. char类型:表示字符,用于存储单个字符。
4. double类型:表示双精度浮点数,比float类型精确度更高。
二、基本运算符1. 算术运算符:加法、减法、乘法、除法、求余等。
2. 关系运算符:大于、小于、等于、不等于等。
3. 逻辑运算符:与、或、非等。
4. 赋值运算符:将某个值赋给一个变量。
5. 条件运算符:根据某个条件成立与否,返回两个值中的一个。
三、控制语句1. if语句:根据某个条件的真假来执行相应的代码块。
2. for循环:用于循环执行固定次数的代码。
3. while循环:在满足某个条件的情况下,循环执行代码。
4. switch语句:根据某个变量的值来选择执行的代码块。
四、函数1. 函数的定义和调用:如何定义一个函数,并在程序中进行调用。
2. 函数参数传递:值传递和引用传递的区别。
3. 递归函数:函数调用自身的特殊形式。
五、数组1. 数组的定义和初始化:如何定义一个数组,并给数组赋初值。
2. 数组的访问和遍历:如何访问数组中的元素,并对数组进行遍历。
3. 多维数组:二维数组和多维数组的定义与使用。
六、指针1. 指针的定义和初始化:如何定义一个指针,并将其初始化。
2. 指针的运算:指针的加法、减法、比较等运算。
3. 指针与数组:指针和数组之间的关系。
七、字符串1. 字符串的定义和初始化:如何定义一个字符串,并给字符串赋初值。
2. 字符串的操作:求字符串长度、字符串比较等操作。
3. 字符串的输入输出:如何输入和输出字符串。
C语言基本数据类型及运算题库
![C语言基本数据类型及运算题库](https://img.taocdn.com/s3/m/fbf6f165905f804d2b160b4e767f5acfa1c783d3.png)
D)if (b= =0)m=1;n=2; 答案:D
31. 假定有以下变量定义,则能使值为 3 的表达式
是
。
int k=7,x=12;
A)x%=(k%=5)
B)x%=(k-k%5) C)x%=k-k%5
D)(x%=k)-(k%=5) 答案:D
32. 以下程序的输出结果是
。
#include void main( ) {
a=b=c=1;
++a||++b&&++c;
第4页共8页
我尽一杯,与君发三愿:一愿世清平,二愿身强健,三愿临老头,数与君相见。——《白居易》
人人好公,则天下太平;人人营私,则天下大乱。——刘鹗
那么,变量 b 的值应是( )
A.2 B.1 C.0 D.3 答案:B
24. 有变量说明 int a=3;,则表达式 a1 的运算结果和 a 的值
(10)’’a’’’ (11)’\\\\’ (12)’\\0123’
(13)’\\xaf’
(14)’王’
(15)”李为民”
(16)”\\xaif” 答案:(2),(12),(14),(16)
17. 下列运算符中,结合方向为自左向右的是( )。
(A)?:
(B), (C)+ =
(D)+ + 答案:(B)
第6页共8页
云路鹏程九万里,雪窗萤火二十年。——《王实甫》
B) /
C) =
D) *= 答案:A
4. 若有以下程序段:int c1=1,c2=2,c3;c3=1.0/c2*c1;则执
行后,c3 中的值是
。
A) 0
B) 0.5
计算机基础c语言考试题及答案
![计算机基础c语言考试题及答案](https://img.taocdn.com/s3/m/486989c4cd22bcd126fff705cc17552707225e9f.png)
计算机基础c语言考试题及答案以下是一份计算机基础C语言的考试题目及对应的答案。
希望对您的学习和考试备考有所帮助。
题目1:变量与数据类型问:请简要介绍C语言的数据类型,并给出各数据类型的范围。
答:C语言的数据类型可以分为基本数据类型和派生数据类型。
基本数据类型包括char、int、float、double,分别用于表示字符型、整型、单精度浮点型和双精度浮点型数据。
其范围如下:- char:-128 ~ 127- int:-2147483648 ~ 2147483647- float:3.4e-38 ~ 3.4e38- double:1.7e-308 ~ 1.7e308题目2:运算符问:列举并解释C语言中常见的运算符。
答:C语言中常见的运算符包括算术运算符(+、-、*、/、%)、赋值运算符(=、+=、-=等)、逻辑运算符(&&、||、!)、关系运算符(==、!=、>、>=、<、<=)等。
算术运算符用于进行基本的数学运算,赋值运算符用于将某个数值赋给变量,逻辑运算符用于判断逻辑表达式的真假,关系运算符用于比较两个值之间的大小关系。
题目3:流程控制问:请简要介绍C语言中的if语句和for循环语句,并给出示例代码。
答:if语句用于根据条件执行不同的代码块,示例代码如下:```if (condition) {// 执行if代码块} else {// 执行else代码块}```for循环语句用于重复执行一段代码,示例代码如下:```for (初始化表达式; 循环条件; 更新表达式) {// 执行循环体代码块}```题目4:数组与指针问:请解释C语言中数组和指针的概念,并给出它们的区别。
答:C语言中的数组是一种存储多个相同类型元素的数据结构,可以通过下标访问数组中的元素。
指针则是用于存储某个变量的内存地址。
它们的区别在于,数组在定义时需要指定长度,而指针可以动态指向不同的内存地址;数组名可以看作是一个常量指针,而指针可以进行指针运算。
浙大《C程序设计》练习题 数据类型与表达式
![浙大《C程序设计》练习题 数据类型与表达式](https://img.taocdn.com/s3/m/5c22c039fe00bed5b9f3f90f76c66137ef064f4d.png)
第5章数据类型与表达式1.已有如下定义和输入语句,若要求a,b,c,d可得到的值分别为10,20,A和B,当从第一列开始输入数据时,正确的数据输入方式是,其中”└┘”表示空格。
int a,b;char c,d;scanf("%d%c%d%c",&a,&c,&b,&d);A. 10A└┘20B<回车>B. 10└┘A└┘20└┘B<回车>C. 10A20B<回车>D. 10A20└┘B<回车>2.执行语句:printf("The program\'s name is c:\\tools\book.txt");后的输出是。
A. The program's name is c:tools book.txtB. The program's name is c:\tools book.txtC. The program's name is c:\\tools book.txtD. The program's name is c:\toolook.txt3. 设有语句char a='\72'; 则变量a______。
A. 包含1个字符B. 包含2个字符C. 包含3个字符D. 说明不合法4. 不合法的C语言赋值语句为______。
A. ++a;B. n1 =(n2 =(n3= 0));C. a = b== c;D. k = a + b=1;5.正确的语句是______。
A. int x=y=z=0;B. int z =(x+y)++;C. x=+3==2;D. x%=2.5;6. 设a,b,c均定义为int 型,且已赋于大于1 的数,能正确表达1/(abc)的表达式是______。
A. 1/a*b*cB. 1/(a*b*c)C. 1.0/a*b*cD. 1.0/a/b/c7.若变量已正确定义,与语句if(a>b)k=0;else k=1;等效的是______。
C语言数据类型和运算符及表达式复习题
![C语言数据类型和运算符及表达式复习题](https://img.taocdn.com/s3/m/f77978337cd184254b3535ae.png)
数据类型、运算符和表达式复习题一.选择题1. 以下不合法的用户标识符是:()a) f2_G3 b) If c) 4d d) _82. 以下选项中合法的用户标识符是:()a) long b) _2Test c) 3Dmax d) A.dat3. 以下可用作用户标识符的是:()a) 12_a b) signed c) t-o d) _if4. 以下不是关键字的标识符是:()a) continue b) char c) If d) default5. C语言提供的合法的关键字是:()a) swicth b) cher c) Case d) void6. 以下选项中不合法的int整型常数是()a) 32768b) -56 c) 03 d) 0xAF7. 以下合法的长整型常量是()a) 2L b) 49627 c) 34566666 d) 213&8. 以下正确的实型常量是()a) 1.2E b) .579899 c) 1.2e0.6 d) 89. 以下选项中合法的实型常数是()a) 5E2.0 b) E-3 c) .2E0d) 1.3E10. 以下合法的八进制数是()a) 0135b) 068 c) 013.54 d) o711. 以下合法的十六进制数是()a) 0x b) 0x4de c) 0x1h d) ox7712. 以下选项中非法的数值常量是()a) 019b) 0L c) 0xff d) 1e113. 若变量已正确定义,以下合法的赋值表达式是()a) a=1/b=2 b) ++(a+b)c) a=a/(b=5)d) y=int(a)+b14. 若变量已正确定义,以下非法的表达式是()a) a/=b+c b) a%(4.0)c) a=1/2*(x=y=20,x*3) d) a=b=c15. 设x为int类型,其值为11,则表达式(x++*1/3)的值是:a) 3 b) 4 c) 11 d) 1216.设a,b均为double型,且a=5.5;b=2.5;则表达式(int)a+b/b的值是()a) 6.500000 b) 6 c) 5.500000 d) 6.000000 17.若a为int型,且其值为3,则执行完表达式:a+=a-=a*a后,a的值是()a) -3 b) 9 c) -12 d) 618.设k和x均为int型变量,且k=7;x=12;则能使值为3的表达式是()a) x%=(k%=5) b) x%=(k-k%5)c) x%=k-k%5 d) (x%=k)-(k%=5)19. 若a,b,c 均被定义成整型并已赋大于1的值,能正确表示代数式c b a ⋅⋅1的C 语言表达式是( )a) 1/(float)a*b*c b) 1/(a*b*c)c) 1.0/a/b/c d) 1/a/b/(float)c20. 以下变量x,y,z 均为double 型且已正确赋值,不能正确表示代数式z y x⨯的C 语言表达式是( )a) x/y*z b) x*(1/(y*z))c) x/y*1/z d) x/y/z21. 不能正确表示代数式d c b a ⋅⋅的C 语言表达式是( ) a) a/(c*d)*b b) a*b/c/dc) a*b/c*d d) a*b/(c*d)22.若题中变量已正确定义并赋值,下面符合C 语法的表达式是( )a) a%=7.6 b) a++,a=7+b+cc) int(12.3)%4 d) a=c+d=a+723. 若t 已定义为double 型,则表达式:t=1,t++,t+5的值为( ) a) 7 b) 7.0 c) 2.0 d) 1.024. 已有定义:int a,b; float x,y;,以下正确的赋值语句是:( ) a) a=1,b=2, b) y=(x%2)/10; c) x*=y+8; d) a+b=x;25. 有以下程序:main(){ int y=1111;printf(“y=%6d\n”,y);printf(“y=%+06d\n”,y);}程序运行的结果是:()a) y= 1111 b) y= 1111c) y=1111 d) y= 1111y=001111 y=+01111 y=+01111 y=1111 26. 有以下程序:main(){ int y=456;printf(“*y=%7o*\n”,y);printf(“*y=%-7o*\n”,y);printf(“*y=%07o*\n”,y);}程序运行的结果是:()a) *y= 710*b) *y= 456**y=710 * *y=456 **y=0000710* *y=0000456*c) *y=710* d) *y=456**y=-710* *y=-456**y=0710* *y=0456*27. 有以下程序:main(){ float y=3.667;printf(“*%f*\n”,y);printf(“*%7.2f*\n”,y);printf(“*%8.0f*\n”,y);}程序运行的结果是:()a) *3.667000* b) *3.667000** 3.67* *3.667 ** 4* *4.000000*c) *3.667* d) *3.667000**3.667000* *3.67**3.667000* *4.000000*28. 已有定义:double a,b;,若要求按输入方式(此处*代表一个空格)**1.0**2.0<回车> 分别给a,b输入1,2,则能正确进行输入的语句是()a) scanf(“%f%f”,&a,&b);b) scanf(“%5.1lf%5.1lf”,&a,&b);c) scanf(“%lf%lf”,&a,&b);d) scanf(“%5e%5e”,&a,&b);29. 以下合法的定义语句是()a) short _auto_=100-1;b) double b=1+5e2.5;c) long do=1l;d) float 2_and=1e-3;30. 以下选项中不是C语句的是()a) ++t b) ; c) k=i=j; d) {a/=b=1;b=a%2;}31. 有定义语句:int a=5,b;,不能给b赋2的赋值语句是()a) b=a/2; b) b=b+2; c) b=2%a; d) b=5;b=2;32. 设x和y均为int型变量,语句组x+=y;y=x-y;x-=y;的功能是()a) 把x和y从小到大排列b) 把x和y从大到小排列c) 无确定结果d) 交换x和y中的值33. 有定义语句:long int a; int k;,能给a赋40000的正确语句是()a) a=20000+20000; b) a=4000*10;c) k=400;a=k*100; d) a=4000;a=a*10;34. 若有定义:int a=8,b=5,c;,执行语句:c=a/b+0.4;后,c的值是()a) 1.4 b) 1c) 2.0 d) 235. 有以下程序:main(){ int k=2,i=2,m;m=(k+=i*=k++);printf(“y=%d,%d\n”,m,i);}程序运行的结果是:()a) 8,6 b) 8,3 c) 6,4 d) 7,436. 有以下程序:main(){ int y=3,x=3,z=1;printf(“%d %d\n”,(++x,y++),z+2);}程序运行的结果是:()a) 3 4 b) 4 2c) 4 3 d) 3 337. 有以下程序:main(){ int i; long l ; float f ; double d ;i=f=l=d=20/3;printf(“%d %ld %3.1f %3.1f\n”,i,l,f,d);}程序运行的结果是:()a) 6 6 6.0 6.0 b) 6 6 6.7 6.7c) 6 6 6.0 6.7 d) 6 6 6.7 6.038. 有以下程序:main(){ unsigned a=32768; int b ;b=a ;printf(“b=%d\n”,b);}程序运行的结果是:()a) b=32768 b) b=32767 c) b=-32768d) b=-1 39.有以下语句printf(“%d,%d,%u\n”,016,16,-16);其输出结果是()a) 16,16,65520 b) 14,16,65520c) 16,16,-16 d) 14,16,-1640.若有定义语句:int b=0x17;printf(“%d”,b++);,其正确的输出结果是()a) 23 b) 24 c) 25 d) 2241.有以下程序:main(){ int x=0xffff;printf(“%d\n”,x--);}程序运行的结果是:()a) 32767 b) FFFEc) -1 d) -32768二.填空题1.已有定义:float f=13.8;,则表达式:(int)f%3的值是___1___.2. 已有定义:int x=3;, 则表达式:x=x+1.78的值是___4___.3. 已有定义:double x=3.5; 则表达式:x=(int)x+1的值是_4.000000__.4. 已有定义:int x=10,y=3,z;, 则表达式:z=(x%y,x/y) 的值是__3___.5. 设a,b,c为整型数,且a的值为2,b的值为3, c的值为4,表达式:a*=16+(b++)-(++c)的值为__28____.6. 已有定义:int x=0,y=0;,则计算表达式:(x+=2,y=x+3/2,y+5)后,表达式的值是_8__,变量x的值是_2__,变量y的值是__3__.7. 已有定义:int x=110,y=017;,则计算表达式:(x++,++y)后,按十进制表示,变量x的值是__111___,变量y的值是__16___。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第2章基本数据类型和运算学习和解题要点1.数据类型C 语言中的数据类型比别的语言丰富。
要学好这部分内容,首先要掌握C 语言的数据在内存中的表示。
整型数据:以二进制的形式表示(1) int 类型正数:如 123 (+123)用 16 位二进制(二个字节)表示原码最大正整数 215-1=214+213+23+22+21+20=32767负数:如–123原码反码(符号位不动,其它取反)补码(补码加已知补码求原负数符号位不动,其它取反加 1加最大负整数-215=32768 因为 -215 < -(215-1) 所以用 -215而不用 -(215-1)(2) unsigned (int) 类型称为无符号整数,它不是指不带“+ 或 -”号的整数,而是指内存表示这类数时没有符号位,16 位二进制都用来表示数,因此最大数 215+214+213+23+22+21+20=65535最小数 0(3) long (int) 类型用 32 位二进制(四个字节)表示,其他同 int 型(4) short 类型有的计算机(小型、中型、大型机)int 即是 long ,而short用16 位二进制(二个字节)表示。
因此C语言中,short一定是短整型,long一定是长整型,而int因不同的系统而不同。
PC 586 机int即short,所以一般不用short 。
(5) 在C语言中,整型常量有三种形式的写法:十进制整数(0 - 9)表示。
通常整数的写法。
八进制整数(0 - 7)表示。
在整数的前面加数字0。
十六进制整数(0 - f)表示。
在整数的前面加0x。
长整型常量表示方法:在整数的后面加L或 l。
字符型数据:以二进制的形式表示char 型用 8位二进制(一个字节)表示如‘a’,在程序中要用单引号表示,输出时无单引号,内存中表示为6+25+20=97 即ASCII 码 97实型数据:以二进制的形式表示(1) float 类型如 123.45 (+123.45)用 32 位二进制(四个字节)表示为 0.12345×103不同的系统,n的位数有不同,n长,精度高,但可表示的指数小,能表示的数的范围小。
反之,则能表示的数的范围大,但精度低。
float 类型又称为“浮点”类型,把实数的小数点都看成在第一位,而用指数位“浮动”小数点。
(2) double 类型与float同只不过用 64 位二进制(八个字节)表示。
因此精度高,称双精度。
2.变量的概念C语言中的变量可以理解成计算机内存的一个空间,它必须有一个名字(标识符),可放什么样的数据类型(如定义时前面加int 、float 、char 等),它是开辟在内存的一般数据区(又称静态数据区)还是开辟在内存的堆栈区(又称动态数据区),这可由程序中用static或auto(可缺省)来规定。
同时,一个变量有它的有效的使用范围,称之为作用域。
最后,每个变量都有地址,这在指针类型时要用到。
变量可以一边定义一边赋初值,在程序运行时可以使它发生变化,因此称之为变量。
3.运算符的注意事项(1)双目运算符 % 的两边一定是要整数,运算结果是整除后的余数,也是整数,注意2%5 得2而不是 0。
(2)双目运算符 / 的两边如果是整数,则结果也是整数,5/2 结果为 2而不是 2.5 ,即使是 float x; x=1/2; x 中也只有 0.0 , 要人为的写成 x=1/2.0 或 x=1.0/2 ,x中才是0.5 。
(3)单目运算符 ++ -- 放在运算对象的前面时,称为“先加(减) 1,后使用”,这一般不会搞错。
当放在运算对象的后面时,称为“先使用,后加(减) 1”,这时要注意什么时候“使用”。
如 i=3; (i++)+(i++)+(i++) 结果是9而不是12,这里,三个i相加是“使用”,使用后才三次加1,i成为6,“使用”是以整个表达式为准。
而 i=3; (++i)+(++i)+(++i) 结果是18而不是15,这里,三个i依次加1 成为6,然后再“使用”。
也是以整个表达式为准。
又如 i=1; if(i--) printf(“%d”,i); 输出是0而不是1。
这是因为if()中i-- 是整个表达式,先用i为1,用于“判断”成立,这算“使用”了,然后i减1成为0,输出时i 已为0。
同理 char c=’A’; switch(c++) { case ‘A’: printf(“%c”,c);break;………},输出为B。
(4). 算术自反赋值运算符中,注意 = 赋值号右边是一个整体,如 c%=a-3 是c=c%(a-3)而不是 c=c%a-3。
(5). 关系运算符中,注意等于比较运算符“==”与赋值运算符“= ”容易疏忽,二者是绝然不同的,不然会引起很大的错误。
如:i=0; if(i==1) 判断得结果应该是不成立,若写成:if(i=1)则变成给i赋予1,赋值表达式的结果也是1,判断结果是成立的。
(6). 应该熟记运算符及其优先级汇总表,熟记运算符之间的运算次序及结合方向。
4.表达式注意的问题(1). 在算术表达式中应注意各类数值型数据间的混合运算问题,如下:double float float 型一定先转换成double型参加运算。
long运算对象不同时转换方向。
unsignedint char, short char, short型一定先转换成int型参加运算。
(2). C语言无“真假值”,判断成立则结果为1,不成立则结果为0。
而当表达式的值为非0则认为“真”,当表达式的值为0则认为“假”。
(3). 关系表达式中,数学上的 0<x<10不能写成 0<x<10 而应写成 0<x && x<10,不然会引起很大的错误。
如:当 x=20 时,数学上0<x<10是不符合的,但在C程序中认为成立。
这是因为C程序从左向右判别,0<x成立,则结果为1,1<10也成立。
(4).在“&&”连接的逻辑表达式中,当左边表达式的值为0,则C语言不再计算右边表达式,因为无论右边表达式的值为什么,整个逻辑表达式的值都为0。
同样,在“||”连接的逻辑表达式中,当左边表达式的值为非0,则C语言不再计算右边表达式,因为无论右边表达式的值为什么,整个逻辑表达式的值都为1 。
如:int a=b=m=n=1; (m=a!=b)&&(n=a!=b) a!=b不成立为0,m得0,n仍为1int a=b=m=n=0; (m=a==b)||(n=a==b) a==b成立为1,m得1,n仍为0(5). C语言中,赋值号“=”,逗号“,”都是运算符。
a=10是赋值表达式,a=10;是赋值语句,sum=0,i=0是逗号表达式,它是由二个赋值表达式用逗号运算符连起来的逗号表达式。
练习题一、单项选择题1.下列数据中属于“字符串常量”的是()。
A.”a” B. {ABC} C. ’abc\0’ D. ’a’2.下列数据中属于“字符串常量”的是()。
A.ABC B. “ABC” C. ’abc’ D. ’a’3. 在PC机中,’\n’在内存占用的字节数是()。
A. 1B. 2C. 3D. 44. 在PC机中,”a\xff”在内存占用的字节数是()。
A. 5B. 6C. 3D. 45.字符串”ABC”在内存占用的字节数是()。
A. 3B. 4C. 6D. 86.字符串”\”ABCD\””在内存占用的字节数是()。
A. 4B. 6C. 7D. 87. 在C语言中,合法的长整型常数是()。
A. 0LB. 4962710C. 0.054838743D. 2.1869e108.在C语言中,合法的短整型常数是()。
A. OLB. 0821C. 40000D. 0x2a9.下列数据中不属于“字符常量”的是()。
A. ‘\a’B. ‘\160’C. ‘070’D. 07010.char型常量在内存中存放的是()。
A. ASCII代码值B. BCD代码值C. 内码值D. 十进制代码值11.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,m,n的值是()。
A. 0,0B. 0,1C. 1,0D. 1,112.设整型变量m,n,a,b,c,d均为1,执行“(m=a>b)&&(n=a>b)”后,m,n的值是()。
A. 0,0B. 0,1C. 1,0D. 1,113.设a为2,执行下列语句后,b的值不为0.5的是()。
A. b=1.0/aB. b=(float)(1/a)C. b=1/(float)aD. b=1/(a*1.0) 14.设a为5,执行下列语句后,b的值不为2的是()。
A. b=a/2B. b=6-(--a)C. b=a%2D. b=a>3?2:215. 执行语句“x=(a=3,b=a--)”后,x,a,b的值依次为()。
A. 3,3,2B. 3,2,2C. 3,2,3D. 2,3,216. int b=0,x=1; 执行语句“if(x++) b=x+1;”后,x,b的值依次为()。
A. 2,3B. 2,0C. 3,0D. 3,217.设有语句int a=3;,则执行了语句a+=a-=a*a;后,变量a的值是()。
A. 3B. 0C. 9D. -1218.设有语句int a=3;,则执行了语句a+=a-=a*=a;后,变量a的值是()。
A. 3B. 0C. 9D. -1219. int a=4,b=3,c=-2,d=2; 逻辑表达式a>0&&b&&c<0&&d>0的值是()。
A. 1B. 0C. -1D. 出错20.在以下一组运算符中,优先级最高的运算符是()。
A. <=B. =C. %D. &&21.设整型变量i的值为3,则计算表达式i---i后表达式的值为()。
A. 0B. 1C. 2D. 表达式出错22.设整型变量i,j=3; 则计算表达式i=j+++j后i,j的值为()。
A. 4,4B. 6,6C. 4,6D. 6,423.设整型变量a,b,c均为2,表达式a+++b++c++的结果是()。
A. 6B. 9C. 8D. 表达式出错24.设整型变量i值为2,表达式(++i)+(++i)+(++i)的结果是()。
A. 6B. 12C. 15D. 表达式出错25.设整型变量i,j值均为3,执行了“j=i++,j++,++i”后,i,j的值是()。
A. 3,3B. 5,4C. 4,5D. 6,626.若已定义x和y为double类型,则表达式;x=1,y=x+3/2的值是()。