C语言复习总结要点.docx

上传人:b****8 文档编号:9178180 上传时间:2023-02-03 格式:DOCX 页数:26 大小:23.97KB
下载 相关 举报
C语言复习总结要点.docx_第1页
第1页 / 共26页
C语言复习总结要点.docx_第2页
第2页 / 共26页
C语言复习总结要点.docx_第3页
第3页 / 共26页
C语言复习总结要点.docx_第4页
第4页 / 共26页
C语言复习总结要点.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

C语言复习总结要点.docx

《C语言复习总结要点.docx》由会员分享,可在线阅读,更多相关《C语言复习总结要点.docx(26页珍藏版)》请在冰豆网上搜索。

C语言复习总结要点.docx

C语言复习总结要点

C语言学习要点:

第三章

合法的标识符命名规则。

各种运算符的语法,优先级结合性。

转义字符。

输入输出概念,输入时候的分隔符,常用的输入输出格式

第四章选择

if语句switch语句

if(x=***)if(x==***)的区别

break跳出一层不能多层

第五章循环

几种循环语句要熟悉使用方法,循环嵌套

第六章数组

数组定义使用

二维数组输入输出的方法!

起泡法排序(又叫冒泡法)

字符串的灵活使用,编程的时候灵活处理

第七章函数

函数基本概念

函数原型---构造一个函数,解决一个问题

函数递归:

求阶乘,Fibonacci数列,猴子吃桃等类似的递归数列的第n项。

数组名作参数的题目

选择法排序

全局变量局部变量存储类别

局部变量对全局变量的屏蔽

被调函数里static类型的变量的值

第八章指针

灵活使用简单指针变量,即int*p;float*p;char*p;等等。

所学的所有有关指针变量的定义记住

第九章结构体和共用体

基本概念链表的操作的关键语句

第十章文件

基本概念打开关闭文件,常用的几个输入输出函数

算法:

起泡法排序,选择法排序,杨辉三角,求素数方法,最大公约数和最小公倍数方法,一维数

组的最大值,最小值平均值或求和等,二维数组的输入输出,求各种值,特殊二维数组的填充,矩

阵转置等等。

对一维数组的操作,如逆序存放,按指定要求的操作。

字符串:

逆序存放,大小写,求长度,复制,连接,等等指定的某种操作(灵活)

字符串一维数组的灵活操作,会用函数完成。

按题目的要求,用函数完成处理过程。

关系到算法的题目:

编写程序29分。

程序填空20分。

读程序也有关系,21分。

选择题,一般是基本概念。

模拟题A(闭卷考试)

一、选择题(每题2分,共20分)

1、以下不正确的C语言标识符是。

A.ABCB.abcC.a_bcD.ab.c

2、已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:

intk,a,b;

unsignedlongw=5;

doublex=1.422;

A.k=(a=2,b=3,a+b)B.w+=-2C.x%(-3)D.a+=a=+(b=4)*(a=3)

3、下述for循环语句。

inti,k;

for(i=0,k=-1;k=1;i++,k++)printf("****");

A.判断循环结束的条件非法B.一次也不循环

C.只循环一次D.是无限循环

4、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是。

A.5B.4C.2D.1

5、在C语言程序中,以下描述正确的是。

A.函数的定义和函数的调用均不可以嵌套

B.函数的定义和函数的调用均可以嵌套

C.函数的定义不可以嵌套,但函数的调用可以嵌套

D.函数的定义可以嵌套,但函数的调用不可以嵌套

6、如果在一个函数的复合语句中定义了一个变量,则该变量。

A.在该函数中任何位置都有效

B.只在该复合语句中有效,在该复合语句外无效

C.在本程序的源文件范围内均有效

D.此定义方法错误,其变量为非法变量

7、若有定义:

inta[3][4];,则不能表示数组元素a[1][1]。

A.*(a+5)B.*(a[1]+1)C.*(&a[1][1])D.(*(a+1))[1]

8、有如下程序段:

int*p,a=10,b=2;

p=&a;a=*p+b;

执行该程序段后,a的值是。

A、12B、11C、10D、编译出错

9、以下是不正确的转义字符。

A.'\\'B.'\t'C.'\0'D.'\081'

10、当用户定义了一个结构体变量时,系统分配给它的内存为。

A.结构中第一个成员所需内存量B.成员中占内存量最大者所需的容量

C.各成员所需内存的总和D.结构中最后一个成员所需内存量

二、读程序写结果(每题3分,共21分)

1、以下程序运行后输出的结果是。

#include

voidmain()

{intx=3,y=1,z;

x*=3+2;

printf("%d",x);

x*=y=z=4;

printf("%d\n",x);

}

2、以下程序的输出结果是。

#include

voidmain()

{intx=1,y=1,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

3、以下程序的输出结果是。

#include

structabc{inta;intb;intc;};

voidmain()

{structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].b+s[1].c;

printf("%d\n",t);

}

4、以下程序的输出结果是。

#include

voidadd()

{intx=1;

staticinty=3;

printf("%d%d",x,y);

x=x+3;

y=y+5;

}

voidmain()

{inti;

for(i=0;i<2;i++)

add();

}

5、以下程序的输出结果是。

#include

intx;

voidcude()

{x=x*x*x;

}

voidmain()

{x=4;

cude();

printf("%d\n",x);

}

6、以下程序的输出结果是。

#include

voidfun(int*a,int*b,int*c)

{int*temp;

temp=a;a=b;b=temp;

*temp=*b,*b=*c;*c=*temp;

}

voidmain()

{inta,b,c,*p1,*p2,*p3;

a=4;b=5;c=6;

p1=&a;p2=&b;p3=&c;

fun(p1,p2,p3);

printf("%d,%d,%d\n",a,b,c);

}

7、以下程序运行的结果是。

#include

voidprtv(int*x)

{printf("%d\n",++*x);

}

voidmain()

{inta=8;prtv(&a);

}

三、程序填空(每空2分,共20分)

1、以下程序用递归法求Fibonacci数列的第8项的值。

请把函数补充完整。

Fibonacci数列的公式

为:

F

(1)=F

(2)=1;当n>2时,F(n)=F(n-1)+F(n-2)。

#include

intFibonacci(intn)

{intf;

if(n==1||n==2)⑴;

elsef=Fibonacci(n-1)+Fibonacci(n-2);

return(f);

}

voidmain()

{printf("Theresultis%d\n",⑵);

}

2、以下程序用来求两个正整数m和n的最大公约数。

把程序补充完整。

#include

voidmain()

{intm,n;

intp;

scanf("%d%d",&m,&n);

p=⑶;

while(⑷)p--;

printf("Theresultis%d\n",p);

}

3、下面程序的功能是用选择法对10个整数从大到小排序。

排序由sort函数完成,输入输出在main

函数中完成。

请填空:

#include

voidsort(intx[],intn)

{inti,j,k,t;

for(j=0;j

{k=j;

for(i=j+1;i

if(x[i]>x[k])⑹;

if(k!

=j)

{t=x[j];

x[j]=x[k];

x[k]=t;

}

}

}

voidmain()

{intx[10],i;

for(i=0;i<10;i++)

scanf("%d",&x[i]);

⑺;

for(i=0;i<10;i++)

printf("%d",x[i]);

}

4、写一函数,实现两个字符串的比较。

即自己写一个strcmp函数:

compare(s1,s2)。

如果s1=s2,

返回值为0,如果s1≠s2,返回它们二者第一个不同字符的ASCⅡ码差值("BOY"与"BAD",第二个

字母不同,‘O’与‘A’之差为79-65=14)。

如果s1>s2,则输出正值,如s1

#include

intcompare(char*p1,char*p2)

{inti;

i=0;

while(*(p1+i)==*(p2+i))

if(*(p1+i++)=='\0')return(⑻);

return(⑼);

}

voidmain()

{intm;

charstr1[20],str2[20];

scanf("%s",str1);

scanf("%s",str2);

m=⑽;

printf("theresultis:

%d\n",m);

}

四、填空题(每空1分,共10分)

1、在C语言中,实数有两种表示形式,即小数形式和⑴。

有两种数据类型:

float型和double

型,一般将实型常量看做⑵类型。

2、设inta=12;则表达式a/=a+a的值是⑶。

3、表达式x=a=3,6*a和表达式x=(a=3,6*a)分别是⑷表达式和⑸表达式。

4、int(*p)[5];定义的p是一个⑹。

5、数组名作函数参数时,从实参到形参传递的值是⑺。

6、文件可以分为记录式文件和流式文件,C语言的文件是⑻。

7、函数fclose的作用是⑼;打开方式是“rb”表示的是⑽。

五、编程题(共29分,分别9分、10分、10分)

1、有一个四位正整数x。

如果将x的各个数字逆序存放得到另一个四位数y,即:

y的千位、百位、

十位、个位分别是x的个位、十位、百位、千位。

已知:

满足x=9y。

求这个四位数x。

2、对一个字符串,编写程序实现,循环右移长度的一半(如果长度n是奇数,则移动(n-1)/2)。

例如:

如果字符串是:

ABCDEFGH则循环右移后的结果是:

EFGHABCD

如果字符串是:

ABCDEFGHI则循环右移后的结果是:

FGHIABCDE

3、10个学生,5门课程的考试成绩,编写一个处理函数,统计每个学生不及格课程的门数。

在主函

数中输入所有成绩,调用处理函数,输出结果。

模拟题B(闭卷考试)

一、选择题(每题2分,共20分)

1、以下不正确的C语言标识符是。

A.AB.CB.abcC.a_bcD.ABC

2、已知各变量的类型说明如下,则以下不符合C语言语法的表达式是:

intk,a,b;

unsignedlongw=5;

doublex=1.422;

A.w+=-2B.x%(-3)C.k=(a=2,b=3,a+b)D.a+=a=+(b=4)*(a=3)

3、下述for循环语句。

inti,k;

for(i=0,k=-1;k=1;i++,k++)printf("****");

A.判断循环结束的条件非法B.一次也不循环

C.只循环一次D.是无限循环

4、在执行inta[][3]={1,2,3,4,5,6};语句后,a[1][0]的值是。

A.1B.2C.4D.5

5、在C语言程序中,以下描述正确的是。

A.函数的定义和函数的调用均不可以嵌套

B.函数的定义和函数的调用均可以嵌套

C.函数的定义不可以嵌套,但函数的调用可以嵌套

D.函数的定义可以嵌套,但函数的调用不可以嵌套

6、如果在一个函数的复合语句中定义了一个变量,则该变量。

A.只在该复合语句中有效,在该复合语句外无效

B.在本程序的源文件范围内均有效

C.在该函数中任何位置都有效

D.此定义方法错误,其变量为非法变量

7、若有定义:

inta[3][4];,则不能表示数组元素a[1][1]。

A.*(a[1]+1)B.*(&a[1][1])C.(*(a+1))[1]D.*(a+5)

8、有如下程序段:

int*p,a=10,b=1;

p=&a;a=*p+b;

执行该程序段后,a的值是。

A、12B、11C、10D、编译出错

9、以下是不正确的转义字符。

A.'\081'B.'\\'C.'\t'D.'\n'

10、当用户定义了一个共用体变量时,系统分配给它的内存为。

A.各成员所需内存的总和B.成员中占内存量最大者所需的容量

C.结构中第一个成员所需内存量D.结构中最后一个成员所需内存量

二、读程序写结果(每题3分,共21分)

1、以下程序运行后输出的结果是。

#include

voidmain()

{intx=2,y=3,z;

x*=3+2;

printf("%d",x);

x*=y=z=4;

printf("%d\n",x);

}

2、以下程序的输出结果是。

#include

voidmain()

{intx=1,y=0,a=0,b=0;

switch(x)

{case1:

switch(y)

{case0:

a++;break;

case1:

b++;break;

}

case2:

a++;b++;break;

case3:

a++;b++;

}

printf("a=%d,b=%d\n",a,b);

}

3、以下程序的输出结果是。

#include

structabc{inta;intb;intc;};

voidmain()

{structabcs[2]={{1,2,3},{4,5,6}};

intt;

t=s[0].a+s[1].c;

printf("%d\n",t);

}

4、以下程序的输出结果是。

#include

voidadd()

{intx=2;

staticinty=2;

printf("%d%d",x,y);

x=x+3;

y=y+5;

}

voidmain()

{inti;

for(i=0;i<2;i++)

add();

}

5、以下程序的输出结果是。

#include

intx;

voidcude()

{x=x*x;

}

voidmain()

{x=6;

cude();

printf("%d\n",x);

}

6、以下程序的输出结果是。

#include

voidfun(int*a,int*b,int*c)

{int*temp;

temp=a;a=b;b=temp;

*temp=*b,*b=*c;*c=*temp;

}

voidmain()

{inta,b,c,*p1,*p2,*p3;

a=3;b=7;c=5;

p1=&a;p2=&b;p3=&c;

fun(p1,p2,p3);

printf("%d,%d,%d\n",a,b,c);

}

7、以下程序运行的结果是。

#include

voidprtv(int*x)

{printf("%d\n",++*x);

}

voidmain()

{inta=10;prtv(&a);

}

三、程序填空(每空2分,共20分)

1、以下程序用递归法求Fibonacci数列的第8项的值。

请把函数补充完整。

Fibonacci数列的公式

为:

F

(1)=F

(2)=1;当n>2时,F(n)=F(n-1)+F(n-2)。

#include

intFibonacci(intn)

{intf;

if(n==1||n==2)f=1;

elsef=⑴;

⑵;

}

voidmain()

{printf("Theresultis%d\n",Fibonacci(9));

}

2、以下程序用来求两个正整数m和n的最大公约数。

把程序补充完整。

#include

voidmain()

{intm,n;

intp;

scanf("%d%d",&m,&n);

p=⑶;

while(m%p!

=0||n%p!

=0)⑷;

printf("Theresultis%d\n",p);

}

3、下面程序的功能是用选择法对10个整数从大到小排序。

排序由sort函数完成,输入输出在main

函数中完成。

请填空:

#include

voidsort(intx[],intn)

{inti,j,k,t;

for(i=0;i

{k=i;

for(j=i+1;i

if(x[j]>x[k])k=j⑹;

if(k!

=i)

{t=x[i];

x[i]=x[k];

x[k]=t;

}

}

}

voidmain()

{inta[10],i;

for(i=0;i<10;i++)

scanf("%d",&a[i]);

sort(a,10);⑺;

for(i=0;i<10;i++)

printf("%d",a[i]);

}

4、写一函数,实现两个字符串的比较。

即自己写一个strcmp函数:

compare(s1,s2)。

如果s1=s2,

返回值为0,如果s1≠s2,返回它们二者第一个不同字符的ASCⅡ码差值("BOY"与"BAD",第二个

字母不同,‘O’与‘A’之差为79-65=14)。

如果s1>s2,则输出正值,如s1

#include

intcompare(char*p1,char*p2)

{inti;

⑻;

while(*(p1+i)==*(p2+i))

if(*(p1+i++)=='\0')return0;

return(⑼);

}

voidmain()

{intm;

chars1[20],s2[20];

scanf("%s",s1);

scanf("%s",s2);

m=⑽;

printf("theresultis:

%d\n",m);

}

四、填空题(每空1分,共10分)

1、在C语言中,C程序的基本构成单位是⑴。

一个C程序至少有且只有一个⑵。

2、设inta=12;则表达式a*=a+a的值是⑶。

3、表达式x=(a=3,6*a)和表达式x=a=3,6*a分别是⑷表达式和⑸表达式。

4、int*p[5];定义的p是一个⑹。

5、数组名作函数参数时,从实参到形参传递的值是⑺。

6、设a=3,b=4,c=5,则表达式a||b+c&&b-c的值是⑻。

7、函数feof的作用是⑼;打开方式是“w”表示的是⑽。

五、编程题(共29分,分别9分、10分、10分)

1、有一个四位正整数a。

如果将a的各个数字逆序存放得到另一个四位数b,即:

b的千位、百位、

十位、个位分别是a的个位、十位、百位、千位。

已知:

满足9a=b。

求这个四位数a。

2、对一个字符串,编写程序实现,循环左移长度的一半(如果长度n是奇数,则移动(n-1)/2)。

例如:

如果字符串是:

ABCDEFGH则循环左移后的结果是:

EFGHABCD

如果字符串是:

ABCDEFGHI则循环左移后的结果是:

EFGHIABCD

3、10个学生,5门课程的考试成绩,编写一个处理函数,统计每门课程不及格学生的人数。

在主函

数中输入所有成绩,调用处理函数,输出结果。

模拟题A答案

一、选择题(每题2分,共20分)

DCDBCBAADC

二、读程序写结果(每题3分,共21分)

1、15602、a=1,b=23、84、13185、646、6,5,67、9

三、程序填空(每空2分,共20分)

1、⑴f=1⑵Fibonacci(8)

2、⑶p=m>n?

n:

m⑷m%p!

=0||n%p!

=0

3、⑸i

4、⑻0⑼*(p1+i)-*(p2+i)⑽compare(str1,str2)

四、填空题(每空1分,共10分)

⑴指数形式⑵double型⑶0⑷逗号(,)

⑸赋值⑹指向一维数组的指针变量⑺数组的首地址

⑻流式文件⑼关闭文件⑽二进制只读文件

五、编程题(共29分,分别9分、10分、10分)

1、有一个四位正整数x。

如果将x的各个数字逆序存放得到另一个四位数y,即:

y的千位、百位、

十位、个位分别是x的个位、十位、百位、千位。

已知:

满足x=9y。

求这个四位数x。

参考答案:

#include"stdio.h"

voidmain()

{intx,y,a,b,c,d;

for(a=1;a<=9;a++)

for(b=0;b<=9;b++)

for

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 公共行政管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1