全国计算机二级考试C语言试题Word格式.docx

上传人:b****7 文档编号:22047041 上传时间:2023-02-02 格式:DOCX 页数:16 大小:28.13KB
下载 相关 举报
全国计算机二级考试C语言试题Word格式.docx_第1页
第1页 / 共16页
全国计算机二级考试C语言试题Word格式.docx_第2页
第2页 / 共16页
全国计算机二级考试C语言试题Word格式.docx_第3页
第3页 / 共16页
全国计算机二级考试C语言试题Word格式.docx_第4页
第4页 / 共16页
全国计算机二级考试C语言试题Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

全国计算机二级考试C语言试题Word格式.docx

《全国计算机二级考试C语言试题Word格式.docx》由会员分享,可在线阅读,更多相关《全国计算机二级考试C语言试题Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

全国计算机二级考试C语言试题Word格式.docx

B)64 

C)6 

D)7

(9)数据库技术的根本目标是要解决数据的

A)存储问题 

B)共享问题 

C)安全问题 

D)保护问题

(10)对下列二叉树

进行中序遍历的结果是

A)ACBDFEG 

B)ACBDFGE 

C)ABDCGEF 

D)FCADBEG

(11)下列叙述中错误的是

A)一个C语言程序只能实现一种算法

B)C程序可以由多个程序文件组成

C)C程序可以由一个或多个函数组成

D)一个C函数可以单独作为一个C程序文件存在

(12)下列叙述中正确的是

A)每个C程序文件中都必须要有一个main()函数

B)在C程序中main()函数的位置是固定的

C)C程序中所有函数之间都可以相互调用,与函数所在位置无关

D)在C程序的函数中不能定义另一个函数

(13)下列定义变量的语句中错误的是

A)int 

_int;

B)double 

int_;

C)char 

For;

D)float 

US$;

(14)若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是

A)++x,y=x-- 

B)x+1=y 

C)x=x+10=x+y 

D)double(x)/10

(15)以下关于逻辑运算符两侧运算对象的叙述中正确的是

A)只能是整数0或1 

B)只能是整数0或非0整数

C)可以是结构体类型的数据 

D)可以是任意合法的表达式

(16)若有定义int 

x,y;

并已正确给变量赋值,则以下选项中与表达式(x-y)?

(x++):

(y++)中的条件表达式(x-y) 

等价的是

A)(x-y>

0) 

B)(x-y<

C)(x-y<

0||x-y>

D)(x-y==0)

(17)有以下程序

main()

{int 

x,y,z;

x=y=1;

z=x++,y++,++y;

printf("

%d,%d,%d\n"

x,y,z);

}

程序运行后的输出结果是

A)2,3,3 

B)2,3,2 

C)2,3,1 

D)2,2,1

(18)设有定义:

int 

a;

float 

b;

执行 

scanf("

%2d%f"

&

a,&

b);

语句时,若从键盘输入876 

543.0<

回车>

,a和b的值分别是

A)876和543.000000 

B)87和6.000000

C)87和543.000000 

D)76和543.000000

(19)有以下程序

a=0,b=0;

a=10;

/* 

给a赋值

b=20;

给b赋值 

*/

a+b=%d\n"

a+b);

输出计算结果 

A)a+b=10 

B)a+b=30 

C)30 

D)出错

(20)在嵌套使用if语句时,C语言规定else总是

A)和之前与其具有相同缩进位置的if配对

B)和之前与其最近的if配对

C)和之前与其最近的且不带else的if配对

D)和之前的第一个if配对

(21)下列叙述中正确的是

A)break语句只能用于switch语句

B)在switch语句中必须使用default

C)break语句必须与switch语句中的case配对使用

D)在switch语句中,不一定使用break语句

(22)有以下程序

k=5;

while(--k) 

%d"

k-=3);

\n"

);

执行后的输出结果是

A)1 

B)2 

C)4 

D)死循环

(23)有以下程序

i;

for(i=1;

i<

=40;

i++)

{if(i++%5==0)

if(++i%8==0) 

%d"

i);

A)5 

B)24 

C)32 

D)40

(24)以下选项中,值为1的表达式是

A)1–'

0'

B)1-'

\0'

C)'

1'

-0 

D)'

-'

(25)有以下程序

fun(int 

x,int 

y){return(x+y);

}

a=1,b=2,c=3,sum;

sum=fun((a++,b++,a+b),c++);

%d\n"

sum);

A)6 

B)7 

C)8 

D)9

(26)有以下程序

char 

s[]="

abcde"

;

s+=2;

s[0]);

执行后的结果是

A)输出字符a的ASCII码 

B)输出字符c的ASCII码

C)输出字符c 

D)程序出错

(27)有以下程序

y)

{staticint 

m=0,i=2;

i+=m+1;

m=i+x+y;

returnm;

j=1,m=1,k;

k=fun(j,m);

%d,"

k);

A)5,5 

B)5,11 

C)11,11 

D)11,5

(28)有以下程序

x)

p;

if(x==0||x==1) 

return(3);

p=x-fun(x-2);

returnp;

fun(7));

A)7 

B)3 

C)2 

D)0

(29)在16位编译系统上,若有定义int 

a[]={10,20,30},*p=&

,当执行p++;

后,下列说法错误的是

A)p向高地址移了一个字节 

B)p向高地址移了一个存储单元

C)p向高地址移了两个字节 

D)p与a+1等价

(30)有以下程序

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

*p1=&

a,*p2=&

b,*p=&

c;

*p=*p1*(*p2);

c);

C)3 

D)4

(31)若有定义:

intw[3][5];

,则以下不能正确表示该数组元素的表达式是

A)*(*w+3) 

B)*(w+1)[4] 

C)*(*(w+1)) 

D)*(&

w[0][0]+1)

(32)若有以下函数首部

fun(double 

x[10],int 

*n)

则下面针对此函数的函数声明语句中正确的是

fun(doublex,int*n);

B)int 

int);

C)int 

fun(double*x,intn);

D)int 

fun(double*, 

int*);

(33)有以下程序

voidchange(intk[]){k[0]=k[5];

x[10]={1,2,3,4,5,6,7,8,9,10},n=0;

while(n<

=4) 

{change(&

x[n]);

n++;

for(n=0;

n<

5;

n++) 

x[n]);

程序运行后输出的结果是

A)678910 

B)13579 

C)12345 

D)62345

(34)有以下程序

x[3][2]={0},i;

for(i=0;

3;

i++) 

x[i]);

%3d%3d%3d\n"

x[0][0],x[0][1],x[1][0]);

若运行时输入:

246<

,则输出结果为

A)2 

D)2 

6

(35)有以下程序

intadd(int 

a,int 

b){return(a+b);

k,(*f)(),a=5,b=10;

f=add;

则以下函数调用语句错误的是

A)k=(*f)(a,b);

B)k=add(a,b);

C)k=*f(a,b);

D)k=f(a,b);

(36)有以下程序

#include 

main(int 

argc,char 

*argv[])

i=1,n=0;

while(i

n);

该程序生成的可执行文件名为:

proc.exe。

若运行时输入命令行:

proc 

123 

45 

67

则程序的输出结果是

A)3 

B)5 

C)7 

D)11

(37)有以下程序

#include 

#define 

5

N+1

f(x) 

(x*M)

i1,i2;

i1=f

(2);

i2=f(1+1);

%d 

i1,i2);

程序的运行结果是

A)12 

12 

B)11 

C)11 

11 

D)12 

7

(38)有以下结构体说明、变量定义和赋值语句

structSTD

{char 

name[10];

age;

sex;

}s[5],*ps;

ps=&

s[0];

则以下scanf函数调用语句中错误引用结构体变量成员的是

A)scanf("

%s"

s[0].name);

B)scanf("

s[0].age);

C)scanf("

%c"

(ps->

sex));

D)scanf("

ps->

age);

(39)若有以下定义和语句

uniondata

f;

}x;

y;

则以下语句正确的是

A)x=10.5;

B)x.c=101;

C)y=x;

D)printf("

x);

(40)有以下程序

{FILE 

*fp;

ch[]="

abcd"

t;

fp=fopen("

abc.dat"

"

wb+"

4;

i++)fwrite(&

ch[i],1,1,fp);

fseek(fp,-2L,SEEK_END);

fread(&

t,1,1,fp);

fclose(fp);

%c\n"

t);

程序执行后的输出结果是

A)d 

B)c 

C)b 

D)a

二、填空题(每空2分,共30分)

请将每一个空的正确答案写在答题卡【1】至【15】序号的横线上,答在试卷上不得分。

(1)下列软件系统结构图

的宽度为 

【1】 

(2) 

【2】 

的任务是诊断和改正程序中的错误。

(3)一个关系表的行称为 

【3】 

(4)按“先进后出”原则组织数据的数据结构是 

【4】 

(5)数据结构分为线性结构和非线性结构,带链的队列属于 

【5】 

(6)设有定义:

x=123.4567;

,则执行以下语句后的输出结果是 

【6】 

%f\n"

(int)(x*100+0.5)/100.0);

(7)以下程序运行后的输出结果是 

【7】 

m=011,n=11;

++m,n++);

(8)以下程序运行后的输出结果是 

【8】 

x,a=1,b=2,c=3,d=4;

x=(a 

x=(x 

x=(d>

x)?

x:

d;

(9)有以下程序,若运行时从键盘输入:

18,11<

,则程序的输出结果是 

【9】 

a,b;

Entera,b:

"

%d,%d"

while(a!

=b)

while(a>

b)a-=b;

while(b>

a)b-=a;

%3d%3d\n"

a,b);

(10)以下程序的功能是:

将输入的正整数按逆序输出。

例如:

若输入135则输出531。

请填空。

n,s;

Enteranumber:

"

n);

Output:

do

s=n%10;

s);

【10】 

while(n!

=0);

(11)以下程序中,函数fun的功能是计算x2-2x+6,主函数中将调用fun函数计算:

y1=(x+8)2-2(x+8)+6

y2=sin2(x)-2sin(x)+6

math.h"

doublefun(double 

x){return(x*x-2*x+6);

{double 

x,y1,y2;

Enterx:

%lf"

x);

y1=fun( 

【11】 

y2=fun( 

【12】 

y1=%lf,y2=%lf\n"

y1,y2);

(12)下面程序的功能是:

将N行N列二维数组中每一行的元素进行排序,第0行从小到大排序,第1行从大到小排序,第2行从小到大排序,第3行从大到小排序,例如:

#define 

4

voidsort(int 

a[][N])

i,j,k,t;

for(i=0;

i

for(j=0;

j

for(k= 

【13】 

k

/*判断行下标是否为偶数来确定按升序或降序来排序*/

if( 

【14】 

?

a[i][j]a[i][k])

t=a[i][j];

a[i][j]=a[i][k];

a[i][k]=t;

voidoutarr(int 

a[N][N])

…… 

aa[N][N]={{2,3,4,1},{8,6,5,7},{11,12,10,9},{15,14,16,13}};

outarr(aa);

/*以矩阵的形式输出二维数组*/

sort(aa);

(13)下面程序的运行结果是:

【15】 

intf(int 

a[],int 

n)

{if(n>

1)

returna[0]+f(a+1,n-1);

else

returna[0];

aa[10]={1,2,3,4,5,6,7,8,9,10},s;

s=f(aa+2,4);

s);

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

当前位置:首页 > 经管营销 > 财务管理

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

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