全国计算机等级考试二级C语言(山东联盟)智慧树知到期末考试答案2024年_第1页
全国计算机等级考试二级C语言(山东联盟)智慧树知到期末考试答案2024年_第2页
免费预览已结束,剩余3页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

全国计算机等级考试二级C语言(山东联盟)智慧树知到期末考试答案2024年全国计算机等级考试二级C语言(山东联盟)有以下程序#include

main(){

int

i=1,

j=3;

printf("%d,"

,i++

);

{

int

i=0;

i+=j*2;

printf("%d,%d,"

,i,j

);

}

printf("%d,%d"

,i,j

);}程序运行后的输出结果是(

)。

A:1,6,3,2,3

B:1,6,3,1,3

C:1,6,3,6,3D:1,7,3,2,3答案:1,6,3,2,3以下选项中,合法的C语言实数是(

)。

A:E09B:.2e1C:1.23ED:3.1e3.1答案:.2e1有如下程序#include

main()

{

char

ch

=

'M';

while

(ch

!=

'K')

{

ch

--;

putchar(ch);

}

printf("");}程序运行后的输出结果是(

A:MMB:OPC:LKD:MN答案:LK有以下程序#include

main(

){

int

a,b;

for

(a=0;

a<3;

a++)

{

scanf("%d",

&b);

switch(b)

{

default:

printf("%d,",

b++);

case

1:

printf("%d,",

b++);

case

2:

printf("%d,",

b++);

}

}}程序运行时输入:1

2

3,则输出结果是(

A:1,2,3,B:1,2,2,3,4,5,C:1,1,1,2,2,3D:1,2,3,2,3,3,答案:1,2,2,3,4,5有以下程序#include

main(){

int

a=0,

b=0;

for(

;a<5;

a++

)

{

if

(a%2==0)

continue;

b+=a;

}

printf("%d

",

b);}程序的运行结果是()

A:4B:10C:0D:15答案:4有如下程序#include

#include

struct

S{

char

name[10];};void

change(struct

S

*data,

int

value){

strcpy(data->name,

"****");

value

=

13;}main()

{

struct

S

input;

int

num

=

4;

strcpy(,

"THIS");

change(&input,

num);

printf("%s,%d",

,

num);}程序运行后的输出结果是()

A:THIS,4B:****,13C:THIS,13D:****,4答案:****,4有以下程序intmain(){

int

a=1,b=3,c=5;int

*p1=&a,*p2=&b,*p=&c;*p=*p1*(*p2);printf("%d\n",c);return0;}执行后的输出结果是________。

A:1B:3C:4D:2答案:3关于C语言的变量,以下叙述中错误的是(

A:变量所占的存储单元地址可以随时改变B:所谓变量是指在程序运行过程中其值可以被改变的量C:程序中用到的所有变量都必须先定义后才能使用D:由三条下划线构成的符号名是合法的变量名答案:变量所占的存储单元地址可以随时改变有以下程序

#include

main()

{

double

x=2.0,

y;

if(

x<0.0

)

y=0.0;

else

if(

(x<5.0)

&&

(!x)

)

y=1.0

/

(

x+2.0

);

else

if(

x<10.0

)

y=1.0

/

x;

else

y=10.0;

printf("

%f

",

y

);

}程序运行后的输出结果是(

)

A:1.000000B:0.250000C:0.000000D:0.500000答案:0.500000以下选项中,与n=i++

完全等价的表达式是(

A:n=i,i=i+1B:n=++iC:i=i+1,n=iD:n+=i+1

答案:n=i,i=i+1下面关于编译预处理的命令行中,正确的是()。

A:#defineintINTB:##defineeps0.001C:#defineE2.88D:##DEFINETRUE答案:defineE2.88设变量n已正确定义并赋值,以下不能实现自然数1到n累加求和的程序段是()。

A:intsum=1,i=1;while(i答案:int有以下程序

#include

main()

{

char

x=2,

y=2,

z;

z=(

y<<1

)&(

x>>1

);

printf(

"%d",z

);

}程序的输出结果是(

)。

A:4B:0C:8D:1答案:0设有两行定义语句:

int

scanf;

float

case;

则以下叙述正确的是(

A:两行定义语句都合法B:第1行语句不合法C:两行定义语句都不合法D:第2行语句不合法答案:第2行语句不合法有以下程序

#include

void

fac2(int

);

void

fac1(int

n)

{

printf("*");

if(n>0)

fac2(n-1);

}

void

fac2(int

n)

{

printf("#");

if(n>0)

fac2(--n);

}

main()

{

fac1(3);

}

程序的运行结果是(

)。

A:*##*B:*###

C:*#*#D:**##答案:*###有以下程序#include

int

fun(intA){

int

b=0;

static

int

c=3;

a

=(

c++,b++);

return

(

a

);}main(){

int

a

=

2,

i,

k;

for(

i=0;

i<2;

i++

)

k

=

fun(a++);

printf(

"%d",k

);}程序的输出结果是(

)。

A:2B:1C:4D:0答案:0以下程序用来统计文件中字符的个数(函数feof用以检查文件是否结束,结束时返回非零)

#include

intmain()

{

FILE

*fp;

long

num=0;

fp=fopen("fname.dat","r");

while(

__________

){

fgetc(fp);

num++;}

printf("num=%d",num);

fclose(

fp

);

return0;

}下面选项中,填入横线处不能得到正确结果的是(

)。

A:

feof(fp)

B:

!feof(fp)C:feof(fp)==0D:feof(fp)==NULL

答案:feof(fp)有如下程序#include

int

sum_mod(int

a,

int

b){

return

a

+

b

%

2;}main(

)

{

int

i;

for

(i=0;

i<5;

i++)

printf("%d",

sum_mod(i,

4));

printf("");}程序运行后的输出结果是(

)。

A:45678B:01234C:12345D:43210答案:01234关于C语言的变量名,以下叙述正确的是(

A:变量名必须以字母开头B:变量名不可以与关键字同名C:变量名是没有长度限制的D:变量名不可以与预定义标识符同名答案:变量名不可以与关键字同名若有定义语句:int

year=2009,

*p=&year;以下不能使变量year中的值增至2010的语句是_______.

A:*p+=1;B:(*p)++;C:++(*p);

D:*p++;

答案:*p++设a、b、c是已定义的整型变量且已正确赋初值,以下赋值语句中,错误的是(

)。

A:a=(b=3)=1;B:a=0+(b=c=0);C:a=b=c+0;D:a=(b=0)+c+0;答案:a=(b=3)=1;有以下程序#include

int

a=2;int

f(){

static

int

n=0;

int

m=0;

n++;

a++;

m++;

return

n+m+a;}main(){

int

k;

for

(k=0;

k<3;

k++)

printf("%d,",

f(

));

printf("");}程序的运行结果是(

)。

A:

5,6,7,

B:5,7,9,

C:5,5,5,D:5,8,11,答案:5,7,9,有以下程序

#include

main()

{

int

sum,

pad,

pAd;

sum

=

pad

=

5;

pAd

=

++sum,

pAd++,

++pad;

printf("%d",

pad

);}程序的输出结果是(

A:8B:6C:5D:7答案:6若有定义:int

a,

b,

c;

以下选项中的赋值语句正确的是(

A:a

=

(b

==

c)

=

1;B:a

+

b

=

c;C:a

=

(b

=

c)

+

1;

D:(a

=

b)

=

c

=

1;答案:a若有以下程序

#include

typedef

struct

stu

{

char

name[10],

gender;

int

score;

}

STU;

void

f(STU

a,

STUB)

{

b

=

a;

printf(

"%s,%c,%d,",

,

b.gender,

b.score

);}

main()

{

STU

a={"Zhao",

'm',

290},

b={"Qian",

'f',

350};

f(a,b);

printf("%s,%c,%d",

,

b.gender,

b.score);}则程序的输出结果是()

A:Zhao,m,290,Zhao,f,350B:Qian,f,350,Qian,f,350C:Zhao,m,290,Qian,f,350D:Zhao,m,290,

Zhao,m,290答案:Zhao,m,290,Qian,f,350若有定义语句:int

a[10]={0,1,2,3,4,5,6,7,8,9},*p=a;,以下选项中错误引用a数组元素的是_______.(其中

0≤i<10)

A:a[

p-a

]

B:*(

&a[i]

)C:

*(*(a+i))

D:p[i]

答案:*(*(a+i))有以下程序#include

void

func(

int

n

){

static

int

num

=

1;

num

+=

n;

printf("%d

",

num);}main(){

func(3);

func(4);

printf("");

}程序运行后的输出是(

)。

A:3

5B:4

8C:3

4D:

4

5

答案:8若有定义:char

c;

int

d;

程序运行时输入:c=1,d=2,能把字符1输入给变量c、整数2输入给变量d的输入语句是(

)

A:

scanf("c=%d

d=%d",

&c,&d);B:scanf("c=%c

d=%d",

&c,&d);C:scanf("c=%c,d=%d",

&c,&d);D:scanf("c=%d,d=%d",

&c,&d);答案:scanf(“c=%c,d=%d”,有以下程序

#include

struct

STU{

char

name[9];

char

sex;

int

score[2];

};

void

f(

struct

STU

a[]

)

{

struct

STU

b

=

{"Zhao",

'm',

85,

90};

a[1]

=

b;

}

main()

{

struct

STU

c[2]={

{"Qian",

'f',

95,

92},

{"Sun",

'm',

98,

99}

};

f(c);

printf(

"%s,%c,%d,%d,",

c[0].name,

c[0].sex,

c[0].score[0],

c[0].score[1]

);

printf(

"%s,%c,%d,%d",

c[1].name,

c[1].sex,

c[1].score[0],

c[1].score[1]

);

}程序运行后输出结果是()

A:Zhao,m,85,90,Qian,f,95,92B:Qian,f,95,92,Sun,m,98,99C:Qian,f,95,92,Zhao,m,85,90D:Zhao,m,85,90,Sun,m,98,99答案:Qian,f,95,92,Zhao,m,85,90若有以下程序

#include

#define

S(x)

x*x

#define

T(x)

S(x)*S(x)

main()

{

int

k=5,

j=2;

printf("%d,%d",

S(k+j),T(k+j));

}则程序的输出结果是()

A:17,37B:49,2401C:17,289D:49,289答案:17,37设有定义:int

a,b;

float

x,y;

,则以下选项中对语句所作的注释叙述错误的是(

)

A:scanf("Input:%d%d",&a,&b);

/*

格式串中允许加入格式符以外的字符串

*/B:

scanf("%d%d%f",&a,&b);

/*

多余的格式符%f完全不起作用

*/C:scanf("%d%f%d",&a,&b,&x);

/*

输入项与格式符类型不匹配,变量b和x得不到正确的输入数据

*/D:

scanf("%d%d",&a,&b,&x);

/*

多余的输入项不能获得输入数据

*/答案:AI参考:正确选项是B:scanf("%d%d%f",&a,&b);

/*多余的格式符%f完全不起作用*/。\n\n解释如下:\n\n首先,我们来看下题目的输入和输出:\n\n\n```bash\nint&a,b;\nfloatx,y;\nscanf("%d%d%f",&a,&b);\n```\n这里的scanf函数用来从标准输入中读取数据并存储到变量中。题目给出的选项中,只有选项B的注释描述是错误的。\n\n选项A的注释描述是正确的,格式串中允许加入格式符以外的字符串,因为scanf函数在解析输入数据时,会按照格式串中的格式符进行解析,如果格式符与输入数据不匹配,则会按照默认方式进行解析。\n\n选项C的注释描述也是正确的,输入项与格式符类型不匹配,变量b和x得不到正确的输入数据,这是因为输入项中的第一个%d是int类型的格式符,第二个%f是float类型的格式符,而变量b和x的类型分别为int和float,所以需要确保输入数据的类型与格式符匹配。\n\n选项D的注释描述也是正确的,多余的输入项

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论