二级C语言笔试真题及答案.docx

上传人:b****1 文档编号:10416502 上传时间:2023-05-25 格式:DOCX 页数:21 大小:21.13KB
下载 相关 举报
二级C语言笔试真题及答案.docx_第1页
第1页 / 共21页
二级C语言笔试真题及答案.docx_第2页
第2页 / 共21页
二级C语言笔试真题及答案.docx_第3页
第3页 / 共21页
二级C语言笔试真题及答案.docx_第4页
第4页 / 共21页
二级C语言笔试真题及答案.docx_第5页
第5页 / 共21页
二级C语言笔试真题及答案.docx_第6页
第6页 / 共21页
二级C语言笔试真题及答案.docx_第7页
第7页 / 共21页
二级C语言笔试真题及答案.docx_第8页
第8页 / 共21页
二级C语言笔试真题及答案.docx_第9页
第9页 / 共21页
二级C语言笔试真题及答案.docx_第10页
第10页 / 共21页
二级C语言笔试真题及答案.docx_第11页
第11页 / 共21页
二级C语言笔试真题及答案.docx_第12页
第12页 / 共21页
二级C语言笔试真题及答案.docx_第13页
第13页 / 共21页
二级C语言笔试真题及答案.docx_第14页
第14页 / 共21页
二级C语言笔试真题及答案.docx_第15页
第15页 / 共21页
二级C语言笔试真题及答案.docx_第16页
第16页 / 共21页
二级C语言笔试真题及答案.docx_第17页
第17页 / 共21页
二级C语言笔试真题及答案.docx_第18页
第18页 / 共21页
二级C语言笔试真题及答案.docx_第19页
第19页 / 共21页
二级C语言笔试真题及答案.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

二级C语言笔试真题及答案.docx

《二级C语言笔试真题及答案.docx》由会员分享,可在线阅读,更多相关《二级C语言笔试真题及答案.docx(21页珍藏版)》请在冰点文库上搜索。

二级C语言笔试真题及答案.docx

二级C语言笔试真题及答案

2006年4月二级C语言笔试真题及答案

(考试时间:

120分钟,满分100分)

一、选择题,(1-40)每题1分,(41-50)每题2分,共60分)

下列各题A)、B)、C)、D)四个选项中,只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。

11)以下不合法的用户标识符是

 A)j2_KEY

 B)Double

 C)4d

 D)_8_

12)以下不合法的数值常量是

 A)011

 B)lel

 C)8.0E0.5

 D)0xabcd

13)以下不合法的字符常量是

 A)'\018'

 B'\”'

 C)'\\'

 D)‘\xcc'

14)表达式3.6-5/2+1.2+5%2的值是

 A)4.3

 B)4.8

 C)3.3

 D)3.8

15)以下能正确定义字符串的语句是

 A)charstr[]={‘\064'};

 B)charstr=”\x43”;

 C)charstr=”; 

 D)charstr[]=”\0”;

16)以下数组定义中错误的是

 A)intx[][3]={0};  

 B)intx[2][3]={{1,2},{3,4},{5,6}};

 C)ntx[][3]={{1,2,3},{4,5,6}};

 D)intx[2][3]={1,2,3,4,5,6};

17)若要求从键盘读入含有空格字符的字符串,应使用函数

 A)getc()

 B)gets()

 C)getchar()

 D)scanf()

18)下四个程序中,完全正确的是

 A)#include         B)#include

   main();          main()

  {/*programming*/       {/*/programming/*/

  printf(“programming!

\n”);   }printf(“programming!

\n”);}

 C)#include         D)include

   main()            main()

  {/*/*programming*/*/     {/*programming*/

  printf(“programming!

\n”);} printf(“programming!

\n”);}

19)若有定义:

floatx=1.5;inta=1,b=3,c=2;则正确的switch语句是

 A)switch(x)         B)switch((int)x);

  {case1.0:

printf(“*\n”);{case1:

printf(“*\n”);

  Case2.0:

printf(“**\n”);}case2:

printf(“**\n”);}

 C)switch(a+b)        D)switch(a+b)

  {case1:

printf(“*\n”); {case1:

printf(*\n”);

  case2+1:

printf(“**\n”);} casec:

printf(“**\n”);}

20)若各选项中所用变量已正确定义,函数fun中通过return语句返回一个函数值,以下选项中错误的程序是

 A)main()          B)floatfun(inta,intb){……}

  {……x=fun(2,10);……}     main()

  floatfun(inta,intb){……}  {……x=fun(i,j);……}

 C)floatfun(int,int);    D)main()

  main()            {floatfun(inti,intj);

  {……x=fun(2,10);……}     ……x=fun(i,j);……}

  floatfun(inta,intb){……}  floatfun(inta,intb){……}

21)在以下给出的表达式中,与while(E)中的(E)不等价的表达式是

 A)(!

E=0)

 B)(E>0||E<0)

 C)(E==0)

 D)(E!

=0)

22)要求通过while循环不断读入字符,当读入字母N时结束循环。

若变量已正确定义,以下正确的程序段是

 A)while((ch=getchar())!

='N')printf(“%c”,ch);

 B)while(ch=getchar()!

='N')printf(“%c”,ch);

 C)while(ch=getchar()==N')printf(“%c”,ch);

 D)while((ch=getchar())=='N')printf(“%c”,ch);

23)已定义以下函数

intfun(int*p)

{return*p;}

fun函数返回值是

 A)不确定的值     

 B)一个整数

 C)形参p中存放的值

 D)形参p的地址值

24)若有说明语句:

double*p,a;则能通过scanf语句正确给输入项读入数据的程序段是

 A)*p=&a;scanf(“%lf”,p);

 B)*p=&a;scanf(“%f”,p);

 C)p=&a;scanf(“%lf”,*p);

 D)p=&a;scanf(“%lf”,p);

25)现有以下结构体说明和变量定义,如图所示,指针p,q,r分别指向一个链表中连续的三个结点。

structnode

{

chardata;

structnode*next;

}*p,*q,*r;

现要将q和r所指结点交换前后位置,同时要保持链表的连续,以下不能完成此操作的语句是

 A)q->next=r->next;p->next=r;r->next=q;

 B)p->next=r;q->next=r->next;r-.next=q;

 C)q->next=r->next;r->next=q;p->next=r;

 D)r->next=q;p-next=r;q-next=r->next;

26)有以下程序段

structst

{intx;int*y;}*pt:

inta[]={1,2},b[]={3,4};

structstc[2]={10,a,20,b};

pt=c;

以下选项中表达式的值为11的是

 A)*pt->y

 B)pt->x

 C)++pt->x

 D)(pt++)->x

27)设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为

 A)EOF

 B)非0值

 C)0

 D)NULL

28)设有以下语句

inta=1,b=2,c;

c=a^(b<<2);

执行后,c的值为

 A)6

 B)7

 C)8

 D)9

29)有以下程序

#include

main()

{

charc1,c2,c3,c4,c5,c6;

scanf(“%c%c%c%c”,&c1,&c2,&c3,&c4);

c5=getchar();c6=getchar();

putchar(c1);putchar(c2);

printf(“%c%c\n”,c5,c6);

}

程序运行后,若从键盘输入(从第1列开始)

123<回车>

45678<回车>

则输出结果是

 A)1267

 B)1256

 C)1278

 D)1245

30)若有以下程序

main()

{inty=10;

while(y--);printf(“y=%d\n”y);

}

程序运行后的输出结果是

 A)y=0

 B)y=-1

 C)y=1

 D)while构成无限循环

31)有以下程序

main()

{

inta=0,b=0,c=0,d=0;

if(a=1)b=1;c=2;

elsed=3;

printf(“%d,%d,%d,%d\n”,a,b,c,d);

}

程序输出

 A)0,1,2,0

 B)0,0,0,3

 C)1,1,2,0

 D)编译有错

32)有以下程序

main()

{

inti,j,x=0;

for(i=0;i<2;i++)

{x++;

for(j=0;j<=3;j++)

{

if(j%2)continue;

x++;

}

x++;

}

printf(“x=%d\n”,x);

}

程序执行后的输出结果是

 A)x=4

 B)x=8

 C)x=6

 D)x=12

33)有以下程序

intfun1(duoblea){returna*=a;}

intfun2(dpublex,doubley)

{

doublea=0,b=0;

a=fun1(x);b=fun1(y);return(int)(a+b);

}

main()

{doublew;w=fun2(1.1,2.0);……}

程序执行后变量w中的值是

 A)5.21

 B)5

 C)5.0

 D)0.0

34)有以下程序

main()

{

inti,t[][3]={9,8,7,6,5,4,3,2,1};

for(i=0;i<3;i++)printf(“%d”,t[2-i][i]);

}

程序的执行后的输出结果是

 A)753

 B)357

 C)369

 D)751

35)有以下程序

fun(charp[][10])

{intn=0,i;

for(i=0;i<7;i++)

if(p[i][0]=='T')n++;

returnn;

}

main()

{

charstr[][10]={“Mon”,“Tue”,“Wed”,“Thu”,”Fri”,”Sat”,”Sun”};

printf(“%d\n”,fun(str));

}

程序执行后的输出结果是

 A)1

 B)2

 C)3

 D)0

36有以下程序

main()

{

inti,s=0,t[]={1,2,3,4,5,6,7,8,9};

for(i=0;i<9;i+=2)s+=*(t+i);

printf(“%d\n”,s);

}

程序执行后的输出结果是

 A)45

 B)20

 C)25

 D)36

37)有以下程序

voidfun1(char*p)

{

char*q;

q=p;

while(*q!

='\0')

{(*q)++;q++;}

}

main()

{chara[]={“Program”},*p;

p=&a[3];fun1(p);printf(“%s\n”,a);

}

程序执行后的输出结果是

 A)Prohsbn

 B)Prphsbn

 C)Progsbn

 D)Program

38)有以下程序

voidswap(char*x,char*y)

{

chart;

t=*x;*x=*y;*y=t;

}

main()

{

char*s1=”abc”,*s2=”123”;

swap(s1,s2);printf(“%s,%s\n”,s1,s2);

}

程序执行后的输出结果是

 A)123,abc

 B)abc,123

 C)1bc,a23

 D)321,cba

39)有以下程序

intfun(intn)

{

if(n==1)return1;

else

return(n+fun(n-1));

}

main()

{

intx;

scanf(“%d”,&x);x=fun(x);printf(“%d\n”,x);

}

程序执行时,给变量x输入10,程序的输出结果是

 A)55

 B)54

 C)65

 D)45

40)有以下程序

intfun(intx[],intn)

{staticintsum=0,i;

for(i=0;isum+=x[i];

returnsum;

}

main()

{inta[]={1,2,3,4,5},b[]={6,7,8,9},s=0;

s=fun(a,5)+fun(b,4);printf(“%d\n”,s);

}

程序执行后的输出结果是

 A)45

 B)50

 C)60

 D)55

41)有以下程序

main()

{

union{

charch[2];

intd;

}s;

s.d=0x4321;

printf(“%x,%x\n”,s.ch[0],s.ch[1]);

}

在16位编译系统上,程序执行后的输出结果是

 A)21,43

 B)43,21

 C)43,00

 D)21,00

42)有以下程序

main()

{

char*p[]={“3697”,”2584”};

inti,j;longnum=0;

for(i=0;i<2;i++)

{j=0;

while(p[i][j]!

='\0')

{if((p[i][j]-‘0')%2)num=10*num+p[i][j]-‘0';

j+=2;

}}

printf(“%d\n”num);

}

程序执行后的输出结果是

 A)35

 B)37

 C)39

 D)3975

43)执行以下程序后,test.txt文件的内容是(若文件能正常打开)

#include

main()

{

FILE*fp;

char*s1=”Fortran”,*s2=”Basic”;

if((fp=fopen(“test.txt”,”wb”))==NULL)

{printf(“Can'topentest.txtfile\n”);exit

(1);}

fwrite(s1,7,1,fp);/*把从地址s1开始的7个字符写到fp所指文件中*/

fseek(fp,0L,SEEK_SET);/*文件位置指针移到文件开头*/

fwrite(s2,5,1,fp);

fclose(fp);

}

 A)Basican

 B)BasicFortran

 C)Basic

 D)FortranBasic

44)以下叙述中错误的是

 A)C语言源程序经编译后生成后缀为.obj的目标程序

 B)C语言经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件

 C)用C语言编写的程序称为源程序,它以ASCII代码形式存放在一个文本文件中

 D)C语言的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令

45)以下叙述中错误的是

 A)算法正确的程序最终一定会结束

 B)算法正确的程序可以有零个输出

 C)算法正确的程序可以有零个输入

 D)算法正确的程序对于相同的输入一定有相同的结果

46)以下叙述中错误的是

 A)C程序必须由一个或一个以上的函数组成

 B)函数调用可以作为一个独立的语句存在

 C)若函数有返回值,必须通过return语句返回

 D)函数形参的值也可以传回对应的实参

47)设有以下定义和语句

charstr[20]=”Program”,*p;

p=str;

则以下叙述中正确的是

 A)*p与str[0]中的值相等

 B)str与p的类型完全相同

 C)str数组长度和p所指向的字符串长度相等

 D)数组str中存放的内容和指针变量p中存放的内容相同

48)以下叙述中错误的是

 A)C程序中的#include和#define行均不是C语句

 B)除逗号运算符外,赋值运算符的优先级最低

 C)C程序中,j++;是赋值语句

 D)C程序中,+、-、*、/、%号是算术运算符,可用于整型和实型数的运算

49)以下叙述中正确的是

 A)预处理命令行必须位于C源程序的起始位置

 B)在C语言中,预处理命令行都以“#”开头

 C)每个C程序必须在开头包括预处理命令行:

#include

 D)C语言的预处理不能实现宏定义和条件编译的功能

50)以下叙述中错误的是

 A)可以通过typedef增加新的类型

 B)可以用typedef将已存在的类型用一个新的名字来代表

 C)用typedef定义新的类型名后,原有类型名仍有效

 D)用typedef可以为各种类型起别名,但不能为变量起别名

二:

填空题(每空2分,共40分)

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

6)若变量a,b已定义为int类型并赋值21和55,要求用printf函数以a=21,b=55的形式输出,请写出完整的输出语句__[6]____。

7)以下程序用于判断a,b,c能否构成三角形,若能输出YES,若不能输出NO。

当a,b,c输入三角形三条边长时,确定a,b,c能构成三角形的条件是需要同时满足三条件:

a+b>c,a+c>b,b+c>a。

请填空。

main()

{

floata,b,c;

scanf(“%f%f%f”,&a,&b,&c);

if(__[7]__)printf(“YES\n”);/*a,b,c能构成三角形*/

elseprintf(“NO\n”);/*a,b,c不能构成三角形*/

}

8)以下程序的输出结果是__[8]_____

main()

{inta[3][3]={{1,2,9},{3,4,8},{5,6,7}},i,s=0;

for(i=0;i<3;i++)s+=a[i][i]+a[i][3-i-1];

printf(“%d\n”,s);

}

9)当运行以下程序时,输入abcd,程序的输出结果是:

_[9]____。

insert(charstr[])

{inti;

i=strlen(str);

while(i>0)

{str[2*i]=str[i];str[2*i-1]='*';i--;}

printf(“%s\n”,str);

}

main()

{charstr[40];

scanf(“%s”,str);insert(str);

}

10)以下程序的运行结果是:

__[10]____

fun(intt[],intn)

{inti,m;

if(n==1)returnt[0];

else

if(n>=2){m=fun(t,n-1);returnm;}

}

main()

{

inta[]={11,4,6,3,8,2,3,5,9,2};

printf(“%d\n”,fun(a,10));

}

12)以下函数fun的功能是返回str所指字符串中以形参c中字符开头的后续字符串的首地址,例如:

str所指字符串为Hello!

c中的字符为e,则函数返回字符串:

ello!

的首地址。

若str所指字符串为空串或不包含c中的字符,则函数返回NULL。

请填空。

char*fun(char*str,charc)

{intn=0;char*p=str;

if(p!

=NULL)

while(p[n]!

=c&&p[n]!

='\0')n++;

if(p[n]=='\0'returnNULL;

return(_[12]_);

}

13)以下程序的功能是:

输出100以内(不含100)能被3整除且个位数为6的所有整数,请填空。

main()

{inti,j;

for(i=0;__[13]__;i++)

{j=i*10+6;

if(_[14]____)continue;

printf(“%d”,j);

}

}

14)以下isprime函数的功能是判断形参a是否为素数,是素数,函数返回1,否则返回0,请填空

intisprime(inta)

{inti;

for(i=2;i<=a/2;i++)

if(a%i==0)__[15]___;

__[16]___;

}

15)以下程序的功能是输入任意整数给n后,输出n行由大写字母A开始构成的三角形字符阵列图形,例如,输入整数5时(注意:

n不得大于10),程序运行结果如下:

ABCDE

FGHI

JKL

MN

O

请填空完成该程序。

main()

{inti,j,n;charch='A';

scanf(“%d”,&n);

if(n<11)

{

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

{for(j=1;j<=n-i+1;j++)

{printf(“%2c”,ch);

___[17]____;

}

【18】

}

}

elseprintf(“nistoolarge!

\n”);

printf(“\n”);

}

一、选择题

11-20:

CCADDBBBCA

21-30:

CABDDCBDDD

31-40:

DBCBBCACAC

41-50:

ACADBDADBA

二、填空题

6、printf("a=%d,b=%d",a,b)

7、(a+b>c)&&(a+c>b)&&(b+c>a)

8、30

9、a*b*c*d*

10、11

12、p+n或str+n

13、i<=9或i<10

14、j%3!

=0

15、return0

16、return1

17、ch=ch+1

18、printf("\n")

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2