C语言27次.docx

上传人:b****2 文档编号:1129227 上传时间:2023-04-30 格式:DOCX 页数:17 大小:20.37KB
下载 相关 举报
C语言27次.docx_第1页
第1页 / 共17页
C语言27次.docx_第2页
第2页 / 共17页
C语言27次.docx_第3页
第3页 / 共17页
C语言27次.docx_第4页
第4页 / 共17页
C语言27次.docx_第5页
第5页 / 共17页
C语言27次.docx_第6页
第6页 / 共17页
C语言27次.docx_第7页
第7页 / 共17页
C语言27次.docx_第8页
第8页 / 共17页
C语言27次.docx_第9页
第9页 / 共17页
C语言27次.docx_第10页
第10页 / 共17页
C语言27次.docx_第11页
第11页 / 共17页
C语言27次.docx_第12页
第12页 / 共17页
C语言27次.docx_第13页
第13页 / 共17页
C语言27次.docx_第14页
第14页 / 共17页
C语言27次.docx_第15页
第15页 / 共17页
C语言27次.docx_第16页
第16页 / 共17页
C语言27次.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言27次.docx

《C语言27次.docx》由会员分享,可在线阅读,更多相关《C语言27次.docx(17页珍藏版)》请在冰点文库上搜索。

C语言27次.docx

C语言27次

四川省普通高等学校计算机应用知识和能力

第二十七次等级考试

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

时间:

2007年10月27日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

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

1.数组也是一种数据结构,一维数组就是一种顺序表结构。

(1A)

2.递归算法的程序结构比迭代算法的程序结构更为精炼。

(2A)

3.进程调度按一定的调度算法,从就绪队列中挑选出合适的进程。

(3A)

4.在单处理器系统中,程序的并发执行,实质上是程序的交替执行。

(4A)

5.数据的基本单位是数据元素。

(5A)

6.分页存储管理中,页面可以映射到不连续的内存块中。

(6A)

7.通道方式能实现外设与CPU之间直接进行数据交换。

(7B)

8.软件测试和软件调试没有任何区别。

(8B)

9.白盒测试方法一般适合用于系统测试。

(9B)

10.瀑布模型的突出缺点是不适应用户需求的变化。

(10A)

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

1.线性表不具有的特点是(11A)。

11(A)随机访问(B)无须事先估计所需存储空间大小

(C)插入时不必移动元素(D)所需空间与线性表长度成正比

2.以下(12D)不是实时操作系统的特点。

12(A)高可靠性(B)及时响应

(C)中断管理(D)独立性

3.若当前进程因时间片用完而让出处理机时,该进程应转变为(13B)状态。

13(A)运行(B)就绪

(C)等待(D)完成

4.以下(14C)不是数据结构研究的主要问题。

14(A)数据元素之间的逻辑关系(B)数据元素之间的存储结构

(C)软件开发方法(D)实现操作的算法

5.软件开发中,模块设计的原则是(15A)。

15(A)低偶合、高内聚(B)高偶合、高内聚

(C)高偶合、低内聚(D)低偶合、低内聚

第二部分

C与C++语言程序设计

(共85分)

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

1.以下程序的输出结果是(16)。

#include

voidmain()

{inta=-1,b=4,k;

k=(++a<0)&&!

(b--<=0);

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

}

16(A)004(B)103(C)003(D)104

2.以下对结构体变量stu1中成员age的不正确引用是(17)。

structst

{intage;

intnum;

}stu1,*p;

p=&stu1;

17(A)stu1.age(B)age(C)p->age(D)(*p).age

3.在下列条件语句中,功能与其他语句不同的是(18)。

18(A)if(a)printf("%d\n",x);elseprintf("%d\n",y);

(B)if(a==0)printf("%d\n",y);elseprintf("%d\n",x);

(C)if(a!

=0)printf("%d\n",x);elseprintf("%d\n",y);

(D)if(a==0)printf("%d\n",x);elseprintf("%d\n",y);

4.以下叙述中完全正确的是(19)。

19(A)C语言中的文件是流式文件,因此只能顺序存取文件

(B)对一个已存在的文件进行了写操作后,原有文件中的全部数据必定被覆盖

(C)在一个程序中当对文件进行了写操作后,必须先关闭该文件后再打开,才能读到第一个数据

(D)当对文件的读写操作完成之后,必须将它关闭,否则可能导致数据丢失

5.C++中,下列关键字中哪个不是类定义中使用的关键字(20)。

20(A)class(B)public(C)switch(D)private

6.以下程序的输出结果是(21)。

#include

#definef(x)(x*x)

voidmain()

{inti1,i2;

i1=f(8)/f(4);

i2=f(4+4)/f(2+2);

printf("%d,%d\n",i1,i2);

}

21(A)64,28(B)4,4(C)4,3(D)64,64

7.有下面的说明和语句,则输出结果是(22)。

chara=9,b=020;

printf("%o\n",~a&b<<1);

22(A)0377(B)40(C)32(D)以上答案均不正确

8.下列描述,错误的是(23)。

23(A)n维数组可以用n级指针来表示

(B)数组下标从0开始

(C)一个二维数组可以用一维指针数组表示

(D)使用没有赋地址值的指针,只有当程序比较长时才可能造成系统崩溃

9.C语言中局部变量的存储类别默认值是(24)。

24(A)自动(auto)(B)静态(static)

(C)寄存器(register)(D)外部(extern)

10.下列关于C++重载函数的描述中,错误的是(25)。

25(A)重载函数的参数个数和类型至少有一个不同

(B)重载函数的参数个数可以相同

(C)重载函数的参数个数不同但类型可以相同

(D)重载函数的返回值类型必须相同

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

1.阅读下面程序,回答问题。

#include

voidmain()

{inti,j,row,column,m;

staticintarray[3][3]={{100,200,300},{28,72,-30},{-850,2,6}};

m=array[0][0];

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

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

if(array[i][j]

{m=array[i][j];

row=i;

column=j;

}

printf("%d,%d,%d\n",m,row,column);

}

该程序的功能是(26)。

26(A)计算二维数组的元素和

(B)求二维数组的最小值及其下标

(C)对二维数组进行排序

(D)求二维数组的最大值及其下标

2.阅读下面程序,回答问题。

#include

#include

voidmain()

{inti=0,n=0;

chars[80],*p;

p=s;

strcpy(p,"Thisistest!

");

for(;*p!

='\0';p++)

if(*p=='')

i=0;

elseif(i==0)

{n++;

i=1;

}

printf("n=%d\n",n);

}

该程序的功能是(27)。

27(A)统计字符串中的单词个数

(B)统计字符串中的空格个数

(C)统计字符串中的字母个数

(D)统计字符串中全部字符个数

3.读程序,回答问题

#include

voidmain()

{inti,m=0,n=0,k=0;

for(i=9;i<=11;i++)

switch(i%10)

{case0:

m++;n++;break;

case10:

n++;break;

default:

k++,n++;

}

printf("%4d%4d%4d\n",m,n,k);

}

28(A)132(B)142

(C)011(D)032

4.读程序,回答问题。

#include

#include

voidmain(intargc,char*argv[])

{inti=1,n=0;

while(i

{n=n+strlen(argv[i]);

i++;

}

printf("%d\n",n);

}

若该程序生成的可招待文件名为2-4.exe,运行时输入命令行:

2-41234567

则程序的运行结果是(29)。

29(A)3(B)5(C)7(D)11

5.读程序,回答问题。

#include

inta=2;

intf(intn)

{staticinta=3;

intt=0;

if(n%2)

{staticinta=4;

t+=a++;

}

else

{staticinta=5;

t+=a++;

}

returnt+a++;

}

voidmain()

{ints=a,i;

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

printf("%d\n",s);

}

程序运行结果是(30)。

30(A)26(B)28(C)29(D)25

6.读程序,回答问题。

#include

structmod

{inta,b,c;};

voidmain()

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

inttotal;

total=st[0].a+st[1].b;

printf("total=%d\n",total);

}

程序的运行结果是(31)。

31(A)total=5(B)total=6(C)total=7(D)total=8

7.读程序,回答问题。

#include

pic(intlen,charc)

{intk;

for(k=1;k<=len;k++)

putchar(c);

}

voidmain()

{inti=4,j;

pic(27,'');

j=i;

pic(i+2*j-2,'*');

putchar('\n');

for(j-=2;j>=0;j--)

{pic(30-j,'');

pic(i+2*j,'*');

putchar('\n');

}

}

程序的运行结果是(32)。

32(A)(B)(C)(D)

*************************

***************************

*****************************

*******************************

8.以下程序的功能是:

建立一个带有头结点的单向链表,并将存储在数组中的字符依次转储到链表的各个结点中,请选择填空。

#include

structnode

{chardata;

structnode*next;

}

(33)CreatList(char*s)

{structnode*h,*p,*q;

h=(structnode*)malloc(sizeof(structnode));

p=q=h;

while(*s!

=NULL)

{p=(structnode*)malloc(sizeof(structnode));

p->data=(34);

q->next=p;

q=(35);

s++;

}

p->next=NULL;

returnh;

}

voidmain()

{charstr[]="linklist";

structnode*head;

head=CreatList(str);

…………

}

33(A)char*(B)char(C)structnode(D)structnode*

34(A)*s(B)s(C)*s++(D)*(s)++

35(A)p->next(B)p(C)s(D)s->next

9.读程序并回答问题。

#include

#include

voidfun(char*s,char*t)

{chark;

k=*s;

*s=*t;

*t=k;

s++;t--;

if(*s)fun(s,t);

}

voidmain()

{charstr[10]="abcdefg",*p;

p=str+strlen(str)/2+1;

fun(p,p-2);

printf("%s\n",str);

}

程序中的fun函数被调用的次数是(36)。

36(A)2(B)3(C)4(D)5

程序的运行结果为(37)。

37(A)abcdefg(B)defgabc(C)acegbdf(D)gfedcba

10.读程序并回答问题。

#include

voidmain()

{intm[12],k;

int*p[3],sum=0;

for(k=0;k<12;k++)

{m[k]=2*k;

if(k<3)

p[k]=m+2*k*k;

}

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

sum+=(*(p+k))[4-k];

printf("%d\n",sum);

}

①程序的运行结果是(38)。

38(A)18(B)28(C)38(D)8

②int*p[3]定义的是(39)。

39(A)指针数组(B)指向函数的指针

(C)指向一维数组的指针(D)指向指针的指针

11.以下程序的输出结果是(40)。

#include

#defineFUN(x,y)x

y:

x

voidmain()

{intx=5,y=10,z;

z=10*FUN(x+y,x*y);

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

}

40(A)100(B)150(C)15(D)60

 

注意:

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

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

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

1.下面函数的功能是将一个字符串逆序存放,请填空。

#include

#include

voidfun(charstr[])

{

①;

inti,j;

for(i=0,j=strlen(str);②;i++,j--)

{

m=str[i];

str[i]=③;

str[j-1]=m;

}

printf("%s\n",str);

}

2.下面程序功能是将命令行指定的一个文件内容追加到另一个文件末尾。

#include

voidmain(intargc,char*argv[])

{FILE*fp1,*fp2;

charch;

if(argc!

=3)

printf("usage:

linenumfilename\n");

else

if((fp1=fopen(①,"a"))==NULL)

{printf("Can'topen%s\n",argv[1]);

return;

}

elseif((fp2=fopen(argv[2],"r"))==NULL)

{printf("Can'topen%s\n",argv[2]);

return;

}

else

while((②)!

=EOF)

③;

fclose(fp1);

fclose(fp2);

}

3.程序功能是:

用筛选法求2~100之间的所有素数。

方法是:

首先将2~100的数放入一个数组中,然后从2开始,将数组中所有2的倍数的数置为0;接着从数组中找到下一个非0数,并将数组中所有该的倍数的数置为0;依此类推,直到所找到的下一个数大于100为止,最后将数组中不为0的数输出即为2~100之间的素数,一行输出10个。

#include

voidmain()

{

inta[100];

inti,j,count=0;

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

a[i]=①;

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

for(j=i+1;j<99;j++)

if(②)a[j]=0;

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

if(a[i]!

=0)

{

printf("%4d",a[i]);

count++;

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

}

}

4.下面程序的功能是:

将一个数字字符串转换为一个整数。

例如,有字符串“-1234567”程序将它转换为整数-1234567。

#include

#include

longfs(char*p)

{inti=0,sign=1;

longnum=0;

if(p[i]=='-')

sign=①;

if(p[i]=='+'||p[i]=='-')

i=1;

elsei=0;

while(p[i]!

='\0')

{

②=10;

num+=p[i]-48;

i++;

}

num=sign*num;

return(num);

}

voidmain()

{chars[9];

longn;

printf("Enterastring:

\n");

gets(s);

n=fs(s);

printf("③\n",n);

}

5.下面程序的功能是从键盘输入一组小写字母,并保存在字符数组str中。

通过fun()函数把字符数组str中ASCII码为奇数的小写字母转换成对应的大写字母,结果仍保存在原数组中。

例如,输入“abcdefg”,输出“AbCdEfG”

#include

#defineN80

voidfun(chars[])

{

inti;

for(①;②;i++)

{

if(③)

s[i]-=32;

}

}

voidmain()

{

charstr[N];

printf("\nInputastring:

\n");

gets(str);

fun(str);

puts(str);

}

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

当前位置:首页 > 小学教育 > 语文

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

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