全国计算机等级考试二级C语言程序设计考试大纲及习题

上传人:m**** 文档编号:567301256 上传时间:2024-07-19 格式:PPT 页数:247 大小:1.58MB
返回 下载 相关 举报
全国计算机等级考试二级C语言程序设计考试大纲及习题_第1页
第1页 / 共247页
全国计算机等级考试二级C语言程序设计考试大纲及习题_第2页
第2页 / 共247页
全国计算机等级考试二级C语言程序设计考试大纲及习题_第3页
第3页 / 共247页
全国计算机等级考试二级C语言程序设计考试大纲及习题_第4页
第4页 / 共247页
全国计算机等级考试二级C语言程序设计考试大纲及习题_第5页
第5页 / 共247页
点击查看更多>>
资源描述

《全国计算机等级考试二级C语言程序设计考试大纲及习题》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言程序设计考试大纲及习题(247页珍藏版)》请在金锄头文库上搜索。

1、全国计算机等级考试二级C语言程序设计考试大纲及习题Stillwatersrundeep.流静水深流静水深,人静心深人静心深Wherethereislife,thereishope。有生命必有希望。有生命必有希望第一部分 考试大纲(2007年)n基本要求基本要求n考试内容考试内容n考试方式考试方式第一部分 考试大纲基本要求1.熟悉熟悉VisualC+6.0集成开发环境集成开发环境2.掌握结构化程序设计的方法,具有良好的掌握结构化程序设计的方法,具有良好的程序设计风格程序设计风格3.掌握程序设计中简单的数据结构和算法并掌握程序设计中简单的数据结构和算法并能阅读简单的程序能阅读简单的程序4.在在Vi

2、sualC+6.0集成开发环境下,能够集成开发环境下,能够编写简单的编写简单的C程序,程序,并具有基本的纠错和并具有基本的纠错和调试程序的能力调试程序的能力考试内容1C语言程序的结构语言程序的结构1.程序的构成,程序的构成,main函数和其他函数函数和其他函数2.头文件,数据说明,函数的开始和结束标志头文件,数据说明,函数的开始和结束标志以及程序中注释以及程序中注释3.源程序的书写格式源程序的书写格式4.C语言的风格语言的风格考试内容2数据类型及其运算数据类型及其运算1.C的数据类型(基本类型,构造类型,指针的数据类型(基本类型,构造类型,指针类型,空类型)及其定义方法类型,空类型)及其定义方

3、法2.C运算符的种类、运算优先级和结合性运算符的种类、运算优先级和结合性3.不同类型数据间的转换与运算不同类型数据间的转换与运算4.C表达式类型(赋值表达式,表达式类型(赋值表达式,算术表达式,算术表达式,关系表达式,逻辑表达式,条件表达式,逗关系表达式,逻辑表达式,条件表达式,逗号表达式)和求值规则号表达式)和求值规则考试内容3基本语句基本语句1.表达式语句,空语句,复合语句表达式语句,空语句,复合语句2.输入输出函数的调用,正确输入数据并正确输入输出函数的调用,正确输入数据并正确设计输出格式设计输出格式考试内容4选择结构程序设计选择结构程序设计1.用用if语句实现选择结构语句实现选择结构2

4、.用用switch语句实现多分支选择结构语句实现多分支选择结构3.选择结构的嵌套选择结构的嵌套考试内容5循环结构程序设计循环结构程序设计1.for循环结构循环结构2.while和和do-while循环结构循环结构3.continue语句和语句和break语句语句4.循环的嵌套循环的嵌套考试内容6数组的定义和引用数组的定义和引用1.一维数组和二维数组的定义、初始化和数组一维数组和二维数组的定义、初始化和数组元素的引用元素的引用2.字符串和字符数组字符串和字符数组考试内容7函数函数1.库函数的正确使用库函数的正确使用2.函数的定义方法函数的定义方法3.函数的类型和返回值函数的类型和返回值4.形式参

5、数与实际参数,参数值的传递形式参数与实际参数,参数值的传递5.函数的正确调用,嵌套调用,递归调用函数的正确调用,嵌套调用,递归调用6.局部变量和全局变量局部变量和全局变量7.变量的存储类别(自动,静态,寄存,外部)变量的存储类别(自动,静态,寄存,外部),变量的作用域和生存期,变量的作用域和生存期考试内容8编译预处理编译预处理1.宏定义和调用(不带参数的宏,带参数的宏)宏定义和调用(不带参数的宏,带参数的宏)2.“文件包含文件包含”处理处理考试内容9指针指针1.地址与指针变量的概念,地址运算符与间址地址与指针变量的概念,地址运算符与间址运算符运算符2.一维、二维数组和字符串的地址以及指向变一维

6、、二维数组和字符串的地址以及指向变量、数组、字符串、结构体的指针变量的定量、数组、字符串、结构体的指针变量的定义。通过指针引用以上各类型数据义。通过指针引用以上各类型数据3.用指针作函数参数用指针作函数参数4.返回地址值的函数返回地址值的函数5.指针数组,指向指针的指针指针数组,指向指针的指针考试内容十十.结构体与共用体结构体与共用体1.用用typedef说明一个新类型说明一个新类型2.结构体与共用体类型数据的定义和成员的引结构体与共用体类型数据的定义和成员的引用用3.通过结构体构成链表,单向链表的建立,节通过结构体构成链表,单向链表的建立,节点数据的输出、删除与插入点数据的输出、删除与插入考

7、试内容十一十一.位运算位运算1.位运算的含义和使用位运算的含义和使用2.简单的位运算简单的位运算考试内容十二十二.文件操作文件操作1.只要求缓冲文件系统(即高级磁盘只要求缓冲文件系统(即高级磁盘I/O系统)系统),对非缓冲文件系统(即低级磁盘,对非缓冲文件系统(即低级磁盘I/O系统)系统)不要求不要求2.文件类型指针(文件类型指针(FILE类型指针)类型指针)3.文件的打开和关闭(文件的打开和关闭(fopen,fclose)4.文件的读写文件的读写(fputc,fgetc,fgets,fread,fwritefprintf,fscanf函数的应用),文件的定位函数的应用),文件的定位(rewi

8、nd,fseek函数的应用)函数的应用)考试方式1.笔试:笔试:90分钟,满分分钟,满分100分,其中含公共分,其中含公共基础知识部分的基础知识部分的30分分2.上机:上机:90分钟,满分分钟,满分100分分上机操作包括:上机操作包括:填空填空改错改错编程编程 第二部分 样题及参考答案n选择题选择题n填空题填空题n上机操作题上机操作题填空题填空题改错题改错题编程题编程题第二部分 样题及参考答案选择题n选择题选择题以下程序的输出结果是以下程序的输出结果是#include“stdio.h”main()inti=010,j=10,k=0x10;printf(“%d,%d,%d”,i,j,k);A)8

9、,10,16B)8,10,10C)10,10,10D)10,10,16选择题设有如下语句:设有如下语句:char*s=“t”NameAddressn”;则指针则指针s所指字符串的长度为所指字符串的长度为A)说明不合法说明不合法B)19C)18D)14选择题C语言中的基本数据类型包括语言中的基本数据类型包括A)整型、实型、逻辑型整型、实型、逻辑型B)整型、实型、字符型整型、实型、字符型C)整型、字符型、逻辑型整型、字符型、逻辑型D)整型、实型、逻辑型、字符型整型、实型、逻辑型、字符型选择题为表示关系为表示关系xyz,应使用的,应使用的C语言表达式语言表达式是是A)(x=y)&(y=z)B)(x=

10、y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)选择题以下对以下对C语言字符数组的描述中错误的是语言字符数组的描述中错误的是A)字符数组可以存放字符串字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值对字符数组整体赋值D)不可以用关系运算符对字符数组中字符串不可以用关系运算符对字符数组中字符串进行比较进行比较选择题以下说法中正确的是以下说法中正确的是A)C语言程序总是从第一个定义的函数开始语言程序总是从第一个定义的函数开始执行执行B)在在C语言

11、程序中,要调用的函数必须在语言程序中,要调用的函数必须在main()函数中定义函数中定义C)C语言程序总是从语言程序总是从main()函数开始执行函数开始执行D)C语言程序中的语言程序中的main()函数必须放在程序函数必须放在程序的开始部分的开始部分选择题有以下程序段:有以下程序段:intx=3;doprintf(“%3d”,x-=2);while(!(-x);执行后的输出结果是执行后的输出结果是A)1B)30C)1-2D)死循环死循环选择题设有如下定义:设有如下定义:char*aa2=“abcd”,”ABCD”;则以下说法中正确的是则以下说法中正确的是A)aa数组元素的值分别是数组元素的值

12、分别是“abcd”和和”ABCD”B)aa是指针变量,它指向含有两个数组元是指针变量,它指向含有两个数组元素的字符型一维数组素的字符型一维数组C)aa数组的两个元素分别存放的是含有数组的两个元素分别存放的是含有4个个字符的一维数组的首地址字符的一维数组的首地址D)aa数组的两个元素中分别存放了字符数组的两个元素中分别存放了字符a和和A的地址的地址选择题设有以下定义:设有以下定义:inta43=1,2,3,4,5,6,7,8,9,10,11,12;int(*prt)3=a,*p=a0;则下列能够正确表示数组元素则下列能够正确表示数组元素a12的表达的表达式是式是A)*(*prt+1)2)B)*(

13、*(p+5)C)(*prt+1)+2D)*(*(a+1)+2)选择题有以下程序:有以下程序:#include“stdio.h”#include“stdlib.h”fut(int*s,intp23)*s=p11;main()inta23=1,3,5,7,9,11,*p;p=(int*)malloc(sizeof(int);fut(&p,a);printf(“%dn”,*p);程序的运行结果是程序的运行结果是A)1B)7C)9D)11填空题n填空题填空题能正确表示逻辑关系能正确表示逻辑关系“10x100或或x&b0)putchar(*chp);putchar(n);GFEDCB(x10&x100)

14、|x0或或(10x&x100)|x0或或x10&xx|(10x&x100)填空题以下程序运行后的输出结果是以下程序运行后的输出结果是_#include“stdio.h”voidast(intx,inty,int*cp,int*dp)*cp=x+y;*dp=x-y;main()inta,b,c,d;a=4;b=3;ast(a,b,&c,&d);printf(“%d%d”,c,d);71填空题有以下程序:有以下程序:#include“stdio.h”main()charstr1=“howdoyoudo”,str210;char*p1=str1,*p2=str2;scanf(“%s”,p2);pri

15、ntf(“%s”,p2);printf(“%sn”,p1);若运行时输入:若运行时输入:HOWDOYOUDO回车回车,则程序的输出结果是,则程序的输出结果是_HOWhowdoyoudo填空题以下程序的功能是:首先由终端键盘输入一个文件名,然后把以下程序的功能是:首先由终端键盘输入一个文件名,然后把从终端键盘输入的字符以文本方式依次存放到该文件中,用从终端键盘输入的字符以文本方式依次存放到该文件中,用#作为结束输入的标志。请填空。作为结束输入的标志。请填空。#include“stdio.h”#include“stdlib.h”main()FILE*fp;charch,fname10;printf

16、(“Inputthenameoffilen”);gets(fname);if(fp=_)=NULL)printf(“Cannotopenn”);exit(0);printf(“Enterdatan”);while(ch=getchar()!=#)fputc(_,fp);fclose(p);fopen(fname,”w”)或或fopen(fname,”w+”)fopen(fname,”a”)或或fopen(fname,”a+”)ch上机操作题n上机操作题上机操作题填空题填空题请补充请补充main函数,该函数的功能是:计算两函数,该函数的功能是:计算两个自然数个自然数n和和m(m10000)之间所

17、有数的和之间所有数的和(n和和m从键盘输入)。从键盘输入)。例如:当例如:当n=1,m=100时,时,sum=5050;当;当n=100,m=1000时,时,sum=495550。请在程序的下划线处填入正确的内容,并把请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。下划线删除,使程序得出正确的结果。注意:不得增行或减行,也不得更改程序的注意:不得增行或减行,也不得更改程序的结构!结构!上机操作题试题程序:试题程序:#includemain()intn,m;longsum;_;clrscr();printf(nInputn,mn);scanf(%d,%d,&n,&m);w

18、hile(n=m)_;n+;printf(sum=_n,sum);sum=0sum+=n或或sum=sum+n%ld上机操作题改错题改错题下列给定程序中,函数下列给定程序中,函数fun的功能是:逐个的功能是:逐个比较比较a、b两个字符串对应位置中的字符,把两个字符串对应位置中的字符,把ASCII值大或相等的字符存放到值大或相等的字符存放到c数组中,数组中,形成一个新的字符串。例如:若形成一个新的字符串。例如:若a中的字符中的字符串为:串为:aBCDeFgH,b中的字符串为:中的字符串为:ABcd,则,则c中的字符串应为:中的字符串应为:aBcdeFgH。请改正程序中错误,使它能得到正确结果。请

19、改正程序中错误,使它能得到正确结果。注意:不要改动注意:不要改动main函数,不得增行或减函数,不得增行或减行,也不得更改程序的结构。行,也不得更改程序的结构。上机操作题试题程序:试题程序:#include“stdio.h”#include“string.h”voidfun(char*p,char*q,char*c)/*found*/intk=1;/*found*/while(*p!=*q)if(*p*q)ck=*q;elseck=*p;if(*p)p+;if(*q)q+;/*found*/k+1;intk=0;while(*p|*q)或或while(*p!=0|*q!=0)k+=1;或或k=

20、k+1;或或k+;或或+k;上机操作题main()chara10=“aBCDeFgH”,b10=“ABcd”,c80=0;fun(a,b,c);printf(“Thestringa:”);puts(a);printf(“Thestringb:”);puts(b);printf(“Theresult:”);puts(c);上机操作题编程题编程题请编写函数请编写函数fun,它的功能是:求出,它的功能是:求出1到到1000之内能被之内能被7或或11整除、但不能同时被整除、但不能同时被7和和11整除的所有整数,并将它们放在整除的所有整数,并将它们放在a所指的数组中,通过所指的数组中,通过n返回这些数的

21、个数。返回这些数的个数。注意:部分源程序给出如下。注意:部分源程序给出如下。请勿改动主函请勿改动主函数和其他函数的任何内容,数和其他函数的任何内容,仅在函数仅在函数fun的花括号中填入所编写的若干语句。的花括号中填入所编写的若干语句。上机操作题试题程序:试题程序:#include“stdio.h”voidfun(int*a,int*n)main()intaa1000,n,k;fun(aa,&n);for(k=0;kn;k+)if(k+1)%10=0)printf(“n”);elseprintf(“%5d”,aak);inti,j=0;for(i=1;iy&y!=0);C)if(xy)x-D)i

22、f(y0&n5);程序运行后的输出结果是程序运行后的输出结果是()A)235B)0235C)02356D)23562007年4月二级C语言笔试试卷(24)有以下程序有以下程序mian()inti,j;for(i=1;i4;i+)for(j=i;j4;j+)printf(“%d*%d=%d“,i,j,i*j);printf(“n”);程序运行后的输出结果是程序运行后的输出结果是()A)1*1=11*2=21*3=3B)1*1=11*2=21*3=32*1=22*2=42*2=42*3=63*1=33*3=9C)1*1=1 D)1*1=11*2=22*2=42*1=22*2=41*3=32*3=6

23、3*3=93*1=33*2=63*3=92007年4月二级C语言笔试试卷(25)以下合法的字符型常量是以下合法的字符型常量是()A)x13B)018C)65D)”n”2007年4月二级C语言笔试试卷(26)在在C语言中,函数返回值的类型最终取决于语言中,函数返回值的类型最终取决于()A)函数定义时在函数首部所说明的函数类)函数定义时在函数首部所说明的函数类型型B)return语句中表达式值的类型语句中表达式值的类型C)调用函数时主函数所传递的实参类型)调用函数时主函数所传递的实参类型D)函数定义时形参的类型)函数定义时形参的类型2007年4月二级C语言笔试试卷(27)已知大写字母已知大写字母A

24、的的ASCII码是码是65,小写字母,小写字母a的的ASCII码是码是97,以下不能将变量,以下不能将变量c中大写字中大写字母转换为对应小写字母的语句是母转换为对应小写字母的语句是()A)c=(c-A)%26+aB)c=c+32C)c=c-A+aD)c=(A+c)%26-a2007年4月二级C语言笔试试卷(28)有以下函数有以下函数intfun(char*s)char*t=s;while(*t+);return(t-s);该函数的功能是该函数的功能是()A)比较两个字符的大小)比较两个字符的大小B)计算)计算s所指字符串占用内存字节的个数所指字符串占用内存字节的个数C)计算)计算s所指字符串的

25、长度所指字符串的长度D)将)将s所指字符串复制到字符串所指字符串复制到字符串t中中2007年4月二级C语言笔试试卷(29)设已有定义:设已有定义:floatx;则以下对指针变量则以下对指针变量p进行定义且赋初值的语进行定义且赋初值的语句中正确的是句中正确的是()A)float*p=1024;B)int*p=(floatx);C)floatp=&x;D)float*p=&x;2007年4月二级C语言笔试试卷(30)有以下程序有以下程序#include“stdio.h”main()intn,*p=NULL;*p=&n;printf(“Inputn:”);scanf(“%d”,&p);printf(

26、“outputn:”);printf(“%dn”,p);该程序试图通过指针该程序试图通过指针p为变量为变量n读入数据并输出,但读入数据并输出,但程序有多处错误,以下语句正确的是程序有多处错误,以下语句正确的是()A)intn,*p=NULL;B)*p=&n;C)scanf(“%d”,&p)D)printf(“%dn”,p);2007年4月二级C语言笔试试卷(31)以下程序中函数以下程序中函数f的功能是:当的功能是:当flag为为1时,进行有由小到大排序;当时,进行有由小到大排序;当flag为为0时,进行由大到小排序。时,进行由大到小排序。voidf(intb,intn,intflag) int

27、i,j,t;for(i=0;in-1;i+)for(j=i+1;jbj:bibj)t=bi;bi=bj;bj=t;main() inta10=5,4,3,2,1,6,7,8,9,10,i;f(&a2,5,0);f(a,5,1);for(i=0;i10;i+)printf(“%d,”,ai);程序运行后的输出结果是程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10,B)3,4,5,6,7,2,1,8,9,10,C)5,4,3,2,1,6,7,8,9,10,D)10,9,8,7,6,5,4,3,2,1,2007年4月二级C语言笔试试卷(32)有以下程序有以下程序voidf(in

28、tb)inti;for(i=2;i6;i+)bi*=2;main()inta10=1,2,3,4,5,6,7,8,9,10,i;f(a);for(i=0;i10;i+)printf(“%d,”,ai);程序运行后的输出结果是程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10,B)1,2,6,8,10,12,7,8,9,10C)1,2,3,4,10,12,14,16,9,10,D)1,2,6,8,10,12,14,16,9,10,2007年4月二级C语言笔试试卷(33)有以下程序有以下程序typedefstructintb,p;A;voidf(Ac)/*注意:注意:c是结构变

29、量名是结构变量名*/intj;c.b+=1;c.p+=2;main()inti;Aa=1,2;f(a);printf(“%d,%dn”,a.b,a.p);程序运行后的输出结果是程序运行后的输出结果是()A)2,3B)2,4C)1,4D)1,22007年4月二级C语言笔试试卷(34)有以下程序有以下程序main()inta44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,j,k,t;for(i=0;i4;i+)for(j=0;j3;j+)for(k=j+1;kaki)t=aji;aji=aki;aki=t;/*按列排序按列排序*/for(i=0;i4;i+)printf(

30、“%d,”,aii);程序运行后的输出结果是程序运行后的输出结果是()A) 1,6,5,7,B) 8,7,3,1,C) 4,7,5,2,D) 1,6,2,1,2007年4月二级C语言笔试试卷(35)有以下程序有以下程序main()inta44=1,4,3,2,8,6,5,7,3,7,2,5,4,8,6,1,i,k,t;for(i=0;i3;i+)for(k=i+1;k4;k+)if(aiiakk)t=aii;aii=akk;akk=t;for(i=0;i4;i+)printf(“%d,”,a0i);程序运行后的输出结果是程序运行后的输出结果是() A)6,2,1,1, B)6,4,3,2, C

31、)1,1,2,6, D)2,3,4,62007年4月二级C语言笔试试卷(36)有以下程序有以下程序voidf(int*q)inti=0;for(;i5;i+)(*q)+;main()inta5=1,2,3,4,5,i;f(a);for(i=0;i5;i+)printf(“%d,”,ai);程序运行后的输出结果是程序运行后的输出结果是()A) 2,2,3,4,5,B) 6,2,3,4,5,C) 1,2,3,4,5,D) 2,3,4,5,6,2007年4月二级C语言笔试试卷(37)有以下程序有以下程序#include“stdio.h”#include“string.h”main()charp20=

32、a,b,c,d,q=”abc”,r=”abcde”;strcpy(p+strlen(q),r);strcat(p,q);printf(“%d%dn”,sizeof(p),strlen(p);程序运行后的输出结果是程序运行后的输出结果是()A) 209B) 99C) 2011D) 11112007年4月二级C语言笔试试卷(38)有以下程序有以下程序#include“stdio.h”#include“string.h”main()charp20=a,b,c,d,q=”abc”,r=”abcde”strcat(p,r);strcpy(p+strlen(q),q);printf(“%dn”,strle

33、n(p);程序运行后的输出结果是程序运行后的输出结果是()A) 9B) 6C) 11D) 72007年4月二级C语言笔试试卷(39)有以下程序有以下程序#include“stdio.h”#include“string.h”voidf(charp10,intn)/*字符串从小到大排序字符串从小到大排序*/chart10;inti,j;for(i=0;in-1;i+)for(j=i+1;j0)strcpy(t,pi);strcpy(pi,pj);strcpy(pi,t);main()charp510=“abc”,”aabdfg”,”abbd”,”dcdbe”,”cd”;f(p,5);printf(

34、“%dn”,strlen(p0);程序运行后的输出结果是程序运行后的输出结果是()A)2B)4C)6D)32007年4月二级C语言笔试试卷(40)有以下程序有以下程序voidf(intn,int*r)intr1=0;if(n%3=0)r1=n/3;elseif(n%5=0)r1=n/5;elsef(-n,&r1);*r=r1;main()intm=7,r;f(m,&r);printf(“%dn”,r);程序运行后的输出结果是程序运行后的输出结果是()A)2B)1C)3D)02007年4月二级C语言笔试试卷(41)有以下程序有以下程序main(intargc,char*argv)intn=0,i

35、;for(i=1;iargc;i+)n=n*10+*argvi-0;printf(“%dn”,n);编译连接后生成可执行文件编译连接后生成可执行文件tt.exe,若运行时输入以,若运行时输入以下命令行下命令行tt12345678程序运行后的输出结果是程序运行后的输出结果是()A) 12B) 12345C) 12345678D) 1362007年4月二级C语言笔试试卷(42)有以下程序有以下程序inta=4;intf(intn) intt=0;staticinta=5;if(n%2)inta=6;t+=a+;elseinta=7;t+=a+;returnt+a+;main()()ints=a,i

36、=0;for(;(;i2;i+)s+=f(i);printf(“%dn”,s);程序运行后的输出结果是程序运行后的输出结果是()A)24B)28C)32D)362007年4月二级C语言笔试试卷(43)有一个名为有一个名为init.txt的文件,内容如下:的文件,内容如下:#defineHDY(A,B)A/B#definePRINT(Y)printf(“y=%dn”,Y)有以下程序有以下程序#include“init.txt”main()inta=1,b=2,c=3,d=4,k;k=HDY(a+c,b+d);PRINT(k);下面针对该程序的叙述正确的是下面针对该程序的叙述正确的是()A)编译有

37、错)编译有错B)运行出错)运行出错C)运行结果为)运行结果为y=0D)运行结果为)运行结果为 y=62007年4月二级C语言笔试试卷(44)有以下程序有以下程序main()charch=“uvwxyz”,*pc;pc=ch;printf(“%cn”,*(pc+5);程序运行后的输出结果是程序运行后的输出结果是()A)zB)0C)元素元素ch5的地址的地址D)字符字符y的地址的地址2007年4月二级C语言笔试试卷(45)有以下程序有以下程序structSintn;inta20;voidf(structS*p)inti,j,t;for(i=0;in-1;i+)for(j=i+1;jn;j+)if(

38、p-aip-aj)t=p-ai;p-ai=p-aj;p-aj=t;main()inti;structSs=10,2,3,1,6,8,7,5,4,10,9;f(&s);for(i=0;is.n;i+)printf(“%d,”,s.ai);程序运行后的输出结果是程序运行后的输出结果是()A)1,2,3,4,5,6,7,8,9,10,B)10,9,8,7,6,5,4,3,2,1,C)2,3,1,6,8,7,5,4,10,9,D)10,9,8,7,6,1,2,3,4,5,2007年4月二级C语言笔试试卷(46)有以下程序有以下程序structSintn;inta20;voidf(int*a,intn)

39、inti;for(i=0;in-1;i+)ai+=i;main()inti;structSs=10,2,3,1,6,8,7,5,4,10,9;f(s.a,s.n);for(i=0;is.n;i+)printf(“%d,”,s.ai);程序运行后的输出结果是程序运行后的输出结果是()A)2,4,3,9,12,12,11,11,18,9,B)3,4,2,7,9,8,6,5,11,10,C)2,3,1,6,8,7,5,4,10,9,D)1,2,3,6,8,7,5,4,10,9,2007年4月二级C语言笔试试卷(47)有以下程序段有以下程序段typedefstructnodeintdata;struc

40、tnode*next;*NODE;NODEp;以下叙述正确的是以下叙述正确的是()A)p是指向是指向structnode结构变量的指针的结构变量的指针的指针指针B)NODEp;语句出错;语句出错C)p是指向是指向structnode结构变量的指针结构变量的指针D)p是是structnode结构变量结构变量2007年4月二级C语言笔试试卷(48)有以下程序有以下程序main()unsignedchara=2,b=4,c=5,d;d=a|b;d&=c;printf(“%dn”,d);程序运行后的输出结果是程序运行后的输出结果是()A)3B)4C)5D)62007年4月二级C语言笔试试卷(49)有以

41、下程序有以下程序#include“stdio.h”main()FILE*fp;intk,n,a6=1,2,3,4,5,6;fp=fopen(“d2.dat”,”w”);fprintf(fp,”%d%d%dn”,a0,a1,a2);fprintf(fp,“%d%d%dn”,a3,a4,a5);fclose(fp);fp=fopen(“d2.dat”,”r”);fscanf(fp,“%d%d”,&k,&n);printf(“%d%dn”,k,n);fclose(fp);程序运行后的输出结果是程序运行后的输出结果是()A)12B) 14C) 1234D)1234562007年4月二级C语言笔试试卷(

42、50)有以下程序有以下程序#include“stdio.h”main()FILE*fp;inti,a6=1,2,3,4,5,6;fp=fopen(“d3.dat”,”w+b”);fwrite(a,sizeof(int),6,fp);fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置该语句使读文件的位置指针从文件头向后移动指针从文件头向后移动3个个int型数据型数据*/fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;i6;i+)printf(“%d,”,ai);程序运行后的输出结果是程序运行后的输出结果是()A)4

43、,5,6,4,5,6,B)1,2,3,4,5,6,C)4,5,6,1,2,3,D)6,5,4,3,2,12007年4月二级C语言笔试试卷2填空题填空题(每空(每空2分,共分,共40分)分)请将每一个空的正确答案写在答题卡请将每一个空的正确答案写在答题卡1至至20序号的横线上,答在试卷上不得序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写分。注意:以命令关键字填空的必须写完整。完整。2007年4月二级C语言笔试试卷(1)在深度为)在深度为7的满二叉树中,度为的满二叉树中,度为2的结点个数为的结点个数为_。(2)软件测试分为白箱(盒)测试和黑箱(盒)测)软件测试分为白箱(盒)测试和黑

44、箱(盒)测试,等价类划分法属于试,等价类划分法属于_测试。测试。(3)在数据库系统中,实现各种数据管理功能的核)在数据库系统中,实现各种数据管理功能的核心软件称为心软件称为_。(4)软件生命周期可分为多个阶段,一般分为定义)软件生命周期可分为多个阶段,一般分为定义阶段、开发阶段和维护阶段。编码和测试属于阶段、开发阶段和维护阶段。编码和测试属于_阶段。阶段。(5)在结构化分析使用的数据流图()在结构化分析使用的数据流图(DFD)中,利)中,利用用_对其中的图形元素进行确切解释。对其中的图形元素进行确切解释。63黑箱(或黑盒)黑箱(或黑盒)数据库管理系统数据库管理系统开发开发数据字典数据字典200

45、7年4月二级C语言笔试试卷(6)执行以下程序后的输出结果是)执行以下程序后的输出结果是_。main()inta=10;a=(3*5,a+4);printf(“a=%dn”,a);a=142007年4月二级C语言笔试试卷(7)当执行以下程序时,输入)当执行以下程序时,输入1234567890,则其中,则其中while循环体将执行循环体将执行_次。次。#include“stdio.h”main()charch;while(ch=getchar()=0)printf(“#”);02007年4月二级C语言笔试试卷(8)以下程序的运行结果是)以下程序的运行结果是_。intk=0;voidfun(intm

46、)m+=k;k+=m;printf(“m=%dnk=%d”,m,k+);main()inti=4;fun(i+);printf(“i=%dk=%dn”,i,k);m=4k=4i=5k=52007年4月二级C语言笔试试卷(9)以下程序的运行结果是)以下程序的运行结果是_。main()inta=2,b=7,c=5;switch(a0)case1:switch(b0)case1:printf(“”);break;case2:printf(“!”);break;case0:switch(c=5)case0:printf(“*”);break;case1:printf(“#”);break;case2:

47、printf(“$”);break;default:printf(“&”);printf(“n”);#&2007年4月二级C语言笔试试卷(10)以下程序的输出结果是)以下程序的输出结果是_ 。#include“stdio.h”#include“string.h”main()printf(“%dn”,strlen(“IBMn0121”);92007年4月二级C语言笔试试卷(11)已定义)已定义charch”$”;inti=1,j;执行执行j=!ch&i+以后,以后,i的值为的值为_。12007年4月二级C语言笔试试卷(12)以下程序的输出结果是)以下程序的输出结果是_。#include“stdi

48、o.h”#include“string.h”main()chara=1,2,3,4,0;printf(“%ddn”,sizeof(a),strlen(a);542007年4月二级C语言笔试试卷(13)设有定义语句:)设有定义语句:inta3=0,1,2;,则数组元素则数组元素a12的值为的值为_。02007年4月二级C语言笔试试卷(14)以下程序的功能是:求出数组)以下程序的功能是:求出数组x中各相邻两个中各相邻两个元素的和依次存放到元素的和依次存放到a数组中,然后输出。请数组中,然后输出。请填空。填空。main()intx10,a9,i;for(i=0;i10;i+)scanf(“%d”,&

49、xi);for(_;i10;i+)ai-1=xi+_;for(i=0;i9;i+)printf(“%d”,ai);printf(“n”); i=1 xi-1 2007年4月二级C语言笔试试卷(15)以下程序的功能是:利用指针指向三个整型变量,通过指)以下程序的功能是:利用指针指向三个整型变量,通过指针运算找出三个数中的最大值,输出到屏幕上,请填空。针运算找出三个数中的最大值,输出到屏幕上,请填空。 main()intx,y,z,max,*px,*py,*pz,*pmax;scanf(“%d%d%d”,&x,&y,&z);px=&x;py=&y;pz=&z;pmax=&max;_if(*pmax

50、*py)*pmax=*py;if(*pmax*pz)*pmax=*pz;printf(“max=%dn”,max);*pmax=*px;(或(或*pmax=x;) 2007年4月二级C语言笔试试卷(16)以下程序的输出结果是)以下程序的输出结果是_。intfun(int*x,intn)if(n=0)returnx0;elsereturnx0+fun(x+1,n-1);main()inta=1,2,3,4,5,6,7;printf(“%dn”,fun(a,3);102007年4月二级C语言笔试试卷(17)以下程序的输出结果是)以下程序的输出结果是_。#include“stdio.h”#inclu

51、de“stdlib.h”main()char*s1,*s2,m;s1=s2=(char*)malloc(sizeof(char);*s1=15;*s2=20;m=*s1+*s2;printf(“%dn”,m);402007年4月二级C语言笔试试卷(18)设有说明)设有说明structDATEintyear;intmonth;intday;请写出一条定义语句,该语句定义请写出一条定义语句,该语句定义d为上为上述结构体变量,并同时为其成员述结构体变量,并同时为其成员year、month、day依次赋初值依次赋初值2006、10、1定义语句是:定义语句是:_structDATEd=2006,10,1

52、;2007年4月二级C语言笔试试卷(19)设有定义:)设有定义:FILE*fw;,请将以下打开文件的语句补充完整,请将以下打开文件的语句补充完整,以便可以向文本文件以便可以向文本文件readme.txt的最的最后续写内容。后续写内容。fw=fopen(“readme.txt”,_)“a”或或“a+”2007年9月二级C语言笔试试卷(考试时间考试时间120分钟,满分分钟,满分100分分)1选择题选择题((1)(10)每小题)每小题2分,分,(11)(50)每题)每题1分,共分,共60分分)下列各题下列各题A)、B)、C)、D)四个选项中,四个选项中,只有一个选项是正确的,请将正确选项只有一个选项

53、是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上涂写在答题卡相应位置上,答在试卷上不得分。不得分。2007年9月二级C语言笔试试卷(1)下列数据结构中,按先进后出原则组)下列数据结构中,按先进后出原则组织数据的是(织数据的是()A)线性链表)线性链表B)栈)栈C)循环链表)循环链表D)顺序表)顺序表2007年9月二级C语言笔试试卷(2)具有)具有3个结点的二叉树有(个结点的二叉树有()A)2种形态种形态B)4种形态种形态C)7种形态种形态D)5种形态种形态2007年9月二级C语言笔试试卷(3)设有下列二叉树:)设有下列二叉树:ATBCZXYP对此二叉树前序遍历的结果为对此二叉树前序遍历

54、的结果为A)ZBTYCPXAB)ATBZXCYPC)ZBTACYXPD)ATBZXCPY2007年9月二级C语言笔试试卷(4)结构化程序设计主要强调的是()结构化程序设计主要强调的是()A)程序的规模)程序的规模B)程序的效率)程序的效率C)程序设计语言的先进性)程序设计语言的先进性D)程序易读性)程序易读性2007年9月二级C语言笔试试卷(5)程序的)程序的3种基本控制结构是(种基本控制结构是()A)过程、子过程和分程序)过程、子过程和分程序B)顺序、选择和重复)顺序、选择和重复C)递归、堆栈和队列)递归、堆栈和队列D)调用、返回和转移)调用、返回和转移2007年9月二级C语言笔试试卷(6)

55、下列叙述中,不属于测试的特征的是)下列叙述中,不属于测试的特征的是()A)测试的挑剔性)测试的挑剔性B)完全测试的不可能性)完全测试的不可能性C)测试的可靠性)测试的可靠性D)测试的经济性)测试的经济性2007年9月二级C语言笔试试卷(7)需求分析中开发人员要从用户那里了)需求分析中开发人员要从用户那里了解(解()A)软件做什么)软件做什么B)用户使用界面)用户使用界面C)输入的信息)输入的信息D)软件的规模)软件的规模2007年9月二级C语言笔试试卷(8)下列关系模型中,能使经运算后得到)下列关系模型中,能使经运算后得到的新关系中属性个数多于原来关系中属的新关系中属性个数多于原来关系中属性个

56、数的是(性个数的是()A)选择)选择B)连接)连接C)投影)投影D)并)并2007年9月二级C语言笔试试卷(9)下列叙述中,正确的是()下列叙述中,正确的是()A)用)用E-R图能够表示实体集间一对一的联系、图能够表示实体集间一对一的联系、一对多的联系和多对多的联系一对多的联系和多对多的联系B)用)用E-R图只能表示实体集之间一对一的联图只能表示实体集之间一对一的联系系C)用)用E-R图只能表示实体集之间一对多的联图只能表示实体集之间一对多的联系系D)用)用E-R图表示的概念数据模型只能转换为图表示的概念数据模型只能转换为关系数据模型关系数据模型2007年9月二级C语言笔试试卷(10)“年龄在

57、年龄在1825之间之间”这种约束是属这种约束是属于数据库当中的(于数据库当中的()A)原子性措施)原子性措施B)一致性措施)一致性措施C)完整性措施)完整性措施D)安全性措施)安全性措施2007年9月二级C语言笔试试卷(11)以下说法错误的是()以下说法错误的是()A)高级语言都是用接近人们习惯的自然语言)高级语言都是用接近人们习惯的自然语言和数学语言作为语言的表达形式和数学语言作为语言的表达形式B)计算机只能处理由)计算机只能处理由0和和1的代码构成的二进的代码构成的二进制指令或数据制指令或数据C)C语言源程序经过语言源程序经过C语言编译程序编译之语言编译程序编译之后生成一个后缀为后生成一个

58、后缀为.EXE的二进制文件的二进制文件D)每一种高级语言都有它对应的编译程序)每一种高级语言都有它对应的编译程序2007年9月二级C语言笔试试卷(12)算法是指为解决某个特定问题而采取)算法是指为解决某个特定问题而采取的确定且有限的步骤,下面不属于算法的确定且有限的步骤,下面不属于算法的五个特性的是(的五个特性的是()A)有零个输入或多个输入)有零个输入或多个输入B)高效性)高效性C)有穷性)有穷性D)确定性)确定性2007年9月二级C语言笔试试卷(13)已知)已知inta=6;则执行则执行a+=a-=a*a;语句语句后,后,a的值为(的值为()A)36B)0C)-24D)-602007年9月

59、二级C语言笔试试卷(14)下面各选项中,均是)下面各选项中,均是C语言标识符的语言标识符的选项组是(选项组是()A)forchinatoB)long_123short56_doC)voidunion_342D)text.txt_023_3ew2007年9月二级C语言笔试试卷(15)下列表达式中,结果为)下列表达式中,结果为5的是(的是()A)6*5%6B)5*-2+15C)5+75%10D)6+-2/32007年9月二级C语言笔试试卷(16)下列常量中,为不合法的实型常量表)下列常量中,为不合法的实型常量表示的是(示的是()A).0032B)0.0C)0.3242E8D).E32007年9月二

60、级C语言笔试试卷(17)关于)关于C语言的主函数描述正确的是(语言的主函数描述正确的是()A)C程序可以有多个程序可以有多个main函数函数B)C程序必有一个而且只能有一个程序必有一个而且只能有一个main函数函数C)C程序可以没有程序可以没有main函数函数D)C程序的执行不一定在程序的执行不一定在main函数开函数开始执行始执行2007年9月二级C语言笔试试卷(18)已知)已知inta=1,b=-1;则语句则语句printf(“%dn”,(a-,+b);的输的输出结果是(出结果是()A)-1B)0C)1D)语句错误)语句错误2007年9月二级C语言笔试试卷(19)已知)已知inta,b;d

61、oublec;则以下语句中错误的则以下语句中错误的函数调用是(函数调用是()A)scanf(%d,%x,%lf,&a,&b,&c);B)scanf(%d,%d,%le,&a,&b,&c);C)scanf(%o,%x,%o,&a,&b);D)scanf(%d,%o,%e,&a,&b,&c);2007年9月二级C语言笔试试卷(20)已知)已知x,y,z均为整型变量,且值均为均为整型变量,且值均为1,则执行语句,则执行语句+x|+y&+z;后,表达后,表达式式x+y的值为(的值为()A)1B)2C)3D)42007年9月二级C语言笔试试卷(21)若)若intk=8;则执行下列程序后,变量则执行下列程

62、序后,变量k的正确结果是(的正确结果是()main()intk=8;switch(k)case9:k+=1;case10:k+=1;case11:k+=1;break;default:k+=1;printf(%dn,k);A)12B)11C)10D)92007年9月二级C语言笔试试卷(22)若)若inti,j;,则,则for(i=j=0;i10&j8;i+,j+=3)控制)控制的循环体执行的次数是(的循环体执行的次数是()A)9B)8C)3D)22007年9月二级C语言笔试试卷(23)下列程序的输出结果是()下列程序的输出结果是()#includestdio.hmain()() inti=6;

63、while(i-)printf(%d,-i);printf(n);A)531B)420C)654321D)死循环)死循环2007年9月二级C语言笔试试卷(24)阅读下列程序,则执行结果是()阅读下列程序,则执行结果是()#includestdio.hmain()()inta=0,b=0,c=0,i;for(i=0;i4;i+)switch(i)case0:a=i+;case1:b=i+;case2:c=i+;case3:i+;printf(%d,%d,%d,%dn,a,b,c,i);A)0,1,3,4B)1,2,3,4C)0,1,2,5D)0,2,3,42007年9月二级C语言笔试试卷(25)

64、下面程序的运行结果是)下面程序的运行结果是#includestdio.hmain()()intj,i,k=0;for(j=50;j=60;j+)if(!(k%10)printf(n);for(i=2;i=j-1)printf(%d,j);k+;A)5359B)5953C)3595D)95352007年9月二级C语言笔试试卷(26)已知)已知charch=C;则以下表达式的值是(则以下表达式的值是()ch=(ch=A&ch0)fun(x/2);printf(“%d”,x%2);main()() fun(20);putchar(n);A)11100B)10100C)10101D)101102007

65、年9月二级C语言笔试试卷(47)阅读如下程序段,则执行后程序的输出结)阅读如下程序段,则执行后程序的输出结果是(果是()#includemain()() structaintx;inty;num2=20,5,6,7;printf(“%dn”,num0.x/num0.y*num1.y);A)0B)28C)20D)52007年9月二级C语言笔试试卷(48)阅读程序段,则执行后的输出结果为()阅读程序段,则执行后的输出结果为()#includestdio.htypedefunionlongx2;inty4;charz8;atx;typedefstructaalongx2;inty4;charz8;s

66、tx;main()() printf(union=%d,structaa=%dn,sizeof(atx),sizeof(stx);A)union=8,structaa=8B)union=8,structaa=24C)union=24,structaa=8D)union=24,structaa=242007年9月二级C语言笔试试卷(49)阅读下列程序段)阅读下列程序段#includestdio.htypedefstructaainta;structaa*next;M;voidset(M*k,inti,int*b)intj,d=0;for(j=1;jnext-aB)+p-aC)()(*p).a+D

67、)p+-a2007年9月二级C语言笔试试卷(50)阅读下面程序,程序实现的功能是()阅读下面程序,程序实现的功能是(a123.txt在当前盘符下已在当前盘符下已经存在)(经存在)()#includestdio.hvoidmain()()FILE*fp;inta10,*p=a;fp=fopen(a123.txt,w);while(strlen(gets(p)0)fputs(a,fp);fputs(n,fp);fclose(fp);A)从键盘输入若干行字符,按行号倒序写入文本文件)从键盘输入若干行字符,按行号倒序写入文本文件a123.txt中中B)从键盘输入若干行字符,取前)从键盘输入若干行字符,

68、取前2行写入文本文件行写入文本文件a123.txt中中C)从键盘输入若干行字符,第一行写入文本文件)从键盘输入若干行字符,第一行写入文本文件a123.txt中中D)从键盘输入若干行字符,依次写入文本文件)从键盘输入若干行字符,依次写入文本文件a123.txt中中2007年9月二级C语言笔试试卷2填空题填空题(每空(每空2分,共分,共40分)分)请将每一个空的正确答案写在答题卡请将每一个空的正确答案写在答题卡1至至20序号的横线上,答在试卷上不得序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写分。注意:以命令关键字填空的必须写完整完整2007年9月二级C语言笔试试卷(1)排序是计算

69、机程序设计中的一种重要操作,常)排序是计算机程序设计中的一种重要操作,常见的排序方法有插入排序、见的排序方法有插入排序、_和选和选择排序等。择排序等。(2)当循环队列非空且队尾指针等于队头指针时,)当循环队列非空且队尾指针等于队头指针时,说明循环队列已满,不能进行入队运算。这种说明循环队列已满,不能进行入队运算。这种情况称为情况称为_。(3)_是一种信息隐蔽技术,目的在于将是一种信息隐蔽技术,目的在于将对象的使用者和对象的设计者分开。对象的使用者和对象的设计者分开。(4)为了便于对照检查,测试用例应由输入数据和)为了便于对照检查,测试用例应由输入数据和预期的预期的_两部分组成。两部分组成。(5

70、)_是从二维表列的方向进行的运算。是从二维表列的方向进行的运算。交换排序交换排序上溢上溢封装封装输出结果输出结果关系运算关系运算2007年9月二级C语言笔试试卷(6)定义)定义inta=5,b=20;若执行语句若执行语句printf(“%dn”,+a*-b/5%13);后,输出的后,输出的结果为结果为_。(7)执行程序时的输入为)执行程序时的输入为123456789,则程序的运,则程序的运行结果为行结果为_。#includestdio.hmain()() inta,b;scanf(%2d%*2d%1d,&a,&b);printf(%dn,a-b);972007年9月二级C语言笔试试卷(8)阅读

71、下面程序,则在执行时候的输出)阅读下面程序,则在执行时候的输出为为_。#includestdio.hmain()() intx=1,y=2,z=0;if(x=2)z=x,x=y,y=z;printf(%d,%dn,x,y);2,22007年9月二级C语言笔试试卷(9)语句)语句printf(“%dn”,H-0+64);的执行的执行结果为结果为_。(10)阅读下面程序,则程序的执行结果为)阅读下面程序,则程序的执行结果为_。#includestdio.hmain()()inta=10;fun(a);printf(%dn,a);fun(intx)x=50;88102007年9月二级C语言笔试试卷(

72、11)以下程序的输出结果是)以下程序的输出结果是_。intfun(intx,inty,int*p,int*q) *p=x*y;*q=x/y;main()() inta,b,c,d;a=4;b=3;fun(a,b,&c,&d);printf(%d,%dn,c,d);12,12007年9月二级C语言笔试试卷(12)下面程序是求出数组)下面程序是求出数组arr的两条对角线上元素之和,的两条对角线上元素之和,请填空。请填空。#includestdio.hmain()()intarr33=2,3,4,8,3,2,7,9,8,a=0,b=0,i,j;for(i=0;i3;i+)for(j=0;j3;j+)

73、if(_)a=a+arrij;for(i=0;i=0;j-)if(_)b=b+arrij;printf(%d,%dn,a,b);i=jj=2i+j=22007年9月二级C语言笔试试卷(13)下面程序的功能是:对字符串从小到大进行排序并输出,请填空。)下面程序的功能是:对字符串从小到大进行排序并输出,请填空。#includestring.h#includestdio.hsort(char*a,intn)inti,j;char*p;for(j=1;j0)p=ai;ai=ai+1;ai+1=p;main()()inti;char*book=itisme,itisyou,howareyou,fine,

74、goodnight,goodbye;sort(_);for(i=0;i6;i+)printf(%sn,booki);strcmp(ai,ai+1)in-jbook,62007年9月二级C语言笔试试卷(14)下面的函数是完成)下面的函数是完成1n的累加,完成的累加,完成函数。函数。a(intk)if(knext=NULL;head=q;elseq-next=head;head=q;从键盘输入一行字从键盘输入一行字符串,调用函数建符串,调用函数建立反序的链表,然立反序的链表,然后输出整个链表后输出整个链表2007年9月二级C语言笔试试卷main()()charch;structnode*p;hea

75、d=NULL;while(ch=getchar()()!=n)p=(structnode*)malloc(sizeof(structnode);p-data=ch;fun(p);p=head;while(p!=NULL)printf(%c,p-data);p=p-next; 第四部分 模拟试题及答案n选择题选择题n填空题填空题n上机操作题上机操作题填空题填空题改错题改错题编程题编程题 第四部分 模拟试题及答案选择题(考试时间考试时间120分钟,满分分钟,满分100分分)1选择题选择题((1)(10)每小题)每小题2分,分,(11)(50)每题)每题1分,共分,共60分分)下列各题下列各题A)、

76、B)、C)、D)四个选项中,四个选项中,只有一个选项是正确的,请将正确选项只有一个选项是正确的,请将正确选项涂写在答题卡相应位置上,答在试卷上涂写在答题卡相应位置上,答在试卷上不得分。不得分。选择题(1)下列选项中不属于结构化程序设计方法下列选项中不属于结构化程序设计方法的是的是 A)自顶向下自顶向下B)逐步求精逐步求精 C)模块化模块化D)可复用可复用选择题(2)两个或两个以上模块之间关联的紧密程两个或两个以上模块之间关联的紧密程度称为度称为 A)耦合度耦合度B)内聚度内聚度 C)复杂度复杂度D)数据传输特性数据传输特性选择题(3)下列叙述中正确的是下列叙述中正确的是 A)软件测试应该由程序

77、开发者来完成软件测试应该由程序开发者来完成 B)程序经调试后一般不需要再测试程序经调试后一般不需要再测试 C)软件维护只包括对程序代码的维护软件维护只包括对程序代码的维护 D)以上三种说法都不对以上三种说法都不对选择题(4)按照按照“后进先出后进先出”原则组织数据的数据原则组织数据的数据结构是结构是 A)队列队列B)栈栈 C)双向链表双向链表D)二叉树二叉树选择题(5)下列叙述中正确的是下列叙述中正确的是 A)线性链表是线性表的链式存储结构线性链表是线性表的链式存储结构 B)栈与队列是非线性结构栈与队列是非线性结构 C)双向链表是非线性结构双向链表是非线性结构 D)只有根结点的二叉树是线性结构

78、只有根结点的二叉树是线性结构选择题(6)对如下二叉树对如下二叉树ABCD EF 进行后序遍历的结果为进行后序遍历的结果为 A)ABCDEFB)DBEAFC C)ABDECFD)DEBFCA选择题(7)在深度为在深度为7的满二叉树中,叶子结点的的满二叉树中,叶子结点的个数为个数为 A)32B)31 C)64D)63选择题(8)“商品商品”与与“顾客顾客”两个实体集之间的两个实体集之间的联系一般是联系一般是 A)一对一一对一B)一对多一对多 C)多对一多对一D)多对多多对多选择题(9)在在E-R图中,用来表示实体的图形是图中,用来表示实体的图形是 A)矩形矩形B)椭圆形椭圆形 C)菱形菱形D)三角

79、形三角形选择题(10)数据库数据库DB、数据库系统、数据库系统DBS、数据库、数据库管理系统管理系统DBMS之间的关系是之间的关系是 A)DB包含包含DBS和和DBMS B)DBMS包含包含DB和和DBS C)DBS包含包含DB和和DBMS D)没有任何关系没有任何关系选择题(11)以下不合法的用户标识符是以下不合法的用户标识符是 A)j2_KEYB)DoubleC)4dD)_8_选择题(12)以下不合法的数值常量是以下不合法的数值常量是A)011B)1e1C)8.0E0.5D)0xabcd选择题(13)以下不合法的字符常量是以下不合法的字符常量是A) 018B)C)D)xcc选择题(14)表

80、达式表达式3.6-52+1.2+52的值是的值是A)4.3B)4.8C)3.3D)3.8选择题(15)以下能正确定义字符串的语句是以下能正确定义字符串的语句是A)charstr=064;B)charstr=kx43;C)charstr=;D)charstr=0;选择题(16)以下数组定义中错误的是以下数组定义中错误的是A)intx3=0;B)intx23=l,2,3,4,5,6;C)intx3=l,2,3,4,5,6;D)intx23=l,2,3,4,5,6;选择题(17)若要求从键盘读入含有空格字符的字若要求从键盘读入含有空格字符的字符串,应使用函数符串,应使用函数A)getc()B)get

81、s()C)getchar()D)scanf()选择题(18)以下四个程序中,完全正确的是以下四个程序中,完全正确的是A)#includeB)#includemain();main()/*programming*/*/programming/*/printf(programming!n);printf(programming!n);C)#includeD)includemain()main()/*/*programming*/*/*programming*/printf(“programming!n”);printf(programming!n);选择题(19)若有定义:若有定义:floatx=

82、1.5;inta=1,b=3,c=2;则正;则正确的确的switch语句是语句是A)switch(x)B)switch(int)x);case1.0:printf(“*n”);case1:printf(*n);case2.0:printf(*n);case2:printf(*n);C)switch(a+b)D)switch(a+b)case1:printf(“*n”);case1:printf(*n);case2+1:printf(“*n”);casec:printf(“*n”);选择题(20)若各选项中所用变量已正确定义,函数若各选项中所用变量已正确定义,函数fun中通过中通过return语

83、句返回语句返回一个函数值,以下选项中错误的程序是一个函数值,以下选项中错误的程序是A)main()B)floatfun(inta,intb)x=fun(2,10);main()floatfun(inta,intb)x=fun(i,j);C)floatfun(int,int); D)main()main()floatfun(inti,intj);x=fun(2,10);x=fun(i,j);floatfun(inta,intb)floatfun(inta,intb)选择题(21)在以下给出的表达式中,与在以下给出的表达式中,与while(E)中中的的(E)不等价的表达式是不等价的表达式是A)(!

84、E=0)B)(E0Enext=r-next;p-next=r;r-next=q;B)p-next=r;q-next=r-next;r-next=q;C)q-next=r-next;r-next=q;p-next=r;D)r-next=q;p-next=r;q-next=r-next;DatanextnextDatanextDatapqrDatanextDatanext选择题(26)有以下程序段有以下程序段structstintx;int*y;*pt;inta=l,2,b=3,4;structstc2=10,a,20,b;pt=c;以下选项中表达式的值为以下选项中表达式的值为11的是的是A)*p

85、t-yB)pt-xC)+pt-xD)(pt+)-x选择题(27)设设fp为指向某二进制文件的指针,且已为指向某二进制文件的指针,且已读到此文件末尾,则函数读到此文件末尾,则函数feof(fp)的返回的返回值为值为A)EOFB)非非0值值C)0D)NULL选择题(28)设有以下语句设有以下语句inta=1,b=2,c;c=a(b2);执行后,执行后,c的值为的值为A)6B)7C)8D)9选择题(29)有以下程序有以下程序#includemain()charc1,c2,c3,c4,c5,c6;scanf(cccc,&c1,&c2,&c3,&c4);c5=getchar();c6=getchar()

86、;putchar(c1);putchar(c2);printf(ccn,c5,c6);程序运行后,若从键盘输入程序运行后,若从键盘输入(从第从第1列开始列开始)12345678则输出结果是则输出结果是A)1267B)1256C)1278D)1245选择题(30)有以下程序有以下程序main()inty=10;while(y-);printf(y=dn,y);程序执行后的输出结果是程序执行后的输出结果是A)y=0B)y=-1C)y=1D)while构成无限循环构成无限循环选择题(31)有以下程序有以下程序main()inta=0,b=0,c=0,d=0;if(a=1)b=1;c=2;elsed=

87、3;printf(“d,d,d,dn”,a,b,c,d);程序输出程序输出A)0,1,2,0B)0,0,0,3C)1,1,2,0D)编译有错编译有错选择题(32)有以下程序有以下程序main()inti,j,x=0;for(i=0;i2;i+)x+;for(j=0;j=3;j+)if(j2)continue;x+;x+;printf(x=dn,x);程序执行后的输出结果是程序执行后的输出结果是A)x=4B)x=8C)x=6D)x=12选择题(33)有以下程序有以下程序intfun1(doublea)returna*=a;intfun2(doublex,doubley)doublea=0,b=0

88、;a=fun1(x);b=fun1(y);return(int)(a+b);main()doublew;w=fun2(1.1,2.0);程序执行后变量程序执行后变量w中的值是中的值是A)5.21B)5C)5.0D)0.0选择题(34)有以下程序有以下程序main()inti,t3=9,8,7,6,5,4,3,2,1;for(i=0;i3;i+)printf(d,t2-ii);程序执行后的输出结果是程序执行后的输出结果是A)753B)357C)369D)751选择题(35)有以下程序有以下程序fun(charp10)intn=0,i;for(i=0;i7;i+)if(pi0=T)n+;retur

89、nn;main()charstr10=Mon,Tue,Wed,Thu,Fri,Sat,Sun;printf(dn,fun(str);程序执行后的输出结果是程序执行后的输出结果是A)1B)2C)3D)0选择题(36)有以下程序有以下程序main()inti,s=0,t=1,2,3,4,5,6,7,8,9;for(i=0;i9;i+=2)s+=*(t+i);printf(dn,s);程序执行后的输出结果是程序执行后的输出结果是A)45B)20C)25D)36选择题(37)有以下程序有以下程序voidfun1(char*p)char*q;q=p;while(*q!=0)(*q)+;q+;main()

90、chara=Program),*p;p=&a3;fun1(p);printf(sn,a);程序执行后的输出结果是程序执行后的输出结果是A)ProhsbnB)PrphsbnC)ProgsbnD)Program选择题(38)有以下程序有以下程序voidswap(char*x,char*y)chart;t=*x;*x=*y;*y=t;main()char*s1=abc,*s2=123;swap(s1,s2);printf(s,sn,s1,s2);程序执行后的输出结果是程序执行后的输出结果是A)123,abcB)abc,123C)1bc,a23D)321,cba选择题(39)有以下程序有以下程序int

91、fun(intn)if(n=1)return1;elsereturn(n+fun(n-1);main()intx;scanf(“d”,&x);x=fun(x);printf(dn,x);执行程序时,给变量执行程序时,给变量X输入输入10,程序的输出结果是,程序的输出结果是A)55B)54C)65D)45选择题(40)有以下程序有以下程序intfun(intx,intn)staticintsum=0,i;for(i=0;in;i+)sum+=xi;returnsum;main()inta=1,2,3,4,5,b=6,7,8,9,s=0;s=fun(a,5)+fun(b,4);printf(dn,

92、s);程序执行后的输出结果是程序执行后的输出结果是A)45B)50C)60D)55选择题(41)有以下程序有以下程序main()unioncharch2;intd;s;s.d=0x4321;printf(x,xn,s.ch0,s.ch1);在在16位编译系统上,程序执行后的输出结果是位编译系统上,程序执行后的输出结果是A)21,43B)43,21C)43,00D)21,00选择题(42)有以下程序有以下程序main()char*p=3697,2584;inti,j;longnum=0;for(i=0;i2;i+)j=0;while(pij!=0)if(pij-0)2)num=10*num+pi

93、j-0;j+=2;printf(dn,num);程序执行后的输出结果是程序执行后的输出结果是A)35B)37C)39D)3975选择题(43)执行以下程序后,执行以下程序后,test.txt文件的内容是文件的内容是(若文件能正常打开若文件能正常打开)#includemain()FILE*fp;char*s1=Fortran,*s2=Basic;if(fp=fopen(test.txt,wb”)=NULL)printf(Cantopentest.txtfilen);exit(1);fwrite(s1,7,1,fp);/*把从地址把从地址s1开始的开始的7个字符写到个字符写到fp所指文件中所指文件

94、中*fseek(fp,0L,SEEK_SET);*文件位置指针移到文件开头文件位置指针移到文件开头*fwrite(s2,5,1,fp);fclose(fp);A)BasicanB)BasicFortranC)BasicD)FortranBasic选择题(44)以下叙述中错误的是以下叙述中错误的是A)C语言源程序经编译后生成后缀为语言源程序经编译后生成后缀为.obj的的目标程序目标程序B)C程序经过编译、连接步骤之后才能形成程序经过编译、连接步骤之后才能形成一个真正可执行的二进制机器指令文件一个真正可执行的二进制机器指令文件C)用用C语言编写的程序称为源程序,它以语言编写的程序称为源程序,它以A

95、SCII代码形式存放在一个文本文件中代码形式存放在一个文本文件中D)C语言中的每条可执行语句和非执行语句语言中的每条可执行语句和非执行语句最终都将被转换成二进制的机器指令最终都将被转换成二进制的机器指令选择题(45)以下叙述中错误的是以下叙述中错误的是A)算法正确的程序最终一定会结束算法正确的程序最终一定会结束B)算法正确的程序可以有零个输出算法正确的程序可以有零个输出C)算法正确的程序可以有零个输入算法正确的程序可以有零个输入D)算法正确的程序对于相同的输入一算法正确的程序对于相同的输入一定有相同的结果定有相同的结果选择题(46)以下叙述中错误的是以下叙述中错误的是A)C程序必须由一个或一个

96、以上的函程序必须由一个或一个以上的函数组成数组成B)函数调用可以作为一个独立的语句函数调用可以作为一个独立的语句存在存在C)若函数有返回值,必须通过若函数有返回值,必须通过return语句返回语句返回D)函数形参的值也可以传回给对应的函数形参的值也可以传回给对应的实参实参选择题(47)设有以下定义和语句设有以下定义和语句charstr20=Program,*p;p=str;则以下叙述中正确的是则以下叙述中正确的是A)*p与与str0的值相等的值相等B)str与与p的类型完全相同的类型完全相同C)str数组长度和数组长度和p所指向的字符串长所指向的字符串长度相等度相等D)数组数组str中存放的内

97、容和指针变量中存放的内容和指针变量p中存放的内容相同中存放的内容相同选择题(48)以下叙述中错误的是以下叙述中错误的是A)C程序中的程序中的#include和和#define行均行均不是不是C语句语句B)除逗号运算符外,赋值运算符的优除逗号运算符外,赋值运算符的优先级最低先级最低C)C程序中,程序中,j+;是赋值语句;是赋值语句D)C程序中,程序中,+、-、*、号是算、号是算术运算符,可用于整型和实型数的术运算符,可用于整型和实型数的运算运算选择题(49)以下叙述中正确的是以下叙述中正确的是A)预处理命令行必须位于预处理命令行必须位于C源程序的源程序的起始位置起始位置B)在在C语言中,预处理命

98、令行都以语言中,预处理命令行都以#“开头开头C)每个每个C程序必须在开头包含预处理程序必须在开头包含预处理命令行:命令行:#includeD)C语言的预处理不能实现宏定义和语言的预处理不能实现宏定义和条件编译的功能条件编译的功能选择题(50)以下叙述中错误的是以下叙述中错误的是A)可以通过可以通过typedef增加新的类型增加新的类型B)可以用可以用typedef将已存在的类型用将已存在的类型用一个新的名字来代表一个新的名字来代表C)用用typedef定义新的类型名后,原定义新的类型名后,原有类型名仍有效有类型名仍有效D)用用typedef可以为各种类型起别名,可以为各种类型起别名,但不能为变

99、量起别名但不能为变量起别名填空题2填空题填空题(每空(每空2分,共分,共40分)分)请将每一个空的正确答案写在答题卡请将每一个空的正确答案写在答题卡1至至20序号的横线上,答在试卷上不得序号的横线上,答在试卷上不得分。注意:以命令关键字填空的必须写分。注意:以命令关键字填空的必须写完整完整填空题(1)对长度为对长度为10的线性表进行冒泡排序,最坏情况下需的线性表进行冒泡排序,最坏情况下需要比较的次数为要比较的次数为【1】。(2)在面向对象方法中,在面向对象方法中,【2】描述的是具有相似属性与描述的是具有相似属性与操作的一组对象。操作的一组对象。(3)在关系模型中,把数据看成是二维表,每一个二维

100、在关系模型中,把数据看成是二维表,每一个二维表称为一个表称为一个【3】。(4)程序测试分为静态分析和动态测试。其中程序测试分为静态分析和动态测试。其中【4】是指是指不执行程序,而只是对程序文本进行检查,通过阅不执行程序,而只是对程序文本进行检查,通过阅读和讨论,分析和发现程序中的错误。读和讨论,分析和发现程序中的错误。(5)数据独立性分为逻辑独立性与物理独立性。当数据数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为基于逻辑结构的应用程序不必修改,称为【5】。填空题(6)若变量

101、若变量a,b已定义为已定义为int类型并赋值类型并赋值21和和55,要求用,要求用printf函数以函数以a=21,b=55的形式输出,请写出完整的的输出语句的形式输出,请写出完整的的输出语句【6】。(7)以下程序用于判断以下程序用于判断a、b、c能否构成三角形,若能,输出能否构成三角形,若能,输出YES,否则输出,否则输出NO。当给。当给a、b、c输入三角形三条边长时输入三角形三条边长时确定确定a、b、c能构成三角形的条件是需同时满足三个条件:能构成三角形的条件是需同时满足三个条件:a+bc,a+cb,b+ca。请填空。请填空。main()floata,b,c;scanf(fff,&a,&b

102、,&c);if(【7】)printf(“YESn”);*a、b、c能构成三角形能构成三角形*elseprintf(NOn);*a、b、c不能构成三角形不能构成三角形*填空题(8)以下程序的输出结果是以下程序的输出结果是【8】。main()inta33=1,2,9,3,4,8,5,6,7,i,s=0;for(i=0;i0)str2*i=stri;str2*i-1=*;i-;printf(sn,str);main()charstr40;scanf(s,str);insert(str);填空题(10)下面程序的运行结果是:下面程序的运行结果是:【10】。fun(intt,intn)inti,m;if

103、(n=1)returnt0;elseif(n=2)m=fun(t,n-1);returnm;main()inta=11,4,6,3,8,2,3,5,9,2;printf(dn,fun(a,10);填空题(11)现有两个现有两个C程序文件程序文件T18.c和和myfun.c同在同在TC系统目录系统目录(文件夹文件夹)下,其中下,其中T18.c文件如下:文件如下:#include“stdio.h”#include“myfun.c”main()fun();printf(n);myfun.c文件如下:文件如下:voidfun()chars80,c;intn=0;while(c=getchar()!=n

104、)sn+=c;n-;while(n=0)printf(c,sn-);当编译连接通过后,运行程序当编译连接通过后,运行程序T18时,输入时,输入Thank!则输出结果是:则输出结果是:【11】。填空题(12)以下函数以下函数fun的功能是返回的功能是返回str所指字符串中以形参所指字符串中以形参c中字符开头的后续字符串的首地址,例如:中字符开头的后续字符串的首地址,例如:str所指字所指字符串为:符串为:Hello!,c中的字符为中的字符为e,则函数返回字符串:,则函数返回字符串:ello!的首地址。若的首地址。若str所指字符串为空串或不包含所指字符串为空串或不包含c中中的字符,则函数返回的字

105、符,则函数返回NULL。请填空。请填空。char*fun(char*str,charc)intn=0;char*p=str;if(p!=NULL)while(pn!=c&pn!=0)n+;if(pn=0)returnNULL;return(【12】);填空题(13)以下程序的功能是:输出以下程序的功能是:输出100以内以内(不含不含100)能被能被3整除整除且个位数为且个位数为6的所有整数,请填空。的所有整数,请填空。main()inti,j;for(i=0;【13】;i+)j=i*10+6;if(【14】)continue;printf(d,j);填空题(14)以下以下isprime函数的功

106、能是判断形参函数的功能是判断形参a是否为是否为素数,是素数,函数返回素数,是素数,函数返回1,否则返回,否则返回0。请填。请填空空intisprime(inta)inti;for(i=2;i=a/2;i+)if(ai=0)【15】;【16】;填空题(15)以下程序的功能是输入任意整数给以下程序的功能是输入任意整数给n后,输出后,输出n行由大写字母行由大写字母A开始构成的三角形开始构成的三角形字符阵列图形。例如,输入整数字符阵列图形。例如,输入整数5时时(注意:注意:n不得大于不得大于10),程序运行结果如下:,程序运行结果如下:ABCDEFGHIJKLMNO请填空完成该程序。请填空完成该程序。

107、main()inti,j,n;charch=A;scanf(d,&n);if(n11)for(i=1;i=n;i+)for(j=1;j=n-i+1;j+)printf(2c,ch);【17】;【18】;elseprintf(nistoolarge!n)printf(n);填空题(16)以下程序中函数以下程序中函数fun的功能是:构成一个如图所示的带头结点的单向链表,在结点的功能是:构成一个如图所示的带头结点的单向链表,在结点的数据域中放入了具有两个字符的字符串。函数的数据域中放入了具有两个字符的字符串。函数disp的功能是显示输出该单链表的功能是显示输出该单链表中所有结点中的字符串。请填空完成

108、函数中所有结点中的字符串。请填空完成函数disp。#includetypedefstructnode/*链表结点结构链表结点结构*charsub3;structnode*next;Node;Nodefun(chars)*建立链表建立链表*voiddisp(Node*h)Node*p;p=h-next;while(【19】)printf(sn,p-sub);p=【20】;main()Node*hd;hd=fun();disp(hd);printf(n);subnextsubnextsubnextnextsubNULLhd上机操作题n上机操作题(填空和改错题各上机操作题(填空和改错题各30分,编分

109、,编程题程题40分)分)上机操作题填空题填空题请补充请补充main函数,该函数的功能是:把字符串函数,该函数的功能是:把字符串str中的字中的字符向前移动一位,原来的第一个字符移动到字符串尾,符向前移动一位,原来的第一个字符移动到字符串尾,结果仍然保存在原字符串中。结果仍然保存在原字符串中。例如,输入例如,输入“howdoyoudo?”,则结果输出,则结果输出“owdoyoudo?h”。请在程序的下划线处填入正确的内容,并把下划线删请在程序的下划线处填入正确的内容,并把下划线删除,使程序得出正确的结果。除,使程序得出正确的结果。注意:不得增行或减行,也不得更改程序的结构!注意:不得增行或减行,

110、也不得更改程序的结构!上机操作题试题程序:试题程序:#include#defineN80main()charstrN,ch;inti;clrscr();printf(nInputastring:n);gets(str);printf(n*originalstring*n);puts(str);ch=str0;for(i=0;_;i+)stri=stri+1;_;printf(n*newstring*n);puts(str);上机操作题改错题改错题下列给定程序中,函数下列给定程序中,函数fun()的功能是求出数组的功能是求出数组中最小数和次最小数,并把最小数和中最小数和次最小数,并把最小数和a0

111、中的中的数对调,次最小数和数对调,次最小数和a1中的数对调。中的数对调。请改正程序中的错误,使它能得到正确结果。请改正程序中的错误,使它能得到正确结果。注意:不要改动注意:不要改动main函数,不得增行或减函数,不得增行或减行,也不得更改程序的结构。行,也不得更改程序的结构。上机操作题试题程序:试题程序:#include#defineN20voidfun(int*a,intn)inti,m,t,k;/*found*/for(i=0;in;i+)m=i;for(k=i;kn;k+)if(akam)/*found*/k=m;t=ai;ai=am;am=t;main()intx,bN=11,5,12

112、,0,3,6,9,7,10,8,n=10,i;clrscr();for(i=0;in;i+)printf(%d,bi);printf(n);fun(b,n);for(i=0;in;i+)printf(%d,bi);printf(n);上机操作题编程题编程题m个人的成绩存放在个人的成绩存放在score数组中,请编写函数数组中,请编写函数fun(),它的功能是:将高于平均分的人数作为函数值返回,将它的功能是:将高于平均分的人数作为函数值返回,将高于平均分的分数放在高于平均分的分数放在up所指的数组中。所指的数组中。例如,当例如,当score数组中的数据为数组中的数据为24,35,88,76,90,

113、54,59,66,96时,函数返回的人数应该是时,函数返回的人数应该是5,up中的数据应为中的数据应为88,76,90,66,96。注意:部分源程序给出如下。注意:部分源程序给出如下。请勿改动主函数和其他函请勿改动主函数和其他函数的任何内容,数的任何内容,仅在函数仅在函数fun的花括号中填入所编写的的花括号中填入所编写的若干语句。若干语句。上机操作题#include#include#includeintfun(intscore,intm,intup)inti,j=0;floatav=0.0;for(i=0;im;i+)av=av+scorei/m;for(i=0;im;i+)main()inti,n,up9;intscore9=24,35,88,76,90,54,59,66,96;clrscr();n=fun(score,9,up);printf(nuptotheaveragescoreare:);for(i=0;ic)&(a+cb)&(b+ca)【8】30【9】a*b*c*d*【10】11【11】!knahT【12】p+n【13】inext答案n上机操作题上机操作题填空题填空题第第13行行stri+1或或stri+1!=0或或stri+1!=0第第15行行stri=ch改错题改错题第第8行行i2;或或iav)upj+=scorei;returnj;

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号