1、国家二级( C语言)笔试模拟试卷 154及答案与解析 1 软件是指 ( A)程序 ( B)程序和文档 ( C)算法加数据结构 ( D)程序、数据与相关文档的完整集合 2 检查软件产品是否符合需求定义的过程称为 ( A)确认测试 ( B)集成测试 ( C)验证测试 ( D)验收测试 3 以下不属于对象的基本特点的是 ( A)分类性 ( B)多态性 ( C)继承性 ( D)封装性 4 在设计程序时 ,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短 越好 ( D)程序结构应有助于读者理解 5 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结
2、构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上三种说法都不对 6 数据结构中 ,与所使用的计算机无关的是数据的 ( A)存储结构 ( B)物理结构 ( C)逻辑结构 ( D)物理和存储结构 7 线性表的顺序存储结构和线性表的链式存储结构分别是 ( A)顺序存取的存储结构、顺序存取的存储结构 ( B)随机存取的存储结构、顺序存取的 存储结构 ( C)随机存取的存储结构、随机存取的存储结构 ( D)任意存取的存储结构、任意存取的存储结构 8 树是结点的集合 ,它的根结点数目是 ( A)有且只有 1 ( B) 1或多于 1 ( C
3、) 0或 1 ( D)至少 2 9 下列有关数据库的描述 ,正确的是 ( A)数据库是一个 DBF文件 ( B)数据库是一个关系 ( C)数据库是一个结构化的数据集合 ( D)数据库是一组文件 10 数据库、数据库系统和数据库管理系统之间的关系是 ( A)数据库包括数据库系统和数据库管理系统 ( B)数据库系统包括数 据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D)三者没有明显的包含关系 11 软件是指 ( A)程序 ( B)程序和文档 ( C)算法加数据结构 ( D)程序、数据与相关文档的完整集合 12 检查软件产品是否符合需求定义的过程称为 ( A)确认测试 (
4、 B)集成测试 ( C)验证测试 ( D)验收测试 13 以下不属于对象的基本特点的是 ( A)分类性 ( B)多态性 ( C)继承性 ( D)封装性 14 在设计程序时 ,应采纳的原则之一是 ( A)不限制 goto语句的使用 ( B)减少或取消注解行 ( C)程序越短越好 ( D)程序结构应有助于读者理解 15 下列叙述中正确的是 ( A)程序执行的效率与数据的存储结构密切相关 ( B)程序执行的效率只取决于程序的控制结构 ( C)程序执行的效率只取决于所处理的数据量 ( D)以上三种说法都不对 16 数据结构中 ,与所使用的计算机无关的是数据的 ( A)存储结构 ( B)物理结构 ( C
5、)逻辑结构 ( D)物理和存储结构 17 线性表的顺序存储结构和线性表的链式存储结构分别是 ( A)顺序存取的存储 结构、顺序存取的存储结构 ( B)随机存取的存储结构、顺序存取的存储结构 ( C)随机存取的存储结构、随机存取的存储结构 ( D)任意存取的存储结构、任意存取的存储结构 18 树是结点的集合 ,它的根结点数目是 ( A)有且只有 1 ( B) 1或多于 1 ( C) 0或 1 ( D)至少 2 19 下列有关数据库的描述 ,正确的是 ( A)数据库是一个 DBF文件 ( B)数据库是一个关系 ( C)数据库是一个结构化的数据集合 ( D)数据库是一组文件 20 数据库、数据库系统
6、和数据库管理系统之间的关系是 ( A)数据库包括数据库系统和数据库管理系统 ( B)数据库系统包括数据库和数据库管理系统 ( C)数据库管理系统包括数据库和数据库系统 ( D)三者没有明显的包含关系 21 下面各选项中 ,均是 C语言合法标识符的选项组是 ( A) 33 we auto ( B) _23 me _3ew ( C) _43 3e_ else ( D) ER -DF 32 22 可在 C程序中用作用户标识符的一组标识符是 ( A) and _2007 ( B) Date y-m-d ( C) Hi Dr.Tom ( D) case Bigl 23 以下对 C语言函数的有关描述中 ,
7、正确的是 ( A)在 C语言中调用函数时 ,只能把实参的值传给形参 ,形参的值不能传送给实参 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值 ,否则不能使用函数 ( D)函数必须有返回值 ,返回值类型不定 24 若函数调用时的实参为变量时 ,以下关于函数形参和实参的叙述中正确的是 ( A)函数的实参和其对应的形参共占同一存储单元 ( B)形参只是形式上的存在 ,不占用具体存储单元 ( C)同名的实参和形参占同一存储单元 ( D)函数的 形参和实参分别占用不同的存储单元 25 现有定义 int a;double b;float c;char k;,则表达式 a/b+c-k
8、值的类型为 : ( A) int ( B) double ( C) float ( D) char 26 以下关于 long、 int和 short类型数据占用内存大小的叙述中正确的是 ( A)均占 4个字节 ( B)根据数据的大小来决定所占内存的字节数 ( C)由用户自己定义 ( D)由 C语言编译系统决定 27 有以下程序段 int j;float y;char name50; scanf(“%2d%f%s“, 当执行上述程序段 ,从键盘上输入 55566 7777abc后 ,y的值为 ( A) 55566.0 ( B) 566.0 ( C) 7777.0 ( D) 566777.0 28
9、 若变量已正确定义 ,有以下程序段 i=0; do printf(“%d,“,i);while(i+); printf(“%dn“,i); 其输出结果是 ( A) 0,0 ( B) 0,1 ( C) 1,1 ( D)程序进入无限循环 29 下列程序的运行结果是 #include “stdio.h“ main() int x=-9,y=5,z=8; if(x void main() int cs; while(cs=getchar()!=; n) switch(cs-2) case 0 case 1: putchar(cs+4); case 2: putchar(cs+4); break; ca
10、se 3: putchar(cs+3); default: putchar(cs+2); ( A) 668977 ( B) 668966 ( C) 6677877 ( D) 6688766 31 下面各选项中 ,均是 C语言合法标识符的选项组是 ( A) 33 we auto ( B) _23 me _3ew ( C) _43 3e_ else ( D) ER -DF 32 32 可在 C程序中用作用户标识符的一组标识符是 ( A) and _2007 ( B) Date y-m-d ( C) Hi Dr.Tom ( D) case Bigl 33 以下对 C语言函数的有关描述中 ,正确的是
11、( A)在 C语言中调用函数时 ,只能把实参的值传给形参 ,形参的值不能传送给实参 ( B) C函数既可以嵌套定义又可以递归调用 ( C)函数必须有返回值 ,否则不能使用函数 ( D)函数必须有返回值 ,返回值类型不定 34 若函数调用时的实参为变量时 ,以下关于函数形参和实参的叙述中正确的是 ( A)函数的实参和其对应的形参共占同一存储单元 ( B)形参只是形式上的存在 ,不占用具体存储单元 ( C)同名的实参和形参占同一存储单元 ( D)函数的形参和实参分别占用不同的存储单元 35 现有定义 int a;double b;float c;char k;,则表达式 a/b+c-k值的类型为
12、: ( A) int ( B) double ( C) float ( D) char 36 以下关于 long、 int和 short类型数据占用内存大小的叙述中正确的是 ( A)均占 4个字节 ( B)根据数据的大小来决定所占内存的字节数 ( C)由用户自己定义 ( D)由 C语言编译系统决定 37 有以下程序段 int j;float y;char name50; scanf(“%2d%f%s“, 当执行上述程序段 ,从键盘上输入 55566 7777abc后 ,y的值为 ( A) 55566.0 ( B) 566.0 ( C) 7777.0 ( D) 566777.0 38 若变量已正
13、确定义 ,有 以下程序段 i=0; do printf(“%d,“,i);while(i+); printf(“%dn“,i); 其输出结果是 ( A) 0,0 ( B) 0,1 ( C) 1,1 ( D)程序进入无限循环 39 下列程序的运行结果是 #include “stdio.h“ main() int x=-9,y=5,z=8; if(x void main() int cs; while(cs=getchar()!=; n) switch(cs-2) case 0 case 1: putchar(cs+4); case 2: putchar(cs+4); break; case 3:
14、 putchar(cs+3); default: putchar(cs+2); ( A) 668977 ( B) 668966 ( C) 6677877 ( D) 6688766 41 下列程序执行后的输出结果是 main() int a33, *p,i; p= for(i=1; i2!1 47 有定义语句 :char s10;,若要从终端给 s输入 5个字符 ,错误的输入语句是 ( A) gets( ( B) scanf(“%s“,s+1); ( C) gets(s); ( D) scanf(“%s“,s1); 48 有以下程序 #include #define N 5 #define M
15、N+1 #define f(x)( x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d %dn“,i1,i2); 程序的运行结果是 ( A) 12 12 ( B) 11 7 ( C) 11 11 ( D) 12 7 49 若有 以下说明和定义 union dt int a; char b; double c;data; 以下叙述中错误的是 ( A) data的每个成员起始地址都相同 ( B)变量 data所占内存字节数与成员 c所占字节数相等 ( C)程序段 :data.a=5;printf(“%fn“,data.C);输出结果为 5.0
16、00000 ( D) data可以作为函数的实参 50 有以下程序 #include main() FILE *fp;int k,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“,printf(“%d%dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 1 2 ( B) 1 4 ( C) 123 4 (
17、D) 123 456 51 若已定义 int a=0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中 则对 a数组元素不正确的引用是 ( A) ap-a ( B) *( i=n1; j=n2; while(i #include #include int fun (char *str) int i,j=0; for(i=0;stri!= 0;i+) if(stri!= )strj+=stri; strj= 0; main() char str81; int n; printf(“Input a string : “); gets(str); puts(str); fun(str);
18、printf(“%sn“,str); ( A) asdafaaz67 ( B) asd af aa z67 ( C) asd ( D) z67 54 有以下程序 int fun(int n) if(n=1)return 1; else return(n+fun(n-1); main() int x; scanf(“%d“, x=fun(x);printf(“%dn“,x) 执行程序时 ,给变量 x输入 10,程序的输出结果是 ( A) 55 ( B) 54 ( C) 65 ( D) 45 55 下面程序段中 ,输出 *的个数是 char *s=“ta018bc“; for(;*s!=0;s+)
19、printf(“*“); ( A) 9 ( B) 5 ( C) 6 ( D) 7 56 C语言结构体类型变量在程序运行期间 ( A) TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 ( B)所有的成员一直驻留在内存中 ( C)只有最开始的成员驻留在内存中 ( D)部分成员驻留在内存中 57 已知函数的调用形式为 fread(buf,size,count,fp),参数 buf的含义是 ( A)一个整型变量 ,代表要读入的数据项总数 ( B)一个文件指针 ,指向要读的文件 ( C)一个指针 ,指向要读入数据的存放地址 ( D)一个存储区 ,存放要读的数据项 58 设有以下语句 char x=
20、3,y=6,z; z=xy2!1 67 有定义语句 :char s10;,若要从终端给 s输入 5个字符 ,错误的输入语句是 ( A) gets( ( B) scanf(“%s“,s+1); ( C) gets(s); ( D) scanf(“%s“,s1); 68 有以下程序 #include #define N 5 #define M N+1 #define f(x)( x*M) main() int i1,i2; i1=f(2); i2=f(1+1); printf(“%d %dn“,i1,i2); 程序的运行结果是 ( A) 12 12 ( B) 11 7 ( C) 11 11 ( D
21、) 12 7 69 若有以下说明和定义 union dt int a; char b; double c;data; 以下叙述中错误的是 ( A) data的每个成员起始地址都相同 ( B)变量 data所占内存字节数与成员 c所占字节数相等 ( C)程序段 :data.a=5;printf(“%fn“,data.C);输出结果为 5.000000 ( D) data可以作为函数的实参 70 有以下程序 #include main() FILE *fp;int k,n,a6=1,2,3,4,5,6; fp=fopen(“d2.dat“,“w“); fprintf(fp,“%d%d%dn“,a0
22、,a1,a2); fprintf(fp,“%d%d%dn“,a3,a4,a5); fclose(fp); fp=fopen(“d2.dat“,“r“); fscanf(fp,“%d%d“,printf(“%d%dn“,k,n); fclose(fp); 程序运行后的输出结果是 ( A) 1 2 ( B) 1 4 ( C) 123 4 ( D) 123 456 71 若已定义 int a=0,1,2,3,4,5,6,7,8,9, *p=a,i; 其中 则对 a数组元素不正确的引用是 ( A) ap-a ( B) *( i=n1; j=n2; while(i #include #include i
23、nt fun (char *str) int i,j=0; for(i=0;stri!= 0;i+) if(stri!= )strj+=stri; strj= 0; main() char str81; int n; printf(“Input a string : “); gets(str); puts(str); fun(str); printf(“%sn“,str); ( A) asdafaaz67 ( B) asd af aa z67 ( C) asd ( D) z67 74 有以下程序 int fun(int n) if(n=1)return 1; else return(n+fun
24、(n-1); main() int x; scanf(“%d“, x=fun(x);printf(“%dn“,x) 执行程序时 ,给变量 x输入 10,程序的输出结果是 ( A) 55 ( B) 54 ( C) 65 ( D) 45 75 下面程序段中 ,输出 *的个数是 char *s=“ta018bc“; for(;*s!=0;s+)printf(“*“); ( A) 9 ( B) 5 ( C) 6 ( D) 7 76 C语言结构体类型变量在程序运行期间 ( A) TC环境在内存中仅仅开辟一个存放结构体变量地址的单元 ( B)所有的成员一直驻留在内存中 ( C)只有最开始的成员驻留在内存中
25、 ( D)部分成员驻留在内存中 77 已知函数的调用形式为 fread(buf,size,count,fp),参数 buf的含义是 ( A)一个整型变量 ,代表要读入的数据项总数 ( B)一个文件指针 ,指向要读的文件 ( C)一个指针 ,指向要读入数据的存放地址 ( D)一个存储区 ,存放要读的数据项 78 设有以下语句 char x=3,y=6,z; z=xyj) printf(“%dn“,s); break; s+=i; 92 以下程序的输出结果是【 】。 main() char *p=“ BOOL“,“OPK“,“H“,“SP“; int i; for(i=3; i0;i-,i-)pr
26、intf(“ %c“,*pi); printf(“n“); 93 以下程序用来输出结构体变量 ex所占存储单元的字节数 ,请填空。 struct st char name20;double score; main() struct st ex; printf(“ex size:%dn“,sizeof(【 】 ); 94 以下程序的功能是 :利用指针指向三个整型变量 ,并通过指针运算找出三个数中的最大值 ,输出到屏幕上。请填空。 main() int x,y,z,max,*px,*py,*pz,*pmax; scanf(“%d%d%d“, px= py= pz=pmax= 【 】 ; if(*p
27、maxj) printf(“%dn“,s); break; s+=i; 96 以下程序的输出结果是【 】。 main() char *p=“ BOOL“,“OPK“,“H“,“SP“; int i; for(i=3; i0;i-,i-)printf(“ %c“,*pi); printf(“n“); 97 以下程序用来输出结构体变量 ex所占存储单元的字节数 ,请填空。 struct st char name20;double score; main() struct st ex; printf(“ex size:%dn“,sizeof(【 】 ); 98 以下程序的功能是 :利用指针指向三个整型变量 ,并通过指针运算找出三个数中的最大值 ,输出到屏幕上。请填空。 main() int x,y,z,max,*px,*py,*pz,*pmax; scanf(“%d%d%d“, px= py= pz=pmax= 【 】 ; if(*pmax main() for(i=0;i4;i+) pi= printf(“%d“,pi0);
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1