C语言(31次)答案及分析

更新时间:2023-11-03 01:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

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

第三十一次等级考试

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

时间: 2009年10月 24 日 上午 9:00—11:00 第一部分 软件技术基础 (共15分) 一、是非判断题(每小题1分,共10分) ( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B ) 1. 数据在计算机内存中的表示是指数据的存储结构。 2. 作业与进程的主要区别是前者是由系统自动生成,后者是由用户提交。 3. 从逻辑上可以把数据结构分为线性结构和非线性结构。 4. 在设备管理中,通道是处理输入、输出的软件。 5. 链表可以随机访问任意一个结点,而顺序表则不能。 6. 栈顶的位置是随着进栈和退栈操作而变化的。 7. 处于等待状态的进程,若其等待的事件已发生,就立即转入运行状态。 8. 任何两个并发进程之间一定存在互斥关系。 9. 在面向过程方法的软件生存期内,能准确确定软件系统必须做什么和必须具备的 功能阶段是需求分析。 10.在软件测试的基本方法中,静态测试不用测试用例。 参考答案:ABABB ABBAA

( 1 ) ( 2 ) ( 3 ) ( 4 ) ( 5 ) ( 6 ) ( 7 ) ( 8 ) ( 9 ) ( 10 )

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

1. 若进栈序列为1,2,3,4,且进栈过程中可以出栈,则不可能出栈的序列是( 11 C ) 。 11 (A) 1,4,3,2 (B) 2,3,4,1 (C) 3,1,4,2 (D) 3,4,2,1 2. 操作系统本身是计算机系统软件的重要组成部分,而其物质基础是( 12 A )。 12 (A) 系统硬件 (B) 程序 (C) 数据结构 (D) 标准程序库 3. 外部设备完成了预定的输入/输出操作所引起的中断是( 13 B )。 13 (A) 外中断 (B) I/O中断 (C) 程序中断 (D) 标准程序库 4. 以下的准则中哪个不是软件设计应遵循的( 14 D )。 14 (A) 抽象准则 (B) 模块化准则 (C) 信息屏蔽准则 (D) 综合性准则 5. 在结构化设计方法中,设计功能模块算法属于软件开发中的 ( 15 A )阶段。 15 (A) 详细设计 (B) 需求分析 (C) 总体设计 (D) 编程调试 参考答案:CABDA

四川省计算机二级考试第三十一次C与C++语言笔试试卷 第 1 页 共 10 页

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

1. 已知:char s[]=\(考点:字符指针)

p=s;

则下列叙述正确的是( 16 ) 。 16 (A) s和p完全相同 (B) *p与s[0]不等 (C) *p与 s[0]相等 (D) *s与p相等

2. 以下可以作为函数fopen中第一个参数的正确格式是(17)。(*考点:文件)

17 (A) c:prog\\file1.dat (B) c:\\\\prog\\\\file1.dat

(C) \ (D) \

3. 若有定义:

union data {

int i; float j; char s[5]; }k;

则在Turbo C 2.0环境中sizeof(k)的值是(18)。(考点:共用体类型) 18 (A) 2 (B) 5 (C) 11 (D) 0

4. 下面四个选项中,合法的用户自定义标识是( 19 )。(考点:标识符命名)

19 (A) int (B) a_b3 (C) 3_bc (D) #mm

5. 已知结构体:。(考点:存储类型extern)

struct student {

char name[20]; struct { int year; int month; }birth; char sex; }stu;

以下赋值语句正确的是( 20 ) 20 (A) stu.birth=2009; (B) stu.year=2009;

(C) student.birth.year=2009; (D) stu.birth.year=2009;

6. 下面程序的输出结果是( 21 )。(考点:宏定义)

# include # define M 4

# define N 2*M+1 # define K N/2-5 void main()

{ printf(\ } 21 (A) 2 (B) 1 (C) 0 (D) 3

7. 有以下结构体及其变量的定义:

struct node

四川省计算机二级考试第三十一次C与C++语言笔试试卷 第 2 页 共 10 页

{ int data;

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

如图所示,指针p、q、r分别指向此链表中的三个连续结点。 data next data next data next p q r 若要将q所指结点从链表中删除,使p所指结点与r所指结点连接,不能完成指定操作的语句是( 22 )。(考点:链表) 22 (A) p->next=q->next; (B) p->next=p->next->next;

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

8. 下列程序段中,不是无限循环的是( 23 )。(考点:循环语句)

23 (A) (B) k=0; j=100; do while(1) { ++k; } { j=j0+1;

whiel(k-->=0); if( j>100 ) break; }

(C) (D) s=3333; for( ; ; ); while(s%2+s++%2);

9. 不能把字符串\赋给字符数组b的选项是( 24 )。(考点:字符数组赋值)

24 (A) char b[10]={ 'H','e','l','l','o','!','\\0'};

(B) char b[10]; b=\

(C) char b[10]; strcpy(b, \(D) char b[10]= \

10. 若变量已正确定义并赋值,以下符合C语言语法的表达式是 ( 25 ) 。(考点:表达式)

25 (A) a:=b+1 (B) a=b=c+2 (C) int 18.5%3 (D) a=a+7=c+b

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

1. 在下面程序中(考点:数组、函数(地址参数)、删除字符算法) # include void fun(char *s) {

int i,j;

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

if(s[i]>='0' && s[i]<='9') //是否是数字字符 { s[j]=s[i]; j++; }

s[j]='\\0'; }

void main() {

char s[20]=\ fun(s);

printf(\

四川省计算机二级考试第三十一次C与C++语言笔试试卷 第 3 页 共 10 页

printf(\}

(1) 第1个printf输出的结果为( 26 )。 26 (A) 8 8 (B) 20 8 (C) 20 20 (D) 20 4 (2) 第2个printf输出的结果为( 27 )。 27 (A) abcd (B) ab12cd (C) 1234 (D) ab12cd34

2. 下列程序的输出结果是( 28 )。(考点:函数(地址参数和普通参数)、指针运算)

void fun(char *c,int d) {

*c=*c+1; //对c指针指向的目标对象加1后再赋给目标对象,间接改变了实参的值 d=d+1; //只能改变形参d变量的值 }

void main() {

char a='A',b='a'; fun(&b,a);

printf(\}

28 (A) B,A (B) a,B (C) A,B (D) A,b

3. 下列程序的输出结果是( 29 )。(考点:带参数的宏定义)

# include \

# define GOOD(y) 2.84+y

# define PR(a) printf(\# define PRINT(a) PR(a);putchar('\\n') void main() {

int x=2;

PRINT(GOOD(5)*x); }

? PRINT(GOOD(5)*x)

? PR(GOOD(5)*x);putchar('\\n')

? printf(\ GOOD(5)*x)) ;putchar('\\n') ? printf(\ 2.84+5 *x)) ;putchar('\\n') 29 (A) 11 (B) 15 (C) 13 (D) 12

4. 下列程序运行后的输出结果是( 30 )。(考点:结构体类型、函数(普通参数)、全局变量和局部变量)

# include \struct tree {

int x; char *s;

}t; //t为全局变量

fun( struct tree t ) //t为与全局变量同名的局部变量 {

t.x=10;

t.s=\ return(0);

四川省计算机二级考试第三十一次C与C++语言笔试试卷 第 4 页 共 10 页

}

void main() {

t.x=1; //修改全局变量成员的值

t.s=\ //修改全局变量成员的值 fun( t ); //参数为单向值传递 printf(\}

30 (A) 10,computer (B) 1,minicomputer

(C) 1,computer (D) 10,minicomputer

5. 下列程序编译连接后生成可执行文件CAD.EXE,输入以下命令行:

CAD FILE1 FILE2 ( 表示回车) 程序的运行结果是( 31 )。(考点:命令行参数) # include \

void main( int argc , char *argv[] ) {

int i;

printf(\ // 3

for(i=0;i<=argc-1;i++) //输出3个字符串

printf(\ printf(\ }

31 (A) 2 (B) 3

cadfile1file2 cadfile1file2

(C) 2 (D) 3

CAD.EXEFILE1FILE2 CAD.EXEFILE1FILE2

6. 有下列程序:(考点:for循环嵌套、continue语句、break语句)

# include \void main() i 0 { x++ int i,j,x=0; j 0 1 2 3 for(i=0;i<2;i++) x++ continue x++ continue { x++ x++;

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

if(j%2) continue; x++; } x++; }

printf(\}

(1)该程序的运行结果是( 32 )

1 x++ 0 x++ 1 2 3 continue continue x++ x++ 四川省计算机二级考试第三十一次C与C++语言笔试试卷 第 5 页 共 10 页

本文来源:https://www.bwwdw.com/article/9yx2.html

Top