C语言考试23次笔试试题.docx

上传人:b****6 文档编号:7915379 上传时间:2023-01-27 格式:DOCX 页数:14 大小:19.98KB
下载 相关 举报
C语言考试23次笔试试题.docx_第1页
第1页 / 共14页
C语言考试23次笔试试题.docx_第2页
第2页 / 共14页
C语言考试23次笔试试题.docx_第3页
第3页 / 共14页
C语言考试23次笔试试题.docx_第4页
第4页 / 共14页
C语言考试23次笔试试题.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

C语言考试23次笔试试题.docx

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

C语言考试23次笔试试题.docx

C语言考试23次笔试试题

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

第二十三次等级考试

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

时间:

2005年10月15日

上午9:

00—11:

00

第一部分

软件技术基础

(共15分)

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

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

1.数据在计算机内在中的表示是指数据的存储结构。

(1)

2.能影响中断响应次序的技术是中断优先级和中断屏蔽。

(2)

3.链表可以随机访问任意一个结点,而顺序表则不能。

(3)

4.作业与进程的主要区别是前者是由用户提交,后者是由系统自动生成。

(4)

5.Windows、OS/2、Linux微机操作系统都是多用户多任务操作系统。

(5)

6.数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。

(6)

7.流式文件和记录式文件都以字符为基本单位进行存取。

(7)

8.不定长文件是指字段的长度不固定。

(8)

9.软件工程的三要素包括方法、工具和环境。

(9)

10.软件结构是以指令为基础而组成的一种控制层次结构。

(10)

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

1.若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是(11)

11(A)1,4,3,2(B)2,3,4,1

(C)3,1,4,2(D)3,4,2,1

2.任何两个并发进程之间(12)

12(A)一定存在互斥关系(B)一定存在同步关系

(C)一定彼此独立无关(D)可能存在同步或互斥关系

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.若变量已定义并赋值,下列符合C语法的表达式是(16)

16(A)a:

=b+1(B)a=b=c+2

(C)int18.5%3(D)a=a+7=c+b

2.以下程序输出的结果是(17)

voidmain()

{chara[]="HelloChina";

s[5]=0;

puts(s);

}

17(A)Hello(B)China(C)HelloChina(D)O

3.有以下程序

#include

voidmain()

{char*p,*q;

p=(char*)malloc(sizeof(char)*20);

q=p;

scanf("%s%s",p,q);

printf("%s,%s\n",p,q);

}

若输入abcdef<回车>,则输出为(18)。

18(A)def,def(B)abc,def(C)abc,d(D)d,d

4.下列函数形式正确的是(19)。

19(A)doublefun(intx,inty)(B)fun(intx,y)

{z=x+y;{intz;

returnz;}returnz;}

(C)fun(x,y)(D)doublefun(intx,inty)

{intx,y;{doublez;

doublez=x+y;z=x+y;

returnz;}returnz;}

5.下列有关类和对象的说法不正确的是(20)。

20(A)对象是类的一个实例

(B)一个类只能有一个对象

(C)任何一个对象只能属于一个具体的类

(D)类与对象的关系和数据类型与变量的关系相似

6.派生类的对象对它的基类成员中(21)是可以访问的。

21(A)公有继承的公有成员(B)公有继承的私有成员

(C)保护继承的公有成员(D)私有继承的公有成员

7.已知学生的结构体描述如下:

structstudents

{intno;

charname[10];

charsex;

struct

{intday;

intmonth;

intyear;

}birth;

intscore;

};

用学生结构体定义了变量w:

structstudentsw;

设变量w中的"生日"是"1982年5月29日",下列对生日的正确赋值方法是(22)。

22(A)day=29;(B)w.day=29

month=5;w.month=5;

year=1982;w.year=1982;

(C)w.birth.day=29;(D)birth.day=29;

w.birth.month=5;birth.month=5;

w.birth.year=1982;birth.year=1982;

8.假定p1和p2是已赋值的int型指针,则下面有关运算中,(23)是非法的。

23(A)(p1+=4)=p2(B)p2=10-p1;

(C)if(p1!

=p2)printf("!

=");(D)p1+=(p2-p1);

9.关于C/C++语言,以下叙述正确的是(24)。

24(A)C是面向过程的程序设计语言,C++不支持面向过程的程序设计

(B)C语言支持图形设计,C++不支持

(C)C程序由函数组成,而C++程序由类组成

(D)C是C++的子集

10.设有以下语句:

charx=3,y=6,z;

z=x^y<<2;

则z的值是(25)。

25(A)00010100(B)00011100

(C)00011011(D)00011000

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

1.下列程序运行的结果为(26)。

#include

voidmain()

{

inta=2,b=-1,c=2;

if(a

if(b

elsec+=1;

printf("%d",c);

}

26(A)3(B)2(C)1(D)0

2.下列程序运行的结果为(27)。

#include

voidmain()

{

inta=15,b=21,m=0;

switch(a%3)

{

case0:

m++;break;

case1:

m++;

switch(b%2)

{

default:

m++;

case0:

m++;break;

}

}

printf("%d",m);

}

27(A)1(B)2(C)3(D)4

3.以下程序运行后,文件test中的内容为(28)。

#include

#include

voidfun(char*fname,char*st)

{

FILE*fp;

inti;

fp=fopen(fname,"w");

for(i=0;i

fputc(st[i],fp);

fclose(fp);

}

voidmain()

{

fun("test","world");

fun("test","hello");

}

28(A)world(B)worldhello(C)helloworld(D)hello

4.读下列程序:

#include

voidmain()

{

unionvalue

{charch;

intn;

doublef;

}Data;

cout<<"sizeof(Data)="<

Data.ch='a';

cout<

Data.n=100;

cout<

Data.f=78.168;

cout<

}

①value是(29)。

29(A)共用体变量名(B)共用体名

(C)结构体变量名(D)结构体名

②程序的运行结果是(30)。

30(A)sizeof(Data)=13(B)sizeof(Data)=8

aa

100100

78.16878.168

(C)13(D)8

aa

100100

78.16878.168

5.读下列程序:

#include

voidmain()

{

staticcharstr[50]="485057ehk105101",*p=str;

intsum1=0,sum2=0;

while(*p!

='\0')

{

if(*p>=48&&*p<=57)

sum1++;

elseif(*p>=101&&*p<=107)

sum2++;

else;

p++;

}

cout<

}

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

31(A)3,2(B)2,3(C)3,12(D)12,3

②while(*p!

='\0')与(32)功能相同。

32(A)while(*p!

=0)(B)while(*p=0)

(C)while(*p<>'\0')(D)while(*p!

0)

6.读下列程序:

#include

#include

voidfun(char*w,intn)

{

chart,*s1,*s2;

s1=w;

s2=w+n-1;

while(s1

}

voidmain()

{

char*p;

p="1234567";

fun(p,strlen(p));

puts(p);

}

①输出结果是(33)。

33(A)7654321(B)1711717(C)1714171(D)1234567

②若把程序中的语句:

while(s1

while(s1

34(A)7654321(B)1711717(C)1714171(D)1234567

7.下列程序运行结果是(35)。

#defineX5

#defineYX+1

#defineZY*X/2

voidmain()

{

inta;

a=Y;

printf("%d",Z);

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

}

35(A)76(B)126(C)125(D)75

8.读下列程序:

#include

intx;

voidsub(int*s,intx)

{

staticintt=0;

x+=s[t];

t++;

}

voidmain()

{

inta[]={3,8,4,2},i;

intx=0;

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

{

sub(a,x);

printf("%3d",x);

}

}

①程序的执行结果是(36)。

36(A)3842(B)3111517

(C)0000(C)2483

②若把程序第二行的语句"intx;"删除,运行结果是(37)。

37(A)3842(B)3111517

(C)0000(C)2483

9.读下列程序分析运行结果

#include

char*cat(char*str1,char*str2)

{

char*pt;

for(pt=str1;*pt!

='\0';pt++);

while(*str2!

='\0')

*pt++=*str2++;

return(pt);

}

voidmain()

{

char*p,s1[30]="210",s2[30]="45";

p=cat(s1,s2);

printf("%d\n",p-s1);

p=cat(s1,s2);

printf("%d\n",p-s1);

}

①主函数中,执行第一个输出函数后的结果为(38)。

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

②主函数中,执行第二个输出函数后的结果为(39)。

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

10.下列程序的运行结果是(40)。

#include

voidmain()

{

char*str[]={"One","Two","Three","Four"};

char**ptr=str;

inti;

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

printf("%s",(ptr+1)[i]);

}

40(A)newohree(B)Two

(C)TwoThreeFour(D)指针运算非法,无输出

注意:

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

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

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

1.以下程序可把输入的十进制数以十六进制的形式输出。

#include

voidmain()

{

charb[17]="0123456789ABCDEF";

intc[64],d,i=0,base=16;

longn;

scanf("%ld",&n);

do{

c[i]=①;

i++;

n=n/base;

}while(n!

=0);

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

{

d=②;

printf("%c",③);

}

printf("\n");

}

2.有一个数是43634,其左右对称,求比它大的对称数中最小的那个。

#include

voidmain()

{

longinti=43634,j;

intcount,ch[10];

do

{

i++;

j=i;

count=0;

while(j)

{

ch[count]=j%10;

j=①;

count++;

}

if(②)

break;

}while

(1);

printf("%ld\n",③);

}

3.以下程序能统计并输出1至100之间所有能被3整除但不能被7整除的所有正整数。

#include

#defineM100

voidfun(intm,int*p,int*t)

{

inti,num=0;

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

if(①)

②;

*t=num;

}

voidmain()

{

inta[M],n,k;

③;

for(k=0;k

if((k+1)%5==0)

printf("\n");

else

printf("%3d",a[k]);

printf("\n");

}

4.下面程序功能是从字符串s中删除任何在第二个字符串t中出现的字符,然后输出。

#include

voidmain()

{

chars[81],t[20],*p1,*p2;

inti;

scanf("%s%s",①);

printf("\n");

p1=s;

for(i=0;*(p+i);i++)

for(p2=t;*p2;p2++)

while(②)

strcpy(③);

printf("%s",s);

}

5.文件stu.txt中存放了一个学生各门课程的考试分数,数据之间以逗号分割。

下面程序将文件中的所有分数取出,计算出平均分,显示在屏幕上,还要把这个平均分数按原文件的数据格式记录在原文件中。

例如文件stu.txt中存放的为“60.5,81.1,93.5,90.5”,则程序运行后文件stu.txt中为“60.5,81.1,93.5,90.5,78.366669”。

#include

voidmain()

{

intn=0;

floatx=0.0,y;

FILE*fp;

fp=①;

do

{

fscanf(②);

if(feof(fp))break;

x+=y;

n++;

}while

(1);

x=x/n;

printf("average=%f",x);

③;

fclose(fp);

}

欢迎进入

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

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

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

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