首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事
您的当前位置:首页正文

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

来源:画鸵萌宠网
...

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

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

《C 语言程序设计基础》第

3 页 共 6 页

...

...

}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)); // for(i=2; ___(2)___; i++)

if(n%i==0) ___(3)___; if(i>temp) 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)___; // cout<分别修改 a 和 b 的值}

输出最大公约数 }

重新输入 :\"; cin>>a>>b;}

请输入两个正整数 :\";

五、写出下列程序的运行结果(每小题 1、main ( ) { int a=4,x=5,b=8; fun(b,6);

printf(\"%d,%d,%d\\n\

5 分, 共 30 分)

《C 语言程序设计基础》第

...

4 页 共 6 页

...

fun (int a,int b) { int x=3;

printf(\"%d,%d,%d\\n\运行结果 :

2、#include

void SB(char ch){

switch(ch){ case 'A':case 'a':

cout<<\"well!\";break; case 'B':case 'b':

cout<<\"good!\";break; case 'C':case 'c':

cout<<\"pass!\";break; default:

cout<<\"bad!\";break;}

}

void main(){

char a1='b',a2='C',a3='f'; SB(a1);SB(a2);SB('A'); cout<3、#include

#include、h>

double SD(int a,int b,char op){

double x; switch(op){

case '+':x=double(a)+b;break; case '-':x=double(a)-b;break; case '*':x=double(a)*b;break; case '/': if (b) x=double(a)/b;

else exit(1); break;

《C 语言程序设计基础》第...

页 共 6 页

5 ...

default:exit(1);} return x;} void main(){

int x=20,y=12; cout<4、#include

void main(){

int s=0;

for(int i=1;i<6;i++)

s+=i*i;

cout<<\"s=\"<5、 main( )

{ int x=7,y; if(x<5) y=x;

else if(x<10) y=2*x+1; else y=3*x-1; printf( “%d\\n”,y);}

运行结果 :

6、 main( )

{int i,j;

for(i=1;i<=3;i++) {for(j=1;j<=i;j++) printf( “%d”,j);

《C 语言程序设计基础》第...

页 共 6 页

6 ...

printf( “\\n”);} }

运行结果 :

...

C 语言程序设计基础》第7 页 共 6 页

...

以下为本试卷的参考答案

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

1、( C ) 2 、( D ) 3 、( D ) 4 、( A ) 5 、( C ) 6、( B )7 、( A ) 8 、( A ) 9 、( B ) 10 、( B ) 11、( C ) 12 、( B ) 13 、( D ) 14 、( C ) 15 、( B ) 二、填空题( 10 分,每小题 1 分)

1、声明 2 、 cout 、cin 3 、 main 4 、 ‘ n’,endl 5

、 4 6、动态内存

7 、x+y<5||x+y==5 8

、 0 1

9

、10

10

、三、写出下列每个函数的功能( 20 分,每小题 4 分)

1.判断整数 x 是否为质数,若为质数返回 true ,若不是则返回 false 。

2.求三个数中的最大值

3.求素数,当 x 为素数,则返回 1(真),否则返回 0(假)。 4.返回 a、b、c 三个数中的最大数。

四、阅读下列程序 , 在 处填入适当内容,使程序完整( 10 分,每个空 1 分)1、(1) b%i==0 (2) i++ ( 或++i) (3) b>=i 2、(1) n<=99 (2) i<=temp (3) break

3、(1) b<=0 (2) r (3)a=b

(4) b=r

五、写出下列程序的运行结果(

30 分,每小题 5 分)

1.运行结果: 8,6,3 4,8,5

2.good!pass!bad!well! 3.8 240 3 、2 4.s=55

5.运行结果: 15 6.运行结果:

1 1 2 1 2 3

《C 语言程序设计基础》第

8 页 共 6 页

...

{}

因篇幅问题不能全部显示,请点此查看更多更全内容