c语言复习重点文档格式.docx

上传人:b****5 文档编号:18636041 上传时间:2022-12-30 格式:DOCX 页数:18 大小:168.12KB
下载 相关 举报
c语言复习重点文档格式.docx_第1页
第1页 / 共18页
c语言复习重点文档格式.docx_第2页
第2页 / 共18页
c语言复习重点文档格式.docx_第3页
第3页 / 共18页
c语言复习重点文档格式.docx_第4页
第4页 / 共18页
c语言复习重点文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

c语言复习重点文档格式.docx

《c语言复习重点文档格式.docx》由会员分享,可在线阅读,更多相关《c语言复习重点文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

c语言复习重点文档格式.docx

例已知intx=1,y=2,z;

执行语句z=x>

y?

++x:

++y;

后,z的值是C

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

●自增、自减运算及应用(57页)

例设有inta=1,b=1;

,执行printf("

%d,%d"

(a++,--b),b-1);

的输出结果是D

A)1,-1 

 

B)1,0 

C)0,-1 

D)0,0

●与或非运算及关系运算常用的算术运算(55页、91页、92页)

例C语言中运算对象必须是整型数据的运算符是A

A)%B)/C)!

D)&

&

例设a、b和c都是int型变量,且a=3,b=4,c=5;

则以下表达式中,值为0的表达式是D

A)a&

B)a<

=b 

 

C)a||b+c&

b-c 

D)!

((a<

b)&

!

c||1)

●指针的相关运算(第十章的一些简单定义和运算)

例已知inta[3][4],*p=a;

p+=6;

那么*p和D的值相同。

A)*(a+6)B)*(&

a[0]+6)

C)*(a[1]+3)D)*(&

a[0][0]+6)

注:

*p=a;

定义时赋初值,相当于把a[0][0]的地址赋值给p。

例已知charb[5],*p=b;

则正确的赋值语句是C

A)b="

abcd"

;

B)*b="

;

C)p="

D)*p="

●正确的输入语句scanf正确的输入方法(82页)

●有关宏定义的运算、宏定义的正确使用(204页)

例若有宏定义#defineMOD(x,y)x%y,则执行以下语句后的输出为B

intz,a=15,b=100;

z=MOD(b,a);

printf("

%d\n"

z++);

A)11B)10C)6D)宏定义不合法

例若有以下宏定义

#defineN2

#defineY(n)((N+1)*n)

则执行语句z=2*(N+Y(5));

后的结果为B

A)语句有错误B)z=34C)z=70D)z值不确定

●取整运算

例已知intx=10,y=3,z;

则下列语句的输出结果是D

z=(x%y,x/y));

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

●多重循环语句的运算(复习第六章)

例以下程序段的输出结果是D

A)9B)1C)11D)10

intk,j,s;

for(k=2;

k<

6;

k++,k++)

{

s=1;

for(j=k;

j<

j++)

s+=j;

}

s);

注:

第二轮循环k=4,s=1,所以结果为10。

●循环语句中break和continue的使用(122页)

例若变量已正确定义,以下语句的输出结果是A

A)%#B)*%$C)%D)%$*

x=0;

y=2;

z=3;

switch(x)

{case0:

switch(y)

{case1:

printf("

*"

);

break;

case2:

%"

case1:

switch(z)

$"

default:

#"

}

●循环语句的循环次数的判断

例 

执行下述程序的输出结果是C

#include<

stdio.h>

main()

staticinti,j;

for(j=9;

i<

j;

i++)

{for(i=9;

if(!

(j%i))

break;

if(i>

=j-1)

j);

A)11 

B)10 

C)9 

D)1011

这个程序只循环一次。

●判断字符串长度的运算(149页)

例已知:

charstr[]="

ab\n\018\\\"

"

则执行语句:

strlen(str));

的结果是B

A)3B)7C)6D)12

字符分别为a、b、\01、8、\、\、\”

●位运算(不考位段)

例执行下面程序段后,c的二进制值为D

inta=3,b=6;

charc;

c=(a^b)<

<

2;

A)00011100 

B)00000111 

C)00000001 

D)00010100

例以下程序的输出结果是D

A)100B)160C)120D)64

main()

charx=040;

x=x<

1);

●数组元素地址的表示(230页和243页)

例设有int a[]={2,4,6,8,10},*p=a;

,则值为8的表达式是D

A)*p+3 

B)*p+4 

C)*(p+4) 

D)*(a+3)

例若有inta[4][3]={{1,2,3},{4,5,6},{7,8,9},{10,11,12}},(*p)[3];

p=a;

则*(*(p+1)+2)的值是B

A)5B)6C)7D)有语法错误

●结构体数据所占内存的长度(281页)

●逻辑运算(92页)

●正确的函数定义形式(157页)

●字符串的比较(148页)

●多级指针的使用(271)

●文本文件的读写操作

例以“只读”方式打开文本文件a:

\aa.dat,下列语句中哪一个是正确的D

A)fp=fopen("

a:

\\aa.dat"

"

ab"

B)fp=fopen("

\aa.dat"

C)fp=fopen("

wb"

D)fp=fopen("

r"

例若要执行p=fopen("

a1"

"

则p必须事先进行定义D

A)intp;

B)int*p;

C)FILEp;

D)FILE*p;

例标准库函数fgets(s,n,f)的功能是B

A)从文件f中读取长度为n的字符串存入指针s所指的内存

B)从文件f中读取长度不超过n-1的字符串存入指针s所指的内存

C)从文件f中读取n个字符串存入指针s所指的内存

D)从文件f中读取长度为n-1的字符串存入指针s所指的内存

例写字符到磁盘文件的fputc(ch,fp)函数(ch表示字符,fp表示文件指针),其函数原型(头)正确的是C

A)FILE*fputc(char)B)intfputc(FILE*)

C)intfputc(char,FILE*)D)intfputc(FILE*,char)

例函数调用语句:

fseek(fp,-20L,2)的含义是C

A)将文件位置指针移动到距离文件头20个字节处

B)将文件位置指针从当前位置向后移动20个字节

C)将文件位置指针从文件末尾处向后退20个字节

D)将文件位置指针移到离当前位置20个字节处

●数组元素的正确引用、数组的正确定义(第七章)

例在以下数组定义中,正确的是A

A)inta[3+3];

B)inta[3,3];

C)inta[];

D)inta[3][];

●非法的字符常量(48页)

●函数的隐含类型(157页)

●判断函数调用语句中参数的个数(第八章)

例函数原型是voidfun(int*a,int*b),且intx[10],y;

,则下列调用中正确的是D

A)fun(*x,&

y);

B)fun(&

x,*y);

C)fun(x,y);

D)fun(x,&

●一个变量的多赋值语句的运算

例已知intx=6;

则执行x+=x-=x*x;

语句后,x的值为B

A)36B)-60C)60D)-24

●字符串正确的定义方法(52页142页)

例下面关于字符串的说明中,错误的是AD

A)charstr[7]="

FORTRAN"

B)charstr[]="

C)char*str="

D)charstr[]={'

F'

,'

O'

R'

T'

A'

N'

注:

charstr[8]="

charstr[7]={'

}

●字符串与指针的相关运算(251页)

例以下函数的功能是 

A

voidfun(char 

*p2, 

char 

*p1)

while((*p2=*p1)!

='

\0'

){ 

p1++;

p2++;

A)将p1所指字符串复制到p2所指内存空间

B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'

例下列程序的输出结果是D

A)cB)dC)eD)f

char*p="

abcdefghijklmnopq"

while(*p++!

e'

%c\n"

*p);

注意printf语句不是while的内嵌语句.

注意:

如果while语句后没有;

输出结果就发生变化

●字符串操作的相关运算如连接、复制等(146-150)

例函数调用strcat(strcpy(str1,str2),str3)的功能是C

A)将串str1复制到串str2中,然后再连接到str3之后

B)将串str1连接到串str2之后,再复制到str3之中

C)将串str2复制到str1中,然后再将串str3连接到串str1之后

D)将串str2复制到str1中,再将串str1连接到串str3之后

例设有charstring1[20]="

ABCDE"

,string2[10]="

xyz"

,则执行printf("

%d"

,strlen(strcat(string1,string2)));

后的输出结果是D

A)9 

B)8 

C)5 

D)3

●C语言可以处理的文件类型(书331页)

●文件指针指向末尾的函数(347feof()函数)

二、程序填空题(20分)

1、

(1)求某数的绝对值

(2)数据的反序输出

方法一:

voidmain()

{

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

inti;

for(i=4;

i>

0;

i--)

%5d"

a[i]);

(3)求一系列数之和

例以下程序用递归法求解

,当最后一项的值小于0.00001时,累加结束。

{doubles,x;

doublesum(double,double,double*);

scanf("

%lf"

&

x);

s=1.0;

if(x>

1.0)

{printf("

s=%10.5lf\n"

sum(1.0,x,&

s);

elseprintf("

dataerror!

\n"

doublesum(doublet,doublep,double*a)

{t=t/p;

if(t>

=0.00001)

sum(t,p,a);

*a+=t;

return(*a);

(4)统计一系列数中的具有共同特征的数之和。

例程序读入20个整数,统计非负数个数,并计算非负数之和。

请填空完成。

inti,a[20],s,count;

s=count=0;

for(i=0;

20;

&

a[i]);

{if(a[i]<

0)

continue;

s+=a[i];

count++;

s=%d\tcount=%d\n"

s,count);

2.将某数值转换成二进制数,所得二进制数的每一位数存放在一维数组中返回

#include<

{intm,i,r,a[16];

m);

16;

{if((r=m%2)==0)a[15-i]=0;

elsea[15-i]=1;

m=m/2;

%d"

3.求字符串的长度,如一个字符串连接到另一个字符串的后面,新串的长度。

例以下是将两个字符串连接起来的程序,请填空。

方法一:

{chars1[80],s2[40];

inti=0,j=0;

printf(“\nInputstring1:

”);

scanf(“%s”,s1);

printf(“\nInputstring2:

scanf(“%s”,s2);

while(s1[i]!

=’\0’)

i++;

while(s2[j]!

s1[i++]=s2[j++];

或s1[i]=s2[j];

i++;

j++;

s1[i]=’\0’;

printf(“Thenewstringis%s\n”,s1);

printf(“Thenewstringlongis%d\n”,strlen(s1));

方法二:

{chars1[80],s2[40];

\nInputstring1:

%s"

s1);

\nInputstring2:

s2);

s1[80]=strcat(s1,s2);

Thenewstringis%s\n"

Thenewstringlongis%d\n"

strlen(s1));

4.将数组元素按行求和后在存储到数组中。

例将数组元素按行求和后存放到另一个数组中。

{inti,j,a[3][4],b[3]={0};

inputa:

3;

for(j=0;

4;

a[i][j]);

b[i]=b[i]+a[i][j];

\nouputa:

{for(j=0;

a[i][j]);

\nouputb:

b[i]);

三、修改下列程序的错误(共15分)

1.通过某种方式实现两个变量值的交换。

例给定程序中功能是:

从键盘上输入2个整数,按从小到大的顺序输出这2个数。

2.输入矩阵元素的值,求主对角线元素之和。

{inta[3][3],sum=0;

inti,j;

enterdata:

sum=sum+a[i][i];

sum=%d\n"

sum);

3.用选择法对数组元素按从小到大的顺序进行排序。

4.计算系列数之和(有规律的数列)。

例如求1-3+5-7+……-99+101的值。

四、程序设计(共15分)

1.求某数的阶乘。

{intn,i;

longinty=1;

n);

if(n==0||n==1)

y=1;

else

{for(i=1;

=n;

y=y*i;

n!

=%ld\n"

y);

(参考课本173页例8.8)

2.求三个数中的最大值。

可以参考04-05学年试卷A的30题答案.

3.求数组右上半三角元素中的值乘以某个数。

{inti,j,k=4;

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

outputarraya:

for(j=i;

a[i][j]=a[i][j]*k;

4.N×

N阶矩阵中各行最小数之和。

{inti,j,min,t,s=0;

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

i++)

{min=a[i][0];

for(j=1;

if(min>

a[i][j])

{t=min;

min=a[i][j];

a[i][j]=t;

min);

/*输出每行的最小数*/

s=s+min;

/*输出每行的最小数之和*/

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

当前位置:首页 > 外语学习 > 英语考试

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

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