四川省计算机等级考试二级C语言笔试题23
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
四川省计算机等级考试二级C语言笔试题(第二十三次)一 2009-03-29 15:41:57 四川省普通高等学校计算机应用知识和能力 第二十三次等级考试 二级(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分)
} 26 (A) 3 (B) 2 (C) 1 (D) 0 2. 下列程序运行的结果为 ( 27 )。 # include <stdio.h> void main() { int a=15,b=21,m=0; switch(a%3) { case 0 : m++; break; case 1 : m++; switch(b%2) { default : m++; case 0 : m++; break; } } printf("%d", m ); } 27 (A) 1 (B) 2 (C) 3 (D) 4 3. 以下程序运行后,文件test 中的内容为 ( 28 )。 # include <stdio.h> # include <string.h> void fun(char *fname, char *st) { FILE *fp; int i; fp=fopen(fname,"w"); for(i=0; i<strlen(st); i++ ) fputc(st[i] , fp ); fclose(fp); } void main() { fun("test","world"); fun("test","hello");
q=p; scanf("%s %s",p,q); printf("%s,%s\n",p,q); } 若输入abc def<回车>,则输出为 ( 18 )。 18 (A) def,def (B) abc,def (C) abc,d (D) d,d 4.下列函数形式正确的是( 19 )。 19 (A) double fun(int x,int y) (B) fun(int x,y) { z=x+y; { int z; return z; } return z; } (C) fun(x,y) (D) double fun(int x,int y) { int x,y; { double z; double z=x+y; z=x+y; return z; } return z; } 5.下列有关类和对象的说法不正确的是( 20 ) 。 20 (A) 对象是类的一个实例 (B) 一个类只能有一个对象 (C) 任何一个对象只能属于一个具体的类 (D) 类与对象的关系和数据类型与变量的关系相似 6. 派生类的对象对它的基类成员中( 21 )是可以访问的。 21 (A) 公有继承的公有成员 (B) 公有继承的私有成员 (C) 保护继承的公有成员 (D) 私有继承的公有成员 7. 已知学生的结构体描述如下: struct students { int no; char name[10]; char sex; struct { int day; int month; int year; }birth; int score; }; 用学生结构体定义了变量w : struct students w;
设变量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. 设有以下语句: char x=3,y=6,z; z=x^y<<2; 则z的值是( 25 )。 25 (A) 00010100 (B) 00011100 (C) 00011011 (D) 00011000 四川省计算机等级考试二级C语言笔试题(第二十三次)二 2009-03-29 15:43:16 二、读程序回答问题(每个选择3分,共45分) 1. 下列程序运行的结果为 ( 26 )。 # include <stdio.h> void main() { int a=2,b=-1,c=2; if(a<b) if(b<c) c=0; else c+=1; printf("%d",c);
② 若把程序中的语句:while(s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } 改写 成: while (s1<s2) { t=*s1; *s1=*s2; *s2=t; s1++; s2++; },则输出结果是( 34 )。 34 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567 7. 下列程序运行结果是 ( 35 )。 # define X 5 # define Y X+1 # define Z Y*X/2 void main() { int a; a=Y; printf("%d ", Z); printf("%d\n",--a); } 35 (A) 7 6 (B) 12 6 (C) 12 5 (D) 7 5 8. 读下列程序: # include <stdio.h> int x; void sub(int *s , int x ) { static int t=0; x+=s[t]; t++; } void main() { int a[]={3,8,4,2},i; int x=0; for(i=0; i<4; i++) { sub(a,x); printf("%3d",x); } }
} 28 (A) world (B) worldhello (C) helloworld (D) hello 4. 读下列程序: # include <iostream.h> void main() { union value { char ch; int n; double f; }Data; cout<<"sizeof(Data)="<<sizeof(Data)<<endl; Data.ch='a'; cout<<Data.ch<<endl; Data.n=100; cout<<Data.h<<endl; Data.f=78.168; cout<<Data.f<<endl; } ① value 是 ( 29 )。 29 (A) 共用体变量名 (B) 共用体名 (C) 结构体变量名 (D) 结构体名 ② 程序的运行结果是 ( 30 )。 30 (A) sizeof(Data)=13 (B) sizeof(Data)=8 a a 100 100 78.168 78.168 (C) 13 (D) 8 a a 100 100 78.168 78.168 5. 读下列程序: # include <iostream.h> void main() { static char str[50]="485057ehk105101",*p=str;
int sum1=0,sum2=0; while(*p!='\0') { if(*p>=48 && *p<=57) sum1++; else if(*p>=101 && *p<=107) sum2++; else; p++; } cout<<sum1<<','<<sum2<<endl; } ① 程序的运行结果是 ( 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 <stdio.h> # include <string.h> void fun(char *w, int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } } void main() { char *p; p="1234567"; fun(p,strlen(p)); puts(p); } ① 输出结果是 ( 33 )。 33 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567
பைடு நூலகம்
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) int 18.5%3 (D) a=a+7=c+b 2. 以下程序输出的结果是 ( 17 ) void main() { char s[]="Hello China"; s[5]=0; puts(s); } 17 (A) Hello (B) China (C) Hello China (D) O 3. 有以下程序 #include <malloc.h> void main() { char *p,*q; p=(char *)malloc(sizeof(char)*20);
} 26 (A) 3 (B) 2 (C) 1 (D) 0 2. 下列程序运行的结果为 ( 27 )。 # include <stdio.h> void main() { int a=15,b=21,m=0; switch(a%3) { case 0 : m++; break; case 1 : m++; switch(b%2) { default : m++; case 0 : m++; break; } } printf("%d", m ); } 27 (A) 1 (B) 2 (C) 3 (D) 4 3. 以下程序运行后,文件test 中的内容为 ( 28 )。 # include <stdio.h> # include <string.h> void fun(char *fname, char *st) { FILE *fp; int i; fp=fopen(fname,"w"); for(i=0; i<strlen(st); i++ ) fputc(st[i] , fp ); fclose(fp); } void main() { fun("test","world"); fun("test","hello");
q=p; scanf("%s %s",p,q); printf("%s,%s\n",p,q); } 若输入abc def<回车>,则输出为 ( 18 )。 18 (A) def,def (B) abc,def (C) abc,d (D) d,d 4.下列函数形式正确的是( 19 )。 19 (A) double fun(int x,int y) (B) fun(int x,y) { z=x+y; { int z; return z; } return z; } (C) fun(x,y) (D) double fun(int x,int y) { int x,y; { double z; double z=x+y; z=x+y; return z; } return z; } 5.下列有关类和对象的说法不正确的是( 20 ) 。 20 (A) 对象是类的一个实例 (B) 一个类只能有一个对象 (C) 任何一个对象只能属于一个具体的类 (D) 类与对象的关系和数据类型与变量的关系相似 6. 派生类的对象对它的基类成员中( 21 )是可以访问的。 21 (A) 公有继承的公有成员 (B) 公有继承的私有成员 (C) 保护继承的公有成员 (D) 私有继承的公有成员 7. 已知学生的结构体描述如下: struct students { int no; char name[10]; char sex; struct { int day; int month; int year; }birth; int score; }; 用学生结构体定义了变量w : struct students w;
设变量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. 设有以下语句: char x=3,y=6,z; z=x^y<<2; 则z的值是( 25 )。 25 (A) 00010100 (B) 00011100 (C) 00011011 (D) 00011000 四川省计算机等级考试二级C语言笔试题(第二十三次)二 2009-03-29 15:43:16 二、读程序回答问题(每个选择3分,共45分) 1. 下列程序运行的结果为 ( 26 )。 # include <stdio.h> void main() { int a=2,b=-1,c=2; if(a<b) if(b<c) c=0; else c+=1; printf("%d",c);
② 若把程序中的语句:while(s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } 改写 成: while (s1<s2) { t=*s1; *s1=*s2; *s2=t; s1++; s2++; },则输出结果是( 34 )。 34 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567 7. 下列程序运行结果是 ( 35 )。 # define X 5 # define Y X+1 # define Z Y*X/2 void main() { int a; a=Y; printf("%d ", Z); printf("%d\n",--a); } 35 (A) 7 6 (B) 12 6 (C) 12 5 (D) 7 5 8. 读下列程序: # include <stdio.h> int x; void sub(int *s , int x ) { static int t=0; x+=s[t]; t++; } void main() { int a[]={3,8,4,2},i; int x=0; for(i=0; i<4; i++) { sub(a,x); printf("%3d",x); } }
} 28 (A) world (B) worldhello (C) helloworld (D) hello 4. 读下列程序: # include <iostream.h> void main() { union value { char ch; int n; double f; }Data; cout<<"sizeof(Data)="<<sizeof(Data)<<endl; Data.ch='a'; cout<<Data.ch<<endl; Data.n=100; cout<<Data.h<<endl; Data.f=78.168; cout<<Data.f<<endl; } ① value 是 ( 29 )。 29 (A) 共用体变量名 (B) 共用体名 (C) 结构体变量名 (D) 结构体名 ② 程序的运行结果是 ( 30 )。 30 (A) sizeof(Data)=13 (B) sizeof(Data)=8 a a 100 100 78.168 78.168 (C) 13 (D) 8 a a 100 100 78.168 78.168 5. 读下列程序: # include <iostream.h> void main() { static char str[50]="485057ehk105101",*p=str;
int sum1=0,sum2=0; while(*p!='\0') { if(*p>=48 && *p<=57) sum1++; else if(*p>=101 && *p<=107) sum2++; else; p++; } cout<<sum1<<','<<sum2<<endl; } ① 程序的运行结果是 ( 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 <stdio.h> # include <string.h> void fun(char *w, int n) { char t,*s1,*s2; s1=w; s2=w+n-1; while(s1<s2) { t=*s1++; *s1=*s2--; *s2=t; } } void main() { char *p; p="1234567"; fun(p,strlen(p)); puts(p); } ① 输出结果是 ( 33 )。 33 (A) 7654321 (B) 1711717 (C) 1714171 (D) 1234567
பைடு நூலகம்
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) int 18.5%3 (D) a=a+7=c+b 2. 以下程序输出的结果是 ( 17 ) void main() { char s[]="Hello China"; s[5]=0; puts(s); } 17 (A) Hello (B) China (C) Hello China (D) O 3. 有以下程序 #include <malloc.h> void main() { char *p,*q; p=(char *)malloc(sizeof(char)*20);