1、二级 C语言笔试-406 及答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.数据的存储结构是指_。A) 存储在外存中的数据 B) 数据所占的存储空间量C) 数据在计算机中的顺序存储方式 D) 数据的逻辑结构在计算机中的表示(分数:2.00)A.B.C.D.2.下列叙述中正确的是( )。A) 算法的执行效率与数据的存储结构无关B) 算法的空间复杂度是指算法程序中指令(或语句)的条数C) 算法的有穷性是指算法必须能在执行有限个步骤之后终止D) 以上 3种描述都不对(分数:2.00)A.B.C.D.3.下列叙述中正确的是( )。A软件测试应该由程序开
2、发者来完成 B程序经调试后一般不需要测试C软件维护只包括对程序代码的维护 D以上三种说法都不对(分数:1.00)A.B.C.D.4.下列对于软件测试的描述中正确的是( )。A) 软件测试的目的是证明程序是否正确B) 软件测试的目的是使程序运行结果正确C) 软件测试的目的是尽可能多地发现程序中的错误D) 软件测试的目的是使程序符合结构化原则(分数:1.00)A.B.C.D.5.在 E-R图中,用来表示实休联系的图形是A) 椭圆形 B) 矩形C) 菱形 D) 三角形(分数:2.00)A.B.C.D.6.以下关于 C语言数据类型的叙述中正确的是( )。 A) C基本数据类型包括:分为整型、实型、浮点
3、型、字符型四种 B) 实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式 C) 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体类型 D) 若只处理“真”和“假”两种逻辑值,应使用逻辑类型(分数:1.00)A.B.C.D.7.以下选项中可作为 C语言合法常量的是_。A) -80 B) -080 C) -8e1.0 D) -80.0e(分数:2.00)A.B.C.D.8.一个 C语言程序是由( )。A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成(分数:1.00)A.B.C.D.9.执行语句 printf(“%
4、ukn”,+12345) 的输出结果是( )。A) 12345 B) 0 C) -1 D) 非定值(分数:2.00)A.B.C.D.10.下列变量声明合法的是( )。A) short a=1.4e-1;B) double b=1+3e2.8;C) long do=OxfdaL;D) float 2(分数:2.00)A.B.C.D.11.若有定义语句:int x=10;,则表达式 x-=x+x的值为( )。A-20 B-10C0 D10(分数:1.00)A.B.C.D.12.以下四个程序中,完全正确的是_。(A) #include main(); /*programming*/ printf(“
5、programming!/n“);(B) #include main() /*/ programming /*/ printf(“programming!/n“);(C) #include main() /*/*programming*/*/ printf(“programming!/n“);(D) include main() /*programming*/ printf(“programming!/n“);(分数:1.00)A.B.C.D.13.有以下程序段char ch; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“
6、,k);已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D.14.有以下程序main()int i,s=1;for(i=1;i50;i+)if(!(i%5)printf(“%d/n“,s);程序的输出结果是A) 409 B) 277 C) 1 D) 91(分数:1.00)A.B.C.D.15.已定义以下函数:fun(int *p)return *p;该函数的返回值是( )。A) 不确定的值 B
7、) 形参 p中存放的值C) 形参 p所指存储单元中的值 D) 形参 p的地址值(分数:1.00)A.B.C.D.16.若变量 a,i 已正确定义,且 i已正确赋值,下面合法的语句是( )。A) a=1 B) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B.C.D.17.已知字母 A的 ASCII码值为 65。以下程序运行后的输出结果是#includestdio.hmain()char *s=“ABC“;do printf(“%d“, *s%10); s+;while(*s);A) 5670 B) 656667 C) 567 D) ABC(分数:2.00)A.B.
8、C.D.18.有以下程序 #includestdio.h main() char S=“rstuv“; printf(“%c/n“,*s+2); 程序运行后的输出结果是( )。 A) tuv B) 字符 t的 ASCII码值 C) t D) 出错(分数:2.00)A.B.C.D.19.已知#int t=0;while(t=1)则以下叙述正确的是A) 循环控制表达式的值为 0 B) 循环控制表达式的值为 1C) 循环控制表达式不合法 D) 以上说法都不对(分数:2.00)A.B.C.D.20.若 i、j 已定义成 int型,则以下程序段中内循环体的总执行次数是( )。 for(i=6;i0;i-
9、) for(j=0;j4j+) A) 20 B) 24 C) 25 D) 30(分数:2.00)A.B.C.D.21.若指针 p已正确定义,要使 p指向两个连续的整型动态存储单元,不正确的语句是_。A) p=2*(int*)malloc(sizeof(int);B) p=(int*)mallet(2*sizeof(int);C) p=(int*)malloc(2*2);D) p=(int*)calloc(2, sizeof(int);(分数:2.00)A.B.C.D.22.以下数组定义中错误的是A) intx3=0;B) intx23=1,2,3,4,5,6;C) intx3=1,2,3,4,
10、5,6;D) intx23=1,2,3,4,5,6;(分数:2.00)A.B.C.D.23.在 Visual FoxPro中,用于设置表单标题的属性是_。A) Text B) Title C) Lable D) Caption(分数:2.00)A.B.C.D.24.字符(char)型数据在微机内存中的存储形式是_。A) 反码 B) 补码 C) EBCDIC 码 D) ASC码(分数:2.00)A.B.C.D.25.有以下程序#includestdio.hmain()FILE*fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d3dat“,“w+b“);fwrite(a,siz
11、eof(int),6,fp);fseek(fp,sizeof(int),3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动 3个 int型数据*/fread(a,sizeof(int),3,fp);fclose(fp);for(i=0;6;+)printf(“%d,“,ai);程序运行后的输出结果是A) 4,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,1,(分数:2.00)A.B.C.D.26.下面程序的输出是_。main()char*s=“12134211“;int v1=0,v2=0,v3=0,v4=0,k
12、;for(k=0;sk;k+)switch(sk)defaultv4+;case1:v1+;case3:v3+;case2:v2+;printf(“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4);A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8(分数:2.00)A.B.C.D.27.下列能正确进行字符串赋值的是( )。A) char s5=“ABCDE“; B) char s5=A,B,C,D,E;C) char*s;s=“ABCD
13、E“; D) char*s; printf(“%s“,s);(分数:2.00)A.B.C.D.28.有下列程序:#include stdio.hvoid fun(char *a, char *B) while(*a=*)a+;while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的运行结果是( )。A) *a*b B) a*b C) a*b* D) ab(分数:2.00)A.B.C.D.29.已有定义:int i,a10,*p;,则合法的赋值语句是 _。A) p=100; B) p=a5; C) p=a2+2; D) p
14、=a+2;(分数:2.00)A.B.C.D.30.有以下程序:void swapl(int c0, int c1)int t;t=coo; coo=o1o; c1o=t;void swap2(int * c0, int * c1)int t;t=*c0; *c0=*c1; *c1=t;main()int a2=3, 5, b2=A3, 5);swapl(a, a+1); swap2(printf(“%d%d%d%d/n“, a0, a1, b0,b1);程序运行后的输出结果是_。A) 3 5 5 3 B) 5 3 3 5 C) 3 5 3 5 D) 5 3 5 3(分数:2.00)A.B.C.
15、D.31.有以下程序:#includestdio.h#includestring.htypedef structchar name9;char sex;float score2;STU;STU f(STU a)STU b=“Zhao“,m,85.0,90.0;int i;strcpy(a.name,b.name);a.sex=b.sex;for(i=0;i,2;i+)a.scorei=b.scorei;return a;main()STU c=“Qian“,f,95.0,92.0,d;d=f(c);printf(“%s,%c,%2.0f%2.0f/n“,d.name,d.sex,d.score
16、0,d.score1);程序的运行结果是_。A) Qian,f,95,92 B) Qian,85,90C) Zhao,m,85,90 D) Zhao,f,95,92(分数:2.00)A.B.C.D.32.有以下程序:#includestdio.hstruct ttint x;struct tt*y;*p;struct tt a4=20,a+1,15,a+2,30,a+3,17,amain()int i;p=a;for(i=1;i=2;i+)printf(“%d“,p-x);p=P-y;程序的运行结果是_。A) 20,30, B) 30,17 C) 15,30 D) 20,15(分数:2.00)
17、A.B.C.D.33.已知有结构体:struct skint a;float b;data,*p;若有 p= C) p-data.a D) p.data.a(分数:2.00)A.B.C.D.34.若有以下程序段int r=8;printf(“%d/n“,r1);输出结果是A) 16 B) 8 C) 4 D) 2(分数:2.00)A.B.C.D.35.有以下程序:#includestdio.hmain()FILE *fp;int i,a6=1,2,3,4,5,6;fp=fopen(“d2.dat“,“w“);fprintf(fp,“%d%d%d/n“,a0,a1,a2);fprintf(fp,“
18、%d%d%d/n“,a3,a4,a5);fclose(fp);fp=fopen(“d2.dat“,“r“);fscanf(fp,“%d%d/n“,其中 buffer代表的是_。(A) 一个文件指针,指向待读取的文件(B) 一个整型变量,代表待读取的数据的字节数(C) 一个内存块的首地址,代表读入数据存放的地址(D) 一个内存块的字节数(分数:2.00)A.B.C.D.37.标准库函数 fgets(s,n,file)的功能是( )。A) 从文件 file中读取长度为 n的字符串存入字符数组 s中B) 从文件 file中读取长度不超过 n-1个字符的字符串放到字符数组 s中C) 从文件 file中
19、读取 n个字符串存入字符数组 s中D) 从文件 file中读取长度为 n-1个字符的字符串存入字符数组 s中(分数:2.00)A.B.C.D.38.函数 fseek()的正确调用形式是( )。A) fseek(位移量,起始点,文件类型指针); B) fseek(文件类型指针,位移量,起始点);C) fseek(文件类型指针,起始点,位移量); D) fseek(起始点,位移量,文件类型指针);(分数:1.00)A.B.C.D.39.以下对结构体类型变量 td的定义中,错误的是( )。A) typcdef struct aaint n;float m;AA;AA td;B) struct aai
20、nt n;float m;struct aa td;C) structint n;float m;aa;struct aa td;D) structint n;float m;td;(分数:1.00)A.B.C.D.40.函数 fseek(pf,0L,SEEK_END) 中的 SEEK_END代表的是( )。A) 文件开始 B) 文件末尾 C) 文件当前位置 D) 以上都不对(分数:2.00)A.B.C.D.二、填空题(总题数:15,分数:30.00)41.数据结构分为逻辑结构和存储结构,循环队列属于 1 结构。(分数:2.00)填空项 1:_42.按照“先进先出”的原则组织数据的结构是 1。
21、(分数:2.00)填空项 1:_43.关系数据库管理系统能实现的专门关系运算包括选择、连接和U /U。(分数:2.00)填空项 1:_44.数据库系统的三级模式分别为U /U模式、内部级模式与外部级模式。(分数:2.00)填空项 1:_45.若 a是 int型变量,则表达式(a=2*3,a*2),a+6 的值为_。(分数:2.00)填空项 1:_46.设 y为 int型变量,请写出描述“y 是偶数”的表达式 1。(分数:2.00)填空项 1:_47.若 int x=1,y=2;则计算表达式 y+=y-=x*=y后的 y值是 1。(分数:2.00)填空项 1:_48.下列程序的输出结果是_。#i
22、ncludestdio.hmain()int x=3,y=2,z=1;if(xy)if (y0) z=0;else z+=1;printf(“%d/n“,z);(分数:2.00)填空项 1:_49.下面程序的功能是:计算 120 之间的奇数之和与偶数之和,请填空使程序功能完整。#includestdio.hmain()int a=0,b=0,c=0,i;for(i=0;i=20;i+=2)a+=i;_;c+=b;printf(“偶数之和=%d/n“,a);printf(“奇数之和=%d/n“,c-21);(分数:2.00)填空项 1:_50.以下程序统计从终端输入的字符中大写字母的个数。用#号
23、作为输入结束标志,请填空。 #includestdio.h #includectype.h main() int num26,i;char c; for(i=0;i26;i+) numi=0; _; while(c!=# if(isupper(c) numc-65+=1; for(i=0;i26;i+) if(numi) printf(“%c,%d/n“,i+65,numi); (分数:2.00)填空项 1:_51.执行以下程序后,输出“#”的个数是U /U。#include stdio.hmain()int i,j;for(i=1;i5;i+)for(j=2;j=i;j+) putchar(
24、#);(分数:2.00)填空项 1:_52.以下程序运行时从键盘输入:How are you? 回车,则输出结果为_。#includestdio.hmain()char a20=“How are you?“,b20;scanf(“%s“, b); printf(“%s %s/n“, a, b);(分数:2.00)填空项 1:_53.以下程序通过函数 SunFun()调用 F(x),x 的值从 0到 10,这里 F(x)=x2+1,由 F函数实现,请填空。#include stdio. hint SunFun(int);int F(int);main ( )pfintf( “The sum =
25、% d /n“ ,SunFun(10) ); SunFun( int n)int x,s =0;for(x=0; x=n; x+) s+ =F(U /U);return s;F( int x)return (U /U);(分数:2.00)填空项 1:_54.下列程序的运行结果是_。#includestdio.hfunc(a,b)static int m=0,i=2;i+=m+1;m=i+a+b;return(m);main()int k=5,m=3,p;p=func(k,m);printf(“%d“,p);p=func(k,m);printf(“%d/n“,p);(分数:2.00)填空项 1:
26、_55.以下程序运行后的输出结果是_。main()int a,b,c;a=10;b=20;c=(a%b1)|(a/b1);printf(“%d %d %d/n“,a,b,c);(分数:2.00)填空项 1:_二级 C语言笔试-406 答案解析(总分:98.00,做题时间:90 分钟)一、选择题(总题数:40,分数:68.00)1.数据的存储结构是指_。A) 存储在外存中的数据 B) 数据所占的存储空间量C) 数据在计算机中的顺序存储方式 D) 数据的逻辑结构在计算机中的表示(分数:2.00)A.B.C.D. 解析:解析 数据的逻辑结构是指反映数据元索之间逻辑关系的数据结构;数据的存储结构是指数
27、据的逻辑结构在计算机存储空间中的存放形式,常用的存储结构有顺序、链接、索引等。在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。2.下列叙述中正确的是( )。A) 算法的执行效率与数据的存储结构无关B) 算法的空间复杂度是指算法程序中指令(或语句)的条数C) 算法的有穷性是指算法必须能在执行有限个步骤之后终止D) 以上 3种描述都不对(分数:2.00)A.B.C. D.解析:解析 算法的执行效率与数据的存储结构密切相关。算法的空间复杂度是指算法执行过程中所需的存储空间。3.下列叙述中正确的是( )。A软件测试应该由程序开发者来完成 B程序经调试后一般不
28、需要测试C软件维护只包括对程序代码的维护 D以上三种说法都不对(分数:1.00)A.B.C.D. 解析:解析 程序调试由程序开发者完成,是诊断和改正程序中的错误的过程。软件测试由专门的测试人员完成,是发现错误而执行程序的过程。软件维护是指软件系统交付使用以后,为了改正错误或满足新的需要而修改软件的过程,是软件生存周期中非常重要的一个阶段。4.下列对于软件测试的描述中正确的是( )。A) 软件测试的目的是证明程序是否正确B) 软件测试的目的是使程序运行结果正确C) 软件测试的目的是尽可能多地发现程序中的错误D) 软件测试的目的是使程序符合结构化原则(分数:1.00)A.B.C. D.解析:解析
29、软件测试是为了尽可能多地发现程序中的错误,尤其是发现至今尚未发现的错误。5.在 E-R图中,用来表示实休联系的图形是A) 椭圆形 B) 矩形C) 菱形 D) 三角形(分数:2.00)A.B.C. D.解析:解析 E-R 图中用矩形表示实体(等同于表),用椭圆形表示实体的属性(等同于表中字段),用菱形表示实体关系(等同于外键)。6.以下关于 C语言数据类型的叙述中正确的是( )。 A) C基本数据类型包括:分为整型、实型、浮点型、字符型四种 B) 实型常量的表达方式包括十进制形式、十六进制形式、二进制形式、八进制形式、指数形式 C) 若要处理如“人员信息”等含有不同类型的相关数据,应自定义结构体
30、类型 D) 若只处理“真”和“假”两种逻辑值,应使用逻辑类型(分数:1.00)A.B.C. D.解析:解析 C 基本数据类型包括:分为整型、实型、枚举型、字符型四种,实型就是浮点型,实型数据只有十进制,没有 2,8,16 进制表达,在 C语言中没有定义逻辑类型,而是一般用 0代表假,用非零代表真。7.以下选项中可作为 C语言合法常量的是_。A) -80 B) -080 C) -8e1.0 D) -80.0e(分数:2.00)A. B.C.D.解析:解析C 语言中实数常数的科学表示法规定格式为:“实数 e整数”或“实数 E整数”,其中幂是整数,不能写成实数。e(或 E)前后的实数和整数都不能省略
31、掉,因此选项 C和 D都是错误的。选项 B的一 080,由于 C语言规定。开头的是八进制数,0x(0x)开头的是十六进制数。而八进制数数字是 07,出现 8是错误的,因此选项 B也是错误的。只有选项 A是正确的。实数的小数点前后的数字都可以不写。8.一个 C语言程序是由( )。A) 一个主程序和若干子程序组成 B) 函数组成 C) 若干过程组成 D) 若干子程序组成(分数:1.00)A.B. C.D.解析:解析 一个 C源程序是由一个 main函数和若干个其他函数组成的。函数是 C程序的基本单位,被调用的函数可以是系统提供的库函数,也可以是用户根据需要自己定义的函数。9.执行语句 printf
32、(“%ukn”,+12345) 的输出结果是( )。A) 12345 B) 0 C) -1 D) 非定值(分数:2.00)A. B.C.D.解析:解析 “%u”表示输出无符号的整数(注意:如果输出值前有符号,将自动转化为相应的无符号数输出)。10.下列变量声明合法的是( )。A) short a=1.4e-1;B) double b=1+3e2.8;C) long do=OxfdaL;D) float 2(分数:2.00)A. B.C.D.解析:解析 解答本题需了解 3个知识点:标识符是由字母、数字或下划线组成,并且它的第一个字符必须是字母或者下划线;do 是 C语言中的一个关键字,不能再用做
33、变量名和函数名;C 语言规定,指数形式的实型常量 e或 E后面的指数必须是整数。11.若有定义语句:int x=10;,则表达式 x-=x+x的值为( )。A-20 B-10C0 D10(分数:1.00)A.B. C.D.解析:解析 表达式 x-=x+x可以写成 x=x-(x+x),所以 x的值为-10。12.以下四个程序中,完全正确的是_。(A) #include main(); /*programming*/ printf(“programming!/n“);(B) #include main() /*/ programming /*/ printf(“programming!/n“);(
34、C) #include main() /*/*programming*/*/ printf(“programming!/n“);(D) include main() /*programming*/ printf(“programming!/n“);(分数:1.00)A.B. C.D.解析:13.有以下程序段char ch; int k;ch=a; k=12;printf(“%c,%d,“,ch,ch,k); printf(“k=%d/n“,k);已知字符 a的 ASCII码值为 97,则执行上述程序段后输出结果是A) 因变量类型与格式描述符的类型不匹配输出无定值B) 输出项与格式描述符个数不符
35、,输出为零值或不定值C) a,97,12k=12D) a,97,k=12(分数:1.00)A.B.C.D. 解析:解析 输出格式控制符%c 表示将变量以字符的形式输出;输出格式控制符%d 表示将变量以带符号的十进制整型数输出,所以第一个输出语句输出的结果为 a,97;第二个输出语句输出的结果为 k12。14.有以下程序main()int i,s=1;for(i=1;i50;i+)if(!(i%5)printf(“%d/n“,s);程序的输出结果是A) 409 B) 277 C) 1 D) 91(分数:1.00)A.B.C.D. 解析:解析 本题是计算 50之内的自然数相加之和,题中 if语句括
36、号中的条件表达式!(i%5)该函数的返回值是( )。A) 不确定的值 B) 形参 p中存放的值C) 形参 p所指存储单元中的值 D) 形参 p的地址值(分数:1.00)A.B.C. D.解析:解析 本题考查函数的返回值。函数形参*p 是一个指针变量,函数调用返回的是 p所指存储单元里的值。16.若变量 a,i 已正确定义,且 i已正确赋值,下面合法的语句是( )。A) a=1 B) +i; C) a=a+=5; D) a=int(i);(分数:1.00)A.B. C.D.解析:解析 选项 A) 缺少分号,是一个表达式,而不是语句;选项 C) 包含一个不合法的运算符“+=”;选项 D) 应改为
37、a=(int)i;。17.已知字母 A的 ASCII码值为 65。以下程序运行后的输出结果是#includestdio.hmain()char *s=“ABC“;do printf(“%d“, *s%10); s+;while(*s);A) 5670 B) 656667 C) 567 D) ABC(分数:2.00)A.B.C. D.解析:解析 每进行一次循环,将输出 s指向字母的 ASCII码值除以 10的余数。字符 A的 ASCII码值是65,第一次输出 65%10的余数 5,执行 s+后,指针指向字母 B;第二次输出 66%10的余数 6,执行 s+后,指针指向字母 c;第三次输出 67%
38、10的余数 7,执行 s+后,指针指向串结束标志“/0”。此时,*s 等于0,退出循环。因此,输出结果为 567。18.有以下程序 #includestdio.h main() char S=“rstuv“; printf(“%c/n“,*s+2); 程序运行后的输出结果是( )。 A) tuv B) 字符 t的 ASCII码值 C) t D) 出错(分数:2.00)A.B.C. D.解析:解析 本题考查字符变量,s 是字符指针,*s 为即 s0,*s+2 相当于将指针后移两位,然后取其值。s 后移 2位则指向字符 t,所以输出 t。19.已知#int t=0;while(t=1)则以下叙述正
39、确的是A) 循环控制表达式的值为 0 B) 循环控制表达式的值为 1C) 循环控制表达式不合法 D) 以上说法都不对(分数:2.00)A.B. C.D.解析:解析 t1 是将 t赋值为 1,所以循环控制表达式的值为 1。判断 t是否等于 1时,应用t1,注意“”与“”的用法。20.若 i、j 已定义成 int型,则以下程序段中内循环体的总执行次数是( )。 for(i=6;i0;i-) for(j=0;j4j+) A) 20 B) 24 C) 25 D) 30(分数:2.00)A.B. C.D.解析:解析 本题考查的是嵌套 for循环执行次数。对于外层 i的循环中任何一个 i,内层 j的循环中
40、的 j都要从 0变化到 3,j=4 时退出循环;然后外层 i循环的 i减少 1,内层循环的 i仍要从 0变化到3,j=4 时退出循环直到外层 i循环的 i变为 0,退出 i循环。所以执行多重循环时,对外层循环变量的每一个值,内层循环的循环变量都要从初始值变化到终值。对外层循环的每一次循环,内层循环要执行完整的循环语句。外层 for语句执行 6次,内层 for语句执行 4次,所以内循环体执行 6*4=24次。21.若指针 p已正确定义,要使 p指向两个连续的整型动态存储单元,不正确的语句是_。A) p=2*(int*)malloc(sizeof(int);B) p=(int*)mallet(2*
41、sizeof(int);C) p=(int*)malloc(2*2);D) p=(int*)calloc(2, sizeof(int);(分数:2.00)A. B.C.D.解析:解析 本题考查 malloc函数和 calloc函数的应用。C 语言中库函数 malloc和 calloc的功能都是向系统申请分配内存空间。其中函数 malloc的调用为:malloc(size),其中 size是一个无符号整数,表示向系统申请多大的存储空间;calloc(n,size)表示向系统申请 n个大小为 size的存储空间。新标准C提供的 malloc和 calloc函数的类型规定为 void*类型,使用时根
42、据需要进行强制类型转换。选项B、C、D 都能满足 p指向两个连续的整型存储单元的要求,其中(int*)表示强制类型转换。22.以下数组定义中错误的是A) intx3=0;B) intx23=1,2,3,4,5,6;C) intx3=1,2,3,4,5,6;D) intx23=1,2,3,4,5,6;(分数:2.00)A.B. C.D.解析:解析 二维数组的初始化有以下几种形式:分行进行初始化;不分行进行初始化;部分数组元素进行初始化;省略第一维的定义,不省略第二维的定义。选顷 B)等号右边分了 3行,大于等号左边数组的行数 2。23.在 Visual FoxPro中,用于设置表单标题的属性是_
43、。A) Text B) Title C) Lable D) Caption(分数:2.00)A.B.C.D. 解析:解析 本题考查的知识点是表单的属性。Caption 用于指明显示于表单标题栏上的文本。24.字符(char)型数据在微机内存中的存储形式是_。A) 反码 B) 补码 C) EBCDIC 码 D) ASC码(分数:2.00)A.B.C.D. 解析:评析 将个字符常量放到个字符变量中,实际上并不是把该字符本身放到内存单元中去,而是将该字符的 ASCII码值放到存储单元中。25.有以下程序#includestdio.hmain()FILE*fp;int i,a6=1,2,3,4,5,6
44、;fp=fopen(“d3dat“,“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;6;+)printf(“%d,“,ai);程序运行后的输出结果是A) 4,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,1,(分数:2.00)A. B.C.D.解析:解析 首先利用 fwrite函数将数组 a
45、中的数据写到文件中,接着 fseek函数的功能是读文件的位置,指针从文件头向后移动 3个 int型数据,这时文件位置指针指向的是文件中的第 4个 int数据“4”,然后 fread函数将文件 fp中的后 3 个数据 4,5,6 读到数组 a中,这样就覆盖了数组中原来的前 3 项数据。最后数组中的数据就成了4,5,6,4,5,6。26.下面程序的输出是_。main()char*s=“12134211“;int v1=0,v2=0,v3=0,v4=0,k;for(k=0;sk;k+)switch(sk)defaultv4+;case1:v1+;case3:v3+;case2:v2+;printf(
46、“v1=%d,v2=%d,v3=%d,v4=%d/n“,v1,v2,v3,v4);A) v1=4,v2=2,v3=1,v4=1 B) v1=4,v2=9,v3=3,v4=1C) v1=5,v2=8,v3=6,v4=1 D) v1=8,v2=8,v3=8,v4=8(分数:2.00)A.B.C. D.解析:评析 当 switch后面括弧内的表达式的值与某个 case后面的常量的表达式的值相等时,就执行此 case后面的语句,若所有的 case中的常量表达式的值都没有与表达式的值匹配的,就执行 default后面的语句。27.下列能正确进行字符串赋值的是( )。A) char s5=“ABCDE“;
47、 B) char s5=A,B,C,D,E;C) char*s;s=“ABCDE“; D) char*s; printf(“%s“,s);(分数:2.00)A.B.C. D.解析:解析 字符串存储要有结束符“/0”且要占用一个空间,选项 A)、B 的空间不够:printf 用来输出字符,不能输入字符串28.有下列程序:#include stdio.hvoid fun(char *a, char *B) while(*a=*)a+;while(*b=*A) b+;a+;main()char *s=“*a*b*“,t80;fun(s,t);puts(t);程序的运行结果是( )。A) *a*b B) a*b
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1