1、 东 南 大 学 考 试 卷(A卷) 学号 姓名 密 封 线 课程名称 程序设计与算法语言Ⅰ 考试学期 12-13-2 得分 适用专业 自动化 考试形式 闭卷 考试时间长度 120分钟 自 觉 遵 守 考 场 纪 律 如 考 试 作 弊 此 答 卷 无 效 一、选择:共30分,每题2分 1、 下列标识符哪个是不合法的?___________ A. sin B. 5arry C. _name D. Example
2、2_1 2、 以下数据类型中,表达单字节整数的是: A. char B. long long C. short D. float 3、 下列有关枚举类型的说明哪个是错误的?_________________ A.枚举常量(或称枚举成员)是以标识符形式表示的整型量; B.默认状态下,这个整数就是所列举元素的序号,序号从0开始; C.类型定义时可以为部分或全部枚举常量指定整数值,其余的枚举常量仍按默认方式取值。 D.各枚举常量的值可以重复,但各枚举常量标识符必须不同。 4、 C++中表示字符A,作为字面常量,的正确表示方法是___________。 A.
3、'\65' B."A" C.65 D.'A' 5、 下面有关函数调用的说法哪一个是错误的_________________ A.实参与形参的数目要求必须是相同的; B.实参与形参的对应关系取决于位置而不是名字; C.实参与对应的形参应类型匹配,即实参的类型可以转化为形参类型; D.C++参数传递两种方式:传值与引用。 6、 判断下列哪些正确的常量_______________(多选), 7、 判断下列哪些是变量申明_______________(多选) A. "China" B. const int n = 10; C.
4、 int m = 5; D. 'a' E. char ch='a' F. int array[5] = {1, 2, 3, 4, 5}; G. char s[] = "Hello"; 8、 无论循环条件是否成了,循环至少执行一次的是 。 A. for语句 B. while语句 C. do...while语句 D. 以上都不是 9、 要判断char型变量m是否是数字字符,可以使用下列表达式 。 A.0 <= m && m <= 9 B.'0' <= m && m <= '9' C."0" <= m && m <= "9
5、" D.'0' <= m <= 'Z' 10、 从语法上,下列语句正确的是______。 A. int A = 'A'; int &B = A; B. int A = 65; int * p = A; C. int A = 088; int * p = A; D. int A = 0x65; int * p = *A; 11、 float m = 3 / 2 + 0.5; 运行后m的值为:____________ A. 3 B. 2 C. 1.5 D. 1 12、 以下两个函数原型,不可同时存在的是:_____________
6、A. float Add(float a, float b); float Add(float a, int b); B. double Add(float a, float b); float Add(float a, float b); C. float Add(float a, float b = 0); float Add(float a, int b, int c); D. double Add(double a, double b); float Add(float a, float b); 13、 以下对字符串的初始化中,无法得到一个符合C++规范的字符
7、串的是:_____________ A. char str[1024] = {'A', 'B', 'C'}; B. char str[3] = {'A', 'B', 'C'}; C. char str[1024] = "ABC"; D. char str[10] = "ABC"; 14、 从语法上,下列语句正确的是______。 A. int A[1024]; int &B = A; B. int A[1024]; int * p = A; C. int A[1024]; int ** p = A; D. int A[1024]; int p[1024] = A;
8、 二、填空题(每空1分,共5分) 1. 程序构造的基本方法是 和 。 2. 计算机的存储器有内存和外存之分。程序员编写的程序以文件形式保存在磁盘上,目的是 。执行程序时,程序代码必须放在内存中,原因是 。 3. CPU中的Cache主要解决计算机CPU和主存之间 问题。 第二部分 C++程序设计 三、单选题(每题1分,共20分) 1. C++中的实数可以写成不同表示形式,下列表示形式中不正确的是
9、 。 A. 54.32 B. 5.432E1 C. 1e5.432 D. .5432e2 2. 下面选项中能用作用户自定义的标识符是 。 A.what? B.-var C.3Xyz D.Float 4. 设有如下定义:int a=1,b=2,c=3,d=4,m=2,n=2;则执行表达式:(m=a>b)&&(n=c>d)后,m,n的值为 。 A.0,0 B.0,2 C.1,0 D.2,2 5. 设有说明: int x=1
10、0,f; float y=2.5;执行表达式f=x/(int)y后,则f、y的值分别为 。
A. 4,2 B. 5,2 C. 4,2.5 D. 5,2.5
6. 设有变量说明int i=3,j=5,m; 执行语句 m=(i++)-(--j);后,m的值是 。
A. -1 B. 0 C. -2 D. 不确定,与编译器有关
7. 为了使输出结果为4, 执行以下程序时给a和b输入的值应满足的条件是 。
#include
11、 s,t,a,b;
cin>>a>>b;
s=1,t=1;
if(a>0)s++;
if(a>b)t++;
else if(a==b)t+=s;
else t=2*s;
cout<
12、行一次 B. 死循环 C. 循环体不执行 D. 输出 ---- 9. 在下面的函数原型说明中,存在着语法错误的是 。 A. void BC(int a,int); B. int BD(int , int); C. double BE(int , int=5); D. int BF(int x ; int y); 10. 下列函数定义中,会出现编译错误的是 。 A. void max(int x,int y,int &z) B. int max(int x,y)
13、 { z=x>y?x:y; } { int z; z=x>y?x:y; return z; } B. int max(int x, int y) D. int max(int x,int y) { int z; { return (x>y?x:y); } z=x>y?x:y; return z; } 11. 设有函数定义:void
14、 f(int n,double x);若以下选项中的变量都已正确定义并赋值,则调用f函数的正确形式为 。 A. f(int i,double z); B. j=f(1,100); C. f(x,n); D. void f(n,x); 12. 有以下程序 int fun1(double a){return 2*a;} int fun2(double x,double y) {double a=fun1(x); double b=fun1(y);return a+b; } void main() { int w=fun2(1.4,2.2); r
15、eturn 1; } 程序执行后变量w中的值是 。 A. 7 B. 6 C. 6.0 D. 1 13. 设有函数定义int add(int x,int y){return x+y;},则其不正确的重载函数的定义是 。 A. void add(int x,int y) {return;} B. add(int x,int y,int z) {return x+y+z;} C. int add(doble x,double y) {return x+y;} D. double add(int x,double y) {return x+y
16、}
14. 下列程序在编译时有错,该错误所在行是 。
#include 17、cout< 18、nst int n2=10; int n4=10;
#define n3 10
则关于下列语句叙述正确的是 。
①int data1[n1]; ②int data2[n2]; ③int data3[n3]; ④int data4[n4];
A. 全部正确 B. ①②③均正确 C. ②③均正确 D. 均不正确
17. 假如有:int a= 68;
char c1=a;
cout< 19、D D. 语法错
18. 设有定义:int x[10]={0};int y[]={1,2,3};则下列叙述正确的是 。
A. 数组x的首元素为零,其他元素为随机数。组y的大小不确定;
B. 数组x的所有元素均为零。数组y的大小为3;
C. 数组x的所有元素均为零,数组y的大小不确定;
D. 数组x的首元素为零,其他元素为随机数。数组y的大小为3。
19. 设有定义int a[]={1,2,3,4,5,6,7,8,9,10};则下列表达式中,数值为4的表达式的个数为 。
①a[4] ②a[10]-6 ③a[3]+1 ④a[ 20、a[9]-a[6]]
A. 1 B. 2 C. 3 D.4
20. 以下能正确定义二维数组的是 。
A. int a[][4]; B. int a[][4]={2*4};
C. int a[][4]={}; D. int a[2][4]={{1},{2},{3,4},{5}};
四、阅读程序题(共41分)(注:答案请写在该题右边空白处。)
1.以下程序片段的输出结果为(4分)
#include
©2010-2025 宁波自信网络信息技术有限公司 版权所有
客服电话:4009-655-100 投诉/维权电话:18658249818