C语言(25次)试题及答案.doc_第1页
C语言(25次)试题及答案.doc_第2页
C语言(25次)试题及答案.doc_第3页
C语言(25次)试题及答案.doc_第4页
C语言(25次)试题及答案.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

四川省普通高等学校计算机应用知识和能力第二十五次等级考试二级(C与C+语言) 笔 试 试 卷时间: 2006年11月 4 日 上午 9:0011:00第一部分软件技术基础(共15分)一、是非判断题(每小题1分,共10分)( 判断下列各题是否正确,如正确,在客观答题纸上对应编号选A,否则选B )1. 在操作系统中,作业调度和进程调度没有区别。( 1 )2. 数据类型是具有共同属性的一类变量的抽象。( 2 )3. 瀑布模型中需求分析的主要工作是确定要开发的软件做什么。( 3 )4. 软件设计阶段产生的最重要的文档之一是概要设计说明书。( 4 )5. 在进行插入排序时,其数据比较次数与数据的初始排列无关。( 5 )6. 软件测试不是为了证明软件的正确性,而是立足于软件有错误而进行的。( 6 )7. 线性表若采用链式存储表示时所有结点之间的存储单元地址必须连续。( 7 )8. 中断处理通常是按中断优先级响应和进行中断的。( 8 )9. 缓冲池可作为CPU和I/O设备之间信息传输的集散地。 ( 9 )10.进程调度根据一定的调度算法,从等待队列中挑选出合适的进程。( 10 )二、选择题(每小题1分,共5分)1. 把高级语言的源程序翻译成二进制代码的过程称为: ( 11 )。 11 (A) 编译 (B) 连接(C) 运行(D) 重定位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. 以下程序运行时若输入12,则结果是 ( 16 )。(考点:条件运算表达式)void main() int x,y; scanf(%d,&x); y=x12?x+10:x-12; printf(%dn,y);16 (A) 0(B) 22(C) 12(D) 10 2. 下列关于构造函数的描述中,错误的是( 17 )。(*考点:C+)17 (A) 构造函数可以设置默认参数(B) 构造函数在定义类对象时自动执行(C) 构造函数可以是内联函数 (D) 构造函数不可以重载 3. C语言能够处理的文件类型是 ( 18 )。(考点:文件)18 (A) 文本文件和数据文件 (B) 文本文件和二进制文件(C) 数据文件和二进制文件 (D) 以上答案都不正确 4. 以下程序段是( 19 )。(考点:循环) x=-1; do x=x*x; while(!x);19 (A) 是死循环 (B) 循环执行二次(C) 循环执行一次(D) 有语法错误 5.以下程序的输出结果是 ( 20 )。(考点:带参数的宏定义)# define PT 5.5# define S(x) PT*x*xmain() int a=1,b=2; printf(%4.1fn,S(a+b);20 (A) 12.0 (B) 9.5(C) 12.5(D) 33.5 6. C语言的语句 char *line5 ; 的含义是指( 21 )。(考点:指针数组)21 (A) line 是一个数组,其数组的每一个元素是指向字符的指针(B) line 是一个指针,指向一个数组,数组的元素是为字符型(C) A和B均不对,但它是C语言正确的语句(D) C语言不允许这样的语句 7. C语言中( 22 )是main函数参数的不正确表达形式。(考点:命令行参数)22 (A) main(int argc,char *argv)(B) main(ac,av) int ac;char *av;(C) main(c,v) int c; char *v;(D) main(a,b) int a; char b ; 8. 若变量都已正确定义,则以下程序段的输出为 ( 23 )。(考点:条件语句)a=10;b=30;c=20;if(ab) a=b;b=c;c=a;printf(a=%d b=%d c=%dn,a,b,c);23 (A) a=10 b=30 c=20 (B) a=10 b=20 c=10(C) a=30 b=20 c=10(D) a=30 b=20 c=30 9. 在下列描述中,错误的是 ( 24 )。 (*考点:C+)24 (A) 对象是类的一个实例(B) 数组下标从0开始(C) 引用是变量的别名(D)没有赋地址值的指针就指向0号单元 10. 某程序中对myfun函数有如下说明:(考点:函数)void myfun();此说明的含义是 ( 25 ) 。25 (A) myfun函数无返回值 (B) myfun函数的返回值可以是任意的数据类型(C) myfun函数的返回值是无值型的指针类型(D) 指针myfun指向一个函数,该函数无返回值二、读程序回答问题 ( 每个选择3分,共45分 ) 1. 下列程序运行的结果为( 26 )。(考点:指针、循环、字符处理)# include main() char *s=121; int k=0,a=0,b=0; do k+; if(k%2=0) a=a+sk-0; continue; b=b+sk-0; a=a+sk-0; while(sk+1); printf(k=%d a=%d b=%dn,k,a,b);26 (A)k=3 a=2 b=3 (B) k=3 a=3 b=2(C) k=2 a=3 b=2 (D) k=2 a=2 b=3 2. 下列程序运行的结果为( 27 )。(考点:递归函数)# include bin(int x) if(x/20) bin(x/2); printf(%d,x%2);main() bin(12);27 (A) 1100 (B) 1000 (C) 12 (D) -12 3. 读程序并回答问题。(考点:结构体数组、结构体指针及运算)struct test int a; int *b;num4,*sp;void main() int n=1,i; for(i=0;ia); printf(%dn,*(sp-b);(1)程序中第一条printf的运行结果为( 28 )。28 (A)1(B) 3 (C)5 (D)7(2)程序中第二条printf的运行结果为( 29 )。29 (A)1(B) 3 (C)5 (D)7 4. 有下列程序(考点:二维数组处理矩阵转置算法)main() int array3=1,2,3,4,5,6,7,8,9; int k,m,n=0; for(k=0;k3;k+) for(m=k+1;m3;m+) n=arraykm; arraykm=arraymk; arraymk=n; for(m=0;m3;m+) printf(%d,arraym0);(1) 此程序的功能是对数组array表示的3阶方阵进行( 30 )。30 (A) 转置(B) 第2行调至第1行、第3行调至第2行、第1行调至第3行(C) 相邻元素交换(D) 第1行与第1列对调(2) 程序运行的输出结果是( 31 )。31 (A) 147 (B) 258(C) 123(D) 369 5. 有下列程序:(考点:函数、静态存储类型变量)fun(int a,int b) static int m=0,i=2; i+=m+1; m=i+a+b; return(m);main() int k=4,m=3,p; p=fun(k,m);L1: printf(%d,p); p=fun(k,m);L2: printf(%d,p);(1) L1行输出结果是( 32 )。32 (A) 7(B) 8(C) 9(D) 10(2) L2行输出语句输出结果是( 33 )。33 (A) 9 (B) 11(C) 20(D) 21 6. 读程序,回答问题。(考点:指针函数(指针参数)、字符串处理)# include main() char *strc(char *str1,char *str2); char s1=1234567,s2=98,*pt; pt=strc(s1,s2); printf(%sn,pt);char *strc(char *str1,char *str2) char *p=str1; do *p+=*str2+; while(*str2!=0); *p=0; return(str1);(1) 该程序的输出结果为( 34 )。34 (A) 98 (B) 89(C) 123456789(D) 1234567(2) 若去掉strc函数中的“*p=0; ”语句,输出为( 35 )。35 (A) 98 (B) 89(C) 9834567(D) 1234567 7. 读程序,回答问题。(考点:循环应用)void main() int n; for(n=100;n=200;n+) if(n%3=0) continue; printf(%d ,n); (1) 该程序的功能为( 36 )。36 (A) 把100200之间的不能被3整除的数输出(B) 输出 107(C) 输出 102(D) 输出 100 101(2) 若将continue改成break,程序的功能为( 37 )。37 (A) 把100200之间的不能被3整除的数输出(B) 输出 107(C) 输出 102(D) 输出 100 101 8.读程序,回答问题。(考点:函数(指针参数)、变量的存储类型)sub(int *s,int *y);main() int a=1,2,3,4,i,x=0; for(i=0;i4;i+) sub(a,&x); printf(%d,x); printf(n);sub(int *s,int *y) static int t=3; *y=st; t-;(1) 该程序的输出结果是( 38 )。38 (A) 1 2 3 4 (B) 4 3 2 1 (C) 0 0 0 0 (D) 4 4 4 4 (2) 若将sub()中的static int t=3换成int t=3,则输出结果是( 39 )。39 (A) 1 2 3 4 (B) 4 3 2 1 (C) 0 0 0 0 (D) 4 4 4 4 9. 要实现函数swap的功能是交换实参的值,要求通过正确调用能返回交换后的结果。能正确执行此功能的函数是( 40 )。(考点:函数)38 (A) swap(int x,int y) int p; p=x; x=y; y=p;(B) swap(int *x,int *y) int p; p=*x; *x=*y; *y=p;(C) swap(int *x,int *y) *x=*y; *y=*x; (D) swap(int *x,int *y) *x=*x+y; y=*x-*y; x=*x-*y; 注意: 请把下面“程序填空”中各小题答案写在主观题答题纸上 每一个空只填一个语句或一个语句所缺的部分内容三、程序填空 ( 每空2分,共30分 ) 1. 以下程序的功能是计算下列级数之和s=1+x+x2/2!+x3/3!+xn/n! (考点:函数、序列处理算法)double sum(int x,int n) int i; double a,b,s; a=1.0;b=1.0;s=1.0; for(i=1;in;i+) ; ; s=s+a/b; return s;void main() int x,n;double s; scanf(%d,%d,&x,&n); ; printf(%fn,s); 2. 下面invert函数实现数组元素值的逆置,即a0,a9互换,a1,a8互换,以此类推。请填空。(考点:函数(指针参数)、数组逆置算法)# include void main() void invert(int *s,int num); int a10=1,2,3,4,5,6,7,8,9,10,i,n=10; for(i=0;i10;i+) printf(%4d,ai); printf(n); invert(a,n-1); for(i=0;i10;i+) printf(%4d,ai); printf(n);void invert(int *s,int num) int *t,k; t=s+num; while( ) k=*s;*s=*t;*t=k; ; ; 3. 下面程序的功能是:从键盘上输入一个已存在的文本文件名test.txt,分别统计test.txt文件中A到Z字符(不区分大小写)的个数,并将结果显示在屏幕上。(考点:文件、字符分类计数算法)# include void main() FILE *fp; char filename15; char c; char ch=A; int n26=0,i; scanf(%s,filename); fp=fopen( ,r); while(!feof(fp) c=fgetc(fp); if(c=a&c=A&c=Z) nc-A+; fclose(fp); for(i=0;i26;i+) if(i%5=0) printf(n); printf(%c(%c)=%3dt, ,ch+32+i,ni); 输出格式如下:A(a)= 12B(b)= 6C(c)= 20D(d)= 7E(e)= 26F(f)= 9G(g)= 7H(h)= 7I(i)= 18J(j)= 0 4. 下面程序的功能是在数组中同时查找最大元素下标和最小元素下标,分别存放在main函数的变量max和min中,请填空。(考点:函数(指针参数)、求最值算法)# include void fun(int *a,int n,int *max,int *min) int i; *max=*min=0; for(i=1;i*(a+*max) ; else if(*(a+i)*(a+min) ; return;void main() int a10=3,15,2,26,9,28,7,1,4,12; int max,min; ; printf(max=%d,min=%dn,max,min);程序输出为:max=5,min=7 5. 下面程序的功能

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论