C++期末考试题A

合集下载

c语言期末考试题库及详解答案

c语言期末考试题库及详解答案

c语言期末考试题库及详解答案C语言期末考试题库及详解答案一、选择题1. 下列哪个选项是C语言中正确的整型常量?A. 0.1234B. 0x12ABC. 0b1010D. 1e10答案:B2. C语言中,以下哪个关键字用于定义变量的存储类别?A. staticB. constC. typedefD. volatile答案:A3. 在C语言中,以下哪个运算符用于求两个数的余数?A. /B. %C.D. ++答案:B4. 下列哪个选项是C语言中正确的字符常量?A. 'A'B. "A"C. AD. 65答案:A5. 在C语言中,以下哪个函数用于计算两个数的最大值?A. max()B. min()C. pow()D. sqrt()答案:A二、填空题6. C语言中,用于定义数组的关键字是______。

答案:int7. C语言中,用于输入输出的库函数分别是______和______。

答案:scanf(); printf()8. C语言中,若要定义一个指针变量,需要使用关键字______。

答案:int*9. C语言中,用于定义函数的关键字是______。

答案:void 或其他数据类型10. C语言中,若要实现字符串的复制,可以使用库函数______。

答案:strcpy()三、简答题11. 简述C语言中结构体的定义方式。

答案:在C语言中,结构体是一种用户自定义的数据类型,它允许将多个不同类型的数据项组合成一个单一的类型。

结构体的定义方式如下:struct 结构体名 {数据类型成员名1;数据类型成员名2;...};12. 解释C语言中的递归函数。

答案:递归函数是一种函数自己调用自己的特殊函数。

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

递归函数需要有一个明确的终止条件,以防止无限递归。

四、编程题13. 编写一个C语言程序,实现求一个整数的阶乘。

答案:```c#include <stdio.h>long factorial(int n) {if (n <= 1) return 1;else return n * factorial(n - 1);}int main() {int num;printf("Enter a number: ");scanf("%d", &num);printf("Factorial of %d = %ld", num, factorial(num)); return 0;}```14. 编写一个C语言程序,实现字符串的反转。

c语言期末考试题库及详解答案编程题

c语言期末考试题库及详解答案编程题

c语言期末考试题库及详解答案编程题在C语言的期末考试中,编程题是检验学生对C语言编程能力的重要部分。

以下是一套精心准备的C语言期末考试题库及详解答案,帮助学生复习和准备考试。

1. 编写一个程序,计算并输出100以内所有素数的和。

素数是指只能被1和它本身整除的大于1的自然数。

我们可以通过遍历2到99的每个数,检查它是否为素数,如果是,则累加到总和中。

最后输出总和。

```c#include <stdio.h>#include <stdbool.h>bool isPrime(int num) {if (num <= 1) return false;for (int i = 2; i * i <= num; i++) {if (num % i == 0) return false;}return true;}int main() {int sum = 0;for (int i = 2; i <= 100; i++) {if (isPrime(i)) {sum += i;}}printf("The sum of all prime numbers less than 100is: %d\n", sum);return 0;}```2. 编写一个程序,实现字符串的反转。

字符串反转是一个常见的编程问题,可以通过遍历字符串,将字符从后向前存入新的字符串中,然后输出。

```c#include <stdio.h>#include <string.h>void reverseString(char str[]) {int len = strlen(str);for (int i = len - 1; i >= 0; i--) {printf("%c", str[i]);}}int main() {char str[] = "Hello, World!";printf("Original string: %s\n", str);printf("Reversed string: ");reverseString(str);printf("\n");return 0;}```3. 编写一个程序,计算数组中所有元素的平均值。

c语言下期末考试题库及详解答案

c语言下期末考试题库及详解答案

c语言下期末考试题库及详解答案一、单项选择题(每题2分,共40分)1. 在C语言中,以下哪个选项是正确的?A. 变量名可以以数字开头B. 变量名中可以包含空格C. 变量名区分大小写D. 变量名可以包含特殊字符答案:C2. 下面哪个选项是C语言中的合法整型常量?A. 0x1AB. 1.23C. 0123D. 0E5答案:A3. 在C语言中,哪个关键字用于定义一个函数?A. classB. functionC. defD. void答案:D4. C语言中,以下哪个选项是正确的?A. 一个函数可以返回多个值B. 一个函数可以有多个返回类型C. 一个函数可以没有返回值D. 一个函数可以没有参数答案:D5. 在C语言中,以下哪个选项是正确的?A. 所有变量必须在使用前声明B. 变量可以在任何地方声明C. 变量的声明必须在函数的开始处D. 变量的声明可以在代码的任何位置答案:A6. 下列哪个是C语言中的逻辑运算符?A. &&B. ||C. !D. 以上都是答案:D7. 在C语言中,以下哪个选项是正确的?A. 字符串字面量必须以单引号括起来B. 字符串字面量必须以双引号括起来C. 字符串字面量可以以单引号或双引号括起来D. 字符串字面量不能以引号括起来答案:B8. 在C语言中,以下哪个选项是正确的?A. 所有数组元素必须具有相同的数据类型B. 数组的大小在定义时必须确定C. 数组可以是多维的D. 以上都是答案:D9. 在C语言中,以下哪个选项是正确的?A. 指针可以存储任何类型的数据B. 指针可以存储变量的地址C. 指针可以存储函数的地址D. 以上都是答案:B10. 在C语言中,以下哪个选项是正确的?A. switch语句中的case标签必须是整数B. switch语句中的case标签可以是浮点数C. switch语句中的case标签可以是字符串D. switch语句中的case标签可以是任意类型答案:A二、填空题(每题2分,共20分)1. 在C语言中,用于输入的函数是________。

C期末考试复习题(答案)

C期末考试复习题(答案)

C期末考试复习题(答案)C语言复习题一、单项选择题1、C语言源程序文件经过C编译程序编译连接之后生成一个后缀为( C )的文件。

A).c B).obj C).exe D).bas2、)完成C源文件编辑后、到生成执行文件,C语言处理系统必须执行的步骤依次为( B )A)连接、编译B)编译、连接 C)连接、运行D)运行3、关于C语言的叙述中,不正确的是(D)A)C程序可由一个或多个函数组成B)C程序必须包含一个main ()函数C)C程序的基本组成单位是函数D)注释说明只能位于一条语句的后面4、一个C程序的执行是从(A )。

A) 本程序的main函数开始,到main函数结束B) 本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C) 本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束5、以下正确的叙述是(C )A) 在C语言中,main函数必须位于文件的开头B) C语言每行中只能写一条语句C) C语言本身没有输入、输出语句D) 对一个C语言进行编译预处理时,可检查宏定义的语法错误6、下列选项中,不能用作标识符的是( D)。

A) _1234_ B) _1_2 C) int_2_ D) 2_int_7、常数的书写格式决定了常数的类型和值,0x1011是( C )A)8进制整型常量B)字符常量 C)16进制整型常数D)2进制整型常数8、以下4组用户定义标识符中,全部合法的一组是( A )A)_total clu_1 sum B)if -max turbC)txt REAL 3COM D)int k_2 _0019、_( D )是合法的用户自定义标识符。

A) b-b B)float C)123a D) _isw10、以下选项中不正确的整型常量是( C )。

A) 12L B) -10 C) 1,900 D) 123U11、表达式( C )的值是0。

大一c期末考试题及答案

大一c期末考试题及答案

大一c期末考试题及答案大一C语言期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个选项是合法的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 下列哪个选项不是C语言的基本数据类型?A. intB. floatC. stringD. double答案:C3. 在C语言中,以下哪个选项不是运算符?A. +B. -C. %D. :答案:D4. 若有定义:int a=5, b=3;,则表达式a%b的值是多少?A. 2B. 1C. 0D. 3答案:A5. 下列哪个选项不是C语言中的控制语句?A. ifB. switchC. forD. while答案:B6. 在C语言中,以下哪个选项是正确的字符串声明?A. char str[5] = "hello";B. char str[] = {'h', 'e', 'l', 'l', 'o'};C. char str[6] = "hello";D. char str[] = "hello";答案:D7. 在C语言中,以下哪个函数用于计算字符串的长度?A. strlen()B. strcpy()C. strcat()D. strcmp()答案:A8. 下列哪个选项不是C语言中的数组?A. int a[5];B. int a[5] = {1, 2, 3, 4, 5};C. int a[] = {1, 2, 3};D. int a = {1, 2, 3};答案:D9. 在C语言中,以下哪个选项是正确的函数声明?A. int add(int a, int b);B. int add(int, int);C. int add();D. int add(int a);答案:A10. 在C语言中,以下哪个选项是正确的文件操作函数?A. fopen()B. fclose()C. printf()D. scanf()答案:A二、填空题(每空2分,共20分)1. 在C语言中,用于定义一个整型变量的关键字是________。

c语言期末考试题库大题及详解答案

c语言期末考试题库大题及详解答案

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 语句 x *=y +2;可以写作_____B___。

A 、x =y +2B 、x =x *(y +2);C 、x =2+y * x;D 、x =x * y +2;2. 下列运算符中优先级最高的是______A__。

A 、>=B 、=C 、||D 、-=3. 在一个C 程序中,A 。

A 、main 函数可以在任何函数之间出现B 、main 函数必须出现在所有函数之后C 、main 函数必须出现在所有函数之前D 、main 函数必须出现在固定位置4. C 语言程序的三种基本结构是_A_______。

A 、顺序、选择、循环 B 、选择、递归、循环 C 、顺序、循环、子程序 D 、嵌套、选择、循环A 、doubleB 、floatC 、intD 、char 6. 字符型常量在内存中存放的是该字符对应的D 。

A 、BCD 代码值B 、内部码值C 、十进制代码值D 、ASCII 代码值7. 下列说法中正确的是D 。

A 、C 语言程序总是从第一个函数开始执行B 、在C 语言程序中,要调用的函数必须在main()函数中定义 C 、C 语言程序中的main()函数必须放在程序的开始部分D 、C 语言程序总是从main()函数开始执行8. 若变量已正确定义,要将a 和b 中的数进行交换,下列选项中不正确的是B 。

A 、t =a ,a =b ,b =t ; B 、a =t ;t =b ;b =a;C、t=b;b=a;a=t;D、a=a+b,b=a - b,a=a - b;9.完成C源程序编辑后,到生成执行文件,C语言处理系统必须执行的步骤依次为_B_______。

A、连接、运行B、编译、连接C、运行D、连接、编译10.若有说明和语句:int a=5,b;b=a++;此处变量b的值是C。

A、6B、4kC、5D、711.下面不是C语言整型常量的是D。

A、-32768B、01C、0x11D、08112. sizeof(double)是一个_____A___。

大学c语言期末考试题及答案

大学c语言期末考试题及答案一、选择题(每题2分,共20分)1. 下列关于C语言的描述中,错误的是:A. C语言是一种高级语言B. C语言的执行方式是编译执行C. C语言支持面向对象编程D. C语言具有丰富的库函数答案:C2. 在C语言中,用于定义一个结构体的关键字是:A. structB. unionC. enumD. typedef答案:A3. 下列关于数组的描述中,正确的是:A. 数组必须在定义时初始化B. 数组的下标从1开始C. 数组可以存储不同类型的数据D. 数组的大小在定义后不能改变答案:D4. 在C语言中,用于文件操作的库函数是:A. printfC. fopenD. getchar答案:C5. 下列关于指针的描述中,错误的是:A. 指针可以存储变量的地址B. 指针可以作为函数的参数C. 指针可以被赋值为NULLD. 指针可以存储函数的地址答案:D6. 在C语言中,用于定义一个函数的关键字是:A. functionB. defC. voidD. int答案:B7. 下列关于循环的描述中,错误的是:A. for循环可以嵌套使用B. while循环可以和break语句一起使用C. do-while循环至少执行一次D. 循环体内不能使用continue语句答案:D8. 在C语言中,用于定义一个宏的预处理命令是:B. #includeC. #pragmaD. #import答案:A9. 下列关于函数的描述中,错误的是:A. 函数可以有返回值B. 函数可以没有参数C. 函数可以没有返回值D. 函数可以没有定义答案:D10. 在C语言中,用于定义一个枚举类型的关键字是:A. enumB. structC. unionD. typedef答案:A二、填空题(每题2分,共10分)1. C语言中,用于定义一个整型变量的关键字是____。

答案:int2. 在C语言中,表示逻辑与运算的运算符是____。

答案:&&3. 当需要在C语言中表示一个常量时,可以使用关键字____。

大一c语言期末考试题及答案

大一c语言期末考试题及答案大一C语言期末考试题及答案一、选择题(每题2分,共20分)1. C语言中,以下哪个是正确的标识符?A. 2variableB. variable2C. variable-2D. variable$2答案:B2. 在C语言中,以下哪个是合法的整型常量?A. 0x12B. 0.123C. 0123D. 12.34答案:A3. 下列哪个选项不是C语言中的运算符?A. %B. &&C. :D. *答案:C4. C语言中,以下哪个是正确的数组声明?A. int a[5] = {1, 2, 3, 4, 5};B. int a[5] = {1, 2, 3};C. int a = {1, 2, 3, 4, 5};D. int a[5] = {1, 2, 3, 4};答案:A5. 在C语言中,以下哪个是正确的函数声明?A. int add(int x, int y);B. int add(int x; int y);C. int add(int x, int y) {}D. int add(x, y);答案:A6. C语言中,以下哪个是正确的条件语句?A. if x > 0printf("Positive");B. if x > 0 thenprintf("Positive");C. if (x > 0)printf("Positive");D. if x > 0 thenprintf("Positive") endif;答案:C7. C语言中,以下哪个是正确的循环语句?A. for i = 0; i < 10; i++printf("%d ", i);B. for i = 0 to 10printf("%d ", i);C. for (i = 0; i < 10; i++)printf("%d ", i);D. for i in 0..10printf("%d ", i);答案:C8. 在C语言中,以下哪个是正确的字符串声明?A. char str[] = "Hello";B. char str = "Hello";C. char str[6] = {'H', 'e', 'l', 'l', 'o'};D. char str[6] = "Hello";答案:A9. C语言中,以下哪个是正确的指针声明?A. int *ptr;B. int ptr*;C. *int ptr;D. ptr int;答案:A10. 在C语言中,以下哪个是正确的结构体声明?A. struct Student {int id;char name[50];} student;B. struct Student student {int id;char name[50];};C. struct {int id;char name[50];} Student;D. struct Student {int id;char name[50];};答案:A二、填空题(每题2分,共20分)1. C语言中,用于定义函数的关键字是________。

C程序设计期末考试习题(含答案)

c语言程序设计期末试题A(含答案)一、单项选择题(选择一个最佳答案,每题2分,共20分)1.一个C程序的执行是从( )。

A)本程序的main函数开始,到main函数结束B)本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C)本程序的main函数开始,到本程序文件的最后一个函数结束D) 本程序文件的第一个函数开始,到本程序main函数结束2.下列选项中,不能用作标识符的是( ).A)_1234_ B) _1_2 C)int_2_ D) 2_int_3。

以下定义语句中正确的是()。

A)char a='A’b=’B’; B)float a=b=10.0;C)int a=10,*b=&a;D) float *a,b=&a;4.设有以下定义:#define d 2int a=0; double b=1。

25; char c=’A’;则下面语句中错误的是()。

A) a++;B)b++ C)c++;D) d++;5。

以下4个选项中,不能作为一条C语句的是().A) {;} B) a=0,b=0,c=0; C)if(a〉0); D) if(b==0)m=1;n=2;6.有以下定义语句 double a,b; int w; long c;若各变量已正确赋值,则下列选项中正确的表达式是().A)a=a+b=b++ B)w%(int)a+b)C)(c+w)%(int)a D)w=a==b; 7。

设有定义:int n=0,*p=&n,**q=&p;则以下选项中,正确的赋值语句是( )。

A)p=1; B)*q=2;C)q=p; D) *p=5;8。

设有定义:int a,*pa=&a; 以下scanf语句中能正确为变量a读入数据的是( )。

A) scanf(“%d”,pa) ; B)scanf(“%d",a);C) scanf(“%d”,&pa); D)scanf(“%d”,*pa);9。

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

………………………………装………………………………订……………………………线…………………………… 考试科目:面向对象程序设计 考试方式: 闭卷 试卷类型: A 学期:2010—2011学年第一学期 题号 一 二 三 四 五 总得分 得分 阅卷人

得分 一、选择题(每题1分,共15分)

1、假设已经有了定义“char *const name=”chen”;”下面的语句中正确的是( A ) A.name[3]=‟q‟; B.name=”lin”; C.name=new char[5]; D.name=new char(„q‟); 2、函数原型语句正确的是( B ). A.int function(void a);B.void function(int);C.int function(a);D.void int(double a); 3、重载函数在调用时选择的依据中,( B )是错误的。 A.函数名字 B.函数的返回类型 C.参数个数 D.参数的类型 4、在( A )情况下适宜采用内联函数。 A.函数代码小,频繁调用 B.函数代码多,频繁调用 C.函数体含有递归语句 D.函数体含有循环语句 5、下列描述中,( C )是错误的。 A.内联函数主要解决程序的运行效率问题 B.内联函数的定义必须出现在内联函数第一次被调用之前 C.内联函数中可以包括各种语句 D.对内联函数不可以进行异常接口声明 6、在C++中,关于下列设置默认参数值的描述中,( B )是正确的。 A.不允许设置默认参数值 B.在指定了默认值的参数右边,不能出现没有指定默认值的参数 C.只能在函数的定义性声明中指定参数的默认值 D.设置默认参数值时,必须全部都设置 7、下面有关重载函数的说法中正确的是( C ) A.重载函数必须具有不同的返回值类型 B.重载函数形参个数必须不同 C.重载函数必须有不同的形参列表 D.重载函数名可以不同 8、关于new运算符的下列描述中,( D )是错误的 A.它可以用来动态创建对象和对象数组 B.使用它创建的对象或对象数组可以使用运算符delete删除 C.使用它创建对象时要调用构造函数 D.使用它创建对象数组时必须指定初始值 9、关于delete运算符的下列描述中,( C )是错误的。 A.它必须用于new返回的指针 B.使用它删除对象时要调用析构函数 C.对一个指针可以使用多次该运算符 D.指针名前只有一对方括号符号,不管所删除数组的维数 10、在多继承构造函数定义中,几个基类构造函数用( C )分隔。 A. : B. ; C. , D. :: 11、设置虚基类的目的是( B )。 A.简化程序 B. 消除二义性 C. 提高运行效率 D.减少目标代码 12、下列关于纯虚函数与抽象类的描述中,错误的是( C )。 A.纯虚函数是一种特殊的函数,它允许没有具体的实现 B.抽象类是指具有纯虚函数的类 C.一个基类的说明中有纯虚函数,该基类的派生类一定不再是抽象类 D.抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出 13、通常拷贝构造函数的参数是( C) A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名 14、在下面有关对构造函数的描述中,正确的是( B ) A.构造函数可以带有返回值; B.构造函数的名字与类名完全相同; C.构造函数必须带有参数; D.构造函数必须定义,不能默认。 15、在下面有关析构函数特征的描述中,正确的是( C ) A.一个类中可以定义多个析构函数; B.析构函数名与类名完全相同; C.析构函数不能指定返回类型; D.析构函数可以有一个或多个参数。

共 3 页 第 1 页 试 题 专 用 纸(附页) ………………………………装………………………………订……………………………线…………………………… 得分 三、请写出下列程序的运行结果(每题5分,共20分) 1. #include class Sample { int x; public: Sample(){}; Sample(int a){x=a;} Sample(Sample &a){x=a.x+1;} void disp(){cout< void swap(int *x,int &y); void main() { int a=13,b; b=a%5; cout<<"a="

4. #include class Student { public: virtual void display(){cout<<“UnderGraduate”; } }; class GraduateStudent :public Student { public: virtual void display(){cout<<“Graduate”; } }; void fn(Student& x){x.display();} void main() { Student s; GraduateStudent gs; fn(gs); fn(s); }

得分 四、编程题(第1题10分,第2题14分,第3题20分,共44分) 1.逆反01串,按输入的01串输出对应的10串,如:输入0111001010,则输出1000110101。 2.创建一个Furniture(家具)类,并由该类派生Bed(床)类和Sofa(沙发)类,再由Bed类和Sofa类派生SleeperSofa(沙发床)类。(采用虚拟继承) 3.创建一个RationalNumber(分数)类,使其具备以下功能: 1)创建一个构造函数,防止分母为0,对不是化简形式的分数进行化简,并避免分母为负数。 2)为该类重载加、减、乘、除运算符。 3)创建一个成员函数printRational(),用来输出分数,如:5/7 。

………………………………装………………………………订……………………………线…………………………… 得分 二、填空题(每空2分,共10分) 1、在用class定义一个类时,数据成员和成员函数的默认访问权限是_private___________ 。(填访问控制符) 2、C++支持____重载______,使得编译器能够根据函数参数的类型、数量和排列顺序的差异,来区分同名函数。 3、面向对象程序设计的基本特征包括抽象、封装、_继承____________和______多态_______。 4、保护继承时基类中的public成员在派生类中是__protected___________的。(填访问控制符)

得分 三、请写出下列程序的运行结果(每题5分,共20分) 1.#include using namespace std; int i=15; int main() { int i; i=100; ::i=i+1; cout<<::i< using namespace std; class example{ public: example(int n){i=n; cout<<"Constructing\n"; } ~example(){cout<<"Destructing\n";} int get_i(){return i;} private: int i; }; int sqr_it(example o){return o.get_i()*o.get_i();} int main() { example x(10); Constructing coutshow(); Base pc=&mc; pc->show(); 60 60 return 0; Derived } 30

共 3 页 第 2 页

相关文档
最新文档