欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】二级C语言分类模拟题518及答案解析.doc

    • 资源ID:1325547       资源大小:86KB        全文页数:18页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】二级C语言分类模拟题518及答案解析.doc

    1、二级 C语言分类模拟题 518及答案解析(总分:55.00,做题时间:90 分钟)一、选择题(总题数:35,分数:55.00)1.以下程序执行后 x的值是 _ 。 #include stdio.h main() int x,y=252,i=386,*m= x=(z= =m); printf(“%d“,x); (分数:1.00)A.252B.1C.0D.运行时出错,x 无定值2.有以下程序 #includestdio.h main() int a=-2,b=0; while(a+b); printf(“%d,%dkn“,a,b); 程序运行后输出结果是_。(分数:2.00)A.1,2B.0,3C

    2、.1,3D.0,23.以下程序的输出结果是 _ 。 main() int a,i;a=0; for(i=1; i5:i+) switch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; prinf(“%d/n“,a;(分数:1.00)A.31B.13C.10D.204.以下程序的输出结果是_。 main() int a=3; printf(“%d/n“, (a+a-=a*a); (分数:2.50)A.-6B.12C.0D.-125.fun函数的功能是;通过键盘输入给 x所指的整型数组所有元素赋值。在横线处应填写的是_。 #

    3、include stdio.h # define N 5 void fun(int xN) int m; for(m=N-t;m=0;m-)scanf(“%d“,_); (分数:1.00)A.%X+mB.xm+1C.x+(m+)D.x+m6.已知大写字母 A的 ASC码是 65,小写字母 a的 ASC码是 97,以下不能将变量 C中的大写字母转换为对应小写字母的语句是_。(分数:2.00)A.c=(c-“A“)%26+“a“B.c=c+32C.c=c-“A“+“a“D.c=(“A“+c)%26-“a“7.下面不属于软件设计原则的是(分数:1.00)A.抽象B.模块化C.自底向上D.信息隐藏8.

    4、以下程序运行后,输出结果是_。 #define PT 5.5 #define s(x)PT*x*x main() int a=1,b=2;printf(“%4.1 f/n“,S(a+b);(分数:2.00)A.49.5B.9.5C.22.0D.45.09.有以下程序: #includestdio.h main() FILE*fp;int a10=1,2,3,0,0,i; fp=fopen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2.dat“,“r

    5、b“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:2.50)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,D.1,2,3,0,0,1,2,3,0,0,10.以下程序的输出结果是_。 #include stdio.h typedef union long x2; int y4; char z8; MYTYPE; MYTYPE them; main() printf(“%

    6、 d/n“, sizeof(them); (分数:2.50)A.32B.16C.8D.2411.有以下程序: #includestdio.h #includestring.h main( ) char str =“Hello,Beijing“; printf(“%d,%d/n“,strlen(str),sizeof(str); 程序的运行结果是_。(分数:1.00)A.13,13B.13,14C.13,15D.14,1512.设有以下语句: double *p; p=_malloc(sizeof(double); 若要使指针 p指向一个 double类型的动态存储单元,在下划线处应填入的是(分

    7、数:2.00)A.doubleB.double*C.(*double)D.(double*)13.面向对象方法中,继承是指_。(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制14.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序D.编辑程序15.若有以下定义,则对 a数组元素的正确引用是_。 int a5,*p=a;(分数:2.00)A.* for(i=0; iN; i+ +) bi=aii-aiN-1-i; main( ) int xNN=1,2,3,4,5,6

    8、,7,8,9,10,11,12,13,14,15,16,yN,i; fun(x,y); for(i=0;iN; i+ +) printf(“%d,“,yi); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)A.-3,-1,1,3,B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,18.有以下程序 #includestdio.h int a=4; int f(int n) int t=0;staticint a=5; if(n%2)int a=6;t+=a+; else(int a=7;t+=a+; returnt+a+: main() int

    9、s=a,i=0; for(;i2;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.28B.24C.32D.3619.有以下函数 int aaa(char*s) char*t=s; while(*t+); t-; return(t-s); 以下关于 aaa函数功能叙述正确的是_。(分数:1.00)A.求字符串 s的长度B.比较两个串的大小C.将串 s复制到串 tD.求字符串 s所占字节数20.设有如下程序段: #include stdio.h char s20=“Beijing“, *p; p=s; 则执行 p=s;语句后,以下叙述正确

    10、的是_。(分数:1.00)A.s和 p都是指针变量B.s数组中元素的个数和 p所指字符串长度相等C.可以用*p 表示 s0D.数组 s中的内容和指针变量 p中的内容相同21.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“;B.char*s;s=“BOOK!“);C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;22.有以下程序: #include stdio.h int fun() static int x=1; X+ =1; return x; main( ) int i, s=1; for(i=1;i=5;i+ +) s+

    11、 =fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.120B.11C.6D.2123.以下有关宏替换的叙述不正确的是_。(分数:2.50)A.双引号中出现的宏名不替换B.使用宏定义可以嵌套C.宏定义仅仅是符号替换D.宏名必须用大写字母表示24.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x+); 程序的运行结果是_。(分数:1.00)A.1B.41C.2D.331

    12、25.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:2.00)A.getc()B.gets()C.getchar()D.scanf()26.若 x=4,y=5,则 x for(i=0; i5; i+) s=s+abi; printf(“%d/n“, s); (分数:2.00)A.6B.10C.11D.1528.下面说明不正确的是 _ 。(分数:1.00)A.chara10=“china“;B.chara10,*p=a;p=“chiua“;C.char*a;a=“china“;D.chara10,*p;p=a=“china“;29.软件设计中划分模块的一个准则是_。(分数:2.50)A

    13、.低内聚低耦合B.高内聚低耦合C.低内聚高耦合D.高内聚高耦合30.在满足实体完整性约束的条件下_。(分数:1.00)A.一个关系中应该有一个或多个候选关键字B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字31.设有定义:“char*c;”,以下选项中能够使字符型指针 C正确指向一个字符串的是_。(分数:1.00)A.char str=“strlng“; c=str;B.scanf(%s,c);C.c=getchar();D.*c=“string“;32.有以下程序: #includestdio.h #includestring.h stru

    14、ct A int a; char b10; double c; ; void f(struct A t); main() struct A a=“1001, “ZhangDa“, 1098.0; f(a); printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c); void f(struct A t) t.a=1002; strcpy(t.b, “ChangRong“); t.c=1202. 0; 程序运行后的输出结果是_。(分数:1.00)A.1001, ZhangDa, 1098.0B.1002, ChangRong, 1202.0C.1001, ChangRon

    15、g, 1098. 0D.1002, ZhangDa, 1202. 033.有以下程序: #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in;i+)sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.55B.50C.45D.6034.以下叙述中正确的是_。(分数:1.00)A.当对文件的读(写)操作完成之后,必须将它关闭,否

    16、则可能导致数据丢失B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.C语言中的文件是流式文件,凶此只能顺序存取数据35.以下叙述中正确的是_。(分数:2.00)A.结构体数组名不能作为实参传给函数B.结构体变量的地址不能作为实参传给函数C.结构体中可以含有指向本结构体的指针成员D.即使是同类型的结构体变量,也不能进行整体赋值二级 C语言分类模拟题 518答案解析(总分:55.00,做题时间:90 分钟)一、选择题(总题数:35,分数:55.00)1.以下程序执行后 x的值是 _ 。

    17、 #include stdio.h main() int x,y=252,i=386,*m= x=(z= =m); printf(“%d“,x); (分数:1.00)A.252B.1C.0 D.运行时出错,x 无定值解析:解析 指针变量 m和 z分别指向整型变量 y,i,所以这两个指针变量中存储的地址是不同的,变量 x接受的是一个关系运算结果 0(因为 m和 z两个地址是不同的),所以 x为 0。2.有以下程序 #includestdio.h main() int a=-2,b=0; while(a+b); printf(“%d,%dkn“,a,b); 程序运行后输出结果是_。(分数:2.00

    18、)A.1,2 B.0,3C.1,3D.0,2解析:解析 当 a等于 0,a+表达式为 0,条件不成立,最终 a为 1,b 为 2,答案选择 A。3.以下程序的输出结果是 _ 。 main() int a,i;a=0; for(i=1; i5:i+) switch(i) case 0: case 3:a+=2; case 1: case 2:a+=3; default:a+=5; prinf(“%d/n“,a;(分数:1.00)A.31 B.13C.10D.20解析:解析 本题考查用于多分支选择的 switch语句,其一般形式为: switch(表达式) case常量表达式 1:语句 1; ca

    19、se常量表达式 2:语句 2; case常量表达式 n:语句 n; default:语句 n+1; 其语义是:计算表达式的值,并逐个与其后的常量表达式值进行比较,当表达式的值与某个常量表达式的值相等时,即执行其后的语句,然后不再进行判断,继续执行后面所有 case后的语句;如表达式的值与所有 case后的常量表达式均不相等时,则执行 default后的语句。4.以下程序的输出结果是_。 main() int a=3; printf(“%d/n“, (a+a-=a*a); (分数:2.50)A.-6B.12C.0D.-12 解析:解析 本题可以写成:a+a+(a-(a*a),因为*的优先级最高,

    20、其次是-=的,+的优先级最低,所以先求 a-=a*a=9,表达式变为 a+a+-=9,即 a=a-9=-6,再次变为 a+(-6)=-12,故选择 D选项。5.fun函数的功能是;通过键盘输入给 x所指的整型数组所有元素赋值。在横线处应填写的是_。 # include stdio.h # define N 5 void fun(int xN) int m; for(m=N-t;m=0;m-)scanf(“%d“,_); (分数:1.00)A.%X+m B.xm+1C.x+(m+)D.x+m解析:解析 本题考查+运算符和 for语句,当 m=N-1时,是为 x数组的最后一个元素进行复制,B 选项

    21、xm+1,此时数组越界,C 和 D选项都表示地址,所以是错误的,答案选择 A。6.已知大写字母 A的 ASC码是 65,小写字母 a的 ASC码是 97,以下不能将变量 C中的大写字母转换为对应小写字母的语句是_。(分数:2.00)A.c=(c-“A“)%26+“a“B.c=c+32C.c=c-“A“+“a“D.c=(“A“+c)%26-“a“ 解析:解析 由 97-65=32可知大写字母对应的小写字母之间相差 32,所以将大写字母加上 32就得到小写字母,所以选项 B和 C是正确的。选项 A 中(cA)%26 可以求出变量 c中的字母与字母 A相差几位那么小写字母 a的 ASC码向后移动相差

    22、的位数就是对应的小写字母,所以选项 A也是正确的。7.下面不属于软件设计原则的是(分数:1.00)A.抽象B.模块化C.自底向上 D.信息隐藏解析:解析 软件设计的原则包括:抽象、模块化,信息隐蔽和模块独立性。所以自底向上不是软件设计原则。答案为 C。8.以下程序运行后,输出结果是_。 #define PT 5.5 #define s(x)PT*x*x main() int a=1,b=2;printf(“%4.1 f/n“,S(a+b);(分数:2.00)A.49.5B.9.5 C.22.0D.45.0解析:9.有以下程序: #includestdio.h main() FILE*fp;in

    23、t a10=1,2,3,0,0,i; fp=fopen(“d2.dat“,“wb“); fwrite(a,sizeof(int),5,fp); fwrite(a,sizeof(int),5,fp); fclose(fp); fp=fopen(“d2.dat“,“rb“); fread(a,sizeof(int),10,fp); fclose(fp); for(i=0;i10;i+) printf(“%d,“,ai); 程序的运行结果是_。(分数:2.50)A.1,2,3,0,0,0,0,0,0,0,B.1,2,3,1,2,3,0,0,0,0,C.123,0,0,0,0,123,0,0,0,0,

    24、D.1,2,3,0,0,1,2,3,0,0, 解析:10.以下程序的输出结果是_。 #include stdio.h typedef union long x2; int y4; char z8; MYTYPE; MYTYPE them; main() printf(“% d/n“, sizeof(them); (分数:2.50)A.32B.16C.8 D.24解析:解析 程序说明了一个共用体类型 MYTYPE;并定义了 them为 MYTYPE类型的共用体变量。程序要求输出变量 them所占的字节数。共用体中包含 3个成员,而每个成员所占的字节数都是 8,共用体变量所占内存字节数与其成员中占

    25、字节数最多的那个成员相等。11.有以下程序: #includestdio.h #includestring.h main( ) char str =“Hello,Beijing“; printf(“%d,%d/n“,strlen(str),sizeof(str); 程序的运行结果是_。(分数:1.00)A.13,13B.13,14 C.13,15D.14,15解析:解析 strlen 返回字符串的长度,不包含字符串末尾的结束字符“/0“,结果为 13;sizeof 返回字符串所占存储空间的大小,由于字符串最后要加上一个“/0“,所以结果为 13+1=14。12.设有以下语句: double *

    26、p; p=_malloc(sizeof(double); 若要使指针 p指向一个 double类型的动态存储单元,在下划线处应填入的是(分数:2.00)A.doubleB.double*C.(*double)D.(double*) 解析:13.面向对象方法中,继承是指_。(分数:1.00)A.一组对象所具有的相似性质B.一个对象具有另一个对象的性质C.各对象之间的共同性质D.类之间共享属性和操作的机制 解析:解析 继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,因此继承是指类之间共享属性和操

    27、作的机制,选项 D正确。14.能将高级语言程序转换成目标语言程序的是_。(分数:1.00)A.调试程序B.解释程序C.编译程序 D.编辑程序解析:解析 用高级语言编写的程序为“源程序”,而计算机只能识别和执行由 0和 1组成的二进制指令,所以高级语言必须先用一种称为“编译程序”的软件,把源程序翻译成二进制形式的“目标程序”。15.若有以下定义,则对 a数组元素的正确引用是_。 int a5,*p=a;(分数:2.00)A.* for(i=0; iN; i+ +) bi=aii-aiN-1-i; main( ) int xNN=1,2,3,4,5,6,7,8,9,10,11,12,13,14,1

    28、5,16,yN,i; fun(x,y); for(i=0;iN; i+ +) printf(“%d,“,yi); printf(“/n“); 程序运行后的输出结果是_。(分数:2.00)A.-3,-1,1,3, B.-12,-3,0,0,C.0,1,2,3,D.-3,-3,-3,-3,解析:解析 本题中由 fun函数可知,b0=a00-a03=1-4=-3,b1=a11-a12=6-7=-1,b2=a22-a21=11-10=1,b3=a33-a31=16-13=3。因此主函数中打印 y数组元素的值为 A选项。18.有以下程序 #includestdio.h int a=4; int f(in

    29、t n) int t=0;staticint a=5; if(n%2)int a=6;t+=a+; else(int a=7;t+=a+; returnt+a+: main() int s=a,i=0; for(;i2;i+)s+=f(i); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.00)A.28 B.24C.32D.36解析:解析 s 得到全局变量 a的值为 4,第一次循环返回 12,第二次循环返回 12,累加结果为 28。19.有以下函数 int aaa(char*s) char*t=s; while(*t+); t-; return(t-s); 以下关于

    30、 aaa函数功能叙述正确的是_。(分数:1.00)A.求字符串 s的长度 B.比较两个串的大小C.将串 s复制到串 tD.求字符串 s所占字节数解析:解析 本题考查的知识点是:while 循环的简单应用。aaa()函数中,首先定义了一个字符指针 t指向形参 s,然后通过一个 while循环让指针 t不断递增,直到 t指向字符串结束标志处。当 t指向结束标志处时,由于后缀+运算符的原因,它还会被再递增 1,所以接下来的 t-;语句让它回到结束标志处。最后返回 t-s,因为 s还是指向字符串第 1个字符处,而 t指向了字符串结尾,故返回值为字符串的长度值。20.设有如下程序段: #include

    31、stdio.h char s20=“Beijing“, *p; p=s; 则执行 p=s;语句后,以下叙述正确的是_。(分数:1.00)A.s和 p都是指针变量B.s数组中元素的个数和 p所指字符串长度相等C.可以用*p 表示 s0 D.数组 s中的内容和指针变量 p中的内容相同解析:解析 程序定义了字符数组 s和字符型指针变量 p,并且使得 p指向数组,执行 p=s;语句后,*p即表示 s0;s 数组中元素的个数和 p所指字符串长度不相等。因为 s数组中元素的个数包括字符串结束标识“/0”,而 p所指字符串长度不包括“/0”;s 是字符型数组,p 是指针变量;数组 s中的内容和指针变量 p中

    32、的内容不相同,数组中存放的是字符串,而指针变量 p存放的是数组的首地址。因此 C选项正确。21.以下选项中正确的语句组是_。(分数:1.00)A.char *s;s=“BOOK!“; B.char*s;s=“BOOK!“);C.char s10;s=“BOOK!“;D.char s;s=“BOOK!“;解析:解析 字符指针可以用字符串直接赋值,字符数组不可以。所以选择 A。22.有以下程序: #include stdio.h int fun() static int x=1; X+ =1; return x; main( ) int i, s=1; for(i=1;i=5;i+ +) s+ =

    33、fun(); printf(“%d/n“,s); 程序运行后的输出结果是_。(分数:2.50)A.120B.11C.6D.21 解析:解析 fun 函数中的变量 x为静态局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的值。也就是说,如果多次调用 fun函数,x 的定义只在第一个调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用上次 x的值。fun 函数被调用了 5次,每次调用后的返回值累加并赋予s。5 次调用后,x 的值为 6,s 的值为 21。因此 D选项正确。23.以下有关宏替换的叙述不正确的是_。(分数:2.50)A.双引号中出现的宏名不替换B.使用宏定义可以嵌

    34、套C.宏定义仅仅是符号替换D.宏名必须用大写字母表示 解析:解析 本题考查宏替换的规则。宏替换分为简单的字符替换和带参数的宏替换两类。使用宏时应注意以下几点:宏定义仅仅是符号替换,不是赋值语句,因此不做语法检查;为了区别程序中其他的标识符,宏名的定义通常用大写字母,但不是必须用大写;双引号中出现的宏名不替换;使用宏定义可以嵌套,即后定义的宏中可以使用先定义的宏。24.有以下程序 #include stdio.h main() int x=1,y=2,z=3; if(xy) if(yz) printf(“%d“,+z); else printf(“%d“,+y); printf(“%d/n“,x

    35、+); 程序的运行结果是_。(分数:1.00)A.1 B.41C.2D.331解析:解析 xy 不成立,之后的 if和 else都不执行,输出 x+表达式值为 1。25.若要求从键盘读入含有空格字符的字符串,应使用函数(分数:2.00)A.getc()B.gets() C.getchar()D.scanf()解析:解析 scanf()语句用“空格”区别不同的字符串;getc()与 getchar()语句不能用于字符串的读入。26.若 x=4,y=5,则 x for(i=0; i5; i+) s=s+abi; printf(“%d/n“, s); (分数:2.00)A.6B.10C.11 D.1

    36、5解析:解析 数组元素 bi作为数组 a的下标,s=a0+a2+a1+a3+a0,即 s=1+3+2+4+1=11。28.下面说明不正确的是 _ 。(分数:1.00)A.chara10=“china“;B.chara10,*p=a;p=“chiua“;C.char*a;a=“china“;D.chara10,*p;p=a=“china“; 解析:解析 C 语言中操作一个字符串常量的方法有: 把字符串常量存放在一个字符数组之中。 用字符指针指向字符串,然后通过字符指针来访问字符串存储区域。 当字符串常量在表达式中出现时,根据数组的类型转换规则,它被转换成字符指针。 本题选项 D) 错误的关键是对

    37、数组初始化时,可以在变量定义时整体赋初值,但不能在赋值语句中整体赋值。29.软件设计中划分模块的一个准则是_。(分数:2.50)A.低内聚低耦合B.高内聚低耦合 C.低内聚高耦合D.高内聚高耦合解析:解析 一般较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性,因此本题答案为 B。30.在满足实体完整性约束的条件下_。(分数:1.00)A.一个关系中应该有一个或多个候选关键字 B.一个关系中只能有一个候选关键字C.一个关系中必须有多个候选关键字D.一个关系中可以没有候选关键字解析:解析 实体完整性约束要求关系的主键中属性值不能为空值,所

    38、以选择 A。31.设有定义:“char*c;”,以下选项中能够使字符型指针 C正确指向一个字符串的是_。(分数:1.00)A.char str=“strlng“; c=str; B.scanf(%s,c);C.c=getchar();D.*c=“string“;解析:解析 选项 B是从键盘上输入字符串,选项 C是接收字符,选项 D不正确。32.有以下程序: #includestdio.h #includestring.h struct A int a; char b10; double c; ; void f(struct A t); main() struct A a=“1001, “Zha

    39、ngDa“, 1098.0; f(a); printf(“%d, %s, %6.1f/n“, a.a, a.b, a.c); void f(struct A t) t.a=1002; strcpy(t.b, “ChangRong“); t.c=1202. 0; 程序运行后的输出结果是_。(分数:1.00)A.1001, ZhangDa, 1098.0 B.1002, ChangRong, 1202.0C.1001, ChangRong, 1098. 0D.1002, ZhangDa, 1202. 0解析:解析 将结构变量作为形参,通过函数间形参与实参相结合的方式将整个结构传递给函数,这种传递方

    40、式是值传递。在被调用函数中,对结构形参变量值进行的任何修改都不会影响到调用函数中的结构变量。33.有以下程序: #includestdio.h int fun(int x,int n) static int sum=0,i; for(i=0;in;i+)sum+=xi; return sum; main() int a=1,2,3,4,5,b=6,7,8,9,s=0; s=fun(a,5)+fun(b,4); printf(“%d/n“,s); 程序执行后的输出结果是_。(分数:1.00)A.55B.50C.45D.60 解析:解析 内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会

    41、保存数据,再次调用该函数时,以前调用时的数值仍然保留着。fun(a,5)的值是 15,再次调用后 sum=15,所以 fun(b,4)=45,s=45+15=60,因此 D选项正确。34.以下叙述中正确的是_。(分数:1.00)A.当对文件的读(写)操作完成之后,必须将它关闭,否则可能导致数据丢失 B.打开一个已存在的文件并进行了写操作后,原有文件中的全部数据必定被覆盖C.在一个程序中当对文件进行了写操作后,必须先关闭该文件然后再打开,才能读到第 1个数据D.C语言中的文件是流式文件,凶此只能顺序存取数据解析:解析 B 选项中打开一个已存在的文件并进行了写操作后,原有文件中的全部数据不一定被覆盖,也可以对源文件进行追加操作等。C 选项中在一个程序中当对文件进行了写操作后,不用先关闭该文件然后再打开,才能读到第 1个数据,可以用 fseek()函数进行重新定位即可。D 选项中,C 语言中的文件可以进行随机读写。故本题答案为 A。35.以下叙述中正确的是_。(分数:2.00)A.结构体数组名不能作为实参传给函数B.结构体变量的地址不能作为实参传给函数C.结构体中可以含有指向本结构体的指针成员 D.即使是同类型的结构体变量,也不能进行整体赋值解析:解析 结构体变量的地址、结构体数组名都可以作为函数参数,同类型的结构体变量,可以进行整体赋值,所以答案选择 C。


    注意事项

    本文(【计算机类职业资格】二级C语言分类模拟题518及答案解析.doc)为本站会员(twoload295)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

    收起
    展开