1、国家计算机二级(C)68 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序: main( ) char s “Yes/n/No“,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项 D中的第一行是空行)( )。 (分数:60.00)A.n/No Yes /NoB./No YesC.n/NO Yes /NoD./No Yes2.下列叙述中正确的是( )。(分数:60.00)A.在 Windows环境下,最大化的窗口是不能移动的B.
2、在 Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C.在 Windows环境下,只有最小化的窗口才能关闭D.在 Windows环境下,不能关闭最小化窗口3.以下叙述中正确的是【 】。(分数:60.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现的算法可以没有输出但必须要输入C.用 C程序实现的算法可以没有输入但必须要有输出D.用 C程序实现的算法可以既没有输入也没有输出4.有下列程序: #include stdio.h #include “string.h“ void tim(char *s,int n) char *t;int i,j; for(i=0;
3、in-1;i+) for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4); 程序的运行结果是( )。 (分数:60.00)A.xy,aaaaccB.aaaacc,xyC.bcc,aabccD.aabcc,bcc5.下列叙述中正确的是【 】。(分数:60.00)A.每个 C程序文件中都必须要有一个 main()函数B.在 C程序中 main()函数的位置是固定的
4、C.C程序中所有函数之间都可以:相互调用,与函数所处位置无关D.在 C程序的函数中不能定义另一个函数6.有下列程序: #include stdio.h int f(int x) int y; if(x=0x=1)return(3); y=x*x-f(x-2); return y; main() int z; z=f(3);printf(“%d/n“,z); 程序的运行结果是( )。 (分数:60.00)A.0B.9C.6D.87.下面程序的功能是输出以下形式的金字塔图案是: * * * * * * * * * * * * * * * * main( ) int i,j; for(i=1;i0;
5、26.以下程序中函数 f( )的功能是将 n个字符串按由大到小的顺序进行排序。 #includestring.h void f(char p 10,int n) char t20; int i,j; for(i =O;i n-1 ;i + ) for(j =i + 1 ;j n;j + ) if(strcmp(p i ,pj ) 0) strcpy(t,pi);strcpy(pi ,pj );strcpy(pj ,t); main ( ) char p 10 = “abc“,“aabdfg“,“abbd“,“dcdbe“, “cd“ ; int i; f(p,5); printf(“%d/n“
6、,strlen(pO ) ); 程序运行后的输出结果是( )。 (分数:60.00)A.6B.4C.3D.527.有以下程序 main() int i,S=0,t=l,2,3,4,5,6,7,8,9; for(i=0;iA.45B.20C.25D.3628.设有如下说明 typedef struct int n; char c; double x;STD; 则以下选项中 ,能正确定义结构体数组并赋初值的语句是( )。 (分数:60.00)A.STD tt2=1,A,62,2,B,75;B.STD tt2=1,“A“,62,2,“,75;C.struct tt2=1,A,2,B;D.struct
7、 tt2=1,“A“,62.5,2,“B“,75.0;29.以下不能正确定义二维数组的选项是( )。(分数:60.00)A.int a22=1,2;B.int a 2=1,2,3,4;C.int a22=1,2,3;D.int a2 =1,2,3,4;30.以下程序中 sort( )函数的功能是对 a所指数组中的数据进行由大到小的排序: void sort(int a ,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main( ) int aa10=1,2,3,4,5,6,7,8,9,1
8、0,i; sort(aa3,5); for(i0;i10;+)printf(“%d,“,aai ); printf(“/n“); 程序运行后的输出结果是( )。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10,D.1,2,10,9,8,7,6,5,4,3,31.有以下程序: main( ) unsigned char a,b; a=4|3; b=4 printf(“%d %d/n”,a,b(; 执行后输出结果是( )。 (分数:60.00)A.7 0B.0 7C.1 1D.43 032
9、.以下叙述中错误的是【 】。(分数:60.00)A.C语言是一种结构化程序设计语言B.结构化程序由顺序、分支、循环三种基本结构组成C.使用三种基本结构构成的程序只能解决简单问题D.结构化程序设计提倡模块化的设计方法33.有以下程序: void f(int v , int w) int t; t=v;v=w;w=t; main( ) int x=1,y=3,z=2; if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(“%d,%d,%d/n”,x,y,z); 执行后输出结果是( )。 (分数:60.00)A.1,2,3B.3,1,2C.1
10、,3,2D.2,3,134. 从 Windows环境进入 DOS方式后,返回 Windows环境的命令为( )。(分数:60.00)A.QUITB.WINC.EXITD.ESC35.以下关于逻辑运算符两侧运算对象的叙述中正确的是【 】。(分数:60.00)A.只能是整数 0或 1B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.可以是任意合法的表达式36.有以下程序: float fun(int x,int y) return(x+y); main( ) int a=2,b=5,c=8; printf(“%3.Of/n“,fun( (int)fun(a+c,b),a-c) ); 程序
11、运行后的输出结果是( )。 (分数:60.00)A.编译出错B.9C.21D.937.有以下程序 main( ) int i; for(i=0;i3;i+) switch(i) case 1: printf(“%d“,i); case 2: printf(“%d“,i); default: printf(“%d“,i); 执行后输出的结果是( )。 (分数:60.00)A.011122B.012C.012020D.12038.设有定义 int n1=0,n2,*p= scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序
12、的输出值为 2,则应该从键盘给 n输入的值是( )。 (分数:60.00)A.-1B.-3C.-5D.044.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是【 】。(分数:60.00)A.数组 a和 b的长度相同B.a数组长度小于 b数组长度C.a数组长度大于 b数组长度D.上述说法都不对45.用 C语言编写的代码程序( )。(分数:60.00)A.可立即执行B.是一个源程序C.经过编译即可执行D.经过编译解释才能执行46.以下选项中不能正确把 c1定义成结构体变量的是( )。(分数:60.00)A.typedef struct int red; int green;
13、 int blue; COLOR; COLOR cl;B.struct color cl int red; int green; int blue; C.struct color int red; int green; int blue; cl;D.struct int red; int green; int blue; cl;47.当把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是【 】。(分数:60.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=148.计算机能直接执行的程序是(分数:60.00)A.源程序B.目标程序C.汇编程序
14、D.可执行程序49. 有以下说明和定义语句: struct student int age; char num8; struct student stu3=20,“200401“,21,“200402“,10/9,“200403“; struct student *p=stu; 以下选项中引用结构体变量成员的表达式错误的是( )。 (分数:60.00)A.(p+)-numB.p-numC.(*p).numD.stu3.age50.与十进制数 200等值的十六进制数为( )。(分数:60.00)A.A8B.A4C.C8D.C4二、填空题(每空 2分,共 40分)(总题数:12,分数:480.00
15、)51.以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请填空。 main1 int i,j,x; for(j=4;j 2;j-) for(i=1;i=4;i+) x=(j-1)*4 + 3; printf(“%4d“,x); printf(“/n“); (分数:40.00)填空项 1:_填空项 1:_52.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:40.00)填空项 1:_53.在 DOS环境下,代表键盘和显示器的设备文件名为 1。(分数:40.00)填空项 1:_54.下列程序的定义语句中,x1的初
16、值是 1,程序运行后输出的内容是 2。 #include stdio.h main3 int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi= printf(“%d“,pi0); printf(“/n“); (分数:40.00)填空项 1:_55.以下函数的功能是计算 (分数:40.00)填空项 1:_56. 1的任务是诊断和改正程序中的错误。(分数:40.00)填空项 1:_57.下列程序中函数 fun的功能是:统计 person所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数
17、值返回。请填空。 #include stdio.h #define N 3 typedef struct int num; char nam10; char sex; SS; int fun(SS person) int i,n=0; for(i=0; iN; i+) if( 1 =M) n+; return n; main2 SS WN=1,“AA“,F,2,“BB“,M,3,“CC“,M; int n; n=fun(W); printf(“n=%d/n“, n); (分数:40.00)填空项 1:_58.以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返
18、回字符串 yes!,否则函数返回字符串 no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。#includestring.h char*huiwen (char*str) char*p1,*p2;int i,t=0; p1=str;p2= 1。 for(i=0;istrlen(str)/2;i+) if(*p1+!=*p2-)t=1;break; if( 2)return(“yes“!); else return(“no!“); main3 char str50; printf(“Input:“);scanf(“%s“,str); printf(“%s/n“,
19、 4); (分数:40.00)填空项 1:_59.以下程序运行后的输出结果是 1。 main2 int x=10,y=20,t=0; if(x= =y)t=x;x=y;y=t printf(“%d,%d/n“,x,y); (分数:40.00)填空项 1:_60.以下程序运行后的输出结果是 1 main( ) int i,j,a 3=1,2,3,4,5,6,7,8,9; for(i=0;i3;i+) for(j=i+1;j3;j+) aji=0; for(i=0;i3;i+) for(j=0;j3;j+) printf(“%d “,aij); printf(“/n“); (分数:40.00)填空
20、项 1:_61.在 Windows环境下,利用菜单命令删除固定硬盘上的文件与文件夹,实际上是将需要删除的文件与文件夹移动到 1 文件夹中。(分数:40.00)填空项 1:_62.有以下语句段 int n1=10,n2=20; printf(“ 1”,n1.n2); 要求按以下格式输出 n1和 n2的值,每个输出行从第一列开始,请填空。 n1=10 n2=20 (分数:40.00)填空项 1:_国家计算机二级(C)68 答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序: main( )
21、char s “Yes/n/No“,*ps=s; puts(ps+4); *(ps+4)=0; puts(s); 程序运行后的输出结果是(选项 D中的第一行是空行)( )。 (分数:60.00)A.n/No Yes /NoB./No Yes C.n/NO Yes /NoD./No Yes解析:2.下列叙述中正确的是( )。(分数:60.00)A.在 Windows环境下,最大化的窗口是不能移动的 B.在 Windows环境下,应用程序窗口最小化后,该应用程序暂停执行C.在 Windows环境下,只有最小化的窗口才能关闭D.在 Windows环境下,不能关闭最小化窗口解析:3.以下叙述中正确的是
22、【 】。(分数:60.00)A.用 C程序实现的算法必须要有输入和输出操作B.用 C程序实现的算法可以没有输出但必须要输入C.用 C程序实现的算法可以没有输入但必须要有输出 D.用 C程序实现的算法可以既没有输入也没有输出解析:算法的特性中包括“有零个或多个输入“及“有一个或多个输出“这两个特性。一个算法得到的结果就是算法的输出,没有输出的算法是没有意义的,所以一个算法必须至少有一个输出。 4.有下列程序: #include stdio.h #include “string.h“ void tim(char *s,int n) char *t;int i,j; for(i=0;in-1;i+)
23、 for(j=i+1;jn;j+) if(strlen(si)strlen(sj) t=si;si=sj;sj=t; main() char *ss= “bcc“,“bbcc“,“xy“,“aaaacc“,“aabcc“; fun(ss,5);printf(“%s,%s/n“,ss0,ss4); 程序的运行结果是( )。 (分数:60.00)A.xy,aaaacc B.aaaacc,xyC.bcc,aabccD.aabcc,bcc解析:从 main函数入手,定义了指向字符串的指针数组,并赋予了初始值,调用 fun()函数,函数的功能是:比较数组中各个元素的长度,按元素长度从小到大排列数组元素,
24、所以执行 fun(ss,5)函数后,*ss =“xy“,“bcc“,“bbcc“,“aabcc“,“aaaacc“,所以调用 printf函数输出 ss0,ss4的值分别为xy,aaaacc。5.下列叙述中正确的是【 】。(分数:60.00)A.每个 C程序文件中都必须要有一个 main()函数B.在 C程序中 main()函数的位置是固定的C.C程序中所有函数之间都可以:相互调用,与函数所处位置无关D.在 C程序的函数中不能定义另一个函数 解析:当一个程序只作为另一个程序的子程序的时候,那么该程序中可以没有主函数,它的位置不固定,并且可以调用程序中的其他函数,而其他函数却不可以调用 main
25、函数。函数中不可以再定义其他的函数。故本题的答案为选项 A)。6.有下列程序: #include stdio.h int f(int x) int y; if(x=0x=1)return(3); y=x*x-f(x-2); return y; main() int z; z=f(3);printf(“%d/n“,z); 程序的运行结果是( )。 (分数:60.00)A.0B.9C.6 D.8解析:主函数调用 f()函数,将实参 3传递给 x,进行 if条件语句的判断不成立,接着执行 y=3*3-f(1),再执行 f(1)而 f(1)满足 if条件语句,所以 f(1)的值为 3,那么代入 y=3
26、*3-f(1)=9-3=6,故选项 C为正确的运行结果。7.下面程序的功能是输出以下形式的金字塔图案是: * * * * * * * * * * * * * * * * main( ) int i,j; for(i=1;i0;解析:自加或自减运算的操作数不能是表达式。26.以下程序中函数 f( )的功能是将 n个字符串按由大到小的顺序进行排序。 #includestring.h void f(char p 10,int n) char t20; int i,j; for(i =O;i n-1 ;i + ) for(j =i + 1 ;j n;j + ) if(strcmp(p i ,pj )
27、0) strcpy(t,pi);strcpy(pi ,pj );strcpy(pj ,t); main ( ) char p 10 = “abc“,“aabdfg“,“abbd“,“dcdbe“, “cd“ ; int i; f(p,5); printf(“%d/n“,strlen(pO ) ); 程序运行后的输出结果是( )。 (分数:60.00)A.6B.4C.3 D.5解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符 时,即由这两个字符(ASCII 码值)决定所在串的大小。27.有以下程序 main() int i,S=0,t=l,2,3,4,5
28、,6,7,8,9; for(i=0;iA.45B.20C.25 D.36解析:统计 1-9九个数中的奇数和,此题考察指向数组的指针。C 语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第 i+1个元素。程序运行的结果是1+2+3+4+5+6+7+8+9=25。28.设有如下说明 typedef struct int n; char c; double x;STD; 则以下选项中 ,能正确定义结构体数组并赋初值的语句是( )。 (分数:60.00)A.STD tt2=1,A,62,2,B,75; B.STD tt2=1,“A“,62,2,“,75;C.struc
29、t tt2=1,A,2,B;D.struct tt2=1,“A“,62.5,2,“B“,75.0;解析:29.以下不能正确定义二维数组的选项是( )。(分数:60.00)A.int a22=1,2;B.int a 2=1,2,3,4;C.int a22=1,2,3;D.int a2 =1,2,3,4; 解析:30.以下程序中 sort( )函数的功能是对 a所指数组中的数据进行由大到小的排序: void sort(int a ,int n) int i,j,t; for(i=0;in-1;i+) for(j=i+1;jn;j+) if(aiaj)t=ai;ai=aj;aj=t; main( )
30、 int aa10=1,2,3,4,5,6,7,8,9,10,i; sort(aa3,5); for(i0;i10;+)printf(“%d,“,aai ); printf(“/n“); 程序运行后的输出结果是( )。 (分数:60.00)A.1,2,3,4,5,6,7,8,9,10,B.10,9,8,7,6,5,4,3,2,1,C.1,2,3,8,7,6,5,4,9,10, D.1,2,10,9,8,7,6,5,4,3,解析:形参 a接受的是字符串“4 5 6 7 8”,调用 sort( )函数后,字符串的顺序变为“8 7 6 5 4 9 10”。31.有以下程序: main( ) unsi
31、gned char a,b; a=4|3; b=4 printf(“%d %d/n”,a,b(; 执行后输出结果是( )。 (分数:60.00)A.7 0 B.0 7C.1 1D.43 0解析:32.以下叙述中错误的是【 】。(分数:60.00)A.C语言是一种结构化程序设计语言B.结构化程序由顺序、分支、循环三种基本结构组成C.使用三种基本结构构成的程序只能解决简单问题 D.结构化程序设计提倡模块化的设计方法解析:结构化程序设计是指在程序的构成上只使用顺序、选择(即分支)和循环 3种结构组成的编程方式。它强调程序设计风格和程序结构的规范化,提倡清晰的结构。结构化程序设计方法的基本思路,是把一
32、个复杂问题的求解过程分阶段进行,每个阶段处理的问题都控制在人们容易理解和处理的范围内。结构化程序设计提倡模块化的设计方法。33.有以下程序: void f(int v , int w) int t; t=v;v=w;w=t; main( ) int x=1,y=3,z=2; if(xy) f(x,y); else if(yz) f(y,z); else f(x,z); printf(“%d,%d,%d/n”,x,y,z); 执行后输出结果是( )。 (分数:60.00)A.1,2,3B.3,1,2C.1,3,2 D.2,3,1解析:34. 从 Windows环境进入 DOS方式后,返回 Win
33、dows环境的命令为( )。(分数:60.00)A.QUITB.WINC.EXIT D.ESC解析:35.以下关于逻辑运算符两侧运算对象的叙述中正确的是【 】。(分数:60.00)A.只能是整数 0或 1B.只能是整数 0或非 0整数C.可以是结构体类型的数据D.可以是任意合法的表达式 解析:逻辑运算符两侧的运算对象可以是任意类型的数据。C 语言最终以非 0或 O来判定它 ffj属于“真“(用 l表示)或“假“(用 0表示)。36.有以下程序: float fun(int x,int y) return(x+y); main( ) int a=2,b=5,c=8; printf(“%3.Of/
34、n“,fun( (int)fun(a+c,b),a-c) ); 程序运行后的输出结果是( )。 (分数:60.00)A.编译出错B.9 C.21D.9解析:对于 float或 double类型的实型数据可以用“整数 1,整数 2”的形式在指定宽度(整数 1)的同时 来指定小数位的位数(整数 2)。37.有以下程序 main( ) int i; for(i=0;i3;i+) switch(i) case 1: printf(“%d“,i); case 2: printf(“%d“,i); default: printf(“%d“,i); 执行后输出的结果是( )。 (分数:60.00)A.011
35、122 B.012C.012020D.120解析:38.设有定义 int n1=0,n2,*p= scanf(“%d“, do s+=1; a=a-2; while(a!=n); printf(“%d/n“,s); 若要使程序的输出值为 2,则应该从键盘给 n输入的值是( )。 (分数:60.00)A.-1B.-3 C.-5D.0解析:44.已有定义:char a=“xyz“,b=x,y,z;,以下叙述中正确的是【 】。(分数:60.00)A.数组 a和 b的长度相同B.a数组长度小于 b数组长度C.a数组长度大于 b数组长度 D.上述说法都不对解析:C 语言规定/0为字符串结束标志。所以“c
36、har a=“xyz“的数组长度为 4,而“b=x,y,z;“的数组长度为 l数组长度与 strlen函数所求的长度不同,本题是指数组占内存空间的大小。 45.用 C语言编写的代码程序( )。(分数:60.00)A.可立即执行B.是一个源程序 C.经过编译即可执行D.经过编译解释才能执行解析:46.以下选项中不能正确把 c1定义成结构体变量的是( )。(分数:60.00)A.typedef struct int red; int green; int blue; COLOR; COLOR cl;B.struct color cl int red; int green; int blue; C.
37、struct color int red; int green; int blue; cl;D.struct int red; int green; int blue; cl;解析:47.当把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是【 】。(分数:60.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=1 解析:本题选项 A、B、C 中表达式用作 if语句表达式时,其值一致,即判断 k的值是否为奇数,若为奇数,其表达式为真,否则为假;而选项 D的表达式“!k%2=1“相当于“!(k%2)=1,若 k的值为奇数,则此表达式的值为假。
38、48.计算机能直接执行的程序是(分数:60.00)A.源程序B.目标程序C.汇编程序D.可执行程序 解析:计算机能直接执行的只能是机器语言程序,源程序和汇编程序都是用高级语言编写的程序,不能被直接执行。目标程序也是不能被直接执行的程序,需要通过系统提供的连接程序与库函数连接装配成可执行程序,也能被计算机执行。所以本题答案为 D)。49. 有以下说明和定义语句: struct student int age; char num8; struct student stu3=20,“200401“,21,“200402“,10/9,“200403“; struct student *p=stu; 以
39、下选项中引用结构体变量成员的表达式错误的是( )。 (分数:60.00)A.(p+)-numB.p-numC.(*p).numD.stu3.age 解析:50.与十进制数 200等值的十六进制数为( )。(分数:60.00)A.A8B.A4C.C8 D.C4解析:二、填空题(每空 2分,共 40分)(总题数:12,分数:480.00)51.以下程序的功能是输出如下形式的方阵: 13 14 15 16 9 10 11 12 5 6 7 8 1 2 3 4 请填空。 main1 int i,j,x; for(j=4;j 2;j-) for(i=1;i=4;i+) x=(j-1)*4 + 3; pr
40、intf(“%4d“,x); printf(“/n“); (分数:40.00)填空项 1:_ (正确答案:=1 或0)填空项 1:_ (正确答案:i)解析:本程序有两重 for循环,外层 for循环控制输出数据的行数,故第第一个空填“=1“或“0“,内层循环控制每行输出的个数。在内层 for循环中,用语句“x=(j-1)*4+ -|_|-;“控制输出方阵中的具体数据,由于这些数据与其所在的行、列(j,i)有关系 x=(j-1)*4+i,故此此空填 i。 52.一棵二叉树第六层(根结点为第一层)的结点数最多为 1 个。(分数:40.00)填空项 1:_ (正确答案:32)解析:根据二叉树的性质:
41、二叉树第 i(i1)层上至多有 2i-1,个结点。得到第 6层的结点数最多是 32。 53.在 DOS环境下,代表键盘和显示器的设备文件名为 1。(分数:40.00)填空项 1:_ (正确答案:CON(或 CON:))解析:DOS 环境下,PRN 是打印机的设备文件名,CON 是键盘、鼠标和显示器的设备文件名。54.下列程序的定义语句中,x1的初值是 1,程序运行后输出的内容是 2。 #include stdio.h main3 int x=1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,*p4,i; for(i=0;i4;i+) pi= printf(“%d“,
42、pi0); printf(“/n“); (分数:40.00)填空项 1:_ (正确答案:2, 2 4 6 8)解析:p 为指向数组的指针变量,数组 x1为数组 x 的第二个元素,值为 2:进入 for循环 i=0时,p0= char nam10; char sex; SS; int fun(SS person) int i,n=0; for(i=0; iN; i+) if( 1 =M) n+; return n; main2 SS WN=1,“AA“,F,2,“BB“,M,3,“CC“,M; int n; n=fun(W); printf(“n=%d/n“, n); (分数:40.00)填空项
43、 1:_ (正确答案:personi.sex)解析:本题考查的是对结构体成员的引用,对结构体数组成员的访问是以数组元素为结构体变量的,其形式为结构体数组元素咸员名,所以题目空白处应填 personi.sex。58.以下程序中函数 huiwen的功能是检查一个字符串是否是回文,当字符串是回文时,函数返回字符串 yes!,否则函数返回字符串 no!,并在主函数中输出,所谓回文即正向与反向的拼写都一样,例如:adgda。请填空。#includestring.h char*huiwen (char*str) char*p1,*p2;int i,t=0; p1=str;p2= 1。 for(i=0;is
44、trlen(str)/2;i+) if(*p1+!=*p2-)t=1;break; if( 2)return(“yes“!); else return(“no!“); main3 char str50; printf(“Input:“);scanf(“%s“,str); printf(“%s/n“, 4); (分数:40.00)填空项 1:_ (正确答案:p1+(strlen(str)-1)或 str+(strlen(str)-1) , t=0或!(t!=0)或 t!=1或!t , huiWen(str))解析: 本题的要求是判断从键盘输入的字符串是否是回文,但在主函数中并没有完成此功能的代码,故第20空应该填调用函数 huiwen代码,即 huiwen(str)。 由于回文字符串是指正向与反向拼写都一样,所以对于一个字符串,如果正向顺序与反向顺序对应位置上的字符一样,则此字符串即为回文。在函数 huiwen中,已用“p1=str“使得 p1指向字符串 str的第一个字符的地址,则第 18空语句的功能应该是使得 p2指向字符串 str的最后一
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1