您的当前位置:首页正文

C理论复习

2022-08-23 来源:步旅网
C语言复习

一、 题型

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=10,x<-1;或x不等于a;或x等于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 main() {

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 void main() {

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 int main() { float x; char ch; scanf(“%f”,&x); printf(“%c”,ch); return 0; }

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 int main() {

intm,num;

scanf(\"%d\ while(m) { num= printf(\"%d\

} return 0; }

五、读程序写结果练习题

1. 下列程序执行后的输出结果是

#include intmain( ) {

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\",则程序的输出结果是 #include int main( ) {

int x,y;

scanf(\"%d,%d\if (x==y)

printf(\"x==y\"); else if (x>y) printf(\"x>y\"); else

printf(\"xreturn 0; }

3. 运行下面程序时,从键盘输入字母H,则输出结果是

#include int main( ) {

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 intc,a=4;

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 struct info {

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 int main() {

intnum[9]={1,2,3,4,5,6,7,8,9},*p; p=num;

printf(\"%d,%d\\n\ return 0; }

7.程序输出结果为 #include int main() {

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 main( ) {

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; }

因篇幅问题不能全部显示,请点此查看更多更全内容