【文档说明】《c语言程序设计基础》复习c课件.ppt,共(57)页,270.023 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-44438.html
以下为本文档部分文字说明:
C程序设计复习吉林大学珠海学院目录1.基本要求2.基本内容1.基本要求熟练掌握C语言的基本知识具备基本的C程序设计能力,能熟练地阅读、理解和编制简短的C程序。2.基本内容2.1数据的定义2.2运算及流程控制2.3程序结构和函数2.4数据的输入和输出2.5命令
行参数和编译预处理2.6常用算法2.1数据的定义数据的定义包括数据类型和存储类别1、基本类型基本类型指整型、实型和字符型(主要是int,float,double,char;还包括long,unsigned,short)(1)常量熟练掌握各种表示形式的整数、实数、和字符(串)常量,符
号常量的定义和使用。包括整数的十进制、八进制和十六进制的表示形式、长整型常量的表示形式,实数的浮点表示法和科学记数法,字符的转义序列,常用符号常量的含义(如NULL、EOF等)(2)变量熟练掌握变量的定义和初始化printf(”%x,
%o“,16,10);printf("%d,%o,%x",0x12,12,012);2、构造类型构造类型包括数组和结构体(1)数组熟练掌握一维和二维数组的定义和初始化,数组元素的引用。包括一维字符数组和字符串,二维字符数组和字符串数组数组定义
为inta[3][2]={1,2,3,4,5,6},数组元素a[2][1]的值为6。不正确的赋值或赋初值的方式是______。A、charstr[]="string";B、charstr[7]={'s','t','r','i','n','g'};C、charstr[10];str="string"
;D、charstr[7]={'s','t','r','i','n','g',‟\0‟};表达式strcmp(“box”,“boss”)的值是一个____.A、正数B、负数C、0D、不确定的数#include<stdio.h>inta
[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};voidmain(){ints,k;for(s=0,k=0;k<3;k++)s+=a[k][k];printf("%d--",s);
for(s=0,k=0;k<3;k++)s+=a[k][3-k];printf("%d--",s);for(s=0,k=0;k<4;k++)s+=*(a[1]+k);printf("%d\n",s);}将输入的n
个字符串连接成1个字符串后输出.#include<stdio.h>#include<string.h>voidmain(){charstr[10][20],string[200];intk,n;scanf("%d",&n);for(k=0;k<n;k++)gets(str[k]);str
cpy(string,str[0]);for(k=1;k<n;k++)strcat(string,str[k]);puts(string);}(2)结构体熟练掌握结构体类型的定义,结构体变量的定义和初始化,结构体变量成员的引用。3、指针(1)熟练掌握指针和地址的概念
(2)熟练掌握指针变量的定义和初始化(3)熟练掌握通过指针引用指向实体9aint*pa,a;pa=&a;printf("%d,%d",*pa,a);printf("%x,%x",pa,&a);pa若变量已正确定义并且指针p已经指向某个变量x,则(*p)++相当于_____。A、p+
+B、x++C、*(p++)D、&x++若p1、p2都是整型指针,p1已经指向变量x,要使p2也指向x,_____是正确的。A、p2=p1;B、p2=**p1;C、p2=&p1;D、p2=*p1;下列语句定义pf为指向float类型变量f的
指针,_____是正确的。A、floatf,*pf=f;B、floatf,*pf=&f;C、float*pf=&f,f;D、floatf,pf=f;对于如下说明,语法和语义都正确的赋值是_____。intc,*s,a[]={1,3,5};A、c=*s;B
、s[0]=a[0];C、s=&a[1];D、c=a;4、构造类型和指针类型的混合定义及应用(1)熟练掌握指针、数组和地址间的关系intc[]={1,3,5};int*k=c+1;printf("%d",*++k);charstr[]="hello\tworld\n";print
f("%d,%c\n",sizeof(str),*(str+10));(2)熟练掌握指针数组写出下列程序段的输出结果。char*st[]={"one","two","three","four"};printf("%s\n",*(st+3)+1);(3)熟练掌握结构体数组输入某班50位学生的
姓名及数学、英语成绩,计算每位学生的平均分;然后输出平均分最高的学生的姓名及其数学和英语成绩。#include<stdio.h>#defineSIZE50structstudent{charname[10];intmath,eng;flo
ataver;};voidmain(){structstudents[SIZE];intk,sub=0;for(k=0;k<SIZE;k++){scanf("%s%d%d",s[k].name,&s[k].math,&s[k].eng);s[k].ave
r=(s[k].math+s[k].eng)/2.0}for(k=1;k<SZIE;k++)if(s[k].aver>s[sub].aver)sub=k;printf("%10s%3d%3d\n",s[sub].name
,s[sub].math,s[sub].eng);}(4)熟练掌握结构体指针(5)掌握结构体中含指针或数组(6)掌握嵌套结构(7)掌握指向指针的指针(二级)(8)单向链表掌握单向链表的建立和遍历了解插入和删除单向链表中的一个节点++p->str中的++加在_____。struct{intlen
;char*str;}*p;A、指针str上B、指针p上C、str指的内容上D、以上均不是main(){structst{intx,y;}a[4]={{10,20},{30,40},{50,60},{70,
80}};structst*p=a;printf("%d,",p++->x);printf("%d,",++p->y);printf("%d\n",(a+3)->x);}5、空类型void掌握空类型的定义和使用6、变量的存储类别、作用域
和生存期(1)掌握变量的存储类别auto自动型、static静态型、register寄存器型、extern外部参照型。(2)掌握全局变量和局部变量注意区分:自动局部变量和静态局部变量、全局变量和静态全局变量、外部变量C语言中,形参的缺省的存储类说明是______。A、autoB、st
aticC、registerD、extern对于以下函数f,计算f(f(2))的值。intf(intx){staticintk=0;x+=k++;returnx;}2.2运算及流程控制1、基本运算熟练掌握运算符的功能熟练掌握运算符的优先级、结合性和目数熟练掌握
隐式类型转换和强制类型转换2、表达式熟练掌握各类表达式的组成规则和计算过程()[]->.从左向右!~++---(类型名)*&sizeof从右向左*/%+-<<>><<=>>===!=从左向右&(按位与)^(
按位异或)|(按位或)&&||?:从右向左=+=-=*=/=%=>>=<<=&=^=|=右,从左向右若变量已正确定义且k的值是4,计算表达式(j=k--)后,j和k的值分别是_4,3_。已知字符‘a‟的ASCII码为97,执行下列语句的输出是_98,
a_。printf("%d,%c",‟b‟,‟b‟-1);判断i和j至少有一个值为非0的表达式是_____。A、i!=0&&j!=0B、i||jC、!(i==0||j==0)D、i&&j表达式!x等价于_____。A、x==0B
、x==1C、x!=0D、x!=1若x是单精度实型变量,表达式(x=10/4)的值是_____。A、2.5B、2.0C、3D、2写出下列程序段的输出结果。floatx1,x2;x1=3/2;x2=x1/2;printf(“%d,%.1f
”,(int)x1,x2);(1,0.5)表达式sizeof(“key”)的值是______。A、1B、2C、3D、4staticchars[]="student";printf("%d,%c\n",sizeof(s),*(s+2));若a是整型变量
,表达式~(a^~a)等价于______。A、~aB、1C、0D、2下列运算符中,优先级最低的是_____。A、*B、!=C、+D、=算术运算符、赋值运算符和关系运算符的运算优先级按从高到低的顺序依次为_____。A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算
术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算3、语句(1)熟练掌握表达式语句、空语句、复合语句;(2)熟练掌握简单控制语句break、continue、return(3)熟练掌握选择控制语句if、switch(4)熟练掌握重复控制语句for、while、do—whil
eC语言程序的三种基本结构是顺序结构、选择结构和______结构。A、循环B、递归C、转移D、嵌套写出下列程序段的输出结果。charc,k;c=‟b‟;k=4;switch(c){case„a‟:k=1;case„b‟:k=2;case„c
‟:k=3;}printf("%d\n",k);3写出下列程序段的输出结果。intk,x;for(k=0,x=0;k<=9&&x!=10;k++)x+=2;printf("%d,%d",k,x);5,10输入12345#后,写出下列程序的输出结果。voidmai
n(){charc;for(c=getchar();getchar()!=‟#‟;c=getchar())putchar(c);}13intk;char*s=“ABC”;for(k=10;k!=0;k--);pri
ntf("%d",k);while(*s++)putchar(*s);2.3程序结构和函数1、程序结构熟练掌握main函数与其他函数之间的关系包括标准库函数和自定义函数2、函数的定义(1)熟练掌握函数定义的ANSIC格式(2)熟练掌握函数的参数(形式参数和实在参数)及参数传递,
包括指针作为函数的参数(3)熟练掌握函数的返回值,包括指针作为函数的返回值要调用数学函数时,在#include命令行中应包含_____。A、”stdio.h”B、”string.h”C、”math.h”D、”ctype.h”在C语言程序中,若对函数类型
未加显式说明,则函数的隐含类型是int.intz;voidp(int*x,inty){++*x;y--;z=*x+y+z;printf("%d,%d,%d#",*x,y,z);}voidmain(){intx=1,y
=5,z=9;p(&x,y);printf("%d,%d,%d#",x,y,z);}3、函数的调用(1)函数调用的一般格式熟练掌握通过函数名调用函数,了解通过函数指针调用函数(2)掌握函数的嵌套调用和递归调用intf(intk){return((k<0)?1:f(k-2)
+2);}(3)熟练掌握标准库函数的调用常用数学函数:cos、sqrt、pow、exp、fabs、log、log10等常用字符函数:isalnum、isalpha、isdigit、islower、toupper等常用字
符串函数:strcpy、strcmp、strcat、strlen等输入m和n(m≥n≥0)后,计算下列表达式的值并输出。m!n!(m-n)!要求将计算阶乘的运算写成函数fact(n),函数返回值的类型为float。#include<std
io.h>floatfact(intk);voidmain(){intm,n;scanf("%d%d",&m,&n);printf("%f\n",fact(m)/fact(n)/fact(m-n));}f
loatfact(intk){floaty=1;inti;for(i=2;i<=k;i++)y*=i;returny;}2.4数据的输入和输出1、文件熟练掌握文件的基本概念2、标准文件的输入和输出熟练掌握常用输入输出函数:scanf、printf、getchar、putchar、
gets、puts等3、缓冲文件系统(文本文件)(1)熟练掌握文件的打开和关闭常用函数:fopen和fclose(2)熟练掌握文件的基本读写操作常用函数:fscanf、fprintf、fgetc、fputc、fgets、fputs等(3)熟练
掌握文件的状态检测常用函数:feof等统计当前目录下文本文件data.txt中字符’$’出现的次数,并将统计结果写入当前目录下的文本文件res.txt。#include<stdio.h>voidmain(){FILE*fp1,*fp2;charch;intcount=0;if(
(fp1=fopen("data.txt","r"))==NULL){printf("不能打开文件data.txt!\n");exit(0);}if((fp1=fopen("res.txt","w"))==NULL){printf("不能打开
文件res.txt!\n");exit(0);}while((ch=fgetc(fp1))!=EOF)if(ch==‟$‟)count++;fprintf(fp2,"%d",count);fclose(fp1);fclose(fp2);}2.5命令行参数和编译预处理1、命
令行参数(argc、argv)的说明、含义和使用。执行程序find–nxouldtext.txt时,*++argv[1]的值是_______。2、熟练掌握编译预处理的基本概念3、掌握宏定义4、掌握文件包含写出下列程序段的输出结果。#defineT16#defineS(T+1
0)-7printf("%d\n",S*2);2.7常用算法以下算法针对本大纲中列出的各种数据结构1、分类(排序)算法冒泡、选择、插入2、检索(查找)算法(1)无序数据序列的查找(见遍历算法)(2)有序数据序列的查找:二分法3、遍历算法(1)一维数组和二维数组的遍历(2)文件
的遍历4、其它基本算法