C语言程序设计复习资料讲课讲稿Word格式.docx

上传人:b****6 文档编号:16212025 上传时间:2022-11-21 格式:DOCX 页数:16 大小:24.57KB
下载 相关 举报
C语言程序设计复习资料讲课讲稿Word格式.docx_第1页
第1页 / 共16页
C语言程序设计复习资料讲课讲稿Word格式.docx_第2页
第2页 / 共16页
C语言程序设计复习资料讲课讲稿Word格式.docx_第3页
第3页 / 共16页
C语言程序设计复习资料讲课讲稿Word格式.docx_第4页
第4页 / 共16页
C语言程序设计复习资料讲课讲稿Word格式.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

C语言程序设计复习资料讲课讲稿Word格式.docx

《C语言程序设计复习资料讲课讲稿Word格式.docx》由会员分享,可在线阅读,更多相关《C语言程序设计复习资料讲课讲稿Word格式.docx(16页珍藏版)》请在冰豆网上搜索。

C语言程序设计复习资料讲课讲稿Word格式.docx

C)(x<

2)&

&

(x>

=-2)&

4)&

(x<

8)D)(x>

-2)&

4)||(x<

8)&

2)

16、已知字母a的ASC||的十进制代码为97,则执行下列语句后输出为(C)。

Chara=‘a’;

a--;

printf(“%d,%c\n”,a+‘2’-‘0’,a+‘3’-‘0’);

A)a,cB)a—运算不合法,故有语法错误C)98,cD)格式描述和输出项不匹配,输出无定值

18、C语言中,逻辑“真”等价于(C)。

A)大于零的数B)大于零的整数C)非零的数D)非零的整数

19、下列语句中,符合语法的语句式(D)。

A)a+b=3B)a=7C)a=c+b+3=6;

D)a=8,b=a+7;

20、若x为float型变量,则以列程序段结果是(B)。

x=1234.6789;

printf(“%-2.1f”,x);

A)输出格式描述符的域宽度不够,不能输出B)输出为1234.7

C)输出为1234.6D)输出为-1234.6

21、下面函数的功能是(A)。

Intfunl(char*x)

{

char*y=x;

while(*y++);

return(y-x-1);

}

A)求字符串的长度B)比较两个字符串的大小C)将字符串x复制到字符串y

D)将字符串x连接到字符串y后面

22、指针变量a所指的字符串长度为(D)。

Char*a=”\n\”MyNameis\”ZhangLi\”\n”;

A)26B)27C)28D)23

23、若有以下说明和语句,则输出结果是(B)。

Char*sp=”\\\”\n”;

Printf(“%d”,strlen(sp));

A)6B)3C)5D)字符串中有非法自负,输出值不定

24、若有以下的说明语句,则对字符串中字符的不正确引用是(其中0<

=i<

6)(D).

Char*strp=“string”;

A)*strpB)*(strp+i)C)strp[i]D)strp

25、函数调用:

strcat(strcpy(str1,str2),str3)的功能是(C)。

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

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

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

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

26、若使用下述程序段将整数12和浮点数13.6分别赋给变量a和b,那么输入应该式(B)。

inta;

floatb;

scanf(“a=%d,b=%f”,&

a,&

b);

A)1213.6B)a=12,b=13.6C)12,13.6D)a=12b=13.6

27、对下面的程序说法正确的是(C)。

main()

{intx+3,y=0,z=0;

if(x=y+z)

printf(“****”);

else

printf(“####”);

}

A)有语法错误,不能通过编译B)输出为****C)输出为####D)通过编译,但是不能运行

28、下面程序的输出是(B)。

{

intx=10,y=3;

printf(“%d\n”,y=x%y);

A)0B)1C)3D)不确定的值

29、(D)是不正确的C语言赋值语句。

A)a=a+1;

B)i++;

C)a*=1,b=8;

D)a=3

30、C语言程序的三种基本程序是(A)。

A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构

C)嵌套结构,递归结构,顺序结构D)循环结构,转移结构,顺序结构

33、以下程序段(B)。

intx=1,y=4;

printf(x<

y?

”x=%d”:

”y=%d”,x,y);

A)输出控制格式错误B)输出:

x=1C)输出:

y=1D)输出:

y=4

34、为了避免嵌套的条件语句if-else的二义性,C语言规定:

else与(B)是正确的。

A)缩排位置相同的ifB)其之前最近的ifC)其之后ifD)同一行上的if

35、下列关于switch语句和break语句的结论中,只有(B)是正确的。

A)break语句是switch语句的一部分

B)在switch语句中可以根据需要使用或不使用break语句

C)在switch语句中必须使用break语句

D)以上三个结论有两个是正确的

36、设I和x都是int类型,则对于for循环语句for(i=0,x=0;

i<

9;

i++),下列哪句话正确(B)。

A)执行8次B)执行9次C)是无限循环D)循环体一次也不执行

40、char(*A)[5],则标识符A的意义时(B)。

A)A是一个指向有5个字符型元素的指针变量

B)A是一个有5个元素的一维数组,每个元素指向字符型的指针变量

C)A是一个指向字符型的函数的指针变量

D)A是一个有5个元素的一维数组,每个元素指向整型变量的指针变量

112、C语言程序的三种基本结构是(A)

A)顺序结构,选择结构,循环结构B)递归结构,循环结构,转移结构

1.下列合法的字符常量是(D)。

A.“f”B.xC.65D.‘\Xab’

2.下面那个是属于合法的标识符(C)

A.99B.1_sC.abD.@vb

3.在C语言中,要求参加运算的数必须是整数的运算符是(C)。

A./B.!

C.%D.==

4.现已定义整形变量inti=1;

后i的值为(B)。

A.1B.5C.6D.以上三个答案都不正确

5.下列语句的输出结果是(D)。

A.有语法错误不能通过编译B.3C.3.0D.3.000000

6.设C语言中,int类型数据占2个字节,则long类型数据占(D)个字节。

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

7.现有表达式y=x<

1?

1:

10?

2:

3),如x=12,则y等于(C)

A.2B.1C.3D.0

8.定义a为整型,下列表达式a=3>

6的运行后,a的值为(A)。

A.0B.1C.3D.表达式错误

9.表达式a=3,a+1,a*a的值是(B)

A.2B.9C.16D.4

10.下列语句中,符合语法的语句式(D)。

A.a+b=3B.a=7C.a=c+b+3=6;

D.a=8,b=a+7;

在c中单精度数据类型的精度是几?

(C)

A.8B.6C.7D.5

5.在C语言中,用(B)表示逻辑值“真”。

A.1B.非0的数C.“a”D.‘\101’

6.表达式2.5+7%3*3(int)(2.5+4.7)%2/4的结果是(D)

A.2.4B.2.75C.3D.2.5

7.表达式!

4||3&

2的结果是(A)

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

8.现有表达式y=x<

3),如x=5,则y等于(A)

A.2B.1C.3D.0

9.若变量已正确定义,语句“if(a>

b)k=0;

elsek=1;

”和其等价的是(D)

A.k=(a>

b)?

0B.k=a>

b;

C.k=a<

=b;

D.a<

=b?

0:

1;

10.设x=3,执行语句y=x++后,x、y分别等于(D)

A.3,3B.1,2C.3,4D.4,3

11.表达式a=3,a=a+1,a*a的值是(C)

A.2B.9C.16D.4

12.函数调用:

strcat(strcpy(str1,str2),str3)的功能是(C)。

A.将串str1复制到串str2中后再连接到串str3之后

B.将串str1连接到串str2之后再复制到串str3之后

C.将串str2复制到串str1中后再将串str3连接到串str1之后

D.将串str2连接到串str1之后再将串str1复制到串str3之后

13.break语句的作用是(B)

A.结束本次循环B.结束所有循环C.结束一条语句D.结束整个程序

14.下列程序的输出结果是(C)。

fun(inta,intb,intc)

{c=a*b;

main()

{intc=5;

fun(2,3,c);

printf(”%d\n”,c);

A.0B.5C.6D.无法确定

二、填空。

三、5.下述函数的功能是__将数组a的元素由小到大排序_____________________.

voidfunc(inta[],intn)

{inti,j;

for(i=1;

n;

i++)

{for(j=i;

j>

0&

a[j]<

a[j-1];

j--)

{intt=a[j];

a[j]=a[j-1];

a[j-1]=t;

8.一个C源程序中至少应包括一个main()函数______。

9.在一个C源程序中,注释部分两侧的分界符分别为__/*___和__*/___。

10.在C语言中,输入操作是由库函数_scanf___完成的,输出操作是由库函数_printf____完成的。

11.经过下述赋植后,变量X的数据类型是_整型int______。

Intx=2;

Doubley;

Y=(int)(float)x;

12.C语言的基本数据类型分别为__整_int___型、_字符_char____型、_实float_____型。

13.若a、b和c均是int类型变量,则执行下面表达式后,a值为___6_____,b值为___4____,c值为___2____。

a=(b=4)+(c=2)

14.若a是int型变量,则执行下面表达式后,a的值为___2___。

a=25/3%3

15.若x和n均是int型变量,且x和n的初值均为5,则执行下面表达式后,x的值为__10___,n的值为___6____。

x+=n++

16.若有定义:

iloata=2.5,cntb=7;

f=4.7;

则执行下面表达式的值为__5.5____。

a+(int)(b/3*(int)(a+c)/2)%4

17.若x和y都是double型变量,且x的初值为3.0,y的初值为2.0,则表达式pow(y,fabs(x))的值为_8.000000________。

18.若有定义:

inte=1,f=4,g=2;

floatm=10.5,n=4.0,k;

则执行赋值表达式k=(e+f)/g+sqrt((double)n)*1.2/g+m后,k的值为___13.700000___________。

19.表达式8/4*(int)2.5/(int)(1.25*(3.7+2.3))值的数据类型为____int整型___________。

20.表达式pow(2.8,sqrt(double(x)))值的数据类型为__double双精度_____。

21.若s是int型变量,且s=6,则下面表达式的值为______1_______。

s%2+(s+1)%2

22.若a是int型变量,则下面表达式的值为____26_________。

(a=4*5,a*2),a+6

23.若x和a均是int型变量,则执行表达式

(1)后的x值为___12____,执行表达式

(2)后的x值为_____4________。

(1)x=(a=4,6*2)

(2)x=a=4,6*2

24.若有以下定义,则执行表达式y+=y-=m*=y后,y的值为_____-16________

intm=5,y=2;

25.设C语言中,一个int型数据在内存中占两个字节,则int型数据的取值范围为-32768---32767

数组名中存放的是一个地址常量,它代表___数组的首地址_____。

2.表示“x≥y≥z”的C语言表达式是_(x>

=y&

y>

=z)________。

3.设ch是字符型变量,判断ch为英文字母的c语言表达式是:

(ch>

=’A’&

ch<

=’Z’)||(ch>

=’a’&

=’z’)。

4.已知inta[10];

int*px=a,*py=&

a[3];

那么py与px相隔___6______个字节。

5.If语句中if总是和__最近_______else匹配。

6.从函数的参数来分函数分为_有参函数________、__无参函数______。

7.调用函数时,函数名称必须与__被调用函数____________名称完全一致。

8.形参变量只有在___调用_______时,才分配内存单元。

__调用结束_______时,即刻释放所分配的内存单元。

7.在x值处于-2到2,4到8时值为“真”,否则为“假”的表达式是__(x>

=-2&

x<

=2)||(x>

=4&

=8)__________。

8.下面函数的功能是___求字符串的长度________________。

9.设I和x都是int类型,则对于for循环语句for(i=0,x=0;

i++)执行了___9____次。

10.在C语言中,逻辑值“真”用__非0的数____________来表示。

四、程序运行结果

1.下列程序输出的结果是11,13,14,16,17,19,20。

Main()

{intn;

for(n=10;

n<

=20;

n++)

{if(n%3==0)

Continue;

Printf(“%d”,n);

2.下列程序段的输出是______5_________。

#definef(a,b,x)a*x+b

printf("

%d"

f(3,2,1));

3.#include<

stdio.h>

#defineM3

#defineNM+1

printf(“%d\n”,N);

4.main()

{intarray[5]={2,4,6,810};

int*pointer=array;

printf(”%d”,array[0]);

printf(”%d”,*(array+1));

printf(”%d”,*(pointer+2));

printf(”%d”,*(pioter++));

四、程序分析(23分)

2.下面程序的功能是什么?

#include“stdio.h”

inta,b,c,temp;

printf(“\n请输入三个数:

”);

scanf(“%d%d%d”,&

b,&

c);

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

temp=a;

a=c;

c=b;

b=temp;

printf(“\n交换之后a=%d,b=%d,c=%d”,a,b,c);

3.下面程序的功能是什么?

#include<

prime(inta)

inte,i,yes;

yes=1;

e=a/2;

i=2;

while((i<

=e)&

yes)

if((a%i)==0)yes=0;

elsei++;

returnyes;

intx;

printf(“输入一个整数给:

scanf(“%d”,&

x);

if(prime(x))printf(“YES\n”);

elseprintf(“No\n”);

4.下列程序的输出结果是(C)。

#include<

voidfun();

voidmain()

intx=1;

if(x==1)

intx=2;

printf(“%d”,++x);

voidfun()

printf(“%d”,x++);

A)2,1,1B)1,2,1C)2,2,2D)2,2,1

5.以下程序的输出结果是(C)。

char*a[][5]={“how”,”do”,”you”,”do”,”!

”};

char**p;

inti;

p=a;

for(i=0;

4;

printf(“%s”,p[i]);

A)howdoyoudo!

B)howC)howdoyoudoD)hdyd

6.下述程序的输出结果为(D)。

#include<

voidmain()

inta[5]={2,4,6,8,10};

int*p=a,**q=&

p;

printf(“d%,”,*(p++));

printf(“%d”,**q);

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

五、程序填空。

(27分)

1.下面程序是求100—200间的全部素数。

{

(1)intprime(intn);

for(m=101;

m<

=200;

m=m+2)

if(

(2)prime(m))

{printf(“%d”,m);

intprime(intn)/*判断n是否为素数*/

{intflag=1,i;

for(i=2;

n/2&

flag==1;

if(n%i==0)

flag=0;

return(__(3)_flag__);

 

3.下述函数将字符串转换成整数。

字符串中允许出现前导空格符、换行符和制表符,除此之外的其他非数字字符开头作0处理。

此外,若字符串中出现非数字字符,则终止字符串的转换。

voidstoa(char*s,long*a)

{inti=0,sign=______

(1)__1____;

while(s[i]==’’‖s[i]==’\t’)

i++;

if(s[i]==’+’‖s[i]==’—’)

{sing=s[i]==’+’?

1:

—1;

____

(2)_i++_;

for(*a=0;

_(3)s[i]>

=’0’&

s[i]<

=’9’__;

I++)

*a=___(4)sign__;

*a*=sign;

4.本程序用改进的气泡排序法对数组a的元素从小到大排序。

voidbubble(inta[],intn)

{intj,k,jmax,temp;

jmax=____

(1)_n-1_____;

do

{k=__

(2)__0______;

for(j=0;

j<

jmax;

j++)

if(a[j]>

a[j+1])

{temp=a[j];

a[j]=a[j+1];

a[j+1]=temp;

k=__(3)___j__________;

jmax=__(4)___k_____;

}while(jmax>

0);

4、程序分析

(1)程序有错误么?

如有,请给予改正。

并写出程序运行结果。

(5分)

(2)指出哪些变量属于局部变量,哪些变量属于全局变量?

同时给出给各变量的作用范围(用行号表示)。

1.ints1,s3,v;

2.intvs(inta,intb,intc)

3.{intk;

4.k=a*b*c;

s1=a*b;

s2=b*c;

s3=a*c;

5.returnk;

6.}

7.ints2;

8.main()

9.{intl,w,h;

10.l=3;

w=2;

h=5;

11.v=vs(l,w,h);

12.printf("

v=%d,s1=%d,s2=%d,s3=%d\n"

v,s1,s2,s3);

13.}

(1)程序有错误,改正:

第3行与第4行之间插入语句externints2;

程序运行结果:

30,6,10,15。

(2)局部变量:

a,b,c,k,l,w,h,它们的作用范围只在自己函数内,全局变量:

s1,s3,v,s2;

其中s1,s3,v的作用范围为1—13,s2的作用范围为7—13。

(2)下面程序的功能是什么?

对三个数排序

#

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

当前位置:首页 > 求职职场 > 简历

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

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