华中师范大学成人本科 学年第二学期
(A 卷) 闭卷
任课老师: 姓名:
)
成绩:
《c 语言程序设计基础》试卷
考试时间: 90 分钟 班级:
学号:
装
一、选择题: ( 每小题 2 分,共 30 分 )
1、由 C++源文件编译生成的目标文件的缺省扩展名为(
A、cpp A、2mn A、int
B B B
、exe C 、obj 、m123 、float
D )
D D
、a_1 、class )
D 、其中一个为假
) 、char
、lik
2、下列中, 不是 C++合法的标识符(
C 、kk C
3、C++中,基本数据类型不包括(
4、x 和 y 均为 bool 量,则 x| |y 为真的条件是(
A、它们均为真
A、4
B A、5
、2 B
B 、其中一个为真 C 、6
、1 C
D 、7
5、C++中,一个字符型数据在内存中占( 6、字符串常量” hello ”的长度是(
) D C
、 8
C 、它们均为假
) 字节。 、 8 订
7、以下语句, int i=2,j=2,m,n;m=i++;n=++j;
A、2,3,2,2 A、a+4
B
B 、2,3,3,3 、a+8
C
8、假定 a 为一个整型数组名,则元素 9、 x>0 || y==5
的相反表达式为(
则 m,n,i,j 的值分别为( )
)
、2,2,3,3 D 、3,3,2,2 D
、a+32
、 x>0 && y==5
a[4] 的字节地址为( 、a+16 )。
A、 x<=0 || y!=5 B A、void BC(int a , int) C、void BE(int , int=5)
线
、 x<=0 && y!=5 C B D
、 x>0 || y!=5 D )
10、在下面的函数声明中,存在着语法错误的是(
、void BD(int , int) 、int BF(int x ; int y) )。 C
、do 循环
D
、任一种循环 )
11、循环体至少被执行一次的语句为(
A、for 循环 A、int a=5;
B B
、while 循环
12、已知一函数中有下列变量定义,其中属于静态变量的是(
、static double b; 、auto short d;
C、register char c; D
...
...
《C 语言程序设计基础》第 1 页 共 6 页
...
...
13、do 语句能够改写为(
)语句。 A、复合
B
、if
C
、switch D
、 while
14、要使语句 : p=new int[10];
能够正常执行, p 应定义为(
)
A、int p; B
、int p[10];
C 、int *p;
D 、int (*p)[10];
15、编写 C++程序一般需经过的几个步骤依次是
(
)
。
A、编译、编辑、连接、调试 B 、编辑、编译、连接、调试 C、编译、调试、编辑、连接 D
、编辑、调试、编辑、连接
二、填空题(每小题 1 分, 共 10 分)
1、使用 const 语句定义一个标识符常量时,则必须对它同时进行 。
2、用于输出表达式值的标准输出流对象是
_________,用于从键盘上为变量输入值的标准输入流对象 ______。
3、在每个 C++程序中都必须包含有这样一个函数,该函数的函数名为 。4、在 C++语言中,用转义字符序列
或操纵符
表示输出一个换行符。
5、 假定一个枚举型的定义为” enum RB{ab,ac=3,ad,ae}x=ad ; ”,则 x 的值为 6、 设 px 是指向一个类动态对象的指针变量,则执行“ delete px ;”语句时,将自动调用该类的
。
7、关系表达式 x+y>5 的相反表达式为
8、 空串的长度为 ___,存储它需要占用 ___个字节。 9、表达式: x=625,i=(x>100?10:100) 的值是
。
10、C++语言中的每条基本语句以
作为结束符, 每条复合语句以
为结束符。
三、写出下列每个函数的功能(每小题 4 分, 共 20 分) 1、#include bool SG(int x) { / /x 为大于等于 2 的整数 int a=int(sqrt(x)) ;/ / 取 x 的平方根 int i=2 ; while(i<=a) { if(x%i= =0) break ; i+ + ;} if(i<=a)return 0 ;else return 1 ;} 《C 语言程序设计基础》第 2 页 共 6 页 ... 。作 ... 2、#include if(a>=b && a>=c) return a; if(b>=a && b>=c) return b; if(c>=a && c>=b) return c;} 3、#include int a=int(sqrt(x)); int i=2; while(i<=a){ if(x%i==0) break; i++;} if (i<=a) return 0; else return 1;} 4、int SC(int a,int b,int c) { if(a>=b && a>=c) return a ; if(b>=a && b>=c) return b ; if(c>=a && c>=b) return c ;} 四、阅读下列程序 , 在 处填入适当内容,使程序完整(每个空 1 分, 共 10 分,)1 、下面函数是求两个整型参数 a 和 b 的最小公倍数。 int f2(int a, int b) { int i=2, p=1; do { while(a%i==0 && ___(1)___) { p*=i; a/=i; b/=i; } ___(2)___; 《C 语言程序设计基础》第 3 页 共 6 页 ... ... }while(a>=i && ___(3)___); return p*a*b; } 2、打印出 2 至 99 之间的所有素数 ( 即不能被任何数整除的数 )。 #include int i,n; for(n=2; ___(1)___; n++) { int temp=int(sqrt(n)); // for(i=2; ___(2)___; i++) if(n%i==0) ___(3)___; if(i>temp) cout< 3、 采用辗转相除法求出两个整数的最大公约数。