哈工大2004秋《C++ 程序设计》考试题-A
C程序设计基础练习题4及答案

一、单选题1、以下数组定义中,错误的是()。
A.inta[3]={‰2,3,4};B.inta[]={l,2,3};C.inta[5]={l z2,3};D.inta[5],b;正确答案:A解析:A、数组长度为3,但赋了4个初值2、设有定义inta[10]={0};则说法正确的是()。
A.数组初始化错误,初值个数少于数组元素个数B.数组a有10个元素,各元素的值为0C.数组a有1个元素,其值为0D.数组a有10个元素,其中a[0]的值为0,其他元素的值不确定正确答案:B解析:B、当定义的同时,给数组赋了初值,但初值个数小于数组长度时,剩余的数组元素全赋为03、执行下面的初始化语句,()保存的不是字符串。
A.charstr[6]={,S, ,r,,,i√n,,,g,};B.charstr[]={'S';t','r,,,i,z,n∖,g,,0};C.charstr[10]={'S',,t',,r',,i√n∖,g,,,∖0,};D.charstr[10]="String";正确答案:A解析:A、Str数组长度为6,6个元素值都不是'0)没有成为字符串B›,∖0,的ASClI码是0,初始化为。
或'∖0'是一样的。
4、设有以下定义,则数组Sl和s2()ocharsl[]={'S'z,t','r'∕i√n','g');chars2[]="String";A.长度不同,但内容相同B.长度相同,内容也相同C.长度相同,但内容不同D.长度不同,内容也不同正确答案:D解析:D、s2比Sl多一个∖0T长度多15、设已定义charstr[6]={,a√b√∖O√c√d√∖O,};执行语句printf(("%s",str)后,输出结果为()。
2004秋省等级考试C++试卷(附答案)(1)

构造函数、析构函数、拷贝构造函数和 3. 设有说明语句: char s[]="123\t456\00089",*p=s; 执行以下两个语句: cout<<*(p+5)<<'\n'; cout<<(p+5)<<'\n'; 则输出分别为 (4) 和 (5) ●阅读程序题,共 13 分 4. [程序] (3 分) #include <iostream.h> void fun(int *a, int *b) { (*a)++; *b++; *a++; (*b)++; cout<<*a<<'\t'<<*b<<endl; }
。
二、填空题 (请将答案填写在答题纸的相应答题号内,每个答案只占一行) ●基本概念题,共 5 分 1.在 C++中,编译预处理包括三个方面的内容,它们分别是包含文件、 (1) 和 (2) 。 2.在类定义中,如果仅定义了数据成员,而没有定义成员函数时,则由系统自动生成的成员函数有缺省
第6页 VC++
; ){
第 12 页
VC++
p2=p1 = h; while (p2->next && p2->num<p->num) { p1 = p2 ; p2=p2->next; } if ( (30) ) { p2->next = p; p->next =0; } else { p->next = p2; p1->next = p; } } } return (h); }
04年夏C语言程序设计期末考试A卷标准答案

师范学院教育技术学专业2003 级姓名学号2003—2004学年度第二学期使用教材《C程序设计》修读性质必修期末考试分数占总分数的百分比60% 考试方法闭卷笔试考试时间04.6.30 讲授总学时64 学分 4 任课教师于茂春职称助教命题人教研室主任系主任密封线题号一二三四五六七八九十总分核分人题分分分分分分分得分得分一、填空题(每空1分,共10分)1.结构化程序由、、三种基本结构组成。
2.一个C程序总是从函数开始执行。
3.十进制数27,转化为八进制数为转化为十六进制数为。
4.逐个字符输入输出,用格式符,将整个字符串一次输入或输出,用格式符。
5.为表示关系x≥y≥z,应使用的C语言表达式是。
6.从存储类别来讲,函数中的形参和在函数中定义的变量都属于变量。
得分二、单项选择题。
(每题1分,共10分)1.以下叙述中正确的是()A) 构成C程序的基本单位是函数。
B)可以在一个函数中定义另一个函数。
C)main函数必须放在其它函数之前。
D)所有被调用的函数一定要在调用之前进行定义。
2.以下选项中合法的用户标识符是()A)int B) _a12 C) 12w D) stu#83.已定义c为字符型变量,则下列语句中正确的是( )A)c='97'; B)c="97"; C)c=97; D)c="a";4.已知i, j, k 为int 型变量,若从键盘输入20;19;10<CR> (<CR>代表enter),使i的值为20,j的值为19,k的值为10,以下选项中正确的输入语句为()A) scanf("%d;%d;%d",&i,&j,&k); B)scanf("%2d%2d%2d",&i,&j,&k);C) scanf(""%d ;%d ;%d",i, j, k);D) scanf("i=%d,j=%d,k=%d",&i,&j,&k);5.以下程序,执行后的输出结果是()main( ){ int k=4,i=3,m;m=(k+=i*=k); printf(“%d,%d\n”,m,i);}A) 20,16 B) 20,15 C) 28,12 D)16,126.以下函数的类型是()fff ( float x ){ printf(“%d\n”,x*x);}A) float 类型B) void 类型C) int 类型D)无法确定7.以下程序中NUM的值是()A) 5 B)6 C)8 D)9#define N 2#define M N+1#define NUM (M+1)*M/2main( ){ int i;for(i=1;i<=NUM;i++); printf(“%d”,i); }8.以下程序段执行后s的值为()for(n=10;n<20;n++){if(n%4==0) continue; s=s+1;}A) 3 B)5 C)8 D) 99.以下程序的输出结果是()main( ) {int x=20,y=22,t=30;if(x>=y) t=x; x=y; y=t;师范学院教育技术学专业2003 级姓名学号2003—2004学年度第二学期使用教材《C程序设计》修读性质必修期末考试分数占总分数的百分比60% 考试方法闭卷笔试考试时间04.6.30 讲授总学时64 学分 4 任课教师于茂春职称助教命题人教研室主任系主任密封线printf(“%d,%d\n”,x,y);}A) 20,22 B) 22,20 C) 20,30 D) 22,3010.设有如下定义struct aa{ char name[10];int age;char sex;}std[3],*p=std;下面各输入语句中错误的是( )A) scanf("%d",&(*p).age); B) scanf("%s",&);C) scanf("%c",&std[0].sex) D) scanf("%c",&(p->sex));得分三、写出程序或程序段的执行结果,将答案直接写在横线上。
C语言程序设计历年统考试题集10套含答案

C语言程序设计试题集(第1套)请将第一、二、三、四题的答案写在答题页的相应题目的后面(写在别处不得分)。
一、单项选择题(每题2分,共20分)1、以下叙述不正确的是A)C程序由函数构成B) 一个C程序至少包含一个main函数C) main函数可以调用main函数D) main函数是每个程序执行的起始点2、C程序中能直接让机器执行的文件是A)编辑后的.c源文件 B)通过编译的.obj文件C)通过连接的.exe文件 D)编辑后的.bak文件3、假设定义变量如下:int x;float y;以下输入语句中哪个是正确的?A)scanf(“%f%d”,&y,&x); B)scanf(“%f%d”, y, x); C)scanf(“%f%f”,&y,&x); D)scanf(“%d%d”,&y,&x);4、已知:int a[][3]={1,2,3,4,5,6};则数组a的第一维的大小是A)2 B)3 C)4 D)无确定值5、.如果switch表达式是char 变量code,下面哪一个case子句是合法的。
A)case “3”:B) case ‘3’: C)case 3 : D)case =3:6、能正确表示”x的值在[1,10]和[200,210]范围内”的表达式是A)(x>=1)&&(x<=10)&&(x>=200)&&(x<=210)B) (x>=1) || (x<=10) || (x>=200) || (x<=210)C) (x>=1)&&(x<=10) || (x>=200)&&(x<=210)D) (x>=1) || (x<=10)&&(x>=200) || (x<=210)7、C语言中while和do-while 循环的主要区别是A)do-while循环至少无条件执行一次,而while循环可能一次也不执行B)while循环控制条件比do-while循环控制条件严格C)do-while循环允许从外部转到循环体内,而while循环不允许D)do-while的循环体可以是复合语句,而while循环不可以是复合语句 8、下面哪一项函数的头部是有效的?A)one(int a int b)B)int thisone(char x)C)char another(int a,b)D)double yetanother9、若有定义char x[ ]= "12345"; char y[ ]={ '1', '2', '3', '4', '5'};则A)x数组与y数组的长度相同B)x数组长度大于y的长度C)x 数组长度小于y数组长度 D)x数组等价于y 数组10、二维数组的第一个元素的行下标和列下标是A) 1,1 B)0,1 C)1,0 D) 0,0二、填空题(每空3分,共30分)1、如果a=4, b=3,那么,在执行语句a=b;之后,a、b的值分别是(1)2、语句:if(6>5)printf(“#”);printf(“$”);输出(2)3、for( sum=j=0; j<=10; ++j) sum += j; 循环结束后sum的值等于(3)4、长度为10的int类型数组和长度为3 的double类型数组,哪一个数组占用的内存空间多(4)5、字符数组a)char a[]=“one”;占多少内存字节(5)6、如果ch<‘A’或ch>‘Z’,那么,表达式ch>=‘A’&& ch<=‘Z’的值是(6)7、编写C语句,交换a、b的值(7)8、为了使用库函数getchar(),必须在程序中包含命令(8)9、设int numbers[5]={17,25,30,56,58};编写C的for语句,将数组numbers中的每个元素减去3。
秋季《C语言程序设计》期末考试题A卷答案答案修改后

2005—2006学年第二学期《程序设计语言(C)》试卷参考答案和评分标准专业班级姓名学号开课系室软件工程系考试日期 20XX年7月3日程序设计语言(C)试卷(A卷)答题卡说明:1.选择题和判断题必须填在答题卡上才有效,综述题写在指定位置。
2.本试卷连同封面共13页,不得拆开。
一、单项选择题(正确的答案涂黑或画圈,每题1分,共20分)二、读程序填空题(在空格处填写正确答案,每空2分,共20分)一、单项选择题(每题1分, 20分)1. 现有程序完成a、b两个值的交换,空白处正确的答案应该是 _______。
main(){int a,b,t;t=b ;b=a ;________ ;}A. a=bB. a=tC. b=tD. t=a2.如果程序中用到标准库函数log(),那么该程序应含下面哪条语句_________。
A. #include ”stdio.h”B. #include ”math.h “C. #include ”string.h”D. #include ”stdlib.h”3. int x=6;则下方程序段运行结果是_________。
switch(x){ case 1: printf(“apple“);break;case 2: printf(“hello“);break;case 3: printf(“world “);default: printf(“thank you“);}A. appleB. helloC. thank youD. world thank you4. 在C语言中,不合法的int型常量是_________。
A. 32767B. 0578C. 0XAACD. 32768L5. 设x,y,z和k都是int型变量,则执行表达式:x=(y=2,z=15,k=30)后,x的值为________。
A. 52B. 30C. 15D. 26. 设x为int型变量,则执行以下语句后,x的值为________。
2004秋试题

哈工大2004 年秋季学期高级语言程序设计试题(说明:考试为开卷考试,卷面总分70分,平时成绩30分)一、多项选择题(共10分,每小题2分,选择了所有正确选项得2分,选择了部分正确选项得1分,选择了一个及一个以上的错误选项得0分)(1)“Father of C Programming Language”是:()A. ThompsonB. RitchieC. KernighanD. Sunner(2)下列说法中正确..的是()A. 一个int类型的变量占两个字节B. 一个结构体变量占的字节数,不一定等于每个成员变量字节数的总和C. 指向double和指向int类型的指针变量所占的字节数是相等的D. 一个long类型变量可能与一个int类型变量占用相同大小的内存(3)下列关于程序的正确性的说法正确..的是()A. 编译通过的程序就是正确的B. 执行结果正确的程序就是正确的C. 目前还无法证明一个程序是正确的D. 以上说法就没有一个正确的(4)下面这些事物中,有.“地址”的是:()A. 变量B. 函数C. 宏D. 指针(5)下面哪条语句是声明而不是定义?()A. int i;B. extern int i;C. int foo(int i);D. static int i;二、写出程序的执行结果(18分)(1)写出下面程序的执行结果。
(2分)#include <stdio.h>main(){printf("%d", (1-(2+8/6)*4%3*1)/2);}(2)写出下面程序的执行结果。
(2分)#include <stdio.h>main(){if (100)printf("Great!\n");else if (60)printf("Pass\n");elseprintf("Fail\n");}(3)写出下面程序的执行结果。
2004秋计算机组成技术试卷A

哈工大 2004 年 秋 季学期计算机组成技术 试 题一、单项选择题(本大题共20小题,每小题1分,共20分)在每小题列出的备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
1. ENIAC 所用的主要元件是________。
A. 晶体管;B. 集成电路;C. 电子管,D. 以上各答案都不对。
2. 计算机能直接执行的只有________。
A. 符号语言B. 机器语言C. 机器语言和汇编语言D. 汇编语言3. 下列数中最小的数为_______。
A. (101001)2B. (52)8C. (00101001)BCDD. (233)164. 某机字长32位,采用定点小数表示,符号位为1位,数值位为31位,则原码可表示的最大正小数为______,最小负小数为_______。
A. +(231-1)B. -(1-2-32)C. +(1-2-31)D. -(1-2-31)5. 计算机由算逻单元和控制单元合称为________。
A . CPUB . A LUC . C UD . CAD6. 若某数x 的真值为-0.1010,在计算机中该数表示为1.0110,则该数所用的编码方法是______。
A. 原码B. 补码C. 反码D. 移码7. 在CPU 中跟踪后继指令地址的寄存器是_______。
A. 主存地址寄存器B. 程序计数器C. 指令寄存器D.状态条件寄存器8.指令周期是指_______。
A.CPU从主存中取出一条指令的时间B.CPU执行一条指令的时间C.CPU从主存取出一条指令加上执行这条指令的时间D.时钟周期时间9.半导体静态存储器SRAM的存储原理是_______。
A.依靠双稳态电路B.依靠定时刷新C.依靠读后再生D.信息不再变化10.存储周期是指______。
A.存储器的读出时间B.存储器的写入时间C.存储器进行连续读和写操作所允许的最短时间间隔D.存储器进行连续写操作所允许的最短时间间隔11.主存储器和CPU之间Cache的目的是_______。
哈工大2003秋《C++ 程序设计》考试题-A

哈工大 2003 年 秋 季学期《C++程序设计》试题(A一、 选择填空题(共16分,每空一分)。
1. 面向对象的程序设计方法(可用各种语言实现,如C++、Java 等)具有三大特性,他们分别是 , , 。
2. 已知m = 3, 执行m++;后,表达式的值是 ,m 的值是 ,执行++m ;后,表达式的值是 ,m 的值是 。
3. 已知m = 4, n = 5,则执行语句m > n ? m++ : n++;后,表达式的值是 。
4. 循环语句while(int i = 0) { i--; } 执行的循环次数是 次;语句for(int i(0), j(10); i = j = 10; i++, j--) { ; } 执行的循环次数是 次。
5. 外部静态类变量的作用域是 级的,定义时必须 加说明符。
6. 请阅读下面这段描述,并回答后面的问题:(4分)All nonstatic member functions can use the this keyword, which is a const (nonmodifiable)pointer to the object for which the function was called. Member data is addressed by evaluating the expression this –>member-name (although this technique is seldom used). In member functions, using a member name in an expression implicitly uses this –>member-name to select the correct function or data member. 问题:(1)在静态成员函数中是否可以使用this 关键字?为什么?(2)是否可以将某个对象的地址值赋给this 关键字?为什么呢?二、 请分析下列程序,并回答问题(共40分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《C++ 程序设计-A 》(2003级数学系) 班级 学号 姓名 Page 1 of 7《一、 填空题。
(共15分,每空1分)1. 面向对象的程序设计方法(可用各种语言实现,如C++、Java 、C#等)具有三大特性,它们分别是 , , 。
2. 已知m = 5, 执行m++;后,表达式的值是 ,m 的值是 ,执行++m ;后,表达式的值是 ,m 的值是 。
3. 已知m = 4, n = 5,则执行语句m > n ? m++ : ++n ,m++,m+n ;后,表达式的值是 。
4. 循环语句while(int i = 1) { i--; } 执行的循环次数是 次;语句for(int i(0), j(0); i = j = 0; i++, j--) { ; } 执行的循环次数是 次。
5. 为了使函数能够返回两个或者更多的值,可将形参设置为下列两种方式,它们分别 是 或 ,如果希望实参不被修改,那么需要对形参使用关键字 限制。
6.定义在类体外的函数,如果希望成为内联函数,则必须在类体内的声明中用关键 字 标识;运算符的重载必须用关键字 标识。
二、 判断题,正确的请打√,错误的请打×。
(共20分,每题1分)1. 编译C++源程序的过程中,出现了警告错误,也可以生成可执行文件。
( )2. C++中,使用#define 定义的常量必须给出类型说明,而使用const 给出的常量不用给出类型说明。
( )3. 表达式的类型只取决于运算符,与操作数无关。
( )4. break 语句可以出现在各种不同循环语句的循环体中,continue 语句只能出现在循环体中。
( )5. 函数没有返回值时,可以不加任何类型的说明符;任何一个函数都可以设置默认参数,但是不允许将一个函数的所有参数设置为默认参数。
( )6. 指向函数的指针可以作为函数参数;使用数组名作函数参数时,实参数组与形参数组是共享内存单元的。
( )7. 结构与联合的差别在于结构中的每个成员都有自己的内存地址,且都是不相同的,而联合中的所有成员是共享内存块的,且内存块的大小与成员中的最大内存块相同。
( )8. 如果类的一个成员函数只存取该类的静态数据成员,可将该成员函数说明为静态成员函数;友元类的所有成员函数都可以对该类中的私有成员进行存取操作。
( )9. 类型转换函数是类的成员函数,它是用来进行强制类型转换的,它不能定义为友元函数,也不能定义为静态的成员函数;带有一个参数的构造函数具有类型转换的作用。
( )10. 在公有继承中,派生类的对象不可以访问基类中的保护成员;在私有继承中,派生类的对象不可以访问基类中的公有成员;在保护继承中,派生类可以访问基类中的保护成员。
( )三、 请分析下列程序,并回答问题。
(共30分)2、阅读下列程序,给出正确的输出结果。
(3分) #include <eh.h> #include <iostream.h> #include <process.h>void term_func() { cout<<"terminate is calling ";cout<<"term_func."<<endl; exit( -1 ); }int main() { try {set_terminate( term_func ); throw "Out of memory!"; }catch( int ) { cout << "整数异常." << endl; }return 0; }四、阅读下列文档,并回答提出的问题。
(共25分)。
1、根据下列文档说明,判断所给出的几个问题。
用“×”或者“√”在问题后的括号中标出。
(6分)The struct keyword defines a structure type and/or a variable of a structure type. A structure type is a user-defined composite type. It is composed of "fields" or "members" that can have different types. In C++, a structure is the same as a class except that its members are public by default. In C, you must explicitly use the struct keyword to declare a structure. In C++, this is unnecessary once the type has been defined. You have the option of declaring variables when the structure type is defined by placing one or more comma-separated variable names between the closing brace and the semicolon.○1用struct关键字说明的类型只能由相同的数据类型组成。
()○2struct类型中的所有成员都是作为私有访问类型的。
()○3在C语言中定义结构变量时,必须显示地给出关键字struct;而在C++中,则可以省略关键字。
()2、阅读下列说明文档,回答后面的问题。
(4分)Virtual base classes offer a way to save space and avoid ambiguities in class hierarchies that use multiple inheritance. Each nonvirtual object contains a copy of the data members defined in the base class. This duplication wastes space and requires you to specify which copy of the base class members you want whenever you access them. When a base class is specified as a virtual base, it can act as an indirect base more than once without duplication of its data members. A single copy of its data members is shared by all the base classes that use it as a virtual base. The virtual keyword appears in the base lists of the derived classes, not the base class.《C++ 程序设计-A》(2003级数学系)班级学号姓名Page 4 of 7○1为什么要提出虚基类的概念,它有什么好处?23、阅读下列说明文档,回答后面的问题。
(15分)“Virtual functions” are functions that ensure that the correct function is called for an object, regardless of the expression used to make the function call. Suppose a base class contains a function declared as virtual and a derived class defines the same function. The function from the derived class is invoked for objects of the derived class, even if it is called using a pointer or reference to the base class. Functions in derived classes override virtual functions in base classes only if their type is the same. A function in a derived class cannot differ from a virtual function in a base class in its return type only; the argument list must differ as well.When calling a function using pointers or references, the following rules apply:● A call to a virtual function is resolved according to the underlying type of object for which it is called. ● A call to a nonvirtual function is resolved according to the type of the pointer or reference.virtual functions are called only for objects of class types, you cannot declare global or static functions as virtual. The virtual keyword can be used when declaring overriding functions in a derived class, but it is unnecessary; overrides of virtual functions are always virtual. Virtual functions in a base class must be defined unless they are declared using the pure-specifier. The virtual function-call mechanism can be suppressed by explicitly qualifying the function name using the scope-resolution operator (::).Abstract classes cannot be used for: variables or member data、argument types、function return types and types of explicit conversions. Another restriction is that if the constructor for an abstract class calls a pure virtual function, either directly or indirectly, the result is undefined. However, constructors and destructors for○2根据你对上面的帮助文档的理解,判断下列说法的正误。