C语言程序设计形成性考核册参考答案.docx

上传人:b****5 文档编号:6411035 上传时间:2023-01-06 格式:DOCX 页数:28 大小:29.66KB
下载 相关 举报
C语言程序设计形成性考核册参考答案.docx_第1页
第1页 / 共28页
C语言程序设计形成性考核册参考答案.docx_第2页
第2页 / 共28页
C语言程序设计形成性考核册参考答案.docx_第3页
第3页 / 共28页
C语言程序设计形成性考核册参考答案.docx_第4页
第4页 / 共28页
C语言程序设计形成性考核册参考答案.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言程序设计形成性考核册参考答案.docx

《C语言程序设计形成性考核册参考答案.docx》由会员分享,可在线阅读,更多相关《C语言程序设计形成性考核册参考答案.docx(28页珍藏版)》请在冰豆网上搜索。

C语言程序设计形成性考核册参考答案.docx

C语言程序设计形成性考核册参考答案

 

C++语言程序设计作业

(一)

一、单项选择题

1. C++源程序文件的默认扩展名为(A)。

A. cppB. exeC. objD. lik

2. 由 C++源程序文件编译而成的目标文件的默认扩展名为(  C  )。

A. cppB. exeC. objD. lik

3. 由 C++目标文件连接而成的可执行文件的默认扩展名为(B)。

A. cppB. exeC. objD. lik

4. C++程序从上机到得到结果的几个操作步骤依次是(B  )。

A. 编译、编辑、连接、运行

B. 编辑、编译、连接、运行

C. 编译、运行、编辑、连接

D. 编辑、运行、编辑、连接

5. 以下标识符中不全是保留字的是(  B  )。

A. caseforint

B. default  thenwhile

C. boolclasslong

D. gotoreturn  char

6. 能作为 C++程序的基本单位是(  C  )。

A. 字符B. 语句C. 函数D. 源程序文件

7. 程序中主函数的名字为(A )。

A. mainB. MAINC. MainD. 任意标识符

8. C++程序的基本模块为(  D  )。

A. 表达式B. 标识符C. 语句D. 函数

9. 可用作 C++语言用户标识符的一组标识符是(  B  )。

A. voiddefine+WORD

B. a3_b3_123YN

C. for-abcCase

D. 2aDOsizeof

10. 存储以下数据,占用存储字节最多的是( D)。

A. 0B. ‘0’C. “0”D. 0.0

11. 程序运行中需要从键盘上输入多于一个数据时,各数据之间应使用( D)符号作

为分隔符。

A. 空格或逗号B. 逗号或回车C. 逗号或分号D. 空格或回车

12. 设”int a=12;”,则执行完语句”a+=a*a;”后,a 的值是( C)。

A. 12B. 144C. 156D. 288

13. 假设在程序中 a、b、c 均被定义成整型,所赋的值都大于 1,则下列能正确表示

代数式

1

abc

的表达式是( D   )。

A. 1.0/a*b*cB. 1/(a*b*c)C. 1/a/b/(float)cD. 1.0/a/b/c

14. 设”int a=15,b=26;”,则”cout<<(a,b);”的输出结果是( D)。

A. 15B. 26,15C. 15,26D. 26

15. 设 x 是一个 bool 型的逻辑量,y 的值为 10,则表达式 x && y 的值为( C)。

 

1

 

A. 1B. 0C. 与 x 值相同D. 与 x 值相反

16. x>0 && x<=10 的相反表达式为(  A  )。

A. x<=0 || x>10B. x<=0 && x>10

C. x<=0 || x<=10D. x>0 && x>10

17. x>0 || y==5 的相反表达式为(  B  )。

A. x<=0 || y!

=5B. x<=0 && y!

=5

C. x>0 || y!

=5D. x>0 && y==5

18.设 x 和 y 均为 bool 量,则 x && y 为真的条件是(  A  )。

A. 它们均为真B. 其中一个为真

C. 它们均为假D. 其中一个为假

19.设 x 和 y 均为 bool 量,则 x || y 为假的条件是( C)。

A. 它们均为真B. 其中一个为真

C. 它们均为假D. 其中一个为假

20. 字符串”a+b=12\n”的长度为( B)。

A. 6B. 7C. 8D. 9

 

二、填空题

1. C++语言是在_____C____语言的基础上发展起来的。

2. C++语言的编译单位是扩展名为___.CPP_______的____程序______文件。

3. 行尾使用注释的开始标记符为__//________。

4. 多行注释的开始标记符和结束标记符分别为____/*______和____*/______。

5. 用于输出表达式值的标准输出流对象是____cout_____。

6. 用于从键盘上为变量输入值的标准输入流对象是____cin____。

7. 一个完整程序中必须有一个名为____main ____的函数。

8. 一个函数的函数体就是一条___复合______语句。

9. 当执行 cin 语句时,从键盘上输入每个数据后必须接着输入一个___空白_____符,

然后才能继续输入下一个数据。

10. 在 C++程序中包含一个头文件或程序文件的预编译命令为____#include_____。

11. 程序中的预处理命令是指以__#____字符开头的命令。

12. 一条表达式语句必须以__分号____作为结束符。

13. 在#include 命令中所包含的头文件,可以是系统定义的头文件,也可以是__用户

______定义的头文件。

14. 使用#include 命令可以包含一个头文件,也可以包含一个___程序___文件。

15.一个函数定义由___函数头_____和____函数体____两部分组成。

16.若一个函数的定义处于调用它的函数之前,则在程序开始可以省去该函数的_原型

_____语句。

17.C++头文件和源程序文件的扩展名分别为__ .h ____和___.cpp ___。

18.程序文件的编译错误分为____警告(warning)____和__致命(error)______两类。

19.当使用__ void _____保留字作为函数类型时,该函数不返回任何值。

20.当函数参数表用___ void ___保留字表示时,则表示该参数表为空。

21.从一条函数原型语句“intfun1(void);”可知,该函数的返回类型为__int

____,该函数带有___0___个参数。

 

2

 

22.当执行 cout 语句输出 endl 数据项时,将使 C++显示输出屏幕上的光标从当前位

置移动到___下一行_____的开始位置。

23. 假定 x=5,y=6,则表达式 x++*++y 的值为___35_______。

24. 假定 x=5,y=6,则表达式 x--*--y 的值为___25_______。

25.假定 x=5,y=6,则执行表达式 y*=x++计算后,x 和 y 的值分别为____6______和

______30____。

26.假定 x=5,y=6,则执行表达式 y+=x--计算后,x 和 y 的值分别为____4______和

_____11_____。

27. C++常数 0x145 对应的十进制值为___325_______。

28. C++常数 0345 对应的十进制值为____2______。

29. 十进制常数 245 对应的十六进制的 C++表示为___0xf5_______。

30. 十进制常数 245 对应的八进制的 C++表示为____0365______。

31. signed char 类型的值域范围是___-128_____至_____+127_____之间的整数。

32. int 和 float 类型的数据分别占用_____4____和_____4_____个字节。

33. float 和 double 类型的数据分别占用___4______和____8____个字节。

34. bool 和 char 类型的数据分别占用____1_____和____1____个字节。

35. unsigned short int 和 int 类型的长度分别为____2_____和___4_____。

36. 字符串”This\’s a book.\n”的长度为____15______。

37. 字符串”\nThis\’s a pen\n\n”的长度为___15_______。

38. 在 C++中存储字符串”abcdef”至少需要____7____个字节。

39. 在 C++中存储字符串”a+b=c”至少需要_____6___个字节。

40.假定 x 和 y 为整型,其值分别为 16 和 5,则 x%y 和 x/y 的值分别为___1_______

和____3______。

 

三、写出程序运行结果

1.  #include

#include

void main()

{

int a[8]={25,48,32,85,64,18,48,29};

int max,min;

max=min=a[0];

for(int i=0; i<8; i++) {

if(max>a[i]) max=a[i];

if(min

}

cout<<"max:

"<

cout<<"min:

"<

}

解:

max:

85min:

18

2.  #include

void main()

{

 

3

 

int a,b;

for(a=1,b=2; b<50;) {

cout<

a=a+b;

b=a+b;

}

cout<

cout<

}

解:

1 2 3 5 8 13 21 34 55 89

3.  #include

const int M=3, N=4;

void main()

{

int i,j,s=0;

for(i=1;i<=M;i++)

for(j=1;j<=N;j++)

s+=i*j;

cout<<”s=”<

}

解:

s=60

4. #include

void main()

{

int a=2,b=5,c=0;

if(a+b>10) c=a*b; else c=3*a+b;

if(c<=20) cout<

cout<

a=a+b; b=a+b;c+=a+b;

cout<<"a,b,c="<

}

解:

121a,b,c=7,12,30

5. #include

void main()

{

int x=5;

switch(2*x-3) {

case 4:

 cout<

case 7:

 cout<<2*x+1<<’ ’;

case 10:

 cout<<3*x-1<<’ ’; break;

default:

 cout<<"default"<

 

4

 

}

cout<<"switch end."<

}

解:

11 14 switch end

6. #include

#include

int a[4]={36,-5,73,8};

void main()

{

int i,y;

for(i=0; i<4; i++) {

if(a[i]<0) y=1;

else if(a[i]<10) y= a[i]* a[i]+3;

else if(a[i]<60) y=4*a[i]-5;

else y=int(sqrt(a[i]));  // sqrt(x)为取 x 的平方根函数

cout<

}

}

解:

36 139 -5 1 73 8 8 67

四、指出程序或函数的功能

1.  #include

void main()

{

int i,s=0;

for(i=2;i<=30;i+=2) s+=i*i;

cout<<"s="<

}

解:

计算并输出 22+42+62+...+302 的值

2.  #include

#include

#include

void main()

{

int i=10,a;

while(i>0) {

a=rand()%90+10;

int j, k=int(sqrt(a)+1e-5);  //sqrt(x)为求 x 的平方根函数

for(j=2; j<=k; j++)

if(a%j==0) break;

if(j>k) {cout<

}

 

5

 

}

解:

随机产生出 10 个 10 至 99 之间的素数并显示出来。

3.  void trans(int x)

{

char a[10];

int i=0,rem;

do {

rem=x%16;

x=x/16;

if(rem<10) a[i]=48+rem;  //’0’字符的 ASCII 码为 48

else a[i]=65+rem;//’A’字符的 ASCII 码为 65

i++;

}while(x!

=0);

while(i>0) cout<

cout<

}

解:

此函数用于把十进制整数 x 转换为十六进制数字串输出。

 

4. #include

double f1(int n) {

double sign=1,s=1;

for(int i=2;i<=n; i++) {

s+=sign/(i*i);

sign*=-1;

}

return s;

}

void main()

{

int a;

cin>>a;

cout<

}

解:

计算并输出 1+ ∑

a

i=2

(-1)i

i 2

的值,其中 a 的值由键盘输入。

 

5. double f1(double a, double b, char op) {

switch(op) {

case ’+’:

 return a+b;

case ’-’:

 return a-b;

case ’*’:

 return a*b;

 

6

 

case ’/’:

 if(b==0) {

cout<<"divided by 0!

"<

exit

(1);

}

else return a/b;

default:

 cout<<"operator error!

"<

exit

(1);

}

}

解:

以参数 a 和 b 为运算对象,以参数 op 为四则算数运算符,求出运算结果并返回。

6. #include

#include

void main()

{

int x,y;

cin>>x;

y=int(sqrt(x));  //sqrt(x)为求 x 的算术平方根

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

if(x%i==0) cout<<”x=”<

}

解:

把从键盘上输入的一个整数 X 分解为所有可能的每两个因子之积。

 

7

 

C++语言程序设计作业

(二)

一、单项选择题

1. 函数调用不可以( D)。

A. 出现在一个表达式中

B. 出现在执行语句中

C. 作为一个函数的实参

D. 作为一个函数的形参

2. 以下正确的描述是(  B  )。

A. 函数的定义可以嵌套,函数的调用不可以嵌套

B. 函数的定义不可以嵌套,函数的调用可以嵌套

C. 函数的定义和函数的调用均可以嵌套

D. 函数的定义和函数的调用均不可以嵌套

3. 若用数组名作为函数调用的实参,传递给形参的是(  A  )。

A. 数组的首地址B. 数组中第一个元素的值

C. 数组全部元素的值D. 数组元素的个数

4. 以下错误的描述是(  D  )。

A. 被调用函数中可以不用 return 语句

B. 被调用函数中可以用多个 return 语句

C. 被调用函数中,如果有返回值,就一定要有 return 语句

D. 被调用函数中,一个 return 语句可返回多个值给调用函数

5. 以下正确的描述是(  C  )。

A. 不允许设置参数的默认值

B. 设置参数的默认值只能在定义函数时设置

C. 设置参数的默认值时,应该设置右边的参数

D. 设置参数的默认值时,应该全部参数都设置

6. 采用重载函数的目的是(  D  )。

A. 实现共享B. 减少空间

C. 提高速度D. 使用方便,提高可读性

7. 将两个字符串连接起来组成一个字符串时,选用( C)函数。

A. strlen()B. strcap()C. strcat()D. strcmp()

8. 以下叙述中正确的是( B)。

A. 使用#define 可以为常量定义一个名字,该名字在程序中可以再赋另外的值

B. 使用 const 定义的常量名有类型之分,其值在程序运行时是不可改变的

C. 在程序中使用内联函数使程序的可读性变差

D. 在定义函数时可以在形参表的任何位置给出缺省形参值

9. 下面的标识符中,(  C  )是文件级作用域。

A. 函数形参  B.语句标号  C.外部静态类标识符  D.自动类标识符

10. 以下叙述不正确的是(  D  )。

A. 宏替换不占用运行时间B. 宏名无类型

C. 宏替换只是字符替换D. 宏名必须用大写字母表示

 

8

 

二、填空题

1. 含随机函数的表达式 rand()%20 的值在__0___至__19____区间内。

2.  在 switch 语句中,每个语句标号所含关键字 case 后面的表达式必须是整型_常量

_。

3. 在 if 语句中,每个 else 关键字与它前面同层次并且最接近的___if_____关键字相

配套。

4.作为语句标号使用的 C++保留字 case 和 default 只能用于__switch______语句的

定义体中。

5.  执行 switch 语句时,在进行作为条件的表达式求值后,将从某个匹配的标号位置

起向下执行,当碰到下一个标号位置时___不停止_____执行。

6.若 while 循环的“头”为“while(i++<=10)”,并且 i 的初值为 0,同时在循环体

中不会修改 i 的值,则循环体将被重复执行__11____次后正常结束。

7.若 do 循环的“尾”为“while(++i<10)”,并且 i 的初值为 0,同时在循环体中不

会修改 i 的值,则循环体将被重复执行__10____次后正常结束。

8. 当在程序中执行到__break_语句时,将结束本层循环类语句或 switch 语句的执行。

9. 当在程序中执行到_continue__语句时,将结束所在循环语句中循环体的一次执行。

10. 在程序中执行到_return__语句时,将结束所在函数的执行过程,返回到调用该函

数的位置。

三、写出程序运行结果

1. #include

const int T=6;

void main()

{

int i,j;

for(i=1;i<=T;i+=2)

for(j=2;j<=T;j+=2) {

if(i+j

else cout<<’*’;

}

}

解:

++*+*****

2. #include

void main()

{

int a,b,c=0;

for(a=1;a<4;a++)

for(b=6;b>1;b-=2) {

if((a+b)%2==0) c+=a+b; else c+=a*b;

if(b==2) cout<

}

}

 

9

 

解:

1 2 12

2 2 30

3 2 66

3. #include

const int B=2;

void main()

{

int p=1,s=1;

while(s<50) {

p*=B;

s+=p;

}

cout<<"s="<

}

解:

s=63

4. #include

void main()

{

int x=24,y=88;

int i=2,p=1;

do {

while(x%i==0 && y%i==0) {

p*=i;

x/=i;

y/=i;

}

i++;

}while(x>=i && y>=i);

cout<

}

解:

264

5. #include

const int N=3;

void main()

{

int a[N][N]={{7,-5,3},{2,8,-6},{1,-4,-2}};

int b[N][N]={{3,6,-9},{2,-8,3},{5,-2,-7}};

int i,j,c[N][N];

for(i=0;i

for(j=0;j

c[i][j]=a[i][j]+b[i][j];

for(i=0;i

for(j=0;j

 

10

 

cout<

cout<

}

}

解:

10  1-6

40  -3

6  -6  -9

6. #include

int a=5;

void main() {

int b=a+20;

int a=10;

cout<

{int a=0,b=0;

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

a+=i; b+=a;

}

cout<

}

cout<

}

解:

 10 25

15 35

10 25

四、指出程序或函数的功能

1. void f2(double a[], int n)

{

int i; double sum=0;

for(i=0;i

sum/=n;

for(i=0;i

if(a[i]>=sum) cout<

cout<

}

解:

显示输出数组 a[n]中大于等于平均值的所有元素值。

2. void f4(char a[M][N])

{

int c1,c2,c3;

c1=c2=c3=0;

for(int i=0;i

if(strlen(a[i])<5) c1++;

else if(strlen(a[i])>=5 && strlen(a[i])<15) c2++;

else c3++;

cout<

 

11

 

}

解:

对于二维字符数组 a 中保存的 M 个字符串,分别统计并输出其长度小于 5、大于等于

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1