文章目录

  • 一、选择
  • 二、填空
  • 三、结果分析

一、选择

1.
函数调用,把数组名作为函数参数。
涉及到函数调用时 实参和形参的问题。
我们知道,在c语言中,常量,变量,指针,数组,都可以作为参数,传递到函数中。

值传递 引用传递
常量、变量 指针、数组
实参和形参各自开辟不同的内存单元 形参不占内存单元,形参指向实参的首地址
改变形参不会影响实参的值 修改实参会影响形参,修改形参会影响实参

常量和变量的传递,属于值传递,实参和形参各自开辟不同的内存单元,改变形参不会影响实参的值
指针和数组,则是属于引用传递,形参不占内存单元,形参指向实参的首地址,修改实参会影响形参,修改形参会影响实参,做到了双向值传递。

选A

2.
C
注意看题,题目说在一个函数中的复合语句中。复合语句,就是带有 { }的代码,c语言的{ }限定函数和变量的作用域,所以选C,局部变量,只在本复合结构中有效。
3
B
main函数是c程序的总入口,都是从这个地方开始调用用户代码,在函数中可以定义函数,但一般在c语言中,都是在函数外进行定义。
4
看代码,求输出的问题。
main中的语句分别是
定义一个整型变量i,一个整型数组a,a的大小是10。(也就是说a这个数组中可以存是个像i一样的整型变量)。
做一个循环,循环定义i最初为9,条件是i>=0,每循环一次i就减一,每循环一次还要执行以下后面的语句,即a[i]=10-i;
那么
第一次
i=9,a[9]=1;
i=8,a[8]=2;

i=0,a[0]=10;
所以,a[2]=8;a[5]=5;a[8]=2;
选C
5
选B
char 类型为字符型,所定义的变量 只能是单个字符,比如’a’。
6
做一个循环,5次
每次都执行一遍,s=s*10+a[i];
那么,

//第一次
i=0,s=0*10+a[0];s=0+1=1;
//第二次
i=1,s=1*10+a[1];s=10+2=12;
i=2,s=0*10+a[0];s=12*10+3=123;
i=3,s=0*10+a[0];s=1230+4=1234;
i=4,s=0*10+a[0];s=1230+4=12345;

所以选A,没有空格
7
考察运算符优先级的问题,逻辑运算符优先级低于算术运算符;
首先x=y=z=1;连等赋值,这三个变量均被赋值为1;
所以式子看成
t= (++x) || (++y&&++z);因为式子最外面是逻辑运算,那么t最后的值要么是true要么是false,转换成int类型的话就是1和0.

|| 如果左边的值不为0,那么后面的代码就不会执行。
++x,先把x自增1,x=2,也就是x不等于0,那么后面代码就不执行,t等于true,即等于1.
选C
8
仔细看大括号里用大括号分开成了多少项,数组大小为10.
选A
9
C
10
if只和最近 的else对应。
C

二、填空

:1.
第一个空,初始化sum的数据,

sum=0;

第二个空,在循环内,n每一次都加1,一直到n>m;那么每次只要把n的值加到sum上就可以了。

sum=sum+n;或者
sum+=n;

:2.求一维数组中素数的和。
要做到遍历数组,找出素数,加起来求和。
素数,就是大于1,因数只有1和他本身的数。
第一个空,初始化s,

s=0;

第二个空,

a[i]

此时是满足是素数条件,那么只要把当前的a[i]加到s中就可以了

三、结果分析

:1.
考察循环、
第一次
num=0,满足num<=2,那么num++;此时num=1
num=1,满足num<=2,那么num++;此时num=2
num=2,满足num<=2,那么num++;此时num=3
num=3,不满足num<=2,终止循环,输出num。等于

3

:2.
考察switch事件,
注意case语句之后的break;如果有break,那么switch语句就结束,如果没有,那么下一个case也要执行。
当键盘输入A时,进入switch语句,判断是否满足case ‘A’,满足,那么执行printf语句,打印A;后面没有break,继续下一个语句的代码,这个时候下面的就不用判断是否满足case,只管执行,遇到break就跳出来。那么B也会被打印。然后遇到break,跳出。
结果是

AB

:3.
考察dowhile循环语句
dowhile 和while的区别是,dowhile不管满不满足条件,都先执行一遍里面的代码;while是先判断满不满足条件,满足才执行。
sum=0,i=1,满足i<=10,那么执行sum=1,i=2;
sum=1,i=2,满足i<=10,那么执行sum=sum+i=1+2=3,i=3;
sum=3,i=3,满足i<=10,那么执行sum=6,i=4;
sum=6,i=4,满足i<=10,那么执行sum=10,i=5;
sum=10,i=5,满足i<=10,那么执行sum=15,i=6;
sum=15,i=6,满足i<=10,那么执行sum=21,i=7;
sum=21,i=7,满足i<=10,那么执行sum=28,i=8;
sum=28,i=8,满足i<=10,那么执行sum=36,i=9;
sum=36,i=9,满足i<=10,那么执行sum=sum+i=36+9=45,i=10;
sum=45,i=10,满足i<=10,那么执行sum=sum+i=55,i=11;
sum=55,i=11,不满足,退出;
sum=55;
其实看出规律之后就可以自己算了,1+2+3+…+10=11*5=55;

55

:4.

1 2 3 5
8 13 21 34

注意转义字符“\n”代表换行 ,所以有两行。
:5.

result=3

printf是打印函数,引号里 的字符串要照写下来,%d 要替换成result的值,这个值经过调用sub函数得来,6-3=3。
:6.

r=15

:7.
do while循环
n=26;
num=26;
带入到函数中,进行循环
k=1;
k*=num%10;百分号运算是求余运算。这一步可以看成是 k=k*(num%10)=1*(26%10)=16=6;
num/=10;除法运算,c语言中,除法运算只会得到整数。所以,这一步num=num/10=26/10=2;
判断num是否不等于0,满足。继续
k=6;
k=6
2=12;
num=2/10=0;
判断是否满足条件,不满足。

return k;k这个时候等于12;
所以打印结果:

12

:8.
输入3,调用函数,发起循环,从1开始循环,每次循环完加一,要保证不能大于3;
所以循环三次,i分别是1,2,3
那么
f=11=1;
f=1
2=2;
f=2*3=6;
fac函数返回6;s=fac(j);那么s就等于6;
j是3;
打印结果:

3!=6

C语言程序设计(2018-2019学年第一学期测试卷)相关推荐

  1. 南邮《汇编语言程序设计》2018/2019 学年第一学期期末考试回忆

    2018.12.8 13:30-15:20 <汇编语言程序设计>考试 刚考完,回忆一下题目. 先总结一下:感觉考得还是蛮细的,主要自己复习时间也不多,全凭上学期学过一遍的记忆和笔记复习的. ...

  2. 北航 2018计算机学院排课,关于2018—2019学年秋季学期排课的通知

    关于2018-2019学年秋季学期排课的通知 2018-04-12 关于2018-2019学年秋季学期排课的通知 一.根据校办[2010]7号文件"关于调整校本部教学作息时间的通知" ...

  3. 北航 2018计算机学院排课,关于2018—2019学年第二学期排课安排的通知

    各教学学院: 2018-2019学年第二学期排(选)课工作即将开始,为确保该项工作顺利进行,现将有关事宜安排如下: 一.课表编排日程 时间 相关事项 负责单位 1月10日前 完成公共课排课工作 教务处 ...

  4. 2018~2019学年第一学期期末考试试卷(A)卷《C语言程序设计》

    一.填空题(每空1分 ,共20分) C语言程序的基本单位是 函数 . 若整型数的十进制形式为112, 则它的八进制形式为(160)8 .十六进制形式为 (70)16 . 设int a=10,b=4, ...

  5. 新乡医学院2018计算机考试题,新乡医学院关于做好2018-2019学年第一学期本科学生期末考核工作的通知...

    各有关单位: 2018-2019学年第一学期本科学生期末考核工作即将开始.为进一步加强考务管理,规范各项工作,保证考核工作顺利开展,现将有关事项通知如下: 一.总体安排 为保证考试课程考核工作有序进行 ...

  6. 苏州大学计算机课程与资源,苏州大学计算机学院2018-2019学年第一学期研究生课课程表...

    苏州大学计算机学院2018-2019学年第一学期研究生课课程表 (4页) 本资源提供全文预览,点击全文预览即可全文预览,如果喜欢文档就下载吧,查找使用更方便哦! 9.9 积分 苏州大学计算机学院201 ...

  7. 输出教学日历表c语言的思路,20182019学年第二学期教学日历及教学环节表(一).pdf...

    感谢你的聆听 2018 -2019 学年第二学期教学日历及教学环节表(一) 周次 一 二 三 四 五 六 七 八 九 十 十一 十二 十三 十四 十五 十六 十七 十八 星期 一 25/2 4 11 ...

  8. 八年级python考试题及答案_(新世纪版)2018-2019学年第二学期八年级信息技术期末试卷+答题卡+答案...

    (新世纪版)2018-2019学年第二学期八年级信息技术期末试卷+答题卡+答案 2018-2019学年第一学期期末模拟试卷 八年级 信息技术 时间:40分钟 总分:100分 一.单项选择题(每题3分, ...

  9. 复旦大学python期末考试_关于2019-2020学年第一学期开学有关事项的通知

    复旦教通字[2019]77号 各院系.各位教师.各位同学: 2019-2020学年第一学期将于2019年9月9日开学.为保证开学前后各项教学相关工作有序进行,现就2019-2020学年第一学期开学有关 ...

最新文章

  1. early z optimization
  2. 测试版降级后软件还在么,如果你后悔安装iOS12想降到iOS11?几招教你删除iOS12测试版...
  3. 用SecureCRT实现真机跟虚拟机的文件传输
  4. 5-35 有理数均值 (20分)
  5. ASP.NET画图全攻略(下)
  6. windows下IOS证书制作,IOS证书在线制作
  7. Android 修改阿拉伯语数字显示
  8. YARN——NM重启后的任务恢复
  9. balanced-match 源码解析
  10. unsw计算机科学的挂科率,2020年新南威尔士大学研究生挂科率
  11. 独家!阿里开源自用OpenJDK版本,Java社区迎来中国力量
  12. 学习笔记:Bulletproofs Frozen Heart
  13. Excel公式-文本查找函数
  14. 【洛谷】【模拟+栈】P4711 「化学」相对分子质量
  15. win10蓝牙不能用
  16. video-play使用,vue2
  17. 视频教程-游戏网络编程必备知识-Unity3D
  18. The Shawshank Redemption-12
  19. java中break和continue的用法
  20. 假设检验-单样本比率检验(二项分布)

热门文章

  1. These songs can cheer you up when life gets hard
  2. 十二星座匹配对象_快来看看,准爆了的十二星座恋情分析表
  3. Globally and Locally Consistent Image Completion 实验记录
  4. 上界通配符、下界通配符
  5. 【con】rounded不起作用(前端bug日记3)
  6. 2022京东618预售一般多久才发货啊?几天能收到货?
  7. html5定义页脚的标签,HTML中footer标签的使用方法
  8. $wnd and $doc Calling native JavaScript with JSNI
  9. 【虾神白话空间统计】笔记:置信度、零假设、PZ值、随机分布
  10. mysql容灾方案_mysql 架构 ~异地容灾