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

    【计算机类职业资格】国家二级(C语言)机试模拟试卷150及答案解析.doc

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

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

    【计算机类职业资格】国家二级(C语言)机试模拟试卷150及答案解析.doc

    1、国家二级(C 语言)机试模拟试卷 150 及答案解析(总分:86.00,做题时间:90 分钟)一、选择题(总题数:40,分数:80.00)1.线性表常采用的两种存储结构是( )。(分数:2.00)A.散列方法和索引方式B.链表存储结构和数组C.顺序存储结构和链式存储结构D.线性存储结构和非线性存储结构2.软件需求分析阶段的工作,可以分为四个方面:需求获取、编写需求规格说明书、需求评审和( )。(分数:2.00)A.阶段性报告B.需求分析C.需求总结D.都不正确3.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是( )。(分数:2.00)A.需求分析B.详细设计C.软件

    2、设计D.概要设计4.对建立良好的程序设计风格,下面描述正确的是( )。(分数:2.00)A.程序应简单、清晰、可读性好B.符号名的命名只要符合语法C.充分考虑程序的执行效率D.程序的注释可有可无5.下列工具中,不属于结构化分析的常用工具的是( )。(分数:2.00)A.数据流图B.数据字典C.判定树D.N-S 图6.在软件生产过程中,需求信息的来源是( )。(分数:2.00)A.程序员B.项目经理C.设计人员D.软件用户7.对关系 S 和 R 进行集合运算,结果中既包含 S 中的所有元组也包含 R 中的所有元组,这样的集合运算称为( )。(分数:2.00)A.并运算B.交运算C.差运算D.积运

    3、算8.设有关键码序列(Q,G,M,Z,A,N,B,P,X,H,Y,S,T,L,K,E),采用堆排序法进行排序,经过初始建堆后关键码值 B 在序列中的序号是( )。(分数:2.00)A.1B.3C.7D.99.数据库的故障恢复一般是由( )来执行恢复。(分数:2.00)A.电脑用户B.数据库恢复机制C.数据库管理员D.系统普通用户10.下列选项中,不属于数据模型所描述的内容的是( )。(分数:2.00)A.数据类型B.数据操作C.数据结构D.数据约束11.程序设计的任务包括( )。(分数:2.00)A.编写程序代码并上机调试B.确定所用数据结构C.确定所用算法D.以上选项均正确12.下列合法的标

    4、识符是( )。(分数:2.00)A.123B.#256C.a55D.abhj1_2_313.以下程序的运行结果是( )。 #include main() int a=3,b=4,c=8,d=4,m=1,n=3; printf(“dn“,(m=ab)&(n=cd);(分数:2.00)A.0B.1C.2D.314.以下选项中,能用作数据常量的是( )。(分数:2.00)A.018B.ol 1C.08e25D.25L15.有下列程序: main() int m,n,p; scanf(“m=dn=dp=d“,&m,&n,&p); printf(“0dddn“,m,n,p); 若想从键盘上输入数据,使变

    5、量 m 中的值为 123,n 中的值为456,P 中的值为 789,则正确的输入是( )。(分数:2.00)A.m=123n=456p=789B.m=123 n=456 p=789C.m=123,n=456p=789D.123 456 78916.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是( )。(分数:2.00)A.均占 4 个宁节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定17.有以下程序 #include main() int k=5,n=0; while(k0) switch(k) default:brea

    6、k; case 1 :n+=k; case 2 : case 3 :n+=k; k-; printf(“dn“,n); 程序运行后的输出结果是(分数:2.00)A.0B.4C.6D.718.有以下程序段 int j;float y; char name50; scanf(“2dfs“,&j,&y,name); 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为( )。(分数:2.00)A.555660B.5660C.77770D.566777019.若变量已正确定义,有以下程序段: i=0: do printf(“d,“,i);while(i+); printf(“dn

    7、“,i); 其输出结果是( )。(分数:2.00)A.0,0B.0,1C.1,1D.程序进入无限循环20.设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是( )。(分数:2.00)A.(EXP=0)B.(EXP!=0)C.(EXP=1)D.(EXP!=1)21.有以下程序 #include main() int y=9; for(;y0;y-) if(y3=0)printf(“d“,-y); 程序的运行结果是( )。 A)741 B)963 C)852 D)875421(分数:2.00)A.741B.963C.852D.87542122.若要求从键盘读入含有空格字符

    8、的字符串,应使用函数( )。(分数:2.00)A.getc()B.gets()C.getchar()D.SCallf()23.当 a=4,b=5,c=7,d=6 时,执行下面一段程序: if(aA.1B.2C.3D.424.在 C 浯言程序中,以下说法正确的足( )。(分数:2.00)A.函数的定义和函数的调用均不可以嵌套B.函数的定义不可嵌套,但函数的调用可以嵌套C.函数的定义可以嵌套,但函数的调用不可以嵌套D.函数的定义和函数的调用均可以嵌套25.以下程序运行后的输出结果是( )。 #includestdioh main() void reverse(int a,int n) int b1

    9、0=10,9,8,7,6,5,4,3,2,1;int i,s=0; int i,t; reverse(b,10); for(i=0;in2;i+) for(i=0;i3;i+)s+=bi; t=ai;ai=an-1-i;an-1-i=t; printf(“d1n“,s);(分数:2.00)A.27B.6 c)25C.3026.设 y 为整型变量,a=6,a 的地址为 E2000,b=14,b 的地址为 E2001;执行语句 b=&a;y=&a;后 Y 的值为( )。(分数:2.00)A.E2000B.E2001C.6D.1427.若有以下程序段: struct st main() int n;

    10、 struct st*p; int*m; p=s; ; int a=2,b=3,c=5; struct st s3=(101,&a),102,&c,103,&b; 则以下表达式中值为 5 的是( )。(分数:2.00)A.(*p)mB.*(p+1)-mC.*(p+)-nD.(p+)(*m)28.在下列叙述中,错误的是( )。(分数:2.00)A.C 语言中,二维数组或多维数组是按行存放的B.赋值表达式 b12=a23是正确的C.char a1;a0=A与 int a1;a0=A等价D.数组名后的方括号内可以为常量表达式,也可以为变量29.若已包括头文件和,运行下面程序的输出结果是( )。 ch

    11、ar sl10=“12345“,s210=“089“,s3=“67“; strcat(strcpy(s1,s2),s3); puts(s1);(分数:2.00)A.08967B.0894567C.089567D.08956730.下列说法正确的是( )。(分数:2.00)A.auto 和 register 将声明的对象说明为自动存储类对象,这些对象可用在函数中或函数外B.将变量其定义为 static 类型,则其初值默认为随机值C.typedef 说明符并不会为对象预留存留空间D.如果一个对象被声明为 register,则对它应用一元运算符&,意在取得其存储的地址31.以下有关宏的描述不正确的是

    12、( )。(分数:2.00)A.宏定义不做语法检查B.双引号中出现的宏名不进行替换C.宏名无类型D.宏名必须用大写字母表示32.以下程序段的输出结果为( )。 static char a=“programme“; char*p; p=a; for(p=a;pA.programmeB.pormC.有语法错误D.prog33.下列关于 C 语言数据文件的叙述中正确的是( )。(分数:2.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件出数据流形式组成

    13、,可按数据的存放形式分为二进制文件和文本文件34.已知 char*s,下面正确的语句是( )。(分数:2.00)A.s=“ABCDEF“:B.*s=“ABCDEF“;C.*s=“ABCDEF“;D.*s=A;35.下列程序的运行结果是( )。 #include void main() void fun(int*s,int*p) int a=2,3,4,5,k,x; static int t=3; for(k=0;kA.5 94,3,2,B.2,3,4,5,C.2,2,2,2,D.5,5,5,5,36.以下函数 findmin 拟实现在数组中查找最小值并作为函数值返回,但程序中有错导致不能实现预

    14、定功能 #define MAX 2147483647 int findmin(int x,int n) int i,min; min=MAX; for(i=0;iA.定义语句 int i,min;中 min 未赋初值B.赋值语句 min=MAN;中,不应给 min 赋 MAX 值C.语句 iffminD.赋值语句 min=MAX;放错了位置37.以下程序的输出结果是( )。 #include main() struct st p=aa; int x;int*y;*p; printf(“dn“,+(p-x); int dt4=1,2,3,4; struct st aa4=2,&dt0,3,&dt

    15、0,4, &dt0,5,&dt0,;(分数:2.00)A.1B.2C.3D.438.有以下定义和语句: struct students int num;char name20;char c; struct int gradel;int grade2; s; ; struct students w*pw; *pw=w; 下列赋值语句不正确的是( )。(分数:2.00)A.wnum=1002;B.wgradel=85;C.pw-num=1002;D.wsgrade2=85;39.设有以下语句: char x=3,y=6,z; z=xyb)&(n=cd);(分数:2.00)A.0 B.1C.2D.3

    16、解析:解析:逻辑与(&)运算符的功能是:当“&”运算符两边的运算对象均为 1 时,整个表达式的值为1,否则为 0。因为 a=314.以下选项中,能用作数据常量的是( )。(分数:2.00)A.018B.ol 1C.08e25D.25L 解析:解析:本题考查常量定义。数据常量可有 10 进制、8 进制、16 进制、指数法等,8 进制数字为 0-7,第一个字符为 0,而不是 o,因此选项 A 和 B)错误。为指数法时,指数部分须为整形,因此选项 C 错误,选项 D 中数字后加入 L 是说明此变量为长整型。15.有下列程序: main() int m,n,p; scanf(“m=dn=dp=d“,&

    17、m,&n,&p); printf(“0dddn“,m,n,p); 若想从键盘上输入数据,使变量 m 中的值为 123,n 中的值为456,P 中的值为 789,则正确的输入是( )。(分数:2.00)A.m=123n=456p=789 B.m=123 n=456 p=789C.m=123,n=456p=789D.123 456 789解析:解析:scanf()函数中格式控制字符串是为了输入数据用的,无论其中有什么字符,在输入数据时,按照一一对应的位置原样输入这些字符。16.以下关于 long、int 和 short 类型数据占用内存大小的叙述中正确的是( )。(分数:2.00)A.均占 4 个

    18、宁节B.根据数据的大小来决定所占内存的字节数C.由用户自己定义D.由 C 语言编译系统决定 解析:解析:不同的编译系统或计算机系统对儿类整型数所占用的字节数有不同的规定。long、int 和short 类型数据占用内存大小是由选择何种 C 编译系统决定的。17.有以下程序 #include main() int k=5,n=0; while(k0) switch(k) default:break; case 1 :n+=k; case 2 : case 3 :n+=k; k-; printf(“dn“,n); 程序运行后的输出结果是(分数:2.00)A.0B.4C.6D.7 解析:解析:因为没

    19、有 break 语句,当 k=2 的时候,会顺序执行两条语句,k=1 的时候,会顺序执行 3 条语句。18.有以下程序段 int j;float y; char name50; scanf(“2dfs“,&j,&y,name); 当执行上述程序段,从键盘上输入 55566 7777abc 后,y 的值为( )。(分数:2.00)A.555660B.5660 C.77770D.5667770解析:解析:因为在输入格式控制符中指定变量 i 的输入格式控制符为“2d”,即变量 j 所占的宽度为2,所以变量 j 只接收输入数据的前两位,从第 3 位开始直到空格之间的输入整数都会被保存到变量 y 中,因

    20、为 y 为浮点型数据,所以输出结果为选项 B。19.若变量已正确定义,有以下程序段: i=0: do printf(“d,“,i);while(i+); printf(“dn“,i); 其输出结果是( )。(分数:2.00)A.0,0B.0,1 C.1,1D.程序进入无限循环解析:解析:dowhile 循环的执行过程如下:执行 do 后面的循环体中的语句。计算 while 后一对圆括号中表达式的值。当值为非 0 时,转去执行步骤;当值为 0 时,执行步骤。退出 dowhile 循环。对于本题变量 i 的初始值等于“0”,接着执行 do 后面的循环体中的语句,输出变量 i 的值 0。再判断 wh

    21、ile 后面括号中表达式 i+的值,其值为 0,所以循环结束。此时变量 i 的值经过自加已经变为 1,所以再次输出 i 的值“1”。20.设有条件表达式:(EXP)?i+;j-,则以下表达式中(EXP)完全等价的是( )。(分数:2.00)A.(EXP=0)B.(EXP!=0) C.(EXP=1)D.(EXP!=1)解析:解析:条件表达式的形式为:“表达式 1?表达式 2:表达式 3”。其含义为:当“表达式 1”的值为非零时,求出“表达式 2”的值,此时“表达式 2”的值就是整个条件表达式的值:当“表达式 1”的值为零时,求出“表达式 3”的值,此时“表达式 3”的值就是整个条件表达式的值。对

    22、于本题来说,当表达式 EXP 为非 0 值时条件成立,即执行语句 i+;当 EXP 等于 0 时,执行语句 j-;这等同于条件表达式“(EXP!=0)?i+;j+;”。21.有以下程序 #include main() int y=9; for(;y0;y-) if(y3=0)printf(“d“,-y); 程序的运行结果是( )。 A)741 B)963 C)852 D)875421(分数:2.00)A.741B.963C.852 D.875421解析:解析:y 的初值为 9,所以在 for 循环中,当 y 的值为 9、6 或 3 时,if 语句的条件成立,执行输出语句,输出表达式-y 的值。

    23、因为自减符号在 y 的前面,所以首先 y 自减 1,然后再输出 y 的值,故输出结果为 8 5 2。22.若要求从键盘读入含有空格字符的字符串,应使用函数( )。(分数:2.00)A.getc()B.gets() C.getchar()D.SCallf()解析:解析:scanf()语句中用“空格”间隔不同的字符串,空格将被全部忽略掉,所以用 scanf()函数不能输入空格;getchar()函数用于输入字符,其调用形式为:ch=getehar(),getchar()函数从终端读入一个字符作为函数值,把读入的字符赋给变量 ch。在输入时,空格、回车符都将作为字符读入,而且只有在用户敲入 Ente

    24、r 键时,读入才开始执行。gets()函数的调用形式为:gets(str adr),其中 str adr是存放输入字符串的起始地址,可以是字符数组名、字符数组元素的地址或字符指针变量。gets 函数用来从终端键盘读入字符串(包括空格符),直到读入一个换行符为止。getc()函数的调用形式为:ch=getc(pf)其中 pf 是文件指针。函数的功能是从 pf 指定的文件中读入一个字符,并把它作为函数值返回。23.当 a=4,b=5,c=7,d=6 时,执行下面一段程序: if(aA.1B.2 C.3D.4解析:解析:本题考查 ifelse 语句。第一个 if 语句,先判断条件,am C.*(p+

    25、)-nD.(p+)(*m)解析:解析:本题考查如何通过指针引用数组元素。首先定义了一个结构体,然后定义了一个结构体变量s3,并赋了初值。在主程序中,定义了一个指向结构体变量 s 的指针 p,要使表达式的值为 5,就应该引用 s1m 的值,使指针 p 指向 s1,+p 可以实现将 p 指针加 1,指向 s1。28.在下列叙述中,错误的是( )。(分数:2.00)A.C 语言中,二维数组或多维数组是按行存放的B.赋值表达式 b12=a23是正确的C.char a1;a0=A与 int a1;a0=A等价D.数组名后的方括号内可以为常量表达式,也可以为变量 解析:解析:本题考查数组的 4 个知识点:

    26、C 语言中,二维数组或多维数组元素排列的顺序是按行存放:不同数组的元素之间可以相互赋值;字符型数组中存放的是字符,int 型数组中存放的是字符对应的ASCII 码值,虽然在计算机内部字符常量都是作为整型量来处理的,其对应的整数值就足 ASCII 码值,但两者并不完全等价;数组名后的方括号内可以为常量,也可以为常量表达式,但不可以为变量。29.若已包括头文件和,运行下面程序的输出结果是( )。 char sl10=“12345“,s210=“089“,s3=“67“; strcat(strcpy(s1,s2),s3); puts(s1);(分数:2.00)A.08967 B.0894567C.0

    27、89567D.089567解析:解析:本题考查字符串复制函数和字符串连接函数:字符串复制函数 strcpy(s1,s2)是把 s2 的字符串复制给 s1,执行后 s1=089;字符串连接函数 strcat(s1,s2),功能是把 s2 字符串连接到 s1 字符串的末尾,执行后 s1=08967。30.下列说法正确的是( )。(分数:2.00)A.auto 和 register 将声明的对象说明为自动存储类对象,这些对象可用在函数中或函数外B.将变量其定义为 static 类型,则其初值默认为随机值C.typedef 说明符并不会为对象预留存留空间 D.如果一个对象被声明为 register,则

    28、对它应用一元运算符&,意在取得其存储的地址解析:解析:这种声明也具有定义的作用,并将预留存储空间。register 说明的声明等价于 auto 说明的声明,所不同的是,register 暗示了声明的对象将被频繁地访问,将尽可能存储在寄存器中。如果一个对象被声明为 register,则将不能对它应用一元运算符&,声明为 register 但实际按照 auto 类型处理的对象的地址进行计算是非法的。static 将声明的对象说明为静态存储类。这种对象可以用在函数内部或者函数外部。在函数内部,该说明符将引起存储空间的分配,具有定义的作用。在函数外部,该说明符将引起声明对象为具有内部链接。另外,若将其

    29、定义为 static 类型,则其初值默认为 0。函数内部的 extem 声明表明,被声明的对象的存储空间定义在其他地方。在函数外部,说明声明的对象具有外部链接。typedef 说明符并不会为对象预留存留空间。31.以下有关宏的描述不正确的是( )。(分数:2.00)A.宏定义不做语法检查B.双引号中出现的宏名不进行替换C.宏名无类型D.宏名必须用大写字母表示 解析:解析:本题考查宏的使用规则:字符替换格式:#define 标识符字符串,标识符称为宏名,无类型;双引号中出现的宏名不替换;宏名的定义通常用大写字母,但不是必须用大写;宏定义不是赋值语句,不做语法检查。32.以下程序段的输出结果为(

    30、)。 static char a=“programme“; char*p; p=a; for(p=a;pA.programmeB.porm C.有语法错误D.prog解析:解析:本程序首先定义了静态字符数组 a,然后将指针 p 指向数组 a 的首地址,第一次 for 循环,p=a,p 指向数组的第一个元素,*p 是取指针 p 所指地址的内容,输出 p;第二次 for 循环,p=p+2,则 p指向数组的第三个元素,*p 是取指针 p 所指地址的内容,输出 o;第三次 for 循环,p=p+2,则 p 指向数组的第 5 个元素,*p 是取指针 p 所指地址的内容,输出 r;第四次 for 循环,p

    31、=p+2,则 p 指向数组的第7 个元素,*p 是取指针 p 所指地址的内容,输出 m;结束循环。33.下列关于 C 语言数据文件的叙述中正确的是( )。(分数:2.00)A.文件由 ASCII 码字符序列组成,C 语言只能读写文本文件B.文件由二进制数据序列组成,C 语言只能读写二进制文件C.文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件D.文件出数据流形式组成,可按数据的存放形式分为二进制文件和文本文件 解析:解析:本题考查数据文件的基本概念。文件由数据流形式组成,可以按数据的存放形式分为二进制文件和文本文件;C 语言既能读写文本文件,又可以读写二进制文件。34.已知 ch

    32、ar*s,下面正确的语句是( )。(分数:2.00)A.s=“ABCDEF“:B.*s=“ABCDEF“;C.*s=“ABCDEF“; D.*s=A;解析:解析:“s”是代表数组首地址的地址常量,不是变量,“=”左边不能出现常量,因此s=“ABCDEF“语法错误。“*s”和“s”一样;“*s”是指变量地址,不能给其赋字符串。35.下列程序的运行结果是( )。 #include void main() void fun(int*s,int*p) int a=2,3,4,5,k,x; static int t=3; for(k=0;kA.5 94,3,2, B.2,3,4,5,C.2,2,2,2,

    33、D.5,5,5,5,解析:解析:分析 fun 函数程序段,可知 fun 函数要实现的功能是将 s 中第(t+1)个元素前面(含该元素)的元素逆置赋给数组 p。由于 fun 函数定义了静态变量 t=3,因此,在主函数中调用函数 fun(a,&x)时,就是将数组 a 中前 4 个元素逆置赋给数组 x,最后输出 x 数组。36.以下函数 findmin 拟实现在数组中查找最小值并作为函数值返回,但程序中有错导致不能实现预定功能 #define MAX 2147483647 int findmin(int x,int n) int i,min; min=MAX; for(i=0;iA.定义语句 int

    34、 i,min;中 min 未赋初值B.赋值语句 min=MAN;中,不应给 min 赋 MAX 值C.语句 iffminD.赋值语句 min=MAX;放错了位置 解析:解析:在 C 语言中,一个整型变量占用 4 个字节的内存单元,并按整型数的存储方式存放数据,允许存放的数值范围是:-21474836482147483647。所以在这个题目中定义的宏变量 MAX 的值就是整数范围内最大的数值。因向对于仃意一个整数来说,其值都比 MAX 小,而判断最小值,是当找到的数比 min 小时,才交换。37.以下程序的输出结果是( )。 #include main() struct st p=aa; int

    35、 x;int*y;*p; printf(“dn“,+(p-x); int dt4=1,2,3,4; struct st aa4=2,&dt0,3,&dt0,4, &dt0,5,&dt0,;(分数:2.00)A.1B.2C.3 D.4解析:解析:程序首先将指针 p 指向结构体数组 aa 的首地址,通过 p-x 引用了结构体数组 aa0的第一个成员 2;+(p-x)是将 p 识的值加 l,所以输出结果为 3。38.有以下定义和语句: struct students int num;char name20;char c; struct int gradel;int grade2; s; ; stru

    36、ct students w*pw; *pw=w; 下列赋值语句不正确的是( )。(分数:2.00)A.wnum=1002;B.wgradel=85; C.pw-num=1002;D.wsgrade2=85;解析:解析:本题主要考查的是结构体变量的嵌套定义,也就是说一个结构体变量也可以是一个结构体。在本题中 student 这个结构体中包含了结构体 s。所以对结构体变量 w 中 gradel 成员的引用是wsgradel 或 w-s-gradel。39.设有以下语句: char x=3,y=6,z; z=xyA.00010100B.00011011 C.00011100D.00011000解析:

    37、解析:本题考查的是位运算符的应用。x 和 y 写成二进制表示分别为 x=00000011,y=00000110,由于左移位运算符“”的优先级高于按位异或运算符“”,左移两位后 y40.有以下程序: #includestdioh main() FILE*pf; ch8r*s1=“China“,*s2=“Beijing“; pf=fopen(“abcdat“,“wb+“); fwrite(s2,7,1,pf); rewind(pf); *文件位置指针回到文件开头* fwrite(s1,5,1,pf); fclose(pf); 以上程序执行后 abcdat 文件的内容是( )。(分数:2.00)A.

    38、ChinaB.Chinang C.ChinaBeijingD.BeijingChina解析:解析:本题考查函数 fwrite 的使用。函数 fwrite 的调用形式为:int fwrite(char*pt,unsigned n,FILE *fp);其功能是把 pt 所指向的 n*size 个字节输出到 fp 所指文件中,第二次调用该函数时,从文件的第一个位置开始写入,之前已有的会被覆盖掉,如果第二次写入的长度没有第一次的长,则后面短出的部分保留原样。二、程序填空题(总题数:1,分数:2.00)41.给定程序中,函数 fun 的功能是:在形参 SS 所指字符串数组中查找与形参 t 所指字符串相同

    39、的串,找到后返回该串在字符串数组中的位置(下标值),未找到则返回-1。ss 所指字符串数组中共有 N 个内容不同的字符串,且串长小于 M。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的 BLANKlC 中。 不得增行或删行,也不得更改程序的结构! #includestdioh #includestringh #define N 5 #define M 8 int fun(char(*ss)M,char*t) int i; *found* for(i=0;i_1_;i+) *found* if(strcmp(ssi,t)=0)retur

    40、n_2_; return-1; main() char chINM=“if“,“while“,“switch“,“int“,“for“,tM; int n,i; printf(“nThe original stringnn“); for(i=0;iN;i+)puts(chi);printf(“n“); printf(“nEnter a string for search:“);gets(t); n=fun(ch,t); *found* if(n=_3_)printf(“nDont found!n“); else printf(“nThe position isdn“,n); (分数:2.00)_正确答案:(正确答案:(1)N (2)i (3)-1)解析:解析:第一空:“for(i=0;i


    注意事项

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




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

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

    收起
    展开