ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:100KB ,
资源ID:1335158      下载积分:5000 积分
快捷下载
登录下载
邮箱/手机:
温馨提示:
如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝扫码支付 微信扫码支付   
注意:如需开发票,请勿充值!
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【http://www.mydoc123.com/d-1335158.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(【计算机类职业资格】国家计算机二级(C)82及答案解析.doc)为本站会员(刘芸)主动上传,麦多课文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文库(发送邮件至master@mydoc123.com或直接QQ联系客服),我们立即给予删除!

【计算机类职业资格】国家计算机二级(C)82及答案解析.doc

1、国家计算机二级(C)82 及答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.00)1.有以下程序: main() int a=2,4,6,8,10,y=0,x,*p; p= printf(“%d/n“,y); 程序运行后的输出结果是【 】。 (分数:60.00)A.10B.11C.14D.152.设有以下定义 int a=0; double b=1.25; char c=A; #define d 2 则下面语句中错误的是( )。 (分数:60.00)A.a+;B.b+;C.c+;D.d+;3.以下叙述中错

2、误的是【 】。(分数:60.00)A.计算机不能直接执行用 C语言编写的源程序B.C程序经 C编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.obj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行4.设已有定义:floatx;,则以下对指针变:量 P进行定义且赋初值的语句中正确的是【 】。(分数:60.00)A.float*P=1024;B.int*P=(float)x;C.floatP= fp1=fopen(“f1.txt“,“w“); fprintf(fp1,“abc“); fclose(fp1)

3、; 若文本文件 f1.txt中原有内容为:good,则运行以上程序后文件 f1.txt中的内容为( )。 (分数:60.00)A.goodabcB.abcdC.abcD.abcgood9.有以下定义和语句: int a32=1,2,3,4,5,6,*p3; p0=a1; 则*p0+1)所代表的数组元素是( )。 (分数:60.00)A.a01B.a10C.a11D.a1210.有以下程序 main() int i,S=0,t=l,2,3,4,5,6,7,8,9; for(i=0;iA.45B.20C.25D.3611.下列关于栈的描述中错误的是【 】。(分数:60.00)A.栈是先进后出的线性

4、表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针12.要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是【 】。(分数:60.00)A.while(ch=getchar()!=N)printf(“C“,ch);B.while(ch=getchar()!=N)printf(“C“,ch);C.while(ch=getchar()=N)printf(“C“,ch).D.while(ch=getchar()=N)printf(“C“,ch);13.有以下程序: int f(int n) if(n =1)return

5、 1; else return f(n-1)+1; main( ) int i,j=0; for(i=1;i3;i+) j+=f(i); printf(“%d/n“,j); 程序运行后的输出结果是( )。 (分数:60.00)A.4B.3C.2D.114.有以下程序 main() char*P=“3697“,“2584“; int i,j;long num=0; for(i-0;iA.35B.37C.39D.397515.在深度为 7的满二叉树中,叶子结点的个数为【 】。(分数:60.00)A.32B.31C.64D.6316.有定义语句 int b;char c10;,则正确的输入语句是【

6、】。(分数:60.00)A.scallf(“%d%s“,B.scallf(“%d %s“,C.scanf(“%d %s“,b,c)D.scanf(“%d%s“,b, int age; char sex; std3,* p=std; 下面各输入语句中错误的是( )。 (分数:60.00)A.scanf(“%d“,B.scanf(“%s“,C.scanf(“%c“,D.scanf(“%c“,22.以下程序企图把从终端输入的字符输出到名为 abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include stdio.h main( ) FILE *fout; cha

7、r ch; fout=fopen(abc.txt,w); ch=fgetc(stdin); while(ch!=#) fputc(ch,fout); ch =fgetc(stdin); fclose(fout); 出错的原因是( )。 (分数:60.00)A.函数 fopen调用形式有误B.输入文件没有关闭C.函数 fgetc调用形式有误D.文件指针 stdin没有定义23.有以下程序 main() int Y=10; while(Y-);printf(“Y=dn“,Y); 程序执行后的输出结果是【 】。 (分数:60.00)A.Y=0B.Y=-1C.Y=1D.while构成无限循环24.设变

8、量已正确定义并赋值,下列正确的表达式是( )。(分数:60.00)A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,+yD.x=25%5.025.以下叙述中错误的是【 】。(分数:60.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出C.算法正确的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果26.有下列程序: #include stdio.h #include “string.h“ typedef structchar name9; char sex;float score2;STU; void f(STU A) STU b=“Zh

9、ao“,m,85.0,90.0; int i; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i2;i+) a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0; f(C) ; printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是( )。 (分数:60.00)A.Qian,f,95,92B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m, 85,9027.有以下程序: void fun(char

10、*c,int d) *c= *c+1;d+=1; printf(“%c,%c,“,*c,d); main( ) char a=A,b=a; fun(b,a);printf(“%c,%c/n“,a,b); 程序运行后的输出结果是( )。 (分数:60.00)A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b,B,A,b28.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是( )。(分数:60.00)A.int *i=NULL; scanf(“%d“,i);B.float *f=NULL; *f=10.5;C.char t=m, *c= *c=D.long *

11、L; L=/0;29.以下程序中函数 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); print

12、f(“%d/n“,strlen(pO ) ); 程序运行后的输出结果是( )。 (分数:60.00)A.6B.4C.3D.530.有以下程序: struct STU char num10; float score3; main( ) struct STU s3=“20021“,90,95,85, “20022“,95,80,75, “20023“,100,95,90 ,*p=s; int i; float sum=0; for(i=0;i3;i+) sum=sum+p-scorei; printf(“%6.2f/n“,sum); 程序运行后的输出结果是( )。(分数:60.00)A.260B.

13、270C.280D.28531.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:60.00)A.10,A,10B.10,a,10C.10,a,0D.10,A,032.有以下程序 main(int argc,char *argv ) int n,i=0; while(argv1i!=/0) n=fun( ); i+; printf(“%d/n“,n*argc); int fun( ) static int s=0; s+=1; return

14、 s; 假设程序编译、连接后生成可执行文件exam.exe,若键入以下命令 exam 123回车 则运行结果为( )。 (分数:60.00)A.6B.8C.3D.433.若有以下程序: main( ) int k=2,i=2,m; m=(k+=i*=k);printf(“%d,%d/n“,m,i); 执行后的输出结果是( )。 (分数:60.00)A.8,6B.8,3C.6,4D.7,434.若有说明:int n=2,*p=n,*q=p;,则以下非法的赋值语句是( )。(分数:60.00)A.p=q;B.*p=q;C.n=*q;D.p=n;35.有下列程序: #include stdio.h

15、void fun(char *a, char *B) while(*a=*)a+; while(*b=*A) b+;a+; main() char *s=“*a*b*“,t80; fun(s,t);puts(t); 程序的运行结果是( )。 (分数:60.00)A.*a*bB.a*bC.a*b*D.ab36.当把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是【 】。(分数:60.00)A.k%2B.k%2=1C.(k%2)!=0D.!k%2=137.下列关于栈的描述正确的是【 】。(分数:60.00)A.在栈中能插入元素而不能删除元素B.在栈中只能删除

16、元素而不能插入元素C.栈是特殊的线性表,只能在一端插入或删除元素D.栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素38.有以下程序: #include string.h struct STU int num; float TotalScore; ; void f(struct STU p) struct STU s2=20044,550,20045,537; p.num=s1.num;p.TotalScore=s1.TotalScore; main() struct STU s2=20041,703,20042,580; f(s0); printf(“%d%3.0t/n“,s0.nu

17、m,s0.TotalScore); 程序运行后的输出结果是【 】。 (分数:60.00)A.20045 537B.20044 550C.20042 580D.20041 70339.一个栈的初始状态为空。现将元素 1、2、3、4、5、A、B、C、D、E 依次入栈,然后再依次出栈,则元素出栈的顺序是(分数:60.00)A.12345ABCDEB.EDCBA54321C.ABCDEl2345D.5432lEDCBA40.有以下程序: #include string.h main( ) char str20=“Hello“,“Beijing“,*p=str; printf(“%d/n“,strlen

18、(p+20); 程序运行后的输出结果是( )。 (分数:60.00)A.0B.5C.7D.2041.有以下程序: void f(int a ,int i,int j) int t; if(ij) t=ai;ai=aj;aj=t; f(a,i+1,j-1); main( ) int i,aa5=1,2,3,4,5; f(aa,0,4); for(i=0;i5;i+) printf(“%d,”,aai); printf(“/n”); 执行后输出结果是( )。 (分数:60.00)A.5,4,3,2,1,B.5,2,3,4,1,C.1,2,3,4,5,D.1,2,3,4,5,42.有以下程序 mai

19、n( ) int i=0,s=0; do if(i%2)i+;continue; i+; s+=i; while(i7); printf(“%d/n“,s); 执行后输出的结果是( )。 (分数:60.00)A.16B.12C.28D.2143.有以下程序: main( ) int a=1,b=2,m=0,n=0,k; k=(n=ba)|(m=aA.0,0B.0,1C.1,0D.1,144.以下叙述中正确的是【 】。(分数:60.00)A.预处理命令行必须位于源文件的开头B.在源文件的一行上可以有多条预处理命令C.宏名必须用大写字母表示D.宏替换不占用程序的运行时间45.计算机网络的主要特点是

20、( )。(分数:60.00)A.运算速度快B.运算精度高C.资源共享D.人机交互46.与数学式 (分数:60.00)A.3*xn/(2*x-1)B.3*x*n/(2*x-1)C.3*pow(x,n)*(1/(2*x-1) )D.3*pow(n,x)/(2*x-1)47.设有定义:int a,*pa=以下 scanf语句中能正确为变量 a读入数据的是( )。(分数:60.00)A.scanf(“%d”,pa);B.scanf(“%d”,a);C.scanf(“%d”,D.scanf(“%d”,*pa);48.下列带有通配符的文件名中,能表示文件“ABC.TXT”的是( )。(分数:60.00)A

21、.*BC.?B.A?.*C.?BC.*D.?.?49.以下 4组用户定义标识符中,全部合法的一组是( )。(分数:60.00)A._main enclude sinB.If -max turboC.txt REAL 3COMD.int k_2 _00150.有以下程序 fun(int X,int Y) static int m=0,i=2; i+=m+1; m=i+X+Y; return m; main() int j=1,m=1,k; k=fun(j,m);printf(“d,“,k); k=fun(j,m);printf(“dn“,k); 执行后的输出结果是【 】。 (分数:60.00)A

22、.5,5B.5,11C.11,11D.11,5二、填空题(每空 2分,共 40分)(总题数:12,分数:480.00)51.设函数 findbig( )已定义为求 3个数中的最大值。以下程序将利用函数指针调用 findbig函数。请填空。 main( ) int findbig(int,int,int); int (*f)( ),x,y,z,big; f= 1; scanf(“%d%d%d“, big=(*f)(x,y,z); printf(“big=%d/n“,big); (分数:40.00)填空项 1:_52.有以下程序 #include stdio.h main( ) char ch1,

23、ch2; int n1,n2; ch1=getchar( ); ch2=getchar( ); n1=ch1-0; n2=n1*10+(ch2-0); printf(“%d/n”,n2); 程序运行时输入:12,执行后输出结果是 1。 (分数:40.00)填空项 1:_53.以下程序的输出结果是 1。 #include main2 char a=1,2,3,4,O; printf(“ddn“,sizeof(a),strlen(a); (分数:40.00)填空项 1:_54.设有定义:float x=123.4567;,则执行以下语句后的输出结果是 1。prinff(“fn“,(int)(x*1

24、00+0.5)100.0);(分数:40.00)填空项 1:_55.在数据库系统中,实现各种数据管理功能的核心软件称为 1。(分数:40.00)填空项 1:_56.在 DOS环境下,表示打印机的设备文件名是 1。(分数:40.00)填空项 1:_57.有以下程序 void f( int y,int *x) y=y+*x; *x=*x+y; main( ) int x=2,y=4; f(y, printf(“%d %d/n”,x,y); 执行后输出的结果是 1。 (分数:40.00)填空项 1:_58.以下程序运行后的输出结果是 1。 main( ) int x=1,y=0,a=0,b=0; s

25、witch(x) case 1:switch(y) case 0:a+; break; case 1:b+; break; case 2:a+;b+; break; printf(“%d %d/n“,a,b); (分数:40.00)填空项 1:_59.下列程序的运行结果是: 1 #include string.h char *ss(char *s) return s+strlen(s)/2; main( ) char *p,*str=”abcdefgh”; p=ss(str); printf(“%s/n”,p); (分数:40.00)填空项 1:_60.下列程序中函数 fun的功能是:统计 p

26、erson所指结构体数组中所有性别(sex)为 M的记录的个数,存入变量 n中,并作为函数值返回。请填空。 #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:_6

27、1.数据独立性分为逻辑独立性与物理独立性。当数据的存储结构改变时,其逻辑结构可以不变,因此,基于逻辑结构的应用程序不必修改,称为 1。(分数:40.00)填空项 1:_62.若有以下程序 main( ) int a=4,b=3,c=5,t=0; if(ab)t=a;a=b;b=t; if(ac)t=a;a=c;c=t; printf(“%d %d %d/n“,a,b,c); 执行后输出结果为 1。 (分数:40.00)填空项 1:_国家计算机二级(C)82 答案解析(总分:3480.00,做题时间:120 分钟)一、选择题(1-10 题每题 2分,11-50 题(总题数:50,分数:3000.

28、00)1.有以下程序: main() int a=2,4,6,8,10,y=0,x,*p; p= printf(“%d/n“,y); 程序运行后的输出结果是【 】。 (分数:60.00)A.10B.11C.14 D.15解析:本题通过语句“p= double b=1.25; char c=A; #define d 2 则下面语句中错误的是( )。 (分数:60.00)A.a+;B.b+;C.c+;D.d+; 解析:3.以下叙述中错误的是【 】。(分数:60.00)A.计算机不能直接执行用 C语言编写的源程序B.C程序经 C编译程序编译后,生成后缀为.obj 的文件是一个二进制文件C.后缀为.o

29、bj 的文件,经连接程序生成后缀为.exe 的文件是一个二进制文件D.后缀为.obj 和.exe 的二进制文件都可以直接运行 解析:一个 C语言的源程序(后缀名为.c)在经过编译器编译后,先生成一个汇编语言程序,然后由编译程序再将汇编语言程序翻译成机器指令程序,即目标程序(后缀名为.obj),目标程序不可以直接运行,它要和库函数或其它目标程序连接成可执行文件(后缀名为.exe)后方可运行。故本题答案为 D)。4.设已有定义:floatx;,则以下对指针变:量 P进行定义且赋初值的语句中正确的是【 】。(分数:60.00)A.float*P=1024;B.int*P=(float)x;C.flo

30、atP=“用于将指针变量 p指向 e字符所在的存储单元,p-2 指向了 c字符所在的存储单元,在函数 f中将这两个存储单元的内容交换,并使得 f函数中指向 c字符的指针变量 s加 1。指向 c字符的指针变量 t减 1,然后继续将 s和 t指向的存储单元的内容进行交换,直到 s指向的存储单元的内容为空为止。所以本题程序输出的结果是字符串“abcdefg“的倒序形式“gfedcba“。 7.有以下程序 void f(int n,int* r) int rl=0; if(n3=0) rl=n3; else if(n5=0) rl=n5; else f(n, fp1=fopen(“f1.txt“,“w

31、“); fprintf(fp1,“abc“); fclose(fp1); 若文本文件 f1.txt中原有内容为:good,则运行以上程序后文件 f1.txt中的内容为( )。 (分数:60.00)A.goodabcB.abcdC.abc D.abcgood解析:9.有以下定义和语句: int a32=1,2,3,4,5,6,*p3; p0=a1; 则*p0+1)所代表的数组元素是( )。 (分数:60.00)A.a01B.a10C.a11 D.a12解析:10.有以下程序 main() int i,S=0,t=l,2,3,4,5,6,7,8,9; for(i=0;iA.45B.20C.25 D

32、.36解析:统计 1-9九个数中的奇数和,此题考察指向数组的指针。C 语言规定数组名代表数组的首地址,也就是第一个元素的地址。因此*(t+i)代表数组的第 i+1个元素。程序运行的结果是1+2+3+4+5+6+7+8+9=25。11.下列关于栈的描述中错误的是【 】。(分数:60.00)A.栈是先进后出的线性表B.栈只能顺序存储C.栈具有记忆作用D.对栈的插入与删除操作中,不需要改变栈底指针 解析:栈是一种特殊的线性表,又称先进后出表(First In Last Out,FILO)。 12.要求通过 while循环不断读入字符,当读入字母 N时结束循环。若变量已正确定义,以下正确的程序段是【

33、】。(分数:60.00)A.while(ch=getchar()!=N)printf(“C“,ch); B.while(ch=getchar()!=N)printf(“C“,ch);C.while(ch=getchar()=N)printf(“C“,ch).D.while(ch=getchar()=N)printf(“C“,ch);解析:while 语句的功能是:计算表达式的值,如为真,则执行循环体语句,执行完毕后,再计算表达式的值,若仍为真,则重复执行循环体语句。直到表达式的值为假时,结束循环。ch=getchar()应加一个括号,表示输入字符的函数。13.有以下程序: int f(int

34、n) if(n =1)return 1; else return f(n-1)+1; main( ) int i,j=0; for(i=1;i3;i+) j+=f(i); printf(“%d/n“,j); 程序运行后的输出结果是( )。 (分数:60.00)A.4B.3 C.2D.1解析:第一次调用 f( )函数,返回值为 1,第二次调用 f( )函数,牵涉到函数的递归调用,返回值为 2。14.有以下程序 main() char*P=“3697“,“2584“; int i,j;long num=0; for(i-0;iA.35B.37C.39 D.3975解析:while(pij!=0)表

35、示 pij不等于0时,继续执行 while中的语句。if 语句表示(pij-0)除 2的余数不为 0时,执行后面的语句。最后执行的结果是 39。15.在深度为 7的满二叉树中,叶子结点的个数为【 】。(分数:60.00)A.32B.31C.64 D.63解析:满二叉树是指除最后一层外,每一层上的所有结点都有两个子结点的二叉树。满二叉树在其第 i层上有 2的 i-1次方个结点,即每一层上的结点数都是最大结点数。对于深度为 7的满二叉树,叶子结点所在的是第 7层,一共有 2的 7次方-1=64 个叶子结点。16.有定义语句 int b;char c10;,则正确的输入语句是【 】。(分数:60.0

36、0)A.scallf(“%d%s“,B.scallf(“%d %s“, C.scanf(“%d %s“,b,c)D.scanf(“%d%s“,b, int age; char sex; std3,* p=std; 下面各输入语句中错误的是( )。 (分数:60.00)A.scanf(“%d“,B.scanf(“%s“, C.scanf(“%c“,D.scanf(“%c“,解析:22.以下程序企图把从终端输入的字符输出到名为 abc.txt的文件中,直到从终端读入字符#号时结束输入和输出操作,但程序有错。 #include stdio.h main( ) FILE *fout; char ch;

37、 fout=fopen(abc.txt,w); ch=fgetc(stdin); while(ch!=#) fputc(ch,fout); ch =fgetc(stdin); fclose(fout); 出错的原因是( )。 (分数:60.00)A.函数 fopen调用形式有误 B.输入文件没有关闭C.函数 fgetc调用形式有误D.文件指针 stdin没有定义解析:23.有以下程序 main() int Y=10; while(Y-);printf(“Y=dn“,Y); 程序执行后的输出结果是【 】。 (分数:60.00)A.Y=0B.Y=-1 C.Y=1D.while构成无限循环解析:wh

38、ile(y-)执行后,y 若大于 1,则循环,等 y=0时,循环结束,并执行自减运算,得-1。24.设变量已正确定义并赋值,下列正确的表达式是( )。(分数:60.00)A.x=y*5=x+zB.int(15.8%5)C.x=y+z+5,+y D.x=25%5.0解析:在赋值表达式中,赋值符号“=”的左边只能为要赋值的变量,不能为表达式,右边可以为常量或者是表达式,故选项 A错误,选项 C正确:在取余运算中,运算符“%”两边都必须是整型数据,所以选项 B、D 错误。25.以下叙述中错误的是【 】。(分数:60.00)A.算法正确的程序最终一定会结束B.算法正确的程序可以有零个输出 C.算法正确

39、的程序可以有零个输入D.算法正确的程序对于相同的输入一定有相同的结果解析:算法应该具有下列五个特性:有穷性:一个算法必须在执行有穷步之后结束。确定性:算法中的每一步,必须有确切的含义,在他人理解时不会产生二义性动态性:算法中描述的每一步操作都可以通过已有的基本操作执行有限次实现。输入:一个算法应该有零个或多个输入。输出:一个算法应该有一个或多个输出。这里所说的输出是指与输入有某种特定关系的量。26.有下列程序: #include stdio.h #include “string.h“ typedef structchar name9; char sex;float score2;STU; vo

40、id 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;i2;i+) a.scorei=b.scorei; main() STU c=“Qian“,f,95.0,92.0; f(C) ; printf(“%s,%c,%2.0f,%2.0f/n“,c.name,c.sex,c.score0,c.score1); 程序的运行结果是( )。 (分数:60.00)A.Qian,f,95,92 B.Qian,m,85,90C.Zhao,f,95,92D.Zhao,m, 85,90解析

41、:本题考查在结构体中函数的实参和形参的传递,调用 f(C)后,实参传向形参,进行 f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与 printf输出的还是 c中实参的值,故选项 A正确。27.有以下程序: void fun(char *c,int d) *c= *c+1;d+=1; printf(“%c,%c,“,*c,d); main( ) char a=A,b=a; fun(b,a);printf(“%c,%c/n“,a,b); 程序运行后的输出结果是( )。 (分数:60.00)A.B,a,B,aB.a,B,a,BC.A,b,A,bD.b

42、,B,A,b 解析:28.若程序中已包含头文件 stdio.h,以下选项中,正确运用指针变量的程序段是( )。(分数:60.00)A.int *i=NULL; scanf(“%d“,i);B.float *f=NULL; *f=10.5;C.char t=m, *c= *c=D.long *L; L=/0; 解析:29.以下程序中函数 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

43、+ ) 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“,strlen(pO ) ); 程序运行后的输出结果是( )。 (分数:60.00)A.6B.4C.3 D.5解析:对字符串比较的方法是依次对两字符串对应位置上的字符两两比较,当出现第一对不相同的字符 时,即由这两个字符(ASCII 码值)决定所在串的大小。30.有以下程序: str

44、uct STU char num10; float score3; main( ) struct STU s3=“20021“,90,95,85, “20022“,95,80,75, “20023“,100,95,90 ,*p=s; int i; float sum=0; for(i=0;i3;i+) sum=sum+p-scorei; printf(“%6.2f/n“,sum); 程序运行后的输出结果是( )。(分数:60.00)A.260B.270 C.280D.285解析:给结构体数组赋韧值时,由于数组中的每个元素都是一个结构体,因此要将其成员的值依次放在一对 花括号中,以便区分各元素。

45、s0=“20021“,90,95,85 ,s1= “20022,95,80,75 ,s2:“20023“, 100,95,90 。31.有以下程序段 int m=0,n=0; char c=a; scanf(“%d%c%d“, printf(“%d,%c,%d/n“,m,c,n); 若从键盘上输入:10A10,则输出结果是( )。 (分数:60.00)A.10,A,10 B.10,a,10C.10,a,0D.10,A,0解析:32.有以下程序 main(int argc,char *argv ) int n,i=0; while(argv1i!=/0) n=fun( ); i+; printf(“%d/n“,n*argc); int fun( ) static int s=0; s+=1; return s; 假设程序编译、连接后生成可执

copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1