VC++等级考试要求、知识点与试题
第一部分 Visual C++的基本概念。
[考试要求]一、源程序的格式、风格和程序的结构。
[考试要求]二、常量表示法[字符和字符串常量,短整型、整型和长整型,实数(float)和双精度实数(double)]。★★ [主要知识点]
1、字符有两种表示法。 (1)基本表示方法。格式:‘单个西文字符’,如‘a’、‘+’、‘9’ 、‘“’。 (2)转义表示法。 格式①:‘\\特殊控制字符’,如‘\\n’、‘\\t’等。 格式②:‘\\字符的八进制ASCII码值’,如‘\\46’、‘\\064’等,而‘\\048’不正确。 格式③:‘\\字符的十六进制ASCII码值’,如‘\\x4C’等。 (3)表示字符时注意:
①字符只能是单个的西文字符,如‘中’、‘。’、‘45’等是错误的;
②大多数的字符都可以用以上两种方式表示,而某些特殊的字符只能用转义法表示,如‘‘’‘\\’等是错误的;
③字符的ASCII码值(十进制)在0~255之间,对应于八进制是0~377,对应于十六进制是0~FF,如‘\\400’、‘\\x100’是错误的。 2、字符串的表示。
(1)表示字符串常量的方法。格式:“一串字符”,如“a”、“中”、“123”、“xyz‘3’abc”。 (2)字符串还可以用字符数组、字符型指针等变量表示。如: char s[]=“123”,*p=“abc”; (3)表示字符串时注意:
①字符串总隐含一个结束标记‘\\0’,如“a”占2个字节,“abc\\0”占4个字节; ②字符串是若干个字符的组合,其中的大多数字符既可以用基本方法表示,也可以用转义法表示,如“abc”和“a\\142c”是两个一样的字符串;而有些字符只能用转义法表示,如“123“abc”456”、“123\\xyz”等是错误的;
③字符串的长度和其所占的字节数是两个概念,如“abc\\0xyz”占8个字节(sizeof(“abc\\0xyz”)的值为8),其长度为3(strlen(“abc\\0xyz”)的值为3)。设有:
char s1[50]=“abc\\12345xyz\\01234\\0x1234”,s2[]=“abc\\12345xyz\\01234\\0x1234”; int a=sizeof(s1),b=strlen(s1),c=sizeof(s2),d=strlen(s2); 则a、b、c、d的值各为多少?
(4)常用字符串处理函数操作字符串。
①常用函数:strcpy(s1,s2)、strcat(s1,s2)、strlen(s)、strcmp(s1,s2)等。 ②注意字符串操作开始的位置。 ③注意字符串中的结束标记。
如:char s1[ ]=“abc\\0123\\0x456\\0def”,s2[]=“xyz\\0789”,s3[100],*p= s2+2; strlen(s1+6)的值为4;strcpy(s3,s1)后s3为“abc\\0123”;strcat(s1,p)后s1为“abc\\0123z\\0789”。 3、整型。
(1)包括(存储空间,表示数的范围):基本整型(缺省)、短整型和长整型,以及无符号整型和有符号整型(缺省)。
(2)有十进制(缺省)、八进制和十六进制。
如:50L、50U、50LU、50UL、0x2ED、0XAC、050等都是正确的整型常量,而068、xED、XA都是不正确的整型常量。 4、实型。
(1)有单精度(float)和双精度(double)之分。 (2)表示方法。
基本方法(十进制小数):如2.5、-3.0、0.8、.9等。
指数表示法:x×10y表示为xEy或xey,其中x为十进制小数,y为整数,如.9e2、12.34E-5等。
(3)表示实数时注意:
①实数只能是十进制的,其他进制无效,如064e2与64e2是同一个数(6400),而064(52)与64不等;
②指数表示时,e(E)的前面必须有数,后面只能是整数,如102应表示为1e2,而e2、2e2.0是错误的;
③整数和实数的运算规则有区别,如10.0/4为2.5,而10/4为2。 5、符号常量。
(1)用const表示,如const int x=5;const float y=5; (2)用宏定义表示,如#define x 5。 [试题]
[2002秋]设有四个常数:①4e5.0、②‘\\87’、③0X5A、④“\\””,其中符合C++语法规则的常量是 。 A. ②③ B. ②④ C. ③④ D. ①② [2003秋]以下常数表示中不正确的是 。 A.‘\\55’ B. ‘55’ C. ‘\\x55’ D.0X55
[考试要求]三、各种类型变量的说明及其初始化。★★ [主要知识点]
1、定义格式。数据类型 变量名=数据;或 数据类型 变量名(数据); 2、注意问题。
(1)变量名应为合法标识符: ①标识符只能由英文字母(52个)、数字(10个)和下划线(_)组成。如:A$b、a-b等都是错误的。
②不能以数字开头。如:1a是错误的。
③不能是关键字。如:Float是正确的,而float是错误的。 (2)用来初始化的常量应与所定义的变量类型一致。 [试题]
[2006春]选择题21 B [2006秋]选择题22 AC [2007春]填空题4 下划线
3、变量的作用域:块(一对花括号“{}”括起来的部分)作用域、文件作用域、函数原型作用域和函数作用域。
(1)全局变量:在函数外定义的变量。 ①具有文件作用域;
②具有缺省初值0;
③遇到同名的局部变量时,按照局部优先的原则,缺省使用的是局部变量;若使用全局变量,可通过作用域运算符::实现。
(2)局部变量:在函数中定义的变量。 ①具有块作用域;
②同一个块中变量不能同名,不同块中可使用相同名字的变量; ③形参也是局部变量,作用域为函数体; ④for语句头部说明的变量,其作用域为包含for语句的块,而for语句循环体中说明的变量,其作用域为循环体。如下函数定义的变量中,i和aver为重复定义,而j和k没有问题。 void f(float aver) { for(int i=1,j=0;i<=10;i++){ int k=1; j+=i; k*=i; }
for(int i=20,aver;i<=30;i++){ int k=1; k*=i; j+=i; aver/=i; } }
4、变量的存储类型:自动、静态、寄存器和外部。
(1)自动类型变量是局部变量,具有块作用域,进入作用域分配空间,出作用域释放空间; (2)静态类型变量可以是局部变量(块作用域),也可以是全局变量(文件作用域),但一直存在,并具有初值0;首次进入作用域分配空间,再次进入延续前值,程序结束释放空间。 [试题]
[2006春]填空题6 (6)3 4 15 (7)20 40 [2006秋]选择题29 B
四、运算符与表达式。
[考试要求](一)算术运算、逻辑运算、关系运算、++和--运算、三目条件运算符;★★★ [主要知识点] 1、“/”运算符的整除;
2、操作数的类型,如“%”的操作数必须是整型; 3、“=”与“= =”的区别; 4、“++”和“--”运算符的前置与后置; 5、只能变量才能进行“++”和“--”运算;
6、逻辑运算和关系运算的结果是逻辑值(0或1); 7、sizeof()所求的是数据在内存中占的字节数。 [试题]
[2006秋]选择题30 B [2007秋]填空题21 C [2007春]选择题21 C
[考试要求](二)运算符的优先级;结合规则和目数的概念; [2007春]填空题3
[考试要求](三)类型的自动转换和强制类型转换;★★ [主要知识点]
1、自动转换
(1)不同类型数据参与运算时,由低向高自动转换:char→int→float→double; (2)向变量赋值时,类型由变量决定。 2、强制类型转换
不能自动转换时,必须强制转换,格式为:(数据类型)数据 或 数据类型(数据)。 [考试要求](四)表达式的组成,左值和赋值,逻辑表达式的求值优化。★★ [主要知识点]
1、赋值运算符的左边只能是变量;
2、其他类型数据参与逻辑运算时,非0即1;
3、逻辑表达式的优化:逻辑运算时,逻辑表达式一但有确定的值将中止运算; 4、注意C++表达式与数学表达式的区别。 [试题]
[2006春]选择题22 B
[2006春]填空题1 (1)1,1,1
[2004秋]若a1、a2、a3和a4都是整型变量,则以下选项中符合C++语法规则的表达式是 。 A. a1=25%3.3 B. a2=a1+a3=3*5 C. a3=078 D. a4=0Xa2
第二部分 Visual C++的基本语句 一、顺序结构。
[考试要求](一)表达式语句,空语句和复合语句; [主要知识点]
1、表达式语句:由表达式加“;”组成。 2、空语句:由单独的“;”组成。
3、复合语句:通过一对“{?}”括起来的语句,在逻辑上是一个整体。 [考试要求](二)基本数据类型的输入和输出(cin和cout)。★★ [主要知识点] 1、“cin>>”后面只能跟变量、字符数组和指向确定位置的字符型指针。使用时注意: (1)后面不能跟常量,如:char c1,c2;cin>>c1>>‘\\t’>>c2>>‘\\n’;是错误的; (2)可以输入字符型数组和字符型指针,其他类型数组和指针不允许输入; (3)输入字符串时,空格字符是数据分隔符;
(4)若输入含空格的字符串,必须用cin.getline(数组名,大小)。 2、“cout<<”后面可以跟变量、常量、表达式(含有返回值的函数调用表达式)等。使用时注意:
(1)控制输出格式;
(2)区别输出指针和指针所指值;
(3)输出字符型指针时,输出的是指针所指位置的字符串;而输出其他类型指针时,输出的是地址。 [试题]
[2007春]选择题24 B [2006秋]选择题27 A
二、选择结构。
[考试要求]①单选条件语句和双选条件语句;★★★
[主要知识点] 1、格式:
(1)单选条件语句: if(条件)S语句; (2)双选条件语句: if(条件)S1语句 else S2语句; 2、使用时注意:
(1)if和if?else的嵌套;
(2)条件和S语句的从属关系,S语句可以是空语句、复合语句等;
(3)if和else的配对关系:else总是与之前的同一个块中的尚未配对的if配对。 [考试要求]②switch语句。★★ [主要知识点] 1、格式:
switch(条件表达式){ case 常量表达式1:语句组1; case 常量表达式2:语句组2; … case 常量表达式n:语句组n; default: 语句组n+1; }
2、执行过程 3、使用时注意:
(1)条件表达式和常量表达式都只能是整型、字符型和枚举类型; (2)条件表达式通常是变量表达式(含变量),常量表达式不能含变量; (3)语句组中是否有break语句; (4)default不是必须的。 [试题]
[2007春]选择题30 D
[2007春]填空题1 (1)字符型
三、重复结构。
[考试要求]for语句、while语句和do?while语句。★★★ [主要知识点] 1、格式
(1)for语句:for(表达式1;表达式2;表达式3) 循环体(单语句、复合语句、循环语句); (2)while语句:while(条件表达式) 循环体; (3)do?while语句:do 循环体; while(条件表达式); 2、执行过程 3、使用时注意:
(1)for中的所有表达式都可以省略,条件表达式(表达式2)省略时值为1; (2)while语句和do?while语句的条件表达式不能省略;