《C语言程序设计》复习 2011.6.22
考试题型 单选题(共20分,每小题2分) 判断题(共10分,每小题1分) 程序填空题(共20分,每空2分) 程序阅读题(共30分,每小题5分) 程序设计题(共20分,每小题10分)
第3章 顺序结构 1.运算符: 算术运算(+ - * / %)、(++ --)、 , 、= …… 2.输入|输出格式: 算术运算(+ - * / %)、(++ --)、 , 、= …… 2.输入|输出格式: %d, %ld, %f, %lf, %c, %s 3.赋值语句 程序的三种基本结构:顺序、选择、循环
[05秋程序设计2]输出一张摄氏一华氏温度转换表,摄氏温度的取值区间是[-1000 C,1500C ],温度间隔50C。要求定义和调用函数 ctof(c),将摄氏温度C转换成华氏温度F,计算公式: # include <stdio.h> float ctof(int c) { float f; f=32+c*9.0/5; return f; } main( ) { float ctof(int c); int j, for(j=-100;j<=150;j=j+5;) printf(“c=%d->f=%f”, j, ctof(j)); float ctof(int c)//下载 {float f; f=32+c*9/5; return f; } main( ) { float ctof(int c); int j, for(j=-100;j<=150;j=j+5;) printf(“c=%d->f=%f”,j, ctof(j));
第4章 选择结构 1.条件 字母、数字字符、 0≤x<10 关系表达式 、逻辑表达式 x!=0 ~ x p!=NULL ~ p 2.逻辑值:真、假 1、0表示; 非0、 0 真、假 3.if语句:if (表达式) 语句1 嵌套,if~else配对 [ else 语句2 ] 4.switch语句: case、break
[05春]试题五、程序设计题 1.输入x ,计算并输出下列分段函数 f(x) 的值。可以调用数学库函数:平方根函数sqrt(),绝对值函数fabs() 和幂函数 pow()。 # include <stdio.h> # include <math.h> main( ) { int x,y; if(x<0) y=fabs(x); else if(x<2) y=sqrt(x+1); else if(x<4) y=pow(x,3); else y=2*x+5; printf(“%d”,y); } # include <math.h> main( ) {int x.y; if(x<0) y=fabs(x); else if(x<2) y=sqrt(x+1); else if(x<4) y=pow(x,3); else y=2*x+5; printf(“%d”,y); }
第5章 循环结构 1.三种循环语句:while 、for、do-while 注意区别 2.break/continue for(i=1;i<10;i++) { if(i==5) break; //改为continue print(“%d,” i); } 3.循环嵌套
P131例 用/4=1-1/3+1/5-1/7+…… 求的近似值,直至最后一项的绝对值小于10-6为止 #include <stdio.h> #include <math.h> main() { int s; float n,t,pi; t=1,pi=0;n=1;s=1; while (fabs(t)>1e-6) /*用do-while效果相同?*/ { pi=pi+t; n=n+2; s=-s; t=s/n; /*t为下一累加项*/ } pi=pi*4; printf("pi=%10.6f\n",pi);
第6章 数组 1. 数组的定义、初始化(一维|二维) 2.数组元素引用:下标法、指针法 数组名:指针常量(一级、二级) 3.数组的输入|输出 4.串 实现:字符数组+‘\0’ 特点:既可整体操作,又可逐个元素引用 串操作: gets() 、puts()、strlen()、strcpy()、strcmp()等
三种排序算法 /*1.冒泡法排序*/ for(i=0; i<N-1; i++) /*N-1趟*/ for(j=0; j<N-i-1; j++) /*每趟的比较N-i次*/ if(a[j]>a[j+1]) { temp=a[j]; a[j]=a[j+1]; a[j+1]=temp; } /*2.选择排序*/ for(i=0; i<N-1; i++) for(j=i+1; j<N; j++) if(a[i]>a[j]) { temp=a[i]; a[i]=a[j]; a[j]=temp; /*3. 改进的选择排序*/ for(i=0; i<N-1; i++) { k=i; for(j=i+1; j<N; j++) if(a[k]>a[j]) k=j; if(k!=i) {t=a[k]; a[k]=a[i];a[i]=t; } }
第7章 函数 1.定义、声明、调用 2.参数传递:简单变量、数组、指针 3.变量作用域 4.函数分类:有|无返回值 5.指针作参数
[08秋试题3 ] :输入10个整数,将它们从大到小排序后输出。 #include <stdio.h> (9) . void sort( (10) ) { int i,index,k,t; for(k=0;k<n-1;k++) { index=k; for(i=k+1;i<n;i++) if(a[i]>a[index])index=i; (11) } void swap(int *x,int *y) { int t; t=*x;*x=*y;*y=t; main() { int i,a[10]; printf("Enter 10 integers:"); for(i=0;i<10;i++) scanf("%d",&a[i]); (12) ; printf("After sorted:"); printf("%d ",a[i]); printf("\n"); }
【供选择的答案】 (9)A、void swap(int x,int y) B、void swap(int *x, y); C、void swap(int *x,int *y); D、void swap(int *x, *y); 答案C (10)A、int &a,int n B、int *a,int *n C、int *a,int n D、int a,int *n 答案C (11)A、swap(*a[index],*a[k]) B、swap(a[index],a[k]) C、swap(index,k) D、swap(&a[index],&a[k])答案D (12)A、sort(a) B、sort{a[10]} C、sort(a[],10) D、sort(a,10) 答案D
指针:指针与数组、结构体、函数组合 结构体 文件 头文件包含 宏定义:符号常量
基本算法: 求max|min 求累加和|平均值 数字|字符图形 判别素数 排序(三种方法) ……