C复习资料改进剖析Word格式文档下载.docx

上传人:b****1 文档编号:1004880 上传时间:2023-04-30 格式:DOCX 页数:81 大小:157.70KB
下载 相关 举报
C复习资料改进剖析Word格式文档下载.docx_第1页
第1页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第2页
第2页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第3页
第3页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第4页
第4页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第5页
第5页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第6页
第6页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第7页
第7页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第8页
第8页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第9页
第9页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第10页
第10页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第11页
第11页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第12页
第12页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第13页
第13页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第14页
第14页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第15页
第15页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第16页
第16页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第17页
第17页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第18页
第18页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第19页
第19页 / 共81页
C复习资料改进剖析Word格式文档下载.docx_第20页
第20页 / 共81页
亲,该文档总共81页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C复习资料改进剖析Word格式文档下载.docx

《C复习资料改进剖析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《C复习资料改进剖析Word格式文档下载.docx(81页珍藏版)》请在冰点文库上搜索。

C复习资料改进剖析Word格式文档下载.docx

(2)以“\”开头的转义字符

1.设有说明语句:

chara=’\123’;

则变量a()

A)包含1个字符B)包含2个字符C)3个字符D)说明不合法

2.C语言中,“\x5d”在内存中占用的字节数是(  )

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

3.字符串“\t\x42\\bcd\n”的长度是(  )。

  A)7B)10C)12D)13

五)各种基本类型变量所占的字节数

int2long4unsigned2

float4double8char1

1.下列式中,值不为4的表达式是()

A)sizeof(unsignedlong)B)sizeof(long)C)sizeof(unsignedint)D)sizeof(float)

六)合法的表达式

(1)%两边操作数必须是整型

(2)赋值的左边一定是变量

1.设变量a、b、c已定义并赋值,则下列表达式中符合C语言语法规则的是()

A)a=5++B)a=b=c++C)a%=2D)b=a+1=2

七)表达式的值

每个表达式都有值

(1)算术表达式的值就是计算结果

(2)赋值表达式的值被赋值变量的值

(3)逗号表达式的值是最后一个表达式的值

(4)注意两个表达式的意义:

令a是数字字符,则a-‘0’就是对应的数字

令a是字母字符,则a-32就是小写变为大写,a+32就是大写变为小写

1.设整型变量a的值为2,下列表达式值为1的是()

A)a%3B)a/3C)--aD)a++

2.下列表达式的值为0的是(  )

A)7/8B)7%8C)7/8.0D)7<

8

3.设floatm=4.0,n=4.0;

使m为10.0的表达式是(  )

A)m-=n*2.5B)m/=n+9C)m*=n-6D)m+=n+2

4.逗号表达式(a=4*5,a*2),a+15的值是(  )

A)35B)40C)55D)20

八)++、--运算

1)先将表达式中++、--去掉

2)再将前置型的写在表达式上方

3)最后将后置型的写在表达式下方

当i=4,j=5时,表达式3-(i++)*4+(--j)的值如何,i,j的值多少?

九)表达式的类型

自动转换:

表达式中有整型和字符型,结果一定为整型

表达式中有实型,结果一定为double类型

强制转换:

可以强制转换为指定的类型

1.下列式中,最终运算结果的数据类型不是双精度的表达式的是()

A)(int)(3+3.0)B)1e-3C)(double)(3)D)(int)3.0+3.0

二、顺序结构

一)putchar和getchar:

一次只能输入输出一个字符

1.putchar函数可以向终端输出一个(   )

A)整数  B)实数  C)字符串  D)字符

二)printf和scanf语句的使用方法:

scanf注意数据输入时的分隔符(“”中有的要原样输入,没有的数值数据以空格、回车、Tab键为默认分隔符,字符数据没有分隔符)

1.设有语句scanf(%d,%d”,&

m,&

n);

要使m、n的值依次是2、3,正确是输入是()

A)23B)2,3C)2;

3D)2

2.设变量定义为inta,b;

执行下列语句时,输入(),则a和b的值都是10

scanf(“%d,%d”,&

a,&

b);

A)1010B)10,10C)a=10b=10D)a=10,b=10

3.有以下程序

main()

{intm,n,p;

  scanf("

m=%dn=%dp=%d"

&

n,&

p);

  printf("

%d%d%d\n"

m,n,p);

}

若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是(  )

A)m=123n=456p=789  B)m=123n=456p=789

C)m=123,n=456,p=789  D)123456789

printf注意输出形式%m.n形式,m代表输出的数据占的列宽,不够的在前面补上空格,n代表小数的显示位数

1.有如下程序段:

inta=3,b=15;

floatf=7.5;

printf(“%.1f”,(float)a+b/2+(int)f%3);

执行该程序段后,运算结果为:

()

A)11.5B)11.0C)11D)12.0

三、选择结构

一)关系表达式、逻辑表达式和条件表达式

(1)C中结果为真时值用1表示,结果为假时值用0表示;

(2)C中的操作数是以非0认为是真,以0认为是假;

(3)数学中表示10<

a<

100的C语言表示形式:

10<

a&

&

100

(4)逻辑运算中的短路原则

1.在C程序中,用()表示逻辑”真”。

A)1B)非0的数C)非1的数D)大于0的数

2.若有定义:

intx=2,y=3,z=4;

则表达式!

(x+y)+z-1&

y+z%2的值为(  )

 A)4B)0C)1D)2

3.设inta=0,b=0,c=0;

c=++a||b++;

则a、b、c值分别为() 

A)010B)111C)110D)101

4.执行语句:

inta=1,b=0,c;

c=a>

0||++b;

后,b的值为()

A)0B)1C)2D)不确定

5.设intx,y,z=4;

x=y=++z;

x=(y>

z)?

x+2:

x++;

则x的值是()

A)4B)5C)6D)7

6.为表示关系x>

y>

=z,则正确的c语言表达方式为(  )。

A)(x>

=z)B)(x>

y)and(y>

=z)

C)(y<

x)&

(y>

=z)D)(x>

y)&

7.若变量ch为char类型,能正确判断出ch为大写字母的表达式是()

A)’A’<

=CH<

=‘Z’B)(ch>

=’A’)||(ch<

=’Z’)

C)(‘A’<

=ch)and(‘Z’>

=ch)D)(ch>

=’A’)&

(ch<

运算符的优先级和结合性记忆方法

优先级

单目>

双目>

三目>

特殊双目(赋值>

逗号)

结合性

单目、三目自右向左

双目自左向右

特殊双目(赋值)自右向左

二)if语句

(1)条件

if(a)等价if(a!

=0)if(!

a)等价if(a==0)

(2)else的匹配原则:

与上方最近的且没被匹配的if匹配

1.有以下程序

main()

{inta=0,b=0,c=0,d=0;

if(a=1)b=1;

c=2;

elsed=3;

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

程序输出(   )

A)0,1,2,0  B)0,0,0,3  C)1,1,2,0  D)编译有错

2.以下程序运行后的输出结果是  

{

  inta=3,b=4,c=5,t=99;

  if(b<

c)t=a;

a=c;

c=t;

  if(a<

c&

b<

c)t=b;

b=a;

a=t;

a,b,c);

三)switch语句

(1)switch的执行过程

(2)break的用法

1.#include<

stdio.h>

main()

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

switch(x)

{case0:

b++;

case1:

a++;

case2:

break;

case3:

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

输出结果:

四)算法

1.交换:

t=a;

a=b;

b=t

2.分段函数

输入出租车里程S,输出应付车费F。

S和F的关系如下:

四、循环结构

一)循环条件均以条件为真(非0)进行循环,以条件为假(0)结束循环)

1.以下叙述正确的是()

A)do-while语句构成的循环不能用其它语句构成的循环来代替

B)do-while语句构成的循环只能用break语句退出

C)do-while语句构成的循环,在while后的表达式为非零时结束循环

D)do-while语句构成的循环,在while后的表达式为零时结束循环

2.设有程序段:

    intk=10;

while(k=0)k=k-1;

则循环体执行的次数为( )

A)10次  B)9次  C)0次  D)1次

3.下列()循环不是无限循环

A)for(y=0;

x=1;

++y);

B)for(;

;

x=0);

C)while(x=1){x=1;

}D)for(y=0,x=1;

x>

++y;

x++)

二)三种循环的执行流程

1.设变量y值为3,执行下列循环语句后,变量y的值的是()

doy++;

while(y<

4);

A)3B)4C)5D)6

2.执行语句for(I=1;

I<

4;

);

后变量I的值是()

A)3B)4C)5D)0

三)循环嵌套的执行次数

1.#include“stdio.h”

voidmain()

{intI,j;

for(I=0;

=3;

I++)

{for(j=0;

j<

I;

j++)

printf(”%d”,I);

printf(“*\n”);

四)break和continue的用法

#include<

voidmain()

{inta=1,b;

for(b=1;

=10;

b++)

{if(a>

=8)break;

if(a%2==1){a+=5;

continue;

a-=3;

}

printf("

%d\n"

b);

2.#include<

voidmain()

{inti,m=0,n=0,k=0;

for(i=5;

i<

=7;

i++)

switch(i/6)

{case0:

m++;

n++;

case6:

break;

default:

k++;

}

printf(“%d,%d,%d\n”,m,n,k);

五)算法

求和

1.求1+2+3+……+100之和;

2.编程输出100以内所有6的倍数及它们的和;

3.求输入的10个学生的成绩之和;

4.求1-1/2+1/3-1/4+……+(-1)n+1(1/n)

5.求1+1/2+2/3+3/5+5/8+8/13+……(加100项)

1.利用下面公式求s的值(求20项之和)

s=1/(1*2*3)-1/(2*3*4)+1/(3*4*5)-1/(4*5*6)+...+1/(19*20*21)-1/(20*21*22)

求最大、小值

1.输入10个数据,求出其中的最大值;

2.输入10个数据,求出其中的最小值;

统计

1.输入10个学生的成绩,统计出及格的人数。

2.输入一行字符(以回车结束输入),统计其中数字、字母和其它字符的个数。

画图

1.编写程序打印以下图案(必须使用循环结构,直接输出不给分)

1

23

456

7890

2.打印出以下图案(必须使用循环结构,直接输出不给分)

*

***

*****

*******

求素数

1.判断m是否是素数

2.编程求100~300之间的全部素数的和

求最大公约数

1.求两个整数m和n最大公约数。

穷举法

1."

百马百担"

问题。

有100匹马驮100担货,每匹大马每次驮3担,每匹中马每次驮2担,2匹小马每次分驮1担。

编写程序求大、中、小马的匹数(大、中、小马的匹数均不得为0)。

2.一个素数加上1000以后是43的倍数,求满足这个条件的最小素数。

3.有2个小于40的正整数a和b,a的平方与b的和是1053,b的平方与a的和是873,请编程求满足条件的a和b的值。

(提示:

满足条件的a,b的值唯一)

4.一个自然数除以2余1,除以3余2,除以4余3,除以5余4,除以7余5,求满足这个条件的最小的自然数?

5.求所有的"

水仙花数"

之和。

所谓"

是指一个三位数,其各位数字的立方和等于该数本身。

例如153是一个"

,因为:

153=1*1*1+5*5*5+3*3*3。

五、数组

一)数组语法

(1)数组的定义[]中必须是常量

(2)C语言规定只能逐个引用数组元素而不能一次引用整个数组

(3)引用一维数组每个元素的的方法:

for(i=0;

长度;

i++)

a[i];

(4)引用二维数组每个元素的的方法:

第一维长度;

for(j=0;

a[i][j];

(5)引用时,下标的值从0开始,不要超过数组的范围

(6)数组初始化时所给的数据不能超过[]中给定的长度,若所给的数据不足长度,其它的为0

1.数组定义为inta[10][10];

,则数组a有()个数组元素。

A)100B)81C)20D)121

2.以下一维数组a的正确定义是()

A)inta(10);

B)intn=10,a[n];

C)intn;

D)#defineN10

Scanf(“%d”,&

inta[N];

Inta[n];

3.设有语句”inta[]={3,4,5,9,8,7};

”则表达式a[1]-a[4]的值是()

A)-6B)6C)-4D)2

4.以下不能正确定义二维数组的是(  )

A)inta[2][2]={{4},{5}};

B)inta[][2]={4,5,6,7};

C)inta[2][2]={{4},5,6};

D)inta[2][]={{4,5},.{6,7}};

二)字符串

1)字符串和字符数组的区别

2)字符串函数的应用

1.以下程序的输出结果是()

#include<

string.h>

{charst[20]=”2000\0\t\\”;

printf(“%d,%d\n”,strlen(st),sizeof(st));

A)7,7B)4,20C)10,20D)20,20

2.要将字符串a连接到字符串b后面,使用下面()语句

A)strcpy(a,b);

B)strcat(a,b);

C)strcpy(b,a);

D)strcat(b,a)

三)算法

一维数组常见题型:

1.数组插入

2.数组删除

3.数组逆置

4.数组查找(顺序查找、折半查找)

5.冒泡排序、选择排序

二维数组常见题型:

在矩阵上的进行操作:

矩阵转置、矩阵求和、求最大值等。

字符数组常见题型:

各字符串函数的实现

1.已知字符串chars[50]=”Iamstudent.”,请编写程序将字符a插入到student之前,结果为“Iamastudent”。

2.有一个3×

4的矩阵,要求编程以求出其中值最大的那个元素,以及它所在的行号和列号。

程序如下:

inti,j,row,col,max;

staticinta[3][4]={{3,5,1,8},{6,4,11,7},{9,3,10,2}};

max=a[0][0];

___;

i++)/*$BLANK1$*/

if(___)/*$BLANK2$*/

{

max=___;

/*$BLANK3$*/

row=i;

col=j;

max=%d,row=%d,col=%d\n"

max,row,col);

六、函数

一)函数语法

(1)程序是由多个函数组成的,一个程序有且只有一个main函数,程序的运行是从main函数开始到时main函数结束

(2)函数不能嵌套定义,可以嵌套调用

(3)使用函数的三点:

定义、调用、申明(见下图)

(4)函数的参数:

形参和实参

要求形参和参类型一致,个数相同

传递过程是将实参的值对应传给形参

(5)值传递和地址传递

值传递:

简单类型,实参传给形参,形参发生变化不能传给实参。

地址传递:

数组、指针,实参传给形参,形参发生变化也能传给实参

1.在C程序中,若对函数类型未加说明,则函数的隐含类型为()

A)intB)doubleC)voidD)char

2.C语言中的函数()

A)可以嵌套定义B)不可以嵌套调用

C)可以嵌套定义,但不能递归调用D)嵌套调用和递归调用都可以。

3.有以下函数定义:

voidfun(intn,doublex){…………}

下面函数调用正确的是(  )

A)fun(x,n)B)k=fun(10,12.5)

C)fun(intx,doubley)D)voidfun(n,x)

4.有以下程序

#defineN20

fun(inta[],intn,intm)

{inti,j;

for(i=m;

i>

=n;

i--)

a[i+1]=a[i];

{inti,a[N]={1,2,3,4,5,6,7,8,9,10};

fun(a,2,9);

5;

%d"

a[i]);

程序运行后的输出结果是()

A)10234B)12344C)12334D)12234

5.有以下程序

voidsum(inta[])

{a[0]=a[-1]+a[1];

main()

{inta[10]={1,2,3,4,5,6,7,8,9,10};

sum(&

a[2]);

printf("

a[2]);

}

程序运行后的输出结果是()

A)6B)7C)5D)8

6.以下程序运行后的输出结果是:

voidswap(intx,inty)

{intt;

t=x;

x=y;

y=t;

%d%d"

x,y);

voidswap1(int*x,int*y)

t=*x;

*x=*y;

*y=*t;

*x,*y);

{inta=3,b=4;

swap(a,b);

%d%d\n"

a,b);

swap1(&

二)递归函数

了解递归过程(见课件)

【程序1】#include”stdio.h”

intfun(intn)

{if(n<

10)returnn;

else

return(n%10)*fun(n/10);

{printf(“%d”,fun(218));

运行结果:

【程序2】

#include<

longfun(intn)

{longs;

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

elses=n+fun(n-1);

returns;

voidmain()

{printf(“\n%ld”,fun(5));

三)变量的作用域和存储类型(见课件)

1.C语言auto型变量是()

A)存储在动态存储区中B)存储在静态存储区中

C)存储在外存储器中D)存储在计算机CPU的寄存器中

【程序1】intw=2;

intf(intx)

{inty=1;

staticintz=3;

y++;

z++;

return(x+y+z);

{intk;

for(k=0;

k<

3;

k++)

printf(“%4d”,f(w++));

【程序2】以下程序运行后的输出结果是:

fun(inta)

{intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

{inti,a=5;

i,fun(a));

\n"

七、指针

一)指针的语法

(1)指针定义基类型*指针变量名;

(2)指向操作(取址操作)指针变量=&

普通变量;

(3)间接访问*指针变量

二)指针作为参数(是地址传递,双向性)

三)指针与数组的关系

(1)与一维

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

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2