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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

[计算机类试卷]国家二级(C语言)机试模拟试卷17及答案与解析.doc

1、国家二级( C语言)机试模拟试卷 17及答案与解析 一、选择题 1 数据结构主要研究的是数据的逻辑结构、数据的运算和 ( )。 ( A)数据的方法 ( B)数据的存储结构 ( C)数据的对象 ( D)数据的逻辑存储 2 一棵二叉树的前序遍历结果是 ABCEDF,中序遍历结果是 CBAEDF,则其后序遍历的结果是 ( )。 ( A) DBACEF ( B) CBEFDA ( C) FDAEBC ( D) DFABEC 3 在数据处理中,其处理的最小单位是 ( )。 ( A)数据 ( B)数据项 ( C)数据结构 ( D)数据元素 4 在数据库系统的内部结构体系中,索引属于 ( )。 ( A)模式

2、 ( B)内模式 ( C)外模式 ( D)概念模式 5 以下 ( )不属于对象的基本特征。 ( A)继承性 ( B)封装性 ( C)分类性 ( D)多态性 6 数据库系统的核心是 ( )。 ( A)数据模型 ( B)软件开发 ( C)数据库设计 ( D)数据库管理系统 7 开发软件所需高成本和产品的低质 量之间有着尖锐的矛盾,这种现象称做 ( )。 ( A)软件矛盾 ( B)软件危机 ( C)软件藕合 ( D)软件产生 8 关系模型允许定义 3类数据约束,下列不属于数据约束的是 ( )。 ( A)实体完整性约束 ( B)参照完整性约束 ( C)属性完整性约束 ( D)用户自定义的完整性约束 9

3、 关系表中的每一行记录称为一个 ( )。 ( A)字段 ( B)元组 ( C)属性 ( D)关键码 10 在数据库管理技术的发展中,数据独立性最高的是 ( )。 ( A)人工管理 ( B)文件系统 ( C)数据库系统 ( D)数据模型 11 以下叙述错误的是 ( )。 ( A) C语言区分大小写 ( B) C程序中的一个变量,代表内存中一个相应的存储单元,变量的值可以根据需要随时修改 ( C)整数和实数都能用 C语言准确无误地表示出来 ( D)在 C程序中,正整数可以用十进制、八进制和十六进制的形式来表示 12 有以下程序段: int i, n; for(i=0; i void main()

4、int a=1, b=0; printf(“ d, “, b=(a+)+(a+); printf(“ dn“, a+b); 程序运行后的输 出结果是 ( )。 ( A) 4, 6 ( B) 2, 5 ( C) 3, 5 ( D) 2, 6 18 若有代数式 , (其中 e仅代表自然对数的底数,不是变量 ),则下列能够正确表示该代数式的 C语言表达式是 ( )。 ( A) sqrt(abs(nx+ex) ( B) sqrt(fabs(pow(n, x)+pow(x, e) ( C) sqrt(fabs(pow(n, x)+exp(x) ( D) sqrt(fabs(pow(x, n)+exp(x

5、) 19 设有定义: imk=0;,下列选项的 4个表 达式中与其他 3个表达式的值不相同的是 ( )。 ( A) k+ ( B) k+=1 ( C) #NAME? ( D) k+1 20 有下列程序,其中 u表示按无符号整数输出。 main() unsigned int x=0xFFFF; /*x的初值为十六进制数 */ printf(“ un“, x); 程序运行后的输出结果是 ( )。 ( A) -1 ( B) 65535 ( C) 32767 ( D) 0xFFFF 21 下面程序的运行结果是 ( )。 for(i=3; i99) s=3; else if(num9) s=2: els

6、e s=1; i=num/100; j=(num-i*1 00)/10; k=(num-i*100-j*10); switch(s) case 3: printf(“ d d dn“, k,j, i); break; case 2: pfintf(“ d dn“, ) ; case 1: printf(“ dn“, k); ( A) 123 ( B) 1, 2, 3 ( C) 321 ( D) 3, 2 1 24 有以下程序 # include #include structA int a; char b10; double c; ; struct A f(structAt); main()

7、stmct A a=1001,“ZhangDa“, 1098 0; a=f(a); printf(“ d, s, 6 1 fn“, a a, a b, a c); struct A f(struct A t) t a=1002; strcpy(t b, “WangPeng“); t c=1 220 0; return t; 程序 运行后的输出结果是 ( )。 ( A) 1001, ZhangDa, 1098 0 ( B) 1 002, ZhangDa, 1 220 0 ( C) 1001, WangPeng, 1098 0 ( D) 1002, WangPeng, 1220 0 25 判断 c

8、har型变量 c1是否为小写字母的正确表达式为 ( )。 ( A) a: a)&(c1=c1 |(z=a)&(c1m ( B) *(p+)-m ( C) (*p) m ( D) *(+p)-m 29 下列程序的运行结果是 ( )。 #include void sub(int*s, int*y) static int m=4; *y=s0; m+: void main() int a=1, 2, 3, 4, 5, k; int x; printf(“11“); for(k=0; k int fun(int x, int Y) if(x!=y)return(y); else return(x+y)

9、/2); main() int a=4, b=5, c=6; printf(“ dn“, fun(2*a, fun(b, c); 程序运行后的输出结果是 ( )。 ( A) 3 ( B) 6 ( C) 8 ( D) 12 31 C语言中规定,程序中各函数之间 ( )。 ( A)既允许直接递归调用也允许间接递归调用 ( B)不允许直接递 归调用也不允许间接递归调用 ( C)允许直接递归调用不允许间接递归调用 ( D)不允许直接递归调用允许间接递归调用 32 以下程序的输出结果是 ( )。 #include main() int a33=0, 1, 2,0, 1, 2, 0, 1, 2, i,j,

10、 s=1; for(i=0; i #define X 5+6 main() int a=2, c; C=x*2; printf(“ d“, c); 程序运行后的输出结果是 ( )。 ( A) 17 ( B) 22 ( C) 16 ( D) 11 34 当用 “#define F 37 5f”定义后,下列叙述正确的是 ( )。 ( A) F是 float型数 ( B) F是 char型数 ( C) F无类型 ( D) F是字符串 35 若有定义语句: int a=3, b=2, c=1;,以下选项中错误的赋值表达式是 ( )。 ( A) a=(b=4)=3; ( B) a=b=c+1; ( C)

11、 a=(b=4)+c; ( D) a=1+(b=c: 4); 36 以下说法正确的是 ( )。 ( A)宏定义是 C语句,要在行末加分号 ( B)可以使用 #undefine提前结束宏名的使用 ( C)在进行宏定义时,宏定义不能嵌 套 ( D)双引号中出现的宏名也要进行替换 37 下面程序的输出结果是 ( )。 typedef unionlong x1; int y4; char z10; M; M t; main() printf(“ dn“, sizeof(t); ( A) 32 ( B) 26 ( C) 10 ( D) 4 38 以下程序中函数 sort的功能是对 a数组中的数据进行由大

12、到小的排序 void sort(int a, int n) int i,j, t; for(i=0; i #include #include int fun(char *s) char *lp, *rp; /*found*/ ip=_1_; rp=s+strlen(s)一 1; while(toupper(*lp)=toupper (*rp)&(lp /*found*/ void fun(char*s, int a, int b) while(*s) if(*s=A&*s=a&*s #include void fun(char*s, char t) msin() char s100, t100

13、; void NONO(); printf(“nPlease enter string S: “); s canf(“ s“, s); fun(s, t); printf(“nThe result is: sn“, t); NONO(); void NONO() /*本函数用于打开文件,输入数据 ,调用函 数,输出数据,关闭文件。 */ char s100, t100; FILE*rf, *wf; int i ; rf=fopen(“in dat“, “r“); wf=fopen(“out dat“, “w“); for(i=0 ; i99,所以 s=3, i=3, i=2, k=1。因为 s

14、=3,所以执行 case 3,输出 k, i, i的值,然后通过 break结束程序。 24 【正确答案】 D 【试题解析】 在主函数中定义结构体 A的变量 a,并对其赋初值,再调用函数f(a),在函数 f(a)中对结构体变量 a的各个成员重新进行了赋值操作,并把其值返回在屏幕上输出。 25 【正确答案】 D 【试题解析】 C语言规定,字符常量在程序中要用单引号括起来。首先判断 c1是否为小写字母的主要条件 c1=a和 c1=z是逻辑与关系,其次选项 A)的这种形式 C语言中没有,所以选项 D)正确。 26 【正确答案】 B 【试题解析】 本题考查标准输入输出函数和循环语句。 gets(s)函

15、数的作用是将输入的字符读入字符串 s,直到遇到回车。而 scanf()函数接收字符串 时的结束标志为回车或者空格。因此选项 B)不能,选项 C)和选项 D)中按字符逐个读入字符串 s中,直到读入的字符是换行符为止,因此正确。 27 【正确答案】 D 【试题解析】 本题考查几个循环语句的关系。 dowhile 语句、 while语句、 for语句所实现的循环可以相互替代; dowhile 语句和 while语句的区别是 dowhile 语句至少执行一次,再判断循环条件, while语句是先判断条件再执行。 28 【正确答案】 D 【试题解析】 本题考查如何通过指针引用数组元素 。首先定义了一个结

16、构体,然后定义了一个结构体变量 s3,并赋了初值。在主程序中,定义了一个指向结构体变量 s的指针 p,要使表达式的值为 5,就应该引用 s1 m的值,使指针 p指向s1, +p可以实现将 p指针加 1,指向 s1。 29 【正确答案】 A 【试题解析】 本题中 sub(int*s, int*y)函数的参数是两个指针型变量,在函数体内将数组 s的第一个元素赋给 y。主程序内,首先定义了一维数组并赋初值,然后通过 for循环, 5次调用 sub(a,&x)函数,每一次调用都是将数组 a的第一个元 素 1赋给 x,并输出。 30 【正确答案】 B 【试题解析】 fun(b,c)即 fun(5,6),

17、 5!=6,所以返回 6; fun(2*a, 6)即 *fun(8,6),8!=6,所以返回 6。 31 【正确答案】 A 【试题解析】 本题考查函数调用的基本概念。在函数调用时,只要符合函数的使用,程序中的各个函数间既可以直接调用其他函数,也可以递归调用其自身。 32 【正确答案】 B 【试题解析】 当外层循环为 i时,内层循环 j只能取 j=i,所以 s+: aiajD,其实就是 s+=aiaii,当 i=0时, S=S+a0a00=s+a00=1,当 i=1时,S=S十 a1a11=s+a11=1+1=2,当 i=2时,s=s+a2a22=s+a22=2+2=4。 33 【正确答案】 A

18、 【试题解析】 define语句仅进行简单替换,因此 c=5+6*2=17。 34 【正确答案】 D 【试题解析】 字符替换定义格式为: #define标识符 (形参表 )形参表达式。题中 F是代表形参表达式的标识符 (字符串 )。 35 【正确答案】 A 【试题解析】 这道题目主要考察赋值表达式,对于赋值表达式来说,赋值号 “=”的左边一定为变量名,右边为一个 C语言合法的表达式。 36 【正确答案】 B 【试题解析】 本题考查宏的使用规则: 字符替换格式: #define标识符字符串,行末不加分号; 双引号中出现的宏名不替换; 如果提前结束宏名的使用,程序中可以使用 #undefine;

19、在进行宏定义时,宏定义能层层置换,能够嵌套。 37 【正确答案】 C 【试题解析】 “联合体 ”所占用的内存空间为最长的成员所占用的空间。题中联合体的 z10成员是联合体中占空间最长的成员。 38 【正确答案】 C 【试题解析】 程序中 son函数的功能是对数组中的数据进行从大到小的排序。主函数 main中调用函数 son(&aa3, 5);,使得数组 aa中从第 4个元素开始的 5个元素进行从大到小的排序,数组 aa中的元素变为: 1, 2, 3, 8, 7, 6, 5, 4,9, 10。并输出这些元素。 39 【正确答案】 C 【试题解析】 本题主要考查按位 或运算, x=061(二进制为

20、 00110001), y=016(二进制为 000011 10),进行或运算后结果为 00111111。 40 【正确答案】 A 【试题解析】 位置指针重返文件头函数 rewind()的调用形式为: rewind(fp)。其中, “fp”是指向文件的文件型指针。 rewind(fp)的功能是:使 fp指定的文件的位置指针重新定位到文件的开始位置。 二、程序填空题 41 【正确答案】 (1)s (2)- (3)return 0 【试题解析】 第一空: “rp=s+strlen(s)-1; ”可知 rp指向最后 *个元素,因此 lp是指向第一个元素,因此第一空应为 “s”。 第二空: “lp+;

21、 r1)_2 _; ”lp往后移动, rp应该往前移动,故第二空处应为 “-”。 第三空: “if(lprp)”成立 兑明 lp和 rp比较没有比较到字符串的最中间的字符,也就是说 s字符串不是回文,因此第三空处的应为 “return 0”。 三、程序修改题 42 【正确答案】 (1)void fun(char *s, int *a, int *b) (2)*a=*a+1; (3)*b=*b+1; 【试题解析】 (1)第一个标识下面 “void fun(char*s, int a, int b)”,因为主函数调用 fun函数第二个、第三个参数传送的是参数地址,因此定义的 fun函数中的第二个、

22、第三个参数应是指针型,应将 “void fun(char*s, int a, int b)”改为 “void fun f char*s, int*a, int )”。 (2)第二个和第三个标识下面,因为 a、 b都是指针型,将 a、 b中的内容加 1,应为 “*a=*a+1; ”和 “*b=*b+1; ”。 四、程序设计题 43 【正确答案】 int i, j=0 ; for(i=0; istrlen(s); i+=2) if(si 2=0)tj+=si; tj=0; 【试题解析】 (1)判断一个字符串中的某一字符下标 i是否为偶数,可用 “i2=0”来判断;也可以从下标 0开始,每次增 2。判断字符中的 ASCII码值是否为偶数,则可用 “si 2=0”来判定。 (2)对串 s中下标为偶数的字符进行考查。满足 ASCII码值是偶数条件的字符就顺序放在新串 s中,否则就 不存放。 (3)所有字符处理完后,记得在新串 s的末尾加上结束符 “0”。

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