C程序设计复习题有答案Word格式.docx

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

C程序设计复习题有答案Word格式.docx

《C程序设计复习题有答案Word格式.docx》由会员分享,可在线阅读,更多相关《C程序设计复习题有答案Word格式.docx(22页珍藏版)》请在冰点文库上搜索。

C程序设计复习题有答案Word格式.docx

A)C程序总是从文件中第一个函数开始执行

B)C程序中,只有main()函数才可以调用其他函数

C)C程序总是从main()函数开始执行

D)C程序中的main()函数必须放在程序的开头

17.若有定义:

inta=7;

floatx=2.5,y=4.7;

则表达式x+a%3*(int)(x+y)%2/4的值为(A)

A)2.5B)2.75C)3.5D)0

18.设变量a是整型,f是实型,i是双精度型,则表达式10+'

+i*f值的数据类型为(C)

A)intB)floatC)doubleD)不确定

19.有输入语句:

scanf("

%d,%d"

&

a,&

b);

为使变量a、b分别为5和3,从键盘输入数据的正确形式为(B)

A)53<

回车>

B)5,3<

C)a=5b=3<

D)a=5,b=3<

20.定义如下变量和数组:

intj;

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

则下面语句的输出结果是(C)

for(j=2;

j>

=0;

j--)

printf("

%2d"

x[j][2-j]);

A)159B)147C)753D)369

21.执行下面程序后,a的值是(B)

#include<

stdio.h>

#defineSQR(x)x*x

voidmain()

{inta=10,k=2,m=1;

a=SQR(k+m);

%d\n"

a);

}

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

22.以下叙述不正确的是(C)

A)在函数内部定义的变量是局部变量

B)函数中的形式参数是局部变量

C)全局变量的作用范围仅限于其所在的整个文件

D)局部变量的作用范围仅限于本函数

23.设a=3,b=4,c=2,d=1,则表达式“a>

b?

a:

c>

d?

c:

d”的值为(C)

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

24.有以下程序段:

x=-1;

do

x=x*x;

while(!

x);

执行时,循环体执行的次数为(B)

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

25.以下不正确的if语句形式是(C)

A)if(x>

y&

x!

=y);

B)if(x==y)x+=y;

C)if(x!

=y)scanf("

%d"

x)

elsescanf("

y);

D)if(x<

y){x++;

y++;

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

#include<

voidmain()

{intx=2,y=-1,z=2;

if(x<

y)

if(y<

0)z=0;

elsez+=1;

printf("

z);

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

27.以下能正确计算1×

…×

10的程序段是(A)

A)i=1,s=1;

B)s=1;

i=1;

dowhile(i<

=10)

{s=s*i;

i++;

}s=s*(++i);

while(i<

11);

C)for(i=1,s=0;

i<

=10;

i++)D)for(i=1,s=1;

;

i++)

s=s*i;

s=s*i;

28.若j为整型变量,则以下循环执行次数是(C)

for(j=0;

j==0;

j--);

A)无限次B)0次C)1次D)2次

29.若有说明:

inta[10];

则对a数组元素的正确引用是(C)

A)a[3.5]B)a(8)C)a[6-5]D)a[10]

30.C语言规定,变量做实参时,它和对应形参之间的数据传递方式是(B)

A)地址传递B)单向值传递C)双向值传递D)由用户指定传递方式

31.C中,一个float类型的数据在内存中占(C)个字节。

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

32.设有程序段:

intk=5;

while(k<

=0)

k--;

则下列描述中正确的是(C)

A)while循环执行5次B)循环是无限循环

C)循环语句一次也不执行D)循环体语句执行一次

33.下面程序段的运行结果是(B)

charc[5]={'

'

b'

\0'

c'

};

printf("

c);

A)'

'

B)abC)AbcD)"

abc"

34.以下不正确的字符串赋值语句是(C)

A)char*s;

s="

abcde"

B)chars[]="

C)chars[10];

D)char*s="

35.设p1、p2是指向int型一维数组的指针变量,k为int型变量,以下错误的语句是(B)

A)k=*p1+*p2;

B)p2=k;

C)p1=p2;

D)k=p2-p1;

36.下面程序的输出结果是(A)

{chars[]="

ABCD"

char*p;

for(p=s;

p<

s+4;

p++)

%s\n"

p);

A)ABCDB)AC)DD)ABCD

BCDBCABC

CDCBAB

DDAA

37.以下关于C函数的定义和调用描述正确的是(B)

A)函数的定义可以嵌套,但函数的调用不可嵌套

B)函数的调用可以嵌套,但函数的定义不可嵌套

C)函数的定义和调用均可以嵌套

D)函数的定义和调用均不可嵌套

38.以下关于变量的作用域说法正确的是(D)

A)在不同函数中不能使用相同名字变量

B)在函数外部定义的变量只在本函数范围内有效

C)在函数内的复合语句定义的变量在本函数内有效

D)形式参数是局部变量

39.以下关于变量的作用域叙述不正确的是(C)

A)在函数内部定义的变量是局部变量

B)函数中的形式参数是局部变量

C)全局变量的作用范围仅限于其所在的文件

D)局部变量的作用范围仅限于本函数

40.以下关于C函数参数说法不正确的是(B)

A)实参可以是常量、变量和表达式

B)形参可以是常量、变量和表达式

C)实参可以为任意数据类型

D)形参应与对应的实参类型一致

41.以下关于C函数返回值的叙述正确的是(D)

A)被调函数中只有使用return语句才能返回主调函数

B)使用一个return语句可以返回多个函数值

C)函数返回值类型取决于return语句中的表达式类型

D)函数返回值类型取决于定义该函数时所指定的类型

42.在C中,“a>

c”属于哪种表达式?

(A)

A)关系B)赋值C)逻辑D)非法

43.以下不合法的C表达式是(C)

A)10||8B)12==9+1C)++5D)x!

=y

44.给定以下程序段:

intn=10;

while(n>

6)

{n--;

%3d"

n);

以上程序段输出结果是(D)

A)1098B)987C)10987D)9876

45.若i,j已定义为int型,则以下程序段中内循环总的执行次数是(C)

for(i=5;

i>

0;

i--)

for(j=1;

j<

6;

j++)

{……}

A)30B)24C)25D)20

46.若已定义:

float*p,m=3.14159;

则使p指向m正确的赋值语句是(B)

A)p=m;

B)p=&

m;

C)*p=m;

D)*p=&

47.若已定义:

chars[10];

则下面表达式中不能表示s[1]地址的是(A)

A)s++B)s+1C)&

s[0]+1D)&

s[1]

二、填空题

1.函数是C程序的基本构成单位,C程序总是从main函数____开始执行的。

2.赋值表达式x*=y+5的另一种书写形式为x=x*(y+5)

3.已知a=10,b=20,c=3,则表达式a>

b||c的值为1

4.整数m既能被3整除又能被4整除的逻辑表达式为(m%3==0)&

(m%4==0)

5.若有定义:

doublea[10][5];

则数组a中行下标最大值为9,列下标最大值为4。

6.若有定义:

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

则*(a+5)的值为9

7.设有如下定义inta[5][6],*p;

取数组元素a[4][2]的地址放到p中的语句为p=&

a[4][2];

8.未加特别说明(说明为静态的)的全局变量是外部的,能被其它文件中的函数使用,而在引用它的文件中,需要用关键字extern说明。

9.已知a=10,b=20,则表达式!

a>

b的值为0

10.写出0<

x<

1的C逻辑表达式(0<

x)&

(x<

1)

11.若有定义:

inta[10],*p=a;

则元素a[5]的值用p表示的形式是*(p+5)

12.若有定义:

int*p[4];

则标识符p表示数组长度为4的一维指针数组

13.凡是函数中未指定存储类型的局部变量,其默认的存储类型为auto

三、程序填空

1.下面程序的功能是:

从键盘输入一个字符,若是大写字母,则转换为小写字母并输出,若为小写字母则直接输出,请在_____处填上合适内容,使程序完整。

#include<

voidmain()

{charch;

ch=getchar();

if(ch>

='

A'

ch<

Z'

ch+=32;

ch);

2.下面程序的功能是:

求1~100间的偶数和,请在_____处填上合适内容,使程序完整。

{intnum,sum=0;

for(num=2;

num<

=100;

num=num+2)

sum=sum+num;

1-100间的偶数和是:

sum);

3.下面程序段是求n!

的递归函数,请将函数补充完整。

doublefac(intn)

{doubleresult;

if(n==1)

result=1;

else

result=n*fac(n-1);

return(result);

4.以下程序的功能是:

输入一整数n,判断是否为素数。

#include<

math.h>

{inti,n;

n);

for(i=2;

i<

=sqrt(n);

i++)

if(n%i==0)

break;

if(i>

sqrt(n))

%disaprimenumber.\n"

n);

else

%disnotaprimenumber.\n"

四、阅读程序

1.#include<

{charch;

intcnt1=0,cnt2=0;

while((ch=getchar())!

\n'

if(ch>

z'

)cnt1++;

elsecnt2++;

COUNT=%d\n"

cnt1);

}

若输入“ThisisaCprogram.”,运行结果:

COUNT=13

2.#include<

{inti,j,temp;

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

for(i=0,j=9;

j;

i++,j--)

{temp=a[i];

a[i]=a[j];

a[j]=temp;

for(j=0;

j<

10;

j++)

printf("

a[j]);

运行结果:

9876543210

3.#include<

string.h>

{charstr1[20]="

good"

str2[]="

morning"

inti,j;

for(i=strlen(str1),j=0;

str2[j]!

i++,j++)

str1[i]=str2[j];

str1[i]='

string1=%s"

str1);

string1=goodmorning

4.#include<

{inti,j,pos;

floatval,a[10];

for(i=0;

scanf("

%f"

a[i]);

val=a[0];

if(a[j]>

val)

{val=a[j];

pos=j;

Max=%f,position:

val,pos);

本程序的功能是:

从键盘输入10个数存到数组a中,求10个数的最大值及其位置

当程序运行时,从键盘输入“1029384756”,运行结果:

Max=9.000000,position:

3

5.#include<

floataverage(intx[],intn)

{inti;

floatsum=0;

n;

sum+=x[i];

return(sum/n);

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

floatrst;

rst=average(a,5);

result=%f\n"

rst);

result=6.000000

6.给定如下程序:

{chargrade;

&

grade);

switch(grade)

{case'

:

85—100\n"

);

break;

case'

B'

70—84\n"

C'

60—69\n"

D'

<

60\n"

default:

error\n"

当程序运行时,从键盘输入“D”,输出的结果是:

60

7.给定如下程序:

{inta[5]={2,5,3,7,6},i,j,t;

for(i=0;

4;

for(j=0;

4-i;

if(a[j]>

a[j+1])

{t=a[j];

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

a[j+1]=t;

5;

a[i]);

该程序的功能是:

用“起泡法”对数组a中的5个整数按由小到大排序并输出

输出的结果为:

23567

8.给定如下程序:

voidfun()

{autointb=0;

staticintc=4;

b++;

c++;

b=%dc=%d\n"

b,c);

{inti;

for(i=0;

3;

fun();

运行结果是:

b=1c=5

b=1c=6

b=1c=7

9.给定如下程序:

{char*p1,*p2,c,s[50];

gets(s);

p1=s;

p2=s+strlen(s)-1;

for(;

p1<

p2;

p1++,p2--)

{c=*p1;

*p1=*p2;

*p2=c;

Thenewstringis%s\n"

s);

此程序的功能是:

从键盘输入一字符串存放到数组s中,将此字符串逆序输出

当程序运行时,从键盘输入“abcwe#y”,输出的结果是:

Thenewstringisy#ewcba

五、按要求编程

1.编写0~100之间偶数之和的程序。

sum=sum+num;

sum=%d\n"

2.编程计算1!

+2!

+3!

+…+20!

{

floats=0,t=1;

intn;

for(n=1;

n<

=20;

n++)

{

t=t*n;

s=s+t;

1!

+....+20!

=%e\n"

s);

3.统计由键盘输入的任意一串字符中空格的个数。

charch;

intspace=0;

while((ch=getchar())!

if(ch=='

'

)space++;

konggeshu=%d\n"

space);

4.编写程序找出1—100之间的素数,并统计素数的个数。

intm,k,i,n=0;

for(m=1;

m<

m=m+2)

k=sqrt(m);

for(i=2;

=k;

if(m%i==0)

if(i>

=k+1)

m);

n=n+1;

if(n%10==0)printf("

\n"

\ntotalnumberis=%d"

5.打印杨辉三角形(10行)。

要求:

使用二维数组和循环语句实现。

1

11

121

1331

……

#defineN11

inti,j,a[N][N];

for(i=1;

N;

a[i][i]=1;

a[i][1]=1;

for(i=3;

for(j=2;

=i-1;

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

for(j=1;

=i;

%6d"

a[i][j]);

6.从键盘输入10个数,找出最大值与最小值,并计算它们的平均值。

floata[10],aver,sum,max,min;

inti;

for(i=0;

i++)

max=min=a[0];

sum=a[0];

if(a[i]>

max)max=a[i];

elseif(a[i]<

min)min=a[i];

sum=sum+a[i];

av

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

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

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

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