《全国计算机等级考试(二级)---C语言程序设计考课件.ppt》由会员分享,可在线阅读,更多相关《全国计算机等级考试(二级)---C语言程序设计考课件.ppt(247页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、n 第一部分第一部分 考试大纲(考试大纲(20072007年)年)n 第二部分第二部分 样题及参考答案样题及参考答案 n 第三部分第三部分 历年真题及答案历年真题及答案n 第四部分第四部分 模拟试题及答案模拟试题及答案第一部分 考试大纲(2007年)n基本要求基本要求n考试内容考试内容n考试方式考试方式第一部分 考试大纲基本要求1.熟悉熟悉VisualC+6.0集成开发环境集成开发环境2.掌握结构化程序设计的方法,具有良好的掌握结构化程序设计的方法,具有良好的程序设计风格程序设计风格3.掌握程序设计中简单的数据结构和算法并掌握程序设计中简单的数据结构和算法并能阅读简单的程序能阅读简单的程序4.
2、在在VisualC+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语句实现选择结构语句实现选
4、择结构2.用用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函数的应用),文件的定位函数的应用),文件的定位(
8、rewind,fseek函数的应用)函数的应用)考试方式1.笔试:笔试:90分钟,满分分钟,满分100分,其中含公共分,其中含公共基础知识部分的基础知识部分的30分分2.上机:上机:90分钟,满分分钟,满分100分分上机操作包括:上机操作包括:填空填空改错改错编程编程 第二部分 样题及参考答案n选择题选择题n填空题填空题n上机操作题上机操作题填空题填空题改错题改错题编程题编程题第二部分 样题及参考答案选择题n选择题选择题以下程序的输出结果是以下程序的输出结果是#include“stdio.h”main()inti=010,j=10,k=0 x10;printf(“%d,%d,%d”,i,j,k
9、);A)8,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)
10、B)(x=y)AND(y=z)C)(x=y=z)D)(x=y)&(y=z)选择题以下对以下对C语言字符数组的描述中错误的是语言字符数组的描述中错误的是A)字符数组可以存放字符串字符数组可以存放字符串B)字符数组中的字符串可以整体输入、输出字符数组中的字符串可以整体输入、输出C)可以在赋值语句中通过赋值运算符可以在赋值语句中通过赋值运算符“=”对字符数组整体赋值对字符数组整体赋值D)不可以用关系运算符对字符数组中字符串不可以用关系运算符对字符数组中字符串进行比较进行比较选择题以下说法中正确的是以下说法中正确的是A)C语言程序总是从第一个定义的函数开始语言程序总是从第一个定义的函数开始执行执行B)
11、在在C语言程序中,要调用的函数必须在语言程序中,要调用的函数必须在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
13、)B)*(*(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填空题填空题能正确表示逻辑关系能正确表示逻辑关系“10 x100或或x&b0)putchar(*chp);putchar(n);GFEDCB(x10
14、&x100)|x0或或(10 x&x100)|x0或或x10&xx|(10 x&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”
15、,p2);printf(“%s”,p2);printf(“%sn”,p1);若运行时输入:若运行时输入:HOWDOYOUDO回车回车,则程序的输出结果是,则程序的输出结果是_HOWhowdoyoudo填空题以下程序的功能是:首先由终端键盘输入一个文件名,然后把以下程序的功能是:首先由终端键盘输入一个文件名,然后把从终端键盘输入的字符以文本方式依次存放到该文件中,用从终端键盘输入的字符以文本方式依次存放到该文件中,用#作为结束输入的标志。请填空。作为结束输入的标志。请填空。#include“stdio.h”#include“stdlib.h”main()FILE*fp;charch,fname1
16、0;printf(“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(m1
17、0000)之间所有数的和之间所有数的和(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,
18、&n,&m);while(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
20、+=1;或或k=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所指的数组中,通过所指的数组中,通
21、过n返回这些数的个数。返回这些数的个数。注意:部分源程序给出如下。注意:部分源程序给出如下。请勿改动主函请勿改动主函数和其他函数的任何内容,数和其他函数的任何内容,仅在函数仅在函数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(
22、xy)x-D)if(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*
23、3=32*3=63*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)已知大写字
24、母已知大写字母A的的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)计算)计
25、算s所指字符串的长度所指字符串的长度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)
26、;printf(“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,intf
27、lag)inti,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)有以下程序有以下程序vo
28、idf(intb)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)/*注意:注意
29、:c是结构变量名是结构变量名*/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+)p
30、rintf(“%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=a,b,c,
32、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”,strlen(p);程序运行后
33、的输出结果是程序运行后的输出结果是()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(“%dn”,strlen(p
34、0);程序运行后的输出结果是程序运行后的输出结果是()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;for(i=1;iargc
35、;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=0;for(;(;i2;i+)s+=
36、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)编译有错)编译有错B)运行出错)运行出错C)运
37、行结果为)运行结果为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(p-aip-aj)t=p-ai;p-ai
38、=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)inti;for(i=0;in-1;i+
39、)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;structnode*next;*NODE;NOD
40、Ep;以下叙述正确的是以下叙述正确的是()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)有以下程序有以下程序#include“std
41、io.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语言笔试试卷(50)有以下程序有以下程序#include“
42、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,5,6,4,5,6,B)1,2,3,4,5
43、,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黑箱(或黑盒黑箱(或黑盒)数据库管理系统数据库管理系统开发开发数据字典数据字典2007年4月二级C语言笔试试卷(6)执行以下程序后的输
45、出结果是)执行以下程序后的输出结果是_。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)m+=k;k+=m;printf(“m=%dnk
46、=%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:printf(“$”);break;default
47、: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“stdio.h”#include“string.h”main
48、()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”,&xi);for(_;i10;i+)ai-1=xi+_
49、;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*py)*pmax=*py;if(*pmax*pz)*p
50、max=*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”#include“stdlib.h”main()char*s1,*s2,m