《C语言程序设计基础》 试卷A及参考答案

华中师范大学成人本科 学年第二学期

《c语言程序设计基础》试卷 (A卷)

装 考试时间:90分钟 闭卷 任课老师:

班级: 学号: 姓名: 成绩:

一、选择题:(每小题2分,共30分)

1、由C++源文件编译生成的目标文件的缺省扩展名为( )

A、cpp B、exe C、obj D、lik 2、下列中, 不是C++合法的标识符( ) A、2mn B、m123 C、kk D、a_1 3、C++中,基本数据类型不包括( )

订 A、int B、float C、char D、class 4、x和y均为bool量,则x| |y为真的条件是( )

A、它们均为真 B、其中一个为真 C、它们均为假 D、其中一个为假 5、C++中,一个字符型数据在内存中占( ) 字节。 A、4 B、2 C、1 D、8 6、字符串常量”hello”的长度是( ) A、5 B、6 C、7 D、8

线 7、以下语句,int i=2,j=2,m,n;m=i++;n=++j;则m,n,i,j的值分别为( ) A、2,3,2,2 B、2,3,3,3 C、2,2,3,3 D、3,3,2,2 8、假定a为一个整型数组名,则元素a[4]的字节地址为( ) A、a+4 B、a+8 C、a+16 D、a+32 9、 x>0 || y==5的相反表达式为( )。

A、 x<=0 || y!=5 B、 x<=0 && y!=5 C、 x>0 || y!=5 D、 x>0 && y==5 10、在下面的函数声明中,存在着语法错误的是( )

A、void BC(int a , int) B、void BD(int , int)

C、void BE(int , int=5) D、int BF(int x ; int y) 11、循环体至少被执行一次的语句为( )。

A、for循环 B、while循环 C、do循环 D、任一种循环 12、已知一函数中有下列变量定义,其中属于静态变量的是( ) A、int a=5; B、static double b;

C、register char c; D、auto short d; 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;} 2、#include 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;}

3、#include bool SG(int x){

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)___;

}while(a>=i && ___(3)___); return p*a*b; }

2、打印出2至99之间的所有素数(即不能被任何数整除的数)。 #include #include void main() {

int i,n;

for(n=2; ___(1)___; n++) {

int temp=int(sqrt(n)); //求出n的平方根并取整 for(i=2; ___(2)___; i++)

if(n%i==0) ___(3)___;

if(i>temp) cout<

cout<<'\\n';}

3、 采用辗转相除法求出两个整数的最大公约数。 #include void main() {

int a,b;

cout<<\请输入两个正整数:\ cin>>a>>b;

while(a<=0 || __(1)___) {cout<<\重新输入:\ while(b) {

int__(2)__;

r=a%b;

___(3)___; ___(4)___; //分别修改a和b的值}

cout<

五、写出下列程序的运行结果(每小题5分,共30分) 1、main ( )

{ int a=4,x=5,b=8; fun(b,6);

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4