浙江大学C颜晖原版复习C_第1页
浙江大学C颜晖原版复习C_第2页
浙江大学C颜晖原版复习C_第3页
浙江大学C颜晖原版复习C_第4页
浙江大学C颜晖原版复习C_第5页
已阅读5页,还剩52页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

程序设计基础复习浙江大学计算机学院颜晖.6.9杭州第1页目录1.基本要求2.基本内容第2页1.基本要求熟练掌握C语言基本知识具备基本C程序设计能力,能熟练地阅读、了解和编制简短C程序。第3页2.基本内容2.1数据定义2.2运算及流程控制2.3程序结构和函数2.4数据输入和输出2.5命令行参数和编译预处理2.6惯用算法第4页2.1数据定义数据定义包含数据类型和存放类别1、基本类型基本类型指整型、实型和字符型(主要是int,float,double,char;还包含long,unsigned,short)第5页(1)常量熟练掌握各种表示形式整数、实数、和字符(串)常量,符号常量定义和使用。包含整数十进制、八进制和十六进制表示形式、长整型常量表示形式,实数浮点表示法和科学记数法,字符转义序列,惯用符号常量含义(如NULL、EOF等)第6页(2)变量熟练掌握变量定义和初始化printf(”%x,%o“,16,10);printf("%d,%o,%x",0x12,12,012);printf("%d,%d\n",NULL,EOF);第7页2、结构类型结构类型包含数组和结构(1)数组熟练掌握一维和二维数组定义和初始化,数组元素引用。包含一维字符数组和字符串,二维字符数组和字符串数组第8页数组定义为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、不确定数第9页#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);

第10页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);}

第11页将输入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]);strcpy(string,str[0]);for(k=1;k<n;k++)strcat(string,str[k]);puts(string);}第12页(2)结构熟练掌握结构类型定义,结构变量定义和初始化,结构变量组员引用。第13页3、指针(1)熟练掌握指针和地址概念(2)熟练掌握指针变量定义和初始化(3)熟练掌握经过指针引用指向实体9aint*pa,a;pa=&a;printf("%d,%d",*pa,a);printf("%x,%x",pa,&a);pa第14页若变量已正确定义而且指针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;第15页以下语句定义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;第16页4、结构类型和指针类型混合定义及应用(1)熟练掌握指针、数组和地址间关系intc[]={1,3,5};int*k=c+1;printf("%d",*++k);charstr[]="hello\tworld\n";printf("%d,%c\n",sizeof(str),*(str+10));第17页(2)熟练掌握指针数组写出以下程序段输出结果。char*st[]={"one","two","three","four"};printf("%s\n",*(st+3)+1);第18页(3)熟练掌握结构数组输入某班50位学生姓名及数学、英语成绩,计算每位学生平均分;然后输出平均分最高学生姓名及其数学和英语成绩。#include<stdio.h>#defineSIZE50structstudent{charname[10];intmath,eng;floataver;};第19页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].aver=(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);}

第20页(4)熟练掌握结构指针(5)掌握结构中含指针或数组(6)掌握嵌套结构(7)掌握指向指针指针(二级)(8)单向链表掌握单向链表建立和遍历了解插入和删除单向链表中一个节点第21页++p->str中++加在_____。struct{intlen; char*str;}*p;A、指针str上B、指针p上C、str指内容上D、以上均不是第22页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);}第23页5、空类型void掌握空类型定义和使用第24页6、变量存放类别、作用域和生存期(1)掌握变量存放类别auto自动型、static静态型、extern外部参考型(2)掌握全局变量和局部变量注意区分:自动局部变量和静态局部变量、全局变量和静态全局变量、外部变量第25页C语言中,形参缺省存放类说明是______。A、autoB、staticC、registerD、extern第26页对于以下函数f,计算f(f(2))值。

intf(intx){staticintk=0;x+=k++;returnx;}第27页2.2运算及流程控制1、基本运算熟练掌握运算符功效熟练掌握运算符优先级、结合性和目数熟练掌握隐式类型转换和强制类型转换2、表示式熟练掌握各类表示式组成规则和计算过程第28页()[]->.!~++---(类型名)*&sizeof从右向左*/%+-<<>><<=>>===!=&(按位与)^(按位异或)|(按位或)&&||?:右=+=-=*=/=%=>>=<<=&=^=|=右,

第29页若变量已正确定义且k值是4,计算表示式(j=k--)后,j和k值分别是_____。已知字符‘a’ASCII码为97,执行以下语句输出是_____。printf("%d,%c",’b’,’b’-1);第30页判断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第31页若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);第32页表示式sizeof(“key”)值是______。A、1B、2C、3D、4staticchars[]="student";printf("%d,%c\n",sizeof(s),*(s+2));若a是整型变量,表示式~(a^~a)等价于______。A、~aB、1C、0D、2表示式(7<<1>>2^2)值是_______。

第33页以下运算符中,优先级最低是_____。A、*B、!=C、+D、=算术运算符、赋值运算符和关系运算符运算优先级按从高到低次序依次为_____。A、算术运算、赋值运算、关系运算B、关系运算、赋值运算、算术运算C、算术运算、关系运算、赋值运算D、关系运算、算术运算、赋值运算第34页3、语句(1)熟练掌握表示式语句、空语句、复合语句;(2)熟练掌握简单控制语句

break、continue、return(3)熟练掌握选择控制语句if、switch(4)熟练掌握重复控制语句

for、while、do—while第35页C语言程序三种基本结构是次序结构、选择结构和______结构。A、循环B、递归C、转移D、嵌套第36页写出以下程序段输出结果。

charc,k;c=’b’;k=4;switch(c){

case‘a’:k=1;case‘b’:k=2;case‘c’:k=3;}printf("%d\n",k);第37页写出以下程序段输出结果。intk,x;for(k=0,x=0;k<=9&&x!=10;k++)x+=2;printf("%d,%d",k,x);第38页输入12345#后,写出以下程序输出结果。voidmain(){charc;for(c=getchar();getchar()!=’#’;c=getchar())putchar(c);

}intk;char*s=“ABC”;for(k=10;k!=0;k--);printf("%d",k);while(*s++)putchar(*s);第39页2.3程序结构和函数1、程序结构熟练掌握main函数与其它函数之间关系包含标准库函数和自定义函数第40页2、函数定义(1)熟练掌握函数定义ANSIC格式(2)熟练掌握函数参数(形式参数和实在参数)及参数传递,包含指针作为函数参数(3)熟练掌握函数返回值,包含指针作为函数返回值第41页要调用数学函数时,在#include命令行中应包含_____。A、”stdio.h”B、”string.h”C、”math.h”D、”ctype.h”在C语言程序中,若对函数类型未加显式说明,则函数隐含类型是int.第42页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);}第43页3、函数调用(1)函数调用普通格式熟练掌握经过函数名调用函数,了解经过函数指针调用函数(2)掌握函数嵌套调用和递归调用第44页

intf(intk){return((k<0)?1:f(k-2)+2);}第45页(3)熟练掌握标准库函数调用惯用数学函数:cos、sqrt、pow、exp、fabs、log、log10等惯用字符函数:isalnum、isalpha、isdigit、islower、toupper等惯用字符串函数:strcpy、strcmp、strcat、strlen等第46页输入m和n(m≥n≥0)后,计算以下表示式值并输出。

m!n!(m-n)!要求将计算阶乘运算写成函数fact(n),函数返回值类型为float。第47页#include<stdio.h>floatfact(intk);voidmain(){intm,n;scanf("%d%d",&m,&n);printf("%f\n",fact(m)/fact(n)/fact(m-n));}第48页floatfact(intk){floaty=1;inti;for(i=2;i<=k;i++)y*=i;returny;}第49页2.4数据输入和输出1、文件熟练掌握文件基本概念2、标准文件输入和输出熟练掌握惯用输入输出函数:scanf、printf、getchar、putchar、gets、puts等第50页3、缓冲文件系统(文本文件)(1)熟练掌握文件打开和关闭惯用函数:fopen和fclose(2)熟练掌握文件基本读写操作惯用函数:fscanf、fprintf、fgetc、fputc、fgets、fputs等(3)熟练掌握文件状态检测惯用函数:feof等第51页统计当前目录下文本文件data.txt中字符’$’出现次数,并将统计结果写入当前目录下

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论