一、 题型
1、单项选择题(每小题2分,共40分) 2、判断题(每小题1.5分,共15分) 3、填空题(每空1分,共15分)
4、阅读程序写结果题(每小题5分,共30分)
二、基本概念
1.算法(p17广义定义)
2.C语言程序的构成(p10函数)
3.C语言的三种基本结构(p26.顺序、选择、循环) 4.C程序运行步骤
过程(p12-13编辑、编译、连接、执行) 文件扩展名(源程序为 .c ,编译后生成文件为.obj,连接后生成文件为.exe) 5.C语言程序的书写规范: C语言区分大小写
一条语句可以写成多行 每条语句以“;”结束 6.关于main函数(p11)
main函数是程序的执行入口。
main函数可以写在任何位置,与程序编写的位置无关。 7.变量
变量名(标识符)的命名规则(p42,注意,以字母或下划线开头) 先定义,后使用 初始化。(如果不给变量赋值,是随机值) 8.常量
字符常量,字符串常量(p39,定界符的区别) 字符常量的转义符表3.1(p40) 9.注释语句 两种格式: /*…
*/ //
10.C语言中的简单数据类型(p43) 三种基本类型:整型、实型、字符型
字符型以ASCII存储,可以作为整型来处理。例如:’a’+2合法。 11.字符串的特性(p154-160), 计算内存字节数 结束标志 赋初值方式
不能“=”赋值,。
例:s中存放一字符串,赋初值方式有:
char *s;s=\" china \"; char s[20];s=\" china\"; char s[20]={'c','h','i','n','a'}; 12.结构体:定义(p294),结构体变量所占字节计算(p295),结构体成员的引用(p298,304)。
例:p是结构体指针变量,访问该结构体成员name的用法有:(*p).name,p->name。
13.链表(p309):定义。注意,链表不是结构体数组类型!
三、基础应用 1.常用函数:
输入输出函数scanf(),printf()中的格式符使用。(p69-77) 字符输入、输出函数putchar(),getchar()。(p78-80) 字符串函数strlen(),strcpy(),…。(p161-164)
2.类型转换
强制转换(p56):例 (int)(11.3)/2=。 自动转换:例 int a; a=11.3/2a的值为。
3.数组:
数组的定义
数组的大小与下标 数组的初始化 例:
1)int a[10]的最小下标和最大下标。(0,9)
2)如果int a[10]={1,2,3,4,5,6,7,8,9,10},*P=a;那么数值为6的表达式是。 3)char a[]=\"word\"; char *p; p=a;
*(p+1)的值是。 *(++p)的值是。
4)数组声明:int a[][3]={{1,2,3},{4,5},{6}};第一维大小是几? 5)数组的引用:int a[2][3];则对数组元素引用不正确的有?
4.数据类型
常用数据类型的字节数:int,char,float,double 计算数据类型的字节数:sizeof(…) 例:
1)sizeof(int)+sizeof(char)*8+sizeof(double)*2=。 2)struct teacher {intnum;
char name[10]; char sex;
float score; }t;
则变量t所占用的内存字节数是。 3)struct student { intnum; float score[3]; } wang,zhang;
则变量wang所占用的内存字节数是。
5.表达式运算 x/y,x%y
x++,x--,++x,--x x+=a,x-=a,x*=a
a=b=c=6; 其值是6。
关系、逻辑式:a 1)a=(2/5)+3%2;a的值为。 2)a=(3 * 3)+ 2 % 3; a的值为。 3)已知a=5,求a=b=c=(a*=6)的值为。 4)45/2+(int)(5.4/2)=。 5)int a=0,y=10; if(a==0) y--; else if(a>0) y++; else y+=y; y的值是。 6)a为整型变量,10<a<15的C语言表达式的写法有: 6.基本语句 嵌套if语句,else语句的配对 循环语句的执行次数 break语句 continue语句 函数返回值的类型与return语句中的表达式类型 例: 1) a=b=c=0; x=35; if(!a) x--; else if(b); if(c) x=3; else x=4; y的值是。 2)inti,sum=2; for(i=1;i<=2;i+=2) sum+=i; } 后变量sum的值是。 四、程序填空练习题 1.以下程序要实现:输入5个数,求和并输出,要求编写求和的函数。请填空完成程序。 #include int sum=0; int a[5]={1,2,3,4,5}; printf(\"sum=%d\\n\ return 0; } int b(int x[],int n) { inti,sum=0; for(i=0;i<5;i++) sum=sum+x[i]; return sum; } 2.输入3个学生4门课的成绩{(60,70,65,75),(75,80,75,90),(95,75,90,65)},计算每个学生的总分和平均成绩并输出,结果保留两位小数。填空完成程序。 #include int a[3][4]={{60,70,65,75},{75,80,75,90},{95,75,90,65}}; inti,j; printf(\"三个学生的总分和平均成绩依次为:\\n\"); for(i=0;i<3;i++) { sum=0.0; for(j=0;j<4;j++) average=sum/4; printf(\"\ } } 3.请根据主程序中函数调用情况,写一个成绩函数char grade(float x),对于给定的一个百分制成绩x,要求返回其相应等级‘A’、‘B’、‘C’、‘D’、‘E’。90分 以上为‘A’,80~90分为‘B’,70`~79为‘C’,60~69为‘D’,60以下为‘D’。 填空完成程序。 #include char grade(float x) { char c; switch((int)x/10) { case 10: case 9:c=’A’;break; case 8: case 7:c=’C’;break; case 6: default:c=’E’; } return c; } 4. 以下程序的功能是求某整数的各个位数并输出。填空完成程序。 #include intm,num; scanf(\"%d\ while(m) { num= printf(\"%d\ } return 0; } 五、读程序写结果练习题 1. 下列程序执行后的输出结果是 #include int a=5,b=60,c; if (a{c=a*b;printf(\"%d*%d=%d\\n\else {c=b/a;printf(\"%d/%d=%d\\n\return 0; } 2. 运行下面程序时,若从键盘输入\"3,5 int x,y; scanf(\"%d,%d\if (x==y) printf(\"x==y\"); else if (x>y) printf(\"x>y\"); else printf(\"x 3. 运行下面程序时,从键盘输入字母H,则输出结果是 #include charch; ch=getchar( ); switch(ch) { case 'H':printf(\"Hello!\\n\"); case 'G':printf(\"Good morning!\\n\"); default:printf(\"Bye_Bye!\\n\"); } return 0; } 4. 程序输出结果为 #include intfunc(int a , int b) { c=a*b+c; a=b+c; b++;b++; return (a+b+1); } int main( ) { int b=2,p=1,c=0; p=func(b,a); printf(\"%d,%d,%d,%d\\n\} 5.程序输出结果为 #include chara,b; }; int main() { struct info s[2]={{'a','b'},{'e','f'}}; int t; t=(s[0].a-s[1].a)+(s[1].a-s[0].b); printf(\"%d\\n\ return 0; } 6.程序输出结果为 #include intnum[9]={1,2,3,4,5,6,7,8,9},*p; p=num; printf(\"%d,%d\\n\ return 0; } 7.程序输出结果为 #include int a[3][3]={{1,3},{2,6},{3,7}}; a[0][2]=a[0][1]+a[2][1]; printf(\"%d%d%d\\n\ return 0; } 8.程序输出结果为 #include int a[6]={3,4,16, 4}; int b[6]={27,13,4,25,23},i,j; for(i=0;i<6;i++) { for(j=0;j<6;j++) if(a[i]==b[j]) break; if(j<6) printf(\"%d \ } printf(\"\\n\"); return 0; } 因篇幅问题不能全部显示,请点此查看更多更全内容