C++练习试卷2及参考答案

合集下载

c语言二级考试试题及答案

c语言二级考试试题及答案

c语言二级考试试题及答案C语言二级考试试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言中数组的描述,正确的是:A. 数组名是一个变量名B. 数组名是一个常量C. 数组名是一个指针D. 数组名是一个函数答案:B2. 以下哪个是C语言中的合法变量名?A. 2variableB. variable-nameC. variable_nameD. variable name答案:C3. 在C语言中,以下哪个是正确的字符串字面量?A. "Hello World"B. 'Hello World'C. "Hello World" + "Hello World"D. "Hello\nWorld"答案:D4. C语言中,以下哪个不是标准输入输出库函数?A. printf()B. scanf()C. getchar()D. puts()答案:C5. 下列哪个是C语言中的条件语句?A. ifB. switchC. forD. while答案:A6. C语言中,以下哪个是正确的函数定义?A. int function_name(int x, int y) { /* ... */ }B. int function_name(int x, int y);C. int function_name(int x, y) { /* ... */ }D. int function_name(int x; int y) { /* ... */ }答案:A7. 在C语言中,以下哪个是正确的递归函数调用?A. function_name(x)B. function_name(x, y)C. function_name(function_name(x))D. function_name(&x)答案:C8. 在C语言中,以下哪个是正确的结构体定义?A. struct person { int age; char name[50]; };B. struct person { int age; char name[50] }C. struct person { int age; char name[50]; }D. struct person { int age; char name[50] } person;答案:A9. 在C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. int * ptr;答案:A10. 下列哪个是C语言中的位运算符?A. &&B. ||C. &D. ++答案:C二、填空题(每题2分,共10分)1. C语言中,使用________运算符可以实现两个整数的按位与操作。

计算机二级c考试真题及答案解析

计算机二级c考试真题及答案解析

计算机二级c考试真题及答案解析一、选择题(每题2分,共20分)1. 在C语言中,以下哪个选项是合法的字符常量?A. 'a'B. "a"C. 3D. 'ab'答案:A解析:在C语言中,字符常量需要用单引号括起来,因此'a'是合法的字符常量。

选项B是字符串常量,选项C是整数常量,选项D是两个字符的序列,不是单个字符常量。

2. 若有以下定义:```cint a = 3, b = 4;```则表达式`a + b`的值是:A. 7B. 3C. 4D. 0答案:A解析:根据题目中给出的变量定义,a的值为3,b的值为4。

因此,表达式`a + b`的值是3 + 4,即7。

3. 在C语言中,以下哪个选项是正确的整型变量声明?A. int a;B. float b;C. double c;D. All of the above答案:D解析:在C语言中,int、float和double都是合法的整型和浮点型变量声明。

因此,选项A、B和C都是正确的整型变量声明。

4. 下列哪个选项是C语言中的逻辑运算符?A. &&B. ||C. !D. All of the above答案:D解析:在C语言中,&&代表逻辑与,||代表逻辑或,!代表逻辑非,它们都是C语言中的逻辑运算符。

5. 若有以下定义:```cint x = 10;```则表达式`x % 3`的值是:A. 1B. 2C. 3D. 0答案:A解析:表达式`x % 3`表示x除以3的余数。

10除以3的商是3,余数是1,因此`x % 3`的值是1。

6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[10] = "Hello";B. char str[] = "Hello";C. Both A and BD. None of the above答案:C解析:在C语言中,选项A和B都是正确的字符串声明方式。

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案

c语言二级考试题库及详解答案C语言二级考试题库及详解答案一、选择题1. 在C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. 3numberD. variable#答案:B2. C语言中,整型变量int所占的字节数是:A. 1字节B. 2字节C. 4字节D. 8字节答案:C(注:实际字节数可能因编译器和平台而异,但通常为4字节)3. 下列哪个不是C语言的控制语句?A. ifB. switchC. forD. goto答案:B(注:switch也是C语言的控制语句,此题有误)二、填空题1. 在C语言中,若要定义一个整型数组,可以使用以下语法:___________。

答案:int array_name[array_size];2. C语言中,用于计算两个数的乘积的运算符是:___________。

答案:*三、简答题1. 简述C语言中数组和指针的区别。

答案:数组是一种数据结构,用于存储相同类型的元素集合。

指针是一个变量,它存储了另一个变量的内存地址。

数组名可以作为指针使用,但数组本身不是指针。

数组的大小在定义时确定,而指针可以指向不同大小的内存块。

2. 解释C语言中的递归函数。

答案:递归函数是一种函数,它在执行过程中调用自己。

递归函数通常用于解决可以分解为相似子问题的问题。

递归函数必须有一个明确的终止条件,以避免无限递归。

四、编程题1. 编写一个C语言程序,实现求1到100的和。

答案:```c#include <stdio.h>int main() {int sum = 0, i;for(i = 1; i <= 100; i++) {sum += i;}printf("1到100的和是:%d\n", sum);return 0;}```2. 编写一个C语言函数,实现字符串反转。

答案:```cvoid reverseString(char *str) {int len = 0;while(str[len] != '\0') {len++;}for(int i = 0; i < len / 2; i++) {char temp = str[i];str[i] = str[len - 1 - i];str[len - 1 - i] = temp;}}```五、论述题1. 论述C语言中函数的作用和重要性。

计算机二级C语言测试题(含答案)

计算机二级C语言测试题(含答案)
7.表达式(int)1.7*2+8/3-3%2的值是_________。
A. 2 B. 3 C. 4 D. 5
答案:
1. A
2. F
3. C
4. C
5. A
6. B
7. B
C语言测试题(第三章)
1.以下程序的输出结果是________。
main()
{
int k=8765;
printf("*%-06d*\n",k);
}
A.输出格式描述符不合法 B.*008765*
C.*8765 * D.*-08765*
【答案】 C.
2.有程序段如下:
int i;
float f;
scanf("i=%d,f=%f",&i,&f);
若要求把数值100和765.12分别赋给变量i和f,则正确的输入格式为________。
A.100765.12 B.i=100,f=765.12
z=x/y;
}
else
break;
}
printf("%5.2f\n",y);
}
运行该程序,按如下形式从键盘输入数据,程序的数出结果是________。
键盘输入数据:3.6,2.4
A. 1.50 B. 1.60 C. 2.0 D. 2.40
答案:
1. C 2. C 3. C 4. A 5. B
C语言测试题(第六章)
答案:
1. B
2. D
3. k=p
4.①str[i]!= '\0'或简写成str[i]
②str[i]>= 'a'&& str[i]<= 'z'

计算机二级c考试题目及答案

计算机二级c考试题目及答案

计算机二级c考试题目及答案考试题目一:1. 下面哪个选项中的语句能够正确实现两个整数的交换?A. a = b; b = a;B. a = b; b = a + b; a = b - a;C. temp = a; a = b; b = temp;D. a = a + b; b = a - b; a = a - b;答案:C. temp = a; a = b; b = temp;2. 在C语言中,关键字是指由编译器预定义,用来表示某种特定含义的标识符。

下列选项中,哪个不是C语言的关键字?A. elseB. whileC. friendD. break答案:C. friend3. 下列代码片段中,存在语法错误的是:A. int x; scanf("%d", &x);B. float y = 3.14;C. int a = 5, b = 10;D. for (int i = 0; i < 5; i++) {}答案:D. for (int i = 0; i < 5; i++) {}4. 在C语言中,什么是函数的返回值?A. 函数体内用于输出结果的语句B. 函数调用表达式的值C. 函数体中的变量D. 函数体内用于输入参数的语句答案:B. 函数调用表达式的值5. 下面哪个选项中的运算符具有最低的优先级?A. *B. ||C. ++D. &&答案:B. ||考试题目二:1. 下面关于数组的说法中,哪个是正确的?A. 数组中的元素必须是相同的数据类型B. 数组的大小可以在程序运行过程中改变C. 数组可以存储不同类型的数据D. 数组的下标从1开始计数答案:A. 数组中的元素必须是相同的数据类型2. 下列代码片段中,哪个选项中的循环语句可以正确输出数组元素的值?A. for (int i = 1; i <= n; i++) { printf("%d ", array[i]); }B. for (int i = 0; i < n; i++) { printf("%d ", array[i]); }C. while (i < n) { printf("%d ", array[i]); i++; }D. do { printf("%d ", array[i]); i++; } while (i < n);答案:B. for (int i = 0; i < n; i++) { printf("%d ", array[i]); }3. 在C语言中,下面哪个选项是正确的字符串表示方式?A. 'hello'B. "hello"C. `hello`D. “hello”答案:B. "hello"4. 下面哪个选项中的函数可以将字符串转换为整数?A. atof()B. atoi()C. strtoi()D. strol()答案:B. atoi()5. 在C语言中,下面哪个选项用于在程序中引入头文件stdlib.h?A. #include <stdlib>B. #include <stdlib.h>C. #include "stdlib.h"D. using namespace std;答案:B. #include <stdlib.h>注意:以上题目及答案仅供参考,实际考试内容以考试要求为准。

计算机二级C语言测试题及答案解析

计算机二级C语言测试题及答案解析

2016年计算机二级C语言测试题及答案解析(二) 基本输入输出及流程控制1.#in elude?mai n(){ int a=1,b=3,c=5;if (c==a+b)prin tf("yes\n");elseprin tf(" no\n");}运行结果为:no详见教材p89选择结构详见教材p91关系符号详见附录D p378符号的优先级==表示判断符号两边的值是否相等;二表示将符号右边的值赋给左边的变量本题考点是选择结构3种基本形式的第二种选择结构三种一般形式中的“语句”皆为复合语句,复合语句要用{ }括起来,只有当复合语句中只包括一条语句时可以省略{ },此题即如此,因此两个printf 操作没有加{ }若c==a+b 成立,则执行printf("yes\n");否则(即c==a+b不成立),执行printf("no\n");+的优先级高于==,因此先算a+b,值为4,表达式5==4不成立,因此执行printf("no\n"); 即输出字符串no2.?#in clude?mai n(){ int a=12, b= -34, c=56, min=0;mi n=a;if(mi n>b)?mi n=b;if(min >c)?mi n=c;prin tf("mi n=%d", mi n);}运行结果为:min二-34详见教材p89选择结构本题考点是选择结构3种基本形式的第一种一共包含了两个选择结构(两个if语句)定义变量,并赋值此时a=12, b= -34, c=56, min=O将a中值拷贝,赋给min,覆盖了min中的0,此时min中的值被更新为12。

若min>b成立,则执行min二b;若min>c成立,则执行min二c;输出min中的值12大于-34,第一个if语句的表达式成立,因此执行min二b;执行后min 中的值被更新为-34.-34小于56,第二个if语句的表达式不成立,因此不执行min二c;最后输出min中的值,为-34.3.#in elude?mai n(){ int x=2,y= -1,z=5;if(x if(yvO)?z=0;elsez=z+1;printf( “ %d\n” ,z);}运行结果为:5遇到选择结构,首先要明确条件表达式成立时执行哪些操作。

c二级考试试题和答案及分析

c二级考试试题和答案及分析

c二级考试试题和答案及分析1. 以下哪个选项是C语言中的关键字?A. intB. floatC. doubleD. string答案:A分析:在C语言中,`int` 是一个关键字,用于声明整型变量。

而`float` 和 `double` 用于声明浮点型变量,`string` 不是C语言的关键字,它是C++中的关键字。

2. 以下哪个函数用于计算两个数的和?A. max(a, b)B. min(a, b)C. sum(a, b)D. average(a, b)答案:C分析:在C语言中,并没有内置的 `sum` 函数,但是可以通过自定义函数来实现两个数的求和。

通常,自定义的求和函数可以命名为`sum`,其函数原型可以是 `int sum(int a, int b)`。

3. 在C语言中,以下哪个语句用于声明一个整型数组?A. int array[5];B. int [5] array;C. int array[];D. int array = 5;答案:A分析:在C语言中,声明一个整型数组的正确方式是指定数组类型、数组名和数组大小。

因此,`int array[5];` 是正确的声明方式,它声明了一个包含5个整型元素的数组。

4. 以下哪个选项是C语言中的条件语句?A. ifB. switchC. whileD. for答案:A分析:在C语言中,`if` 是条件语句,用于根据条件的真假来执行不同的代码块。

而 `switch` 是多分支选择语句,`while` 和 `for` 是循环语句。

5. 在C语言中,以下哪个函数用于输出字符串?A. printf("%s", str);B. scanf("%s", str);C. puts(str);D. gets(str);答案:C分析:`puts(str)` 是C语言中用于输出字符串的函数,它会在输出的字符串后自动添加一个换行符。

计算机二级c语言考试题及答案

计算机二级c语言考试题及答案

计算机二级c语言考试题及答案一、选择题1. 下面哪个标识符不符合C语言的命名规则?A.MyVariable B.2Cool C._age D.TotalMarks答案:B.2Cool2. 在C语言中,以下表达式的结果是什么?int x = 5, y = 10;int z = x++ + --y;printf("%d", z);答案:143. 下面哪个关键字不是C语言中的关键字?A.int B.for C.while D.switch答案:D.switch4. 下面哪个函数可以用于从标准输入获取一个字符?A.getchar() B.scanf() C.gets() D.puts()答案:A.getchar()5. 在C语言中,如何声明一个指向整型数据的指针变量? A.int *x; B.int x; C.*int x; D.*x int;答案:A.int *x;二、编程题题目一:请编写一个C程序,要求用户输入一个整数n,然后计算并输出1到n的所有整数之和。

代码如下:```c#include <stdio.h>int main() {int n, sum = 0;printf("请输入一个整数:");scanf("%d", &n);for (int i = 1; i <= n; i++) {sum += i;}printf("1到%d的和为:%d\n", n, sum);return 0;}```题目二:请编写一个C程序,输入一个字符,判断它是大写字母、小写字母还是其他字符,并分别输出结果。

代码如下:```c#include <stdio.h>int main() {char ch;printf("请输入一个字符:");scanf("%c", &ch);if (ch >= 'A' && ch <= 'Z') {printf("输入的字符是大写字母\n");} else if (ch >= 'a' && ch <= 'z') {printf("输入的字符是小写字母\n");} else {printf("输入的字符是其他字符\n");}return 0;}```题目三:请编写一个C程序,输入一个数字n,输出n的阶乘。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

C++练习试卷2及参考答案一、填空题(每小题2分,共16分)1.对象中封装了描述该对象的①和②,每个对象就是一个微小的程序。

2.类是抽象的,①占用内存,而对象是具体的,②占用内存。

3.封装可以使得程序中各部分之间的相互影响变①,并且提高程序的安全性。

4.继承的方式有三种:①继承、②继承、③继承。

5.虚拟函数在①时表现出多态功能;而重载函数则在②时表现出多态性。

6.定义抽象类就是在类定义中至少声明一个①函数。

7.所谓模板是一种使用类型参数来产生一系列①或②的机制,是C++的一个重要特性。

8.如果异常错误类型为C++的类,并且该类有其基类,则应该将①类的错误处理程序放在前面, ②类的错误处理程序放在后面。

二、单项选择题(每小题2分,共20分)1、下列函数中,( )不能重载.A.成员函数B.非成员函数C.析构函数D.构造函数2、.继承具有( ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员.A.规律性B.传递性C.重复性D.多样性3、已知:print()函数是一个类的常成员函数,它无返回值,下列表示中, ( )是正确的.A.void print() constB.const viod print()C.void const print()D.void print(const)4、.类模板的使用实际上是将类模板实例化成一个具体的( ).A.类B.对象C.函数D.模板类5、( )是析构函数的特征.A.一个类中只能定义一个析构函数B.析构函数名与类名不同C.析构函数的定义只能在类体内D.析构函数可以有一个或多个参数6、采用函数重载的目的在于( ).A.实现共享B.减少空间C.提高速度D.使用方便,提高可读性7、下列do-while循环的循环次数为( ).已知:int i=6;do{cout<<i--<<endl;i--;}while(i!=0);A.0B.1C.3D.无限8、C++语言中规定函数的返回值的类型是由( ).A.return语句中的表达式类型所决定B.调用该函数时的主调用函数类型所决定C.调用该函数时系统临时决定D.在定义该函数时所指定的函数类型所决定9、( ).是子类对父类的函数覆盖而不是重载,而覆盖是一种浮在表面的遮掩,而不是渗透性、摧毁性的重建。

A. 重载函数B.友元函数C.虚函数D.模板函数10、要求通过函数来实现一种不太复杂的功能,并且要求加快执行速度,选用( )合适。

A. 内联函数;B. 重载函数;C. 递归调用;D. 嵌套调用。

三、简述题(9分)简述对象化编程与过程化编程的优缺点。

四、阅读程序,写出运行结果(每小题7分,共35分)1.//////////////////////////////// cat.h ////////////////////////////////#include <iostream.h>class Cat{ public:int GetAge();void SetAge(int age);void Meow(); //喵喵叫protected:int itsAge;};int Cat::GetAge(){return itsAge;}void Cat::SetAge(int age) {itsAge=age;}void Cat::Meow(){cout<<“Meow.\n”;}////////////////////////////////////////// cat.cpp //////////////////////////////////////////#include <iostream.h>#include “cat.h”void main(){Cat frisky;frisky.SetAge(5);frisky.Meow();cout<<“frisky is a cat who is”<<frisky.GetAge()<<“years old. \n”;frisky.Meow();}2.===========================================================#include <iostream.h>class A{ public:A(); A(int i,int j);~A(){cout<<"Destructor.\n";}void print();private:int a,b;};A::A() { a=5;b=10;cout<<"Default constructor.\n"; } A::A(int i,int j){ a=i,b=j;cout<<"Constructor.\n";} void A::print(){cout<<"a="<<a<<",b="<<b<<endl;} void main(){ A obj1,obj2(15,18);obj1.print();obj2.print(); }3.============================================================#include <iostream.h>void main(){ int x=7,y=3;switch(x%2) // 求余数{ case 1:switch (y){ case 0:cout<<"AAAA\t";case 1:cout<<"BBBB\t";break;default: cout<<"CCCC\t";}case 2:cout<<"Thanks\n";}}4. ============================================================#include <iostream.h> #include <string.h> template<class T>T min(T& a, T& b) { return a>b?b:a;} char* min(char* a, char* b){ return (strcmp(a, b)>0 ? b: a);} void main(){ cout <<min("Hello", "Good") <<endl; cout <<min(3,8) <<endl;}5. ===========================================================#include <iostream.h>class ST{public:ST(){cout<<”constructing…”<<endl;}~ ST(){cout<<”destructing…”<<endl;} };void main(){ ST st;try{ cout<<” exception start…”<<endl;throw 12;cout<<” exception end…”<<endl; }catch(int){cout<<"int exception.\n"; }catch(char c){cout<<"char exception.\n"<<c<<endl;} cout<<"That's ok.\n";}五、阅读下列程序,添上一个拷贝构造函数来完善整个程序,然后写出运行结果。

(10分)#include<iostream>using namespace std; class Vector{public:Vector(int s=10);void Display();void Set();~Vector(); protected:int size;int* buffer;};Vector::Vector(int s){ buffer=new int[size=s];for(int i=0;i<size;i++)buffer[i]=i*i;} void Vector::Display(){ for(int j=0;j<size;j++)cout<<buffer[j]<<endl;}void Vector::Set(){ for(int j=0;j<size;j++) buffer[j]=j+1;}Vector::~ Vector(){ delete[]buffer;}void main(){ Vector a(6);Vector b(a);a.Set();b.Display();}六、编程题(10分)编写class cA的派生类class cAB,增加成员函数,用于求圆的周长class cA{int r;public:cA(int x){ r=x; }double area( ) { return r*r*3.14; } int get_r( ) { return r; }};C++练习试卷2参考答案及评分标准一、填空题(每小题2分,共16分)1. ①属性②操作2. ①不要②要3. ①小4. ①公有②保护③私有5.①运行②编译 6. ①纯虚7. ①模板类②模板函数 8. ①派生类②基类二、单项选择题(每小题2分,共20分)三、简述题(9分)对象化编程特点描述(+3分)过程化编程特点描述(+3分)两者比较(+3分)四、阅读程序,写出运行结果(每小题7分,共35分)1、Meow (+2分)frisky is a cat who is 5 years old (+3)Meow (+2分)2、Default constructor (+1分)Constructor (+1分)a=5,b=10 (+1分)a=10,b=18 (+2分)Destructor (+1分)Destructor (+1分)3、CCCC (+3)Thanks (+4) 4. Good (+4)3 (+3) 5.constructing… (+1) exception start… (+1) int exception. (+2) That's ok. (+1) destructing… (+2)五、阅读下列程序,添上一个拷贝构造函数来完善整个程序,然后写出运行结果。

相关文档
最新文档