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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

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

1、国家二级 C语言机试( C语言程序设计)模拟试卷 28及答案与解析 一、选择题 1 有以下程序 #include main()int a1, a2; char c1, c2; scanf(“ d c d c“, &al, &c1, &a2, &c2); printf(“ d, c, d, c“, a1, c1, a2, c2): 若想通过键盘输入,使得 al的值为 12, a2的值为 34, c1的值为字符 a, c2的值为字符 b,程序输出结果是: 12, a, 34, b则正确的输入格式是 (以下 口代表空格,代表回车 ) ( A) 12a34b ( B) 12, a, 34, b ( C

2、) 12a34b ( D) 12a34b 2 有以下程序 #include main()char c1 c2, c3, c4, c5, c6; scanf(“ c c c c“, &c1, &c2, &c3, &c4); c5=getchar(); c6=getchar(); putchar(c1); putchar(c2); printf(“ c c n“, c5, c6); 程序运行后,若从键盘输入 (从第 1列开始 )123 45678则输出结果是 ( A) 1256 ( B) 1278 ( C) 1245 ( D) 1 267 3 若有定义语句: double x, y, *px, *

3、py;执行 px=&x; py=&y;正确的输入语句是 ( A) scanf(“ f f“&x, &y); ( B) scanf(“ f f“, x, y); ( C) scanf(“ lf le“, px, py); ( D) scanf(“ lf lf“, x, y); 4 以下程序段 完全正确的是 ( A) int k, *p=&k; scanf(“ d“, p); ( B) int*p; scanf(“ d“, p); ( C) int *p; scanf(“ d“, p); ( D) int k, *p; *p= k; scanf(“ d“, p): 5 若在定义语句: int a,

4、 b, c, *p=&c;接着执行以下选项中的语句,则能正确执行的语句是 ( A) scanf(“ d d d“, a, b, c); ( B) scanf(“ d“, a, b, c); ( C) scanf(“ d”, p); ( D) scanf(“ d“, &p); 6 有以下程序段 intj; float y; char name50; scanf(“ 2d f s“, &i, &yname); 当执行上述程序段,从键盘上输入 55566 7777abc后, y的值为 ( A) 55566 0 ( B) 7777 0 ( C) 566 0 ( D) 566777 0 7 有以下程序段

5、 char name20; int num; scanf(“name= s num= d“, name, &num); 当执行上述程序段,并从键盘输入: name=Lili num=1001后, name的值为 ( A) name=Lili ( B) Lili num= ( C) name=Lili num=1001 ( D) Lili 8 s1和 s2已正确定义并分别指向两个字符串。若要求:当 s1所指串大于 s2所指串时,执行语句 S;则以下选项中正确的是 ( A) iffs1s2)S; ( B) if(strcmp(s1, s2)S; ( C) if(strcmp(s2, s1)0)S;

6、 ( D) if(strcp(s1, s2)0)S: 9 把以下四个表达式用作 if语句的控制表达式时,有一个选项与其他三个选项含义不同,这个选项是 ( A) k 2 ( B) k 2=1 ( C) (k 2)!=0 ( D) !k 2=1 10 以下是 if语句的基本形式: if(表达式 )语句 其中 “表达式 ” ( A)必须是逻辑表达式 ( B)必须是关系表达式 ( C)必须是逻辑表达或关系表达 ( D)可以是任意合法的表达式 11 有以下程序 main()int a=0, b=0, c=0, d=0; if(a=1)b=1; c=2; else d=3; printf(“ d, d,

7、d, d n“, a, b, c, d); 程序输出 ( A) 0, 0, 0, 3 ( B) 1, 1, 2, 0 ( C)编译有错 ( D) 0 1 2, 0 12 有以下程序 main()int x=1, y=0; if(!x)y+; else if(x=0) if(x)y+=2; else y+=3; pfintf(“ d n“, y); 程序运行后的输出 结果是 ( A) 2 ( B) 0 ( C) 1 ( D) 3 13 若变量已正确定义,在 if(W)printf(“ d n“, k);中,以下不可替代 W的是 ( A) ch=getchar() ( B) a=b+c ( C)

8、ab)a=b, b=c; c=a; printf(“a= d b= d c= d n“, a, b, c); 程序的输出结果是 ( A) a=10 b=50 c=30 ( B) a=10 b=30 c=10 ( C) a=10 b=50 c=10 ( D) a=50 b=30 c=5 15 设有定义: int a=1, b=2, c=3;以下语句中执行效果与其它三个不同的是 ( A) if(ab)c=a; a=b; b=c; ( B) if(ab)c=a, a=b, b=c; ( C) if(ab)c=a, a=b, b=c; ( D) if(ab)c=a; a=b; b=c; 16 if语句

9、的基本形式是: if(表达式 )语句,以下关于 “表达式 ”值的叙述中正确的是 ( A)必须是整数值 ( B)必须是正数 ( C)可以是任意合法的数值 ( D)必须是逻辑值 17 有如下嵌套的 if语句 if(a=0)y=sqrt(x); else y=sqrt(-x); ( C) if(x=0)y=sqrt(x); if(x=07x: -x); 19 有以下程序 #include main()int x; scanf(“ d“, x); if(x main()int a=1, b=2, c=3, d=4; if(a=2)(b=1)c=2; if(c=3)& (d=-1)a=5; printf

10、(“ d, d, d, d n“, a, b, c, d); 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2, 4 ( C) 5, 1, 2, -1 ( D) 1, 2, 3, 4 23 若有以下程序 #include main()int a=1, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; else; if(c!=3)r+=3; else; if(d=4)r+=4; printf(“ d n“, r); 则程序的输出结果是 ( A) 10 ( B) 6 ( C) 7 ( D) 3 24 若有以下程序

11、 #include main()int a=1, b=2, c=3, d=4; if(a=2)&(b=1)c=2; if(c=3)Il(d=-1)a=5; printf(“ d, d, d, d n“, a, b, c, d); ) 则程序的输出结果是 ( A) 2, 1, 2, -1 ( B) 2, 2, 2, 4 ( C) 1, 2, 3, 4 ( D) 5, 1, 2, -1 25 若有以下程序 main()int a=l, b=2, c=3, d=4, r=0; if(a!=1); else r=1; if(b=2)r+=2; if(c!=3); r+=3; if(d=4)r+=4;

12、printf(“ d n“, r); 则程序的输出结果是 ( A) 7 ( B) 10 ( C) 6 ( D) 3 26 以下叙述中正确的是 ( A) if语句只能嵌套一层 ( B)不能在 else子句中再嵌套 if语句 ( C) if子句和 else子句中可以是任意的合法的 C语句 ( D)改变 if-else语 句的缩进格式,会改变程序的执行流程 27 以下选项中与 if(a=1)a=b; else a+;语句功能不同的 switch语句是 ( A) switch(a) case 1: a=b: break; default: a+; ( B) switch(a=1) case 0: a=

13、b; break; case 1: a+; ( C) switch(a) default: a+; break; case 1: a=b; ( D) switch(a=1) case 1: a=b; break; case 0: a+; 国家二级 C语言机试( C语言程序设计)模拟试卷 28答案与解析 一、选择题 1 【正确答案】 C 【试题解析】 本题考查 scanf语句。 SCanf()函数是格式化输入函数,它从标准输入设备 (键盘 )读取输入的信息。 其调用格式为: scanf(“, ) 格式化字符串包括以下 3类不同的字符。 格式化说明符:格式化说明符与前面用的 printf()函数中

14、的格式说明符基本相同。 空白字符:空白字符会使 scanf()函数在读操作中略去输入中的一个或多个空白字符。 非空白字符:一个非空白字符会使 scanf()函数在读入时剔除掉与这个非空白字符相同的字符。 由于在 scanf函数中,几个变量之间没有任何间隔,所以输入的时候,也同样不应该有间隔。 【知识模块】 C语言程序设计 2 【正确答案】 C 【试题解析】 当用 scanf函数从键盘输入数据时,每行数据的未尾按下回车键(Enter键 )之前,可以任意修改。但按下回车键 putchar(c1)(Enter键 )之后, scanf函数即接受了这一行数据,不能再回去修改。所以本题中,当输入 123时

15、,变量 c1、 c2、 c3的值分别为 1、 2、 3,当输入 45678耐,变量 c5、 c6的值 4和 5。所以用输出函数 putchar(c1)输出 1, putchar(c2)输出 2, printf(“ c cn“, c5, c6)输出 45。 【知识模块】 C语言程序设计 3 【正确答案】 C 【试题解析】 本题考查 scanf语句。 scanf()函数的一般格式为: scanf(“格式字符串 “,输入项首地址表 ),对于 double类型数据,输入时候要加上 1修饰,否则会产牛错误的输入信息,同时输入项必须是地址,可以使保存变量地址的指针变量。 【知识模块】 C语言程序设计 4

16、【正确答案】 A 【试题解析】 选项 B没有对指针进行初始化,无效指针。选项 C错在没有对指针进行初始化,无效指针并且在 scanf(“ d“, &p)中无需再进行取地址操作。选项 D,语句 “*p=&k; ”的左端 *p是指针所指内存空间的值, &k是地址,应为“p= k”。 【知识模块】 C语言程序设计 5 【正确答案】 C 【试题解析】 程序语句 int a, b, c, *p=&c;定义了三个整型变量 a, b, c,和一个整型指针变量 p,并且把变量 c的地址赋给 p。 scanf函数的一般形式为“scanf(“格式控制字符串 ”,地址列表 )”,其中的地址列表应当是存放输入数据变量

17、的地址。 【知识模块】 C语言程序设计 6 【正确答案】 C 【试题解析】 因为在输入格式控制符中指定变量 i的输入格式控制符为 “ 2d”,即变量 j所占的宽度为 2,所以变量 i只接收输入数据的前两位,从第三位开始直到空格之间的输入整数都会被保存到变量 y中,因为 y为浮点型 数据,所以输出结果为选项 C。 【知识模块】 C语言程序设计 7 【正确答案】 D 【试题解析】 在题目中以字符串的形式给字符数组赋值,所以字符数组 name的值为 Lili。 【知识模块】 C语言程序设计 8 【正确答案】 D 【试题解析】 字符串标记使用 strcmp函数,该函数有两个参数分别是需要比较大小的两个

18、字符串 s1和 s2,如果 s1大于 s2则返回值大于 0,如果 s1小于 s2则返回值小于 0,否则 s1和 s2相同返回 0。题目要求 s1大于 s2时执行语句 S,因此strcmp(s1, s2)的返回值大于 o时执行 S。 【知识模块】 C语言程序设计 9 【正确答案】 D 【试题解析】 本题考查 if语句和 if语句构成的选择。选项 A表示 k除以 2的余数,如果余数为 1则 if成立,否则不能成立,即 if判断 k是否为奇数;选项 B是判断 k除以 2的余数是否等于 1,函数和选项 A相同;选项 C表示 k除以 2的余数不为 0,和选项 A一致;选项 D中, !运算符优先级高于预算

19、符,先计算 !k,然后再取余数,并判断余数是否等于 1。 【知识模块】 C语言程序设计 10 【正确答案】 D 【试题解析】 本 题考查 if语句, C语言中 if语句中的表达式可以是任意合法的表达式。 【知识模块】 C语言程序设计 11 【正确答案】 C 【试题解析】 if语句的格式为: if表达式 )语句 1 else 语句 2 if和 else是 C语言的关键字。 “语句 1”称为 if子句, “语句 2”称为 else子句,这些子句只允许为一条语句,若需要多条语句时,则应该使用复合语句。因此题目“if(a=1)b=1; c=2; else d=3; ”, if分支有两条语句,没构成复合

20、语句。 【知识模块 】 C语言程序设计 12 【正确答案】 B 【试题解析】 x=1, if和 else if的条件都不满足,故 y值不改变输出。 【知识模块】 C语言程序设计 13 【正确答案】 C 【试题解析】 在 if()语句的括号是一个合法的 C语言表达式即可,如果表达式的值为 0,则不执行 if语句,否则执行 if语句,而在选项 C中,符号 b+c)(ab+c。所以它不是一个合法的 C语言表达式 。 【知识模块】 C语言程序设计 14 【正确答案】 C 【试题解析】 本题的程序段首先定义三个整型变量 a, b, c,并且其初始值分别等于 10, 50, 30,然后判断 ab是否成立,

21、如果条件成立,则把 b的值赋给 a,把 c的值赋给 b。由 a和 b的初始值可知,此条件表达式不成立,所以 a和 b的值保持不变。再执行下一条语句,把 a的值赋给 c,所以 c的当前值等于 10,最后由输出语句输出变量 a b c的当前值,分别为 10, 50, 10。 【知识模块】 C语言程序设计 15 【正确答案】 A 【试题解 析】 在 C语言中,用分号表示一条语句的结束,用 把几条语句放在一块表示一个语句块,其整体表示一个功能。因而在题目给出的四个选项中,选项B、 C、 D表示的功能相同,而选项 A表示的是一条 if语句,两条赋值语句。 【知识模块】 C语言程序设计 16 【正确答案】

22、 C 【试题解析】 在 if语句中,表达式可以是任意合法的数值。当其值为非零时,执行 if语句,为 0时执行 else语句。 【知识模块】 C语言程序设计 17 【正确答案】 D 【试题解析】 嵌套的 if else语句的含义是,在变 量 a的值小于变量 b的值,同时,变量 a的值小于变量 c的值时,把变量 a的值赋给变量 k。在变量 a的值小于变量 b的值,同时,变量 a的值大于等于变量 c的值时,把变量 c的值赋给变量k。在变量 a的值大于等于变量 b的值,同时,变量 b的值小于变量 c的值时,把变量 b的值赋给变量 k。在变量 a的值大十等卡变量 b的值,同时,变量 b的值大于等于变量

23、c的值时,把变量 c的值赋给变量 k。 【知识模块】 C语言程序设计 18 【正确答案】 A 【试题解析】 由题意可知计算公式的含义是:当 x大于等于 0时, y值等于 x的算术平方根: 当 x小于 0时, y值等于 x的相反数的算术平方根。所以选项 B用一个完整的 if else语句表达了计算公式的含义;选项 C用两个 if语句表达了计算公式的含义:选项 D在求平方根函数的后面用 x0?x: x条件表达式来表达了计算公式的含义。选项 A没有用 C语言语句正确的表达计算公式的含义。 【知识模块】 C语言程序设计 19 【正确答案】 D 【试题解析】 题目中,虽然 else和第二个 if不在同一

24、行上,但等价于在同一行上,因此,程序的意思是当 x大于 3且不等于 10时打印出来。 【知识模块】 C语言程序设 计 20 【正确答案】 C 【试题解析】 a, b, c, d初始值分别为 1, 2, 3, 0。嵌套的 if语句中,第一个if中,表达式 a=1 &b+=2值为 1,执行嵌套的 if分支,此时 “b=3, b!=2”成立,由于运算符是 ,不管后面一个表达式的值是不是 1,其整个表达式的值总是1, “c-!=3”表达式不执行,最后打印出 a, b, c的值是 1, 3, 3。 【知识模块】 C语言程序设计 21 【正确答案】 A 【试题解析】 选项 B、 C、 D这三条语句都是在变

25、量不等于 0的情况下,输出x;等于 0的情况 下输出 y,而选项 A则正好相反。 【知识模块】 C语言程序设计 22 【正确答案】 B 【试题解析】 代码中有两条并列的 if语句,第一条 if语句执行, (a=2)(b=1)值为1,由于逻辑或表达式,根据其短路运算规则, a=2, b=2,即 b值不变执行 if分支c=2。并列的 if语句中表达式 (c=3) &(d=-1)为逻辑与表达式, c=3不成立,不考虑 d=-1表达式, d为 5逻辑表达式值为 0,不执行相应 if分支。 【知识模块】 C语言程序设计 23 【正确答案】 C 【试题解析】 程序代码中有四条并列的 if语句,第一条 if

26、表达式 a!=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3:第三条 if语句 c!=3不成立,执行 else分支,分支为空语句;第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=7。 【知识模块】 C语言程序设计 24 【正确答案】 D 【试题解析】 代码中有两条并列的 if语句,第一条 if语句,逻辑与表达式(a=2)&f1)=1)中, a=2,则执行 b=1,得到该逻辑与表达式值为 1,执行分支语句c=2; 第二条 if语句 (c=3)(d=-1), c=3不成立,执行 d=-1,而后得出整个逻辑与表达式值为 1,执行

27、分支语句 a=5。 【知识模块】 C语言程序设计 25 【正确答案】 B 【试题解析】 程序代码中有四条并列的 if语句,第一条 if表达式 a!=1不成立,执行 else分支, r=1;第二条 if表达式 b=2成立,执行 r+=2, r=3;第三条 if语句 c!=3不成立,执行语句 r+=3, r=6:第四条 if分支 d=4成立,执行该 if分支语句, r+=4, r=10。 【知识模块】 C语言程序设计 26 【正确答案】 C 【试题解析】 含 else子句的 if语句的格式为 if(表达式 )语句 1 else 语句 2 其中 if和 else是 C语言的关键字。 “语句 1”称为

28、 if子句, “语句 2”称为 else子句,这些子句只允许为一条语句,若需要多条语句时,则应该使用复合语句,对于 if和 else语句的嵌套原则是比较自由的。 【知识模块】 C语言程序设计 27 【正确答案】 B 【试题解析】 本题主要考查 if和 switch结构。 “if(a=1)a=b; else a+; ”代码段的功能是如果 a等于则把 b的值赋值给 a,否则 a+。选项 A使用 switch对 a进行判断,如果是 1则 a=b,跳出 switch,如果是其他值则 a+;选项 B对 a=1的结果进行 switch判断,如果为 0表示 a不等于 1则 a=b,和题目要求不符合;选项C和选项 A一样;选项 D和选项 case条件相反,满足题目要求。 【知识模块】 C语言程序设计

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