自考计算机基础与程序设计_习题课1

上传人:ths****59 文档编号:57201458 上传时间:2018-10-20 格式:PPT 页数:36 大小:3.45MB
返回 下载 相关 举报
自考计算机基础与程序设计_习题课1_第1页
第1页 / 共36页
自考计算机基础与程序设计_习题课1_第2页
第2页 / 共36页
自考计算机基础与程序设计_习题课1_第3页
第3页 / 共36页
自考计算机基础与程序设计_习题课1_第4页
第4页 / 共36页
自考计算机基础与程序设计_习题课1_第5页
第5页 / 共36页
点击查看更多>>
资源描述

《自考计算机基础与程序设计_习题课1》由会员分享,可在线阅读,更多相关《自考计算机基础与程序设计_习题课1(36页珍藏版)》请在金锄头文库上搜索。

1、,2008年1月高等教育自学考试,共 26 页 第 2 页,习题课,第一题 单项选择 15个,30分 主要考察基础 第一章 计算机基础 3个 第二章 c语言概述 0-1个 第三章 数据类型,常量变量,表达式运算 3-4个 第四章 输入输出语句 1个 第五章 选择结构和循环结构 1-2个 第六章 数组1个 第七章 函数1个 第八章 指针 1个 第九章 结构体1个 第十章 位运算与预处理 1个,共 26 页 第 3 页,习题课,第二题 填空题 5个,10分 主要考察基础,第三章 表达式运算 1个 第四章 输入输出语句 2个 第六章 数组1个 第十章 预处理 1个,共 26 页 第 4 页,习题课,

2、第三题 程序填空题 3个,12分,第五章 循环 1个 第六章 数组1个 第十一章 文件 1个,共 26 页 第 5 页,习题课,第四题 程序分析题,写程序运行结果 5个,30分,第五章 选择结构 1个 第六章 循环和数组 ,2个 函数 第八章 字符数组+指针1个 第十章 预处理的宏定义 1个,主要考察读程序能力,共 26 页 第 6 页,习题课,第五题 程序设计题 2个,18分,第五章 循环 1个 第六章 数组 1个,主要考察编写程序能力,共 26 页 第 7 页,习题课,程序分析和编写程序的题目 基本是书上例题和书后作业的原题或者变形 重点看这些,前面的基础题目 :表达式运算 比较重要 后面

3、的读程和写程题:数组,循环,条件,指针,宏定义,共 26 页 第 8 页,习题课,-2 求补码 1)求原码 (十进制二进制 除2求余) 2结果 0000 0010 2)按位求反 1111 1101 3)末尾加1 1111 1110,.0,1,2,2,0,.1,二进制-八进制,十六进制间的转换,共 26 页 第 9 页,习题课,计算机的组成: 运算器,控制器,存储器,输入和输出设备=主机+外设 CPU? 主机? 外设?,共 26 页 第 10 页,习题课,系统软件,操作系统,其他系统软件,程序设计语言和语言处理程序(语言编译和解释系统),数据库管理系统,网络软件系统,系统服务程序,共 26 页

4、第 11 页,2-2 C语言的特点,语言简练,使用方便,灵活 仅有32个关键字 9种控制语句 书写格式自由,限制少 表达能力强 运算符丰富(13种40多个) 数据类型丰富 访问物理地址和进行位运算 结构化 目标代码质量高,程序执行效率高 可移植性好,运算符间的优先级,1)算术运算符,5%2,5/2,5.0/2,2)自增,自减运算符,举例:y=+a; 等价 a=a+1; y=a; a先加1再赋值y=a+; 等价 y=a; a=a+1; a先赋值再加1,运算符间的优先级,3)赋值运算符 =,复合赋值运算符,举例:a+=b 等价 a=a+b,1)改变变量的值 a=1 2)整个赋值表达式的值 是被赋值

5、变量的值 (a=1),e1 op= e2 等价于:e1=e1 op (e2),运算符间的优先级,4) 关系运算符,成立,结果是1, 不成立,结果是0,举例:52 1,区分 =与= 举例: int a; a=2 ;与 a=2的区别,运算符间的优先级,5) 逻辑运算符,分量是0,结果是1,举例:3&0 , 3|0 , !0,注意: 1|表达式 右边这个表达式不再计算 0&表达式 右边这个表达式不再计算,逗号运算符与逗号表达式,6)逗号运算符,表达式格式:表达式1,表达式2,表达式n例如3+5,6+8 执行过程:是先执行表达式1,再执行表达式2,依次执行下去,最后求表达式n的值整个表达式的值是表达式

6、2的值例如:a=3*5,a*4的值?,60,7)条件运算符,例: (ab) ? a : b;,运算符间的优先级,() 括号 改变表达式中的优先级关系 单目运算符 +;-;!;-(负) 算术运算符 *;/;% +;- 关系运算符 ;=;b?a:b a+=1 a=2,a+2,共 26 页 第 18 页,字符常量,3-1介绍基本数据类型、常量与变量,字符常量用一对单引号括起来的一个字符例如:a ,A ASCLL码:一个字符对应一个数值(0255)记住:A-65 B-66 a-97,整数/整数 结果仅保留整数 举例:5/2=2,共 26 页 第 19 页,字符型常量-字符常量,字符常量 分为1.可显示

7、字符:az,09等,原样输出2.转义字符:打头的字符 *:不是原样输出,而是各自表示一定控制意义 例如: n 回车换行0 字符串结束 *:ddd,八进制数ddd对应的ASCLL字符 例如:101 -Axhh,十六进制数hh对应的ASCLL字符 例如:x41 -A,3-2各种类型的常量,字符类型是char,占一个字节,注意: 1)输入格式中,如果有非格式字符,必须原样输入,4-4 格式输入语句,scanf (“a=%d,b=%d“, 输入序列:a=123,b=45ENTER 结果:x=123,y=45,逗号运算符与逗号表达式,1)逗号运算符,2)表达式格式:表达式1,表达式2,表达式n例如3+5

8、,6+8 3)执行过程:是先执行表达式1,再执行表达式2,依次执行下去,最后求表达式n的值整个表达式的值是表达式2的值例如:3+5,6+8 的值是14 a=3*5,a*4的值? (a=3*5,a*4),a+15的值?,60,30,2.二维数组元素的初始化,6-3 二维数组,1)将所有数据写在一个内,按顺序赋值例:int a34=1,2,3,4,5,6,7,8,9,10,11,12;2)按行给数组元素赋初值例:int a34=1,2,3,4,5,6,7,8,9,10,11,12;3)按行对部分元素赋初值例:static int a34=1,0,6,0,0,11;4)给所有元素赋初值时,可以省略第

9、一维的长度,但不能省第二维 例:static int a4=1,2,3,4,5,6,7,8,9,10,11,12;,在定义数组时,给数组赋予一个初始值,2.二维数组元素的初始化,6-3 二维数组,例:static int a3=1,2,3,4,5,6;static int a33=1,2,3,4,5,6;,在定义数组时,给数组赋予一个初始值,7-3 函数的调用,函数的返回值:,int getmax(int x,int y) return(max); main() max=getmax(a,b);printf(“max=%d”,max);,注意: 1)返回值的类型与函数定义时返回值的类型一致 如

10、果不一致,自动将返回值转换为函数定义时的类型值,再返回 2)如果不需要返回数据(函数定义时是void),可以没有return语句 3)一个函数可以有多个return语句,执行到哪个return语句,哪个return语句就起作用,返回语句有下列两种形式:,return (表达式); return 表达式;,C语言,函数的返回值是通过函数中的return语句获得.,void f1() printf(“*”);,6 数组,打印100999内的水仙花数 水仙花数指一个三位数,其各位数字的立方和等于该 数本身,重点:将每一位都拆分出来,main() int i,x1,x2,x3;for(i=100;i=

11、999;i+)x1=i%10;x2=i/10%10;x3=i/100; if(x1*x1*x1+x2*x2*x2+x3*x3*x3=i)printf(“%dn”,i); ,循环:100-900,N=(个位)3+ (十位)3+(百位)3,数据结构:int i,x1,x2,x3;,i=100; While(i=999) i+; ,排序算法:将无序的数,排成有序数的算法例如: 9 8 4 5 2 0 0 2 4 5 8 9 冒泡排序:两两比较,较大数放在后,较小的数往上冒,数组的应用,一共6个数,第一轮需要比较5次,一轮过后,最大的数沉底,按照这种方法可依次得到第二轮、第三轮的冒泡结果 第二轮过后,

12、将第二大的数放在倒数第二位置,数组的应用,第1轮结果,第2轮结果,第3轮结果,第4轮结果,第5轮结果,一共N(6)个数,需要比较m(N-1=5)轮 每轮比较(N-m)次:第1轮比较5次,第2轮比较4次.,第5轮比较1次,数据结构 采用一维数组,在不断的两两比较过程中,调整各元素的位置即可。,程序设计 双重循环 用外层循环控制冒泡的轮数m为 N-1(6-1) 次 用内层循环来控制在第m轮冒泡过程中需要进行的大小比较次数为 N-m(6-m)次;,程序实现要点,6-2 数组应用举例-排序问题,输出6个数,从键盘任意 输入6个数,main() int a6;int i,m,t,n; printf(“i

13、nput numbers (N=6):n“); for (n=0;nai+1)t=ai; ai=ai+1; ai+1=t; printf(“the sorted numbers:n“); for(n=0;n10;n+) printf(“%d“,an); ,6-2 数组应用举例-排序问题,轮,数组的应用,main() float x,y;scanf(“%f”, ,例: 输出100以内的素数?,判断素数:让数x依次被2(x-1)除,如果出现整除现象,则不是素数;如果一次都未被整除是素数 数学证明:如果数x只要在2 范围内没有出现整除现象,就是素数. 例如:判断16,只要判断2-4之间,素数:只能被

14、1和本身整除的数100以内的素数: 2 3 5 7 11 13 17 19 23 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97,外循环 i: 2100 内循环 j: 2-sqrt(i),循环体:If(i%j=0)break;,例: 输出100以内的素数?,#include “math.h” main() int n,j,k;for(n=2;nk)printf(“%4d”,n); ,数组的应用,#include “math.h” void plus(int a,int n) int m,k,t;for(m=0;mk)printf(“%5d”,am); main() int b10=8,7,12,17,5,13,10,19,6,23;plus(b,10); ,数组的应用,main() int k,t,j;for(k=1;k=k;j-)printf(“#”);for(t=1;t=k-1;t+)printf(“*”); ,K=1j=4 to 1 输出#t=1 to 0 输出* K=2 j=4 to 2 输出#t=1 to 1 输出* K=4,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号