c语言近几年考题

2019-05-18 14:10

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

第三十二次等级考试

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

时间: 2010年4月 17 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 在程序设计中,常用一维数组来表示线性表的顺序存储空间。 2. 软件测试的目的是为用户提供没有错误的程序。 3. 栈顶的位置只能进行进栈操作不能进行退栈操作。

4. 处于等待状态的进程,若其等待的事件已发生,就立即转入运行状态。 5. 线性表若采用链式存储表示时其结点之间的存储单元地址可以不连续。

( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 )

6. 在进行插入排序时,其数据比较次数与数据的初始排列有关。 ( 6 ) 7. 数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储结构无关,是独立于计算机的。 8. 在操作系统中,进程最基本的特征是静态性和并发性。 9. 软件危机是由于软件产品过多而产生的。 10.面向过程系统需求分析使用的主要工具是数据流图和数据字典。

( ( ( (

7 ) 8 ) 9 ) 10 )

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

1. 进程从运行状态进入就绪状态的原因可能是( 11 ) 。 11 (A) 时间片用完 (B) 等待某一事件

(C) 等待的事件已发生 (D) 被选中占有处理机 2. 需求分析中开发人员主要从用户那里了解( 12 )。

12 (A) 软件怎样做 (B) 软件做什么 (C) 输入的信息 3. 队列的操作原则是( 13 )。 13 (A) 先进后出

(D) 软件的测试 (B) 先进先出

(C) 只进不出 (D) 只出不进

4. 在需要经常查找结点的前驱后后继的情况下,使用( 14 )比较合适。 14 (A) 单链表

(C) 双链表

(B) 循环链表 (D) 顺序表

(B) 一定存在同步关系 (D) 可能存在同步或互斥关系

5. 任何两个并发进程之间 ( 15 )。 15 (A) 一定存在互斥关系 (C) 一定彼此独立无关

第 1 页 共 50 页

第二部分 C与C++语言程序设计 (共85分) 一、单项选择题 ( 每小题1分,共10分 )

1. 若x和y为double类型,则表达式x=1,y=x+3/2的值为( 16 ) 。(考点:数据类型、运算符)

16 (A) 1 (B) 2 (C) 2.0 (D) 2.5

2. 如果a,b,c,x,y均为int型变量,x=5,y=10,则执行下面语句后,a,b,c的值分别为( 17 )。

a=(--y==x++)?--y:++x; (考点:数据类型、运算符)

b=y++;

c=x;

17 (A) a=7,b=9,c=7

(B) a=7,b=9,c=6

(C) z=6,b=9,c=7 (D) z=6,b=9,c=6

3. 执行下面语句段的输出结果是( 18 )。(考点:逻辑运算符)

int i=1,j=1,k=2;

if( (j++||k++)&&i++)

printf(\18 (A) 1 , 1 , 2 (B) 2 , 2 , 1 (C) 2 , 2 , 2 (D) 2 , 2 , 3

4. 若要求表示 “a不等于0”的关系,则不能正确表示这一关系的表达式为( 19 )。(考点:关系运算) 19 (A) a<>0 (B) a (C) a>0||a<0 (D) a!=0

5. 若有说明int a,*p=&a; 则scanf(\语句不能正确为变量赋值的原因是( 20 )。(考点:指针)

20 (A) *p表示的是指针变量p的地址

(B) *p表示的是变量a的值,而不是变量a的地址

(C) *p表示的是指针变量p 的值

(D) *p只是用来说明p是一个指针变量

6. 若有如下说明,则能使指针变量p的值增加的表达式是( 21 )。(考点:结构体指针)

struct ws

{ int a; int *b; }*p;

21 (A) ++p->a (B) p->b++ (C) p->a++ (D) (p++)->a

7. 以下能对二维数组a进行正确初始化的是( 22 )。(考点:二维数组) 22 (A) int a[2][]={{1,0,1},{5,2,3}}; (B) int a[][3]={{1,2,3},{4,5,6}};

(C) int a[2][4]={{1,2,3},{4,5},{6}}; (D) int a[][3]={{1,0,1},{},{1,1}};

8. 有以下结构体说明和变量定义:(考点:链表操作)

struct node

{ int data;

Struct node *next; }*p,*q,*r;

建立如图所示的链表结构,指针变量p、q分别指向如图所示的结点,指针变量r指向一新结点,

则可以实现将r指向的结点插入到p、q所指结点之间的语句组是( 23 )。 head??

2 6 8 r

4 NULL p q

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

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

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

第 2 页 共 50 页

9. 以下程序的运行结果为( 24 )。(考点:宏定义)

# define

# define PT 3.5 # define S(x) PT*x*x void main() { int a=1,b=2;

printf(\}

24 (A) 14.0 (B) 31.5 (C) 7.5

10. 下面程序段的运行结果为 ( 25 ) 。(考点:位运算)

int a=9,b=020;

printf(\25 (A) 40

(B) 41

(C) 42

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

1. 有如下程序:(考点:字符数组、函数(地址参数))

int count(char *str,char substr[20])

{ int i,j,k,num=0;

for(i=0; *(str+i)!='\\0'; i++) { j=i;

k=0;

while(substr[k]==str[j]) { k++;j++; }

if(substr[k]=='\\0') num++; }

return num; }

void main() {

char str[80],substr[20]; gets(str); gets(substr);

printf(\}

(1) 若运行程序时输入abcdabad和ab两个字符串,则输出结果为(26 (A) 3 (B) 4 (C) 2 (D) 11 (2) 该程序的功能是( 27 )。

27 (A) 比较两个字符串str和substr的大小

(B) 统计子串substr在母串str中出现的次数 (C) 将子串substr复制到母串str中 (D) 统计两个字符串中字符的总个数

2. 有下列程序(考点:函数)

# include int fun(int a,int b) { static c=0;

第 3 页 共 50 页

(D) 10.5

(D) 43

26 )。

if(a>b) c=c+a; else c=c+b; return c; }

void main() {

int a=2,b=5,c=6,d; d=fun(2*a,fun(b,c));

printf(\}

(1) fun(2*a,fun(b,c))的函数调用中,实参的个数为( 28 )。 28 (A) 1 (B) 2 (C) 3 (D) 4 (2) 程序的运行结果是( 29 )。

29 (A) 6 (B) 10

3. 有下列程序(考点:带参数的宏定义)

# include

# define M(x,y) ((x%y==1)?1:0) int fun(int *a,int n) {

int i,s=0;

for(i=0;i

if( M(a[i],2) && M(a[i],3) ) s=s+a[i]; return s; }

void main() {

int a[]={1,2,3,4,5,6,7}; printf(\

}

(1) 宏调用M(a[i],2) && M(a[i],3)为真时所要表达的是( 30 )。 30 (A) 判断a[i]是否能被2或3整除

(B) 判断a[i]是否能被2和3整除

(C) 判断a[i]被2或3整除时,是否至少有一种情况余1 (D) 判断a[i]被2和3整除时,是否都余1 (2) 程序的运行结果是( 31 )。

31 (A) 15 (B) 6 (C) 16

4. 有下列程序(考点:函数(地址参数)、指针运算)

# include \

void prt(int *x,int *y,int *z) {

printf(\,*(z++)); }

void main() {

int a=10,b=40,c=20; prt(&a,&b,&c);

第 4 页 共 50 页

(C) 12 (D) 15

(D) 8

prt(&a,&b,&c); }

(1) 第一次调用函数prt的运行结果是( 32 )。 32 (A) 11,42,31 (B) 11,41,20 (C) 11,21,40 (2) 第二次调用函数prt的运行结果是( 33 )。

(D) 11,41,21

33 (A) 12,42,20 (B) 12,22,41 (C) 11,21,41 (D) 12,42,22

5. 有如下程序(考点:全局变量和局部变量、函数(地址参数)、)

# include

int b=1;

int fun(int *a) {

int b=0; b=b+a[0]; return b; }

void main() {

int a[]={1,2,3,4,5,6},i; for(i=0;i<2;i++) {

b=b+fun(a+i); printf(\

} }

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

34 (A) 2 4 (B) 4 12 (C) 2 3 (D) 4 10

(2) 若将函数fun中的定义“int b=0;”去掉,则程序的运行结果为( 35 35 (A) 2 4

(B) 4 12

(C) 2 3

(D) 4 10

6. 有如下程序(考点:字符数组、函数(地址参数)、逻辑表达式) #include

void fun(char *s,char *t1,char *t2) {

int i,j=0;

for(i=0;s[i]!='\\0';i++) {

if(i%2&&(s[i]>='a'&&s[i]<='z')) t1[i]=s[i]-'a'+'A'; else

t1[i]=s[i];

if(s[i]>='0'&&s[i]<='9') {

t2[j]=s[i]; j++; }

}

t1[i]=t2[j]='\\0';

第 5 页 共 50 页

。 )


c语言近几年考题.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的脉搏心率测量仪-参考论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: