C语言19笔试题含答案.docx

上传人:b****7 文档编号:10849783 上传时间:2023-02-23 格式:DOCX 页数:18 大小:21.07KB
下载 相关 举报
C语言19笔试题含答案.docx_第1页
第1页 / 共18页
C语言19笔试题含答案.docx_第2页
第2页 / 共18页
C语言19笔试题含答案.docx_第3页
第3页 / 共18页
C语言19笔试题含答案.docx_第4页
第4页 / 共18页
C语言19笔试题含答案.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

C语言19笔试题含答案.docx

《C语言19笔试题含答案.docx》由会员分享,可在线阅读,更多相关《C语言19笔试题含答案.docx(18页珍藏版)》请在冰豆网上搜索。

C语言19笔试题含答案.docx

C语言19笔试题含答案

19

二级(C与C++语言)笔试试卷

第一部分

软件技术基础

(共15分)

一、是非判断题(每小题1分,共10分)

(判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B)

1.在目前,用于保证软件质量的主要手段是进行软件测试。

(1)

2.使用DMA方式传送数据期间不需要CPU干预。

(2)

3.线性顺序队列会产生“假溢出”,而线性循环队列则不会。

(3)

4.对同一种算法,用高级语言编写的程序比用低级语言编写的程序运行速度快。

(4)

5.在线性表中,数据的存储方式有顺序和链接两种。

(5)

6.进程是由程序块、文件控制块和数据块三部分组成。

(6)

7.在面向对象的程序设计中,派生类只能从一个基类产生。

(7)

8.操作系统是用户和硬件的接口。

(8)

9.个人计算机中可配置的最大内存容量受地址总线位数的限制。

(9)

10.软件维护中最困难的问题是软件配置不全。

(10)

二、选择题(每小题1分,共5分)

1.在排序法中,从未排序序列中依次取出元素,与已排序序列中的元素作比较,

将其放入已排序序列的正确位置称为(11)。

11(A)选择排序(B)快速排序

(C)插入排序(D)冒泡排序

2.有X、Y、Z三个元素依次入栈,不可能的出栈顺序是(12)。

12(A)Z,Y,X(B)Z,X,Y

(C)Y,X,Z(D)X,Y,Z

3.进程的状态是可以转换的,而以下哪个状态转换是不可能的(13)。

13(A)就绪状态执行状态(B)执行状态就绪状态

(C)阻塞状态就绪状态(D)等待状态执行状态

4.线性链表的地址(14)。

14(A)必须连续(B)部分地址必须连续

(C)一定不连续(D)连续与否均可以

5.在软件测试中,(15)主要分析程序的内部结构。

15(A)白盒法(B)黑盒法

(C)因果图法(D)错误推测法

第二部分

C与C++语言程序设计

(共85分)

一、单项选择题(每小题1分,共10分)

1.对下列程序段的描述正确的是(16)。

#include

intFun(intx,inty)

{

returnx+y;

}

voidmain()

{

inti=10;

cout<

}

16(A)程序输入结果不确定(B)程序输出结果是20

(C)程序输出结果是21(D)程序输出是22

2.下列描述正确的是(17)。

17(A)C++程序中cout时需要用到预处理命令#include

(B)C++程序必须有return语句

(C)C++程序中的变量必须定义在主程序内部

(D)C++程序中所有使用的符号常量可以不进行定义

3.下述程序的输出结果是(18)。

#include

voidmain()

{

inty=10;

while(y--);

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

}

18(A)y=0(B)y=1(C)y=随机值(D)y=-1

4.若有以下说明:

char*str1="copy",str2[20],*str3="str",*str4,*str5="good";

则正确的串操作语句是(19)。

19(A)strcpy(str4,str1);(B)strcat(str1,str3);

(C)str2="newstr";(D)strcpy(str5,str3);

5.下面程序运行后,x,y,z的值分别为(20)。

#include

voidmain()

{

intx=0,y=0,z=0;

++x||++y||++z;

printf("%d%d%d\n",x,y,z);

}

20(A)100(B)000(C)111(D)001

6.以下程序运行的结果是(21)。

#include

unionmyun

{struct

{intx,y,z;}u;

intk;

}a;

voidmain()

{

z.u.x=4;a.u.y=5;a.u.z=6;

z.k=0;

printf("%d%d%d\n",a.u.x,a.u.y,a.u.z);

}

21(A)456(B)654(C)056(D)065

7.关于C++和C语言学关系描述中,错误的是(22)。

22(A)C语言与C++是兼容的

(B)C++对C语言进行了一些改进

(C)C语言是C++的一个子集

(D)C++和C语言都是面向对象的

8.下列描述中,正确的是(23)。

23(A)子类可以继承其父类的所有属性和操作,但子类不能定义自己特有的属性和操作

(B)消息传递是类与类之间通信的手段

(C)C++允许函数重载,但不允许运算符重载

(D)C++中可以定义虚函数,通过它来支持动态联编

9.下面程序运行的结果是(24)。

#definef(x)1+x+x*x

#include

voidmain()

{

inta=2,b=3;

printf("%d\n",f(a+b));

}

24(A)17(B)31(C)13(D)7

10.下面局部程序代码是C++中的(25)特性的表现。

voiddisplay(intvar)

{cout<

}

voiddisplay(charvar)

{cout<

}

voiddisplay(intvar1,intvar2)

{cout<

}

25(A)继承(B)重载(C)多态性(D)封装

二、读程序回答问题(每个选择3分,共45分)

1.有下列程序:

#include

intf(intm)

{

staticintx[3]={2,3,4};

inti;

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

x[i]+=x[i]-m;

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

printf("%d,",x[i]);

printf("\n");

return(x[m]);

}

voidmain()

{inty=1;

f(f(y));

}

(1)第一次调用f函数的结果是(26)。

26(A)5,7,9,(B)1,5,9,(C)0,1,3,(D)3,5,7,

(2)第二次调用f函数的结果是(27)。

27(A)3,5,7,(B)1,5,9,(C)0,1,3,(D)5,7,9,

2.读下列程序,运行时输入:

Thisisabook!

#include

intchange(char*c,intfg)

{if(*c=='')

L1:

return1;

else

if(fg&&*c<='z'&&*c>='a')

*c+='A'-'a';

return0;

}

voidmain()

{

intflag=1;

charch;

do

{ch=getchar();

flag=change(&ch,flag);

putchar(ch);

}while(ch!

='\n');

}

(1)程序的运行结果是(28)。

28(A)THISISABOOK!

(B)thisIsABook!

(C)ThisIsABook!

(D)ThisIsaBook!

(2)与L1:

return1等效描述的为(29)。

29(A)return0(B)return–1(C)return1-1(D)return!

(-1)

3.读下列程序,回答问题。

(28)。

#include"iostream.h"

intsb(int*s,inty)

{staticinti=3;

y=s[i--];

returny;

}

voidmain()

{ints[]={1,2,3,4};

inti,x=0;

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

{x=sb(s,x);

cout<

}

cout<

}

(1)程序结束后i的值为(30)。

30(A)4(B)0(C)2(D)1

(2)该程序的输出结果是(31)。

31(A)1,2,3,4,(B)2,3,4,1,(C)3,4,1,2,(D)4,3,2,1,

4.读下列程序,回答问题。

#include"iostream.h"

voidmain()

{char*s="213142";

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

intk;

for(k=0;s[k];k++)

switch(s[k])

{default:

d++;

case'1':

a++;

case'3':

c++;

case'2':

b++;

}

cout<<"a="<

}

(1)该程序运行结束时,k的值是(32)。

32(A)8(B)7(C)6(D)5

(2)该程序的输出结果是(33)。

33(A)a=4,b=5,c=4,d=1(B)a=4,b=9,c=3,d=1

(C)a=3,b=6,c=4,d=1(D)a=8,b=8,c=8,d=8

5.下列程序运行的结果为(34)。

#include"stdio.h"

voidfun(char*s)

{chart;

if(*s)

{t=*s++;fun(s);

if(t!

='\0')

putchar(t);

}

}

voidmain()

{char*a="1234";

fun(a);

}

34(A)1234(B)4321(C)1324(D)4231

6.读下列程序,回答问题。

#include"stdio.h"

voidsub1(chara,charb)

{charc;

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

}

voidsub2(char*a,charb)

{charc;

c=*a;*a=b;b=c;

}

voidsub3(char*a,char*b)

{charc;

c=*a;*a=*b;*b=c;

}

voidmain()

{chara,b;

a='A';b='B';

sub3(&a,&b);putchar(a);putchar(b);

sub2(&a,b);putchar(a);putchar(b);

sub1(a,b);putchar(a);putchar(b);

}

(1)程序中调用完函数sub3后,输出为(35)。

35(A)AB(B)ABBA(C)BA(D)BAAB

(2)该程序的最终输出结果为(36)。

36(A)ABBBAB(B)ABBBBB(C)BABABA(D)BAAAAA

7.读以下程序,并回答问题。

#include

unionbt

{

inta;

intb[2];

}

voidfun(unionbt*c)

{

c->a=-7;

c->b[0]=9;

c->b[1]=8;

};

voidmain()

{

unionbtc;

fun(&c);

printf("%d\n",c.a);

}

(1)程序的输出结果为(36)。

36(A)8(B)9(C)-7(D)7

(2)若将程序中的所有的union换成struct,则程序的输出结果为(37)。

37(A)8(B)9(C)-7(D)7

8.读程序,回答问题。

#include

#include

voidmain(intargc,char*argv[])

{

FILE*fp;

voidfun(FILE*fp);

inti=1;

while(--argc>0)

if((fp=fopen(argv[i++],"r"))==NULL)

{printf("Cannotopenfile!

\n");

exit(0);

}

else{fun(fp);fclose(fp);}

}

voidfun(FILE*fp)

{

charc;

c=fgetc(fp);

while((c!

=EOF))

{if(c>='A'&&c<='Z')putchar(c);

elseif(c>='a'&&c<='z')putchar(c-('a'-'A'));

c=fgetc(fp);

}

}

上述C程序经编译、连接后生成一个可执行文件,文件名为ex2_8。

假设磁盘上有两个文本文件file1.txt和file2.txt,file1.txt的内容为SiChuan,file2.txt的内容为Test。

若在DOS提示符下键入:

ex2_8file.txtfile2.txt<回车>,则程序的运行结果为(39)。

39(A)SICHUAN(B)SICHUANTEST(C)SiChuanTest(D)TEST

9.下面程序的输出是(40)。

#include"stdio.h"

intfun(charvalue,intn)

{value>>=n-1;

value&=0x01;

return(value);

}

voidmain()

{charc=13;

printf("%d\n",fun(c,2));

}

40(A)13(B)1(C)3(D)0

注意:

①请把下面“程序填空”中各小题答案写在主观题答题纸上

②每一个空只填一个语句或一个语句所缺的部分内容

三、程序填空(每空2分,共30分)

1.下面程序是一个求数组元素之和的程序。

主程序中定义并初始化了一个数组,然后计算该数组各元素之和,并输出结果。

函数Sum计算数组元素之和。

请完成下列程序。

#include

intTotalSum(int[],int);

voidmain()

{inta[5]={2,3,6,8,10};

intTotal;

Total=①;

count<<"Aumofarray:

"②<

}

intTotalSum(intarray[],intlen)

{intsum=0;

for(inti=0;i

③;

returnsum;

}

2.输入一个8位二进制数,将其转换为十进制数输出。

#include"iostream.h"

doublepower(doublex,intn);

voidmain(void)

{inti;

intvalue=0;

charch;

cout<<"Enteran8bitbinarynumber";

for(i=7;i>=0;i--)

{cin>>ch;

if(①)

value+=②;

}

cout<<"decimalvalueis"<

}

doublepower(doublex,intn)

{doubleval=1.0;

while(n--)

③;

return(val);

}

3.以下程序是判断输入的字符串是否是“回文”(顺读和倒读都一样的字符串叫回文,如level),请填空。

#include"stdio.h"

#include"string.h"

voidmain()

{

chars[81],*p1,*p2;

intn;

gets(s);

n=strlen(s);

p1=s;

p2=①;

while(②)

{if(*p1!

=*p2)break;

else{p1++;③;}

}

if(p1

elseprintf("Yes\n");

}

4.下面程序功能是检查一个4阶矩阵是否对称(即对所有的i,j,都有num[i][j]=num[j][i]),请填空。

#include

voidmain()

{

intnum[4][4];

inti,j,flag=0;

printf("Inputarraynum:

\n");

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

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

scanf("%d",①);

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

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

if(②)

{flag=1;break;}

if(③)printf("No\n");

elseprintf("Yes\n");

}

5.下面程序的功能是从键盘输入一字符串,将该字符串与一广西文件进行比较,打印出也之相同的行的等号和内容。

voidcomp()用于文件的比较,文件名用命令行参数提供。

请填空。

#include"stdio.h"

#include"string.h"

#include"stdlib.h"

FILE*fp;

voidcomp(char*string)

{intline=0;

charstr[100];

{fgets(str,100,fp);

str[strlen(str)-1]='\0';

line++;

printf("%d:

%s\n",line,str);

}

}

voidmain(intargc,char**argv)

{

charstring[100];

if(argc!

=2)

{printf("Error\n");

exit(0);

}

if(fp=③)==NULL)

{printf("Can'topenfile%s!

\n",argv[1]);

exit(0);

}

printf("Pleaseinputthestring:

\n");

gets(string);

comp(string);

fclose(fp);

}

第十九次等级考试

二级(C与C++语言)笔试试卷

(参考答案)

第一部分软件技术基础

一、是非判断题(正确选填A,错误选填B)(每小题1分,共10分)

1~10:

A、B、A、B、B、B、A、A、A、B

二、单项选择题:

(每小题1分,共5分)

1~5:

C、B、D、D、A

第二部分C与C++语言程序设计

一、单项选择题(每小题1分,共10分)

1、B2、A3、D4、D5、A

6、C7、D8、B9、A10、B

二、读程序题(每个选择3分,共45分)

1、

(1)D

(2)B2、

(1)C

(2)D3、

(1)A

(2)D

4、

(1)C

(2)C5、B6、

(1)C

(2)D

7、

(1)B

(2)C8、D9、D

三、程序填空题(每空2分,共30分)

1、①TotalSum(a,5)②Total③sum+=array[i]

2、①ch=='1'②power(2,i)③val=val*x

3、①s+n-1②*p1!

='\0'③p2--

4、①&num[i][j]②num[i][j]!

=num[j][i]③flag==1

5、①while(!

feof(fp))②if(strcmp(str,string)==0)③fopen(argv[1],"r")

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

当前位置:首页 > 高等教育 > 教育学

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

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