C语言复习题库.docx

上传人:b****5 文档编号:8465500 上传时间:2023-01-31 格式:DOCX 页数:172 大小:103.50KB
下载 相关 举报
C语言复习题库.docx_第1页
第1页 / 共172页
C语言复习题库.docx_第2页
第2页 / 共172页
C语言复习题库.docx_第3页
第3页 / 共172页
C语言复习题库.docx_第4页
第4页 / 共172页
C语言复习题库.docx_第5页
第5页 / 共172页
点击查看更多>>
下载资源
资源描述

C语言复习题库.docx

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

C语言复习题库.docx

C语言复习题库

1

下面四个选项中,均是不合法的用户标识符的选项是(D)。

A、_123tempint

B、AP_0do

C、floatla0_A

D、b-agotoint

2,相同结构体类型的变量之间,可以(c)。

A、比较大小

B、地址相同

C、赋值

D、相加

3,下列运算符中优先级别最高的是A

A、!

B、%

C、-=

D、&&

4,C语言中的标识符只能由字母,数字和下划线三种字符组成,

且第一个字符(D)。

A、必须为下划线

B、可以是字母,数字和下划线中任一字符

C、必须为字母

D、必须为字母或下划线

5,以下叙述不正确的是(B)。

A、C程序的基本组成单位是函数

B、在C程序中,注释说明只能位于一条语句的后面

C、一个C源程序必须包含一个main函数

D、一个C源程序可由一个或多个函数组成

6,下列程序的输出为(C)。

main()

{inty=10;

while(y--);

printf("y=%d\n",y);

}

A、while构成无限循环

B、y=0

C、y=-1

D、y=1

7,下列字符序列中,是C语言保留字的是(B)。

A、include

B、sizeof

C、sqrt

D、scanf

8,在一个C程序中(C)。

A、main函数必须出现在固定位置

B、main函数必须出现在所有函数之前

C、main函数可以在任何地方出现

D、main函数必须出现在所有函数之后

9,以下程序段的输出结果是C

main()

{charx=‘A’;

x=(x>=’A’&&x<=’Z’)?

(x+32):

x;

printf(“%c\n”,x);

}

A、A

B、Z

C、a

D、z

10,以下叙述中正确的是(A)。

A、构成C程序的基本单位是函数

B、所有被调用的函数一定要在调用之前进行定义

C、可以在一个函数中定义另一个函数

D、main()函数必须放在其它函数之前

11,putchar函数可以向终端输出一个(B)。

A、字符串

B、字符或字符型变量值

C、实型变量值

D、整型变量表达式值

12,执行下列程序后,其输出结果是(b)。

main()

{inta=9;

a+=a-=a+a;

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

}

A、18

B、-18

C、-9

D、9

13,以下程序的执行结果是_A

main()

{intnum=0;

while(num<=2){num++;printf("%d,",num);}}

A、1,2,3,

B、1,2,3,4,

C、1,2,

D、0,1,2

14,以下程序的输出结果是D

main()

{intx=10,y=3;

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

}

A、不确定的值

B、0

C、1

D、3

15,C语言规定,在一个源程序中,main函数的位置(D)。

A、必须在最开始

B、必须在系统调用的库函数的后面

C、必须在最后

D、可以任意

16,不合法的八进制数是D

A、01

B、0

C、07700

D、028

17,若有宏定义如下:

#defineMOD(x,y)x%y

则执行以下程序段的输出为C。

intz,a=15,b=100;

z=MOD(b,a);

printf(“%d\n”,z++);

A、11

B、6

C、10

D、5

18,若int类型占两个字节,则以下程序段的输出是D

inta=-1;

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

A、-1,-1

B、-1,32767

C、-1,32768

D、-1,65535

19,假定所有变量均已正确定义,下列程序段运行后x的值是(D)。

k1=1;

k2=2;

k3=3;

x=15;

if(!

k1)x--;

elseif(k2)x=4;

elsex=3;

A、15

B、14

C、3

D、4

20,C语言中,逻辑"真"等价于C

A、非零的整数

B、大于零的整数

C、非零的数

D、大于零的数

填空

1.组成C程序的基本单位是__函数___,其组成部分包括_函数首部_和__函数体。

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

#include“string.h”

#include“ctype.h”

voidfun(charstr[])

{inti,j;

for(i=0,j=0;str[i];i++)

if(isalpha(str[i]))

str[j++]=str[i];

str[j]=‘\0’;

}

main()

{charss[80]=“itis!

”;

fun(ss);

printf(“%s\n”,ss);

}

3.有以下宏定义和赋值语句,宏置换后的赋值语句的形式是_____。

#defineA3+5

……

p=A*A;

【参考答案】

p=3+5*3+5

p=3+5*3+5;

4.为了建立如图所示的存储结构,请填空。

structslink

{chardata;

_____;

}node;

【参考答案】

structnode*link

5.若有以下说明和输入语句,要求给c1、c2、c3输入字符A、B和C,请写出从键盘正确输入数据的形式是_____。

charc1,c2,c3;

scanf(“%4c”,&c1);

scanf(“%4c”,&c2);

scanf(“%4c”,&c3);

【参考答案】

AAAABBBBCCCC

AAAABBBBCCCC↙

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

doublesub(doublex,doubley,doublez)

{y-=1.0;

z=z+x;

returnz;

}

main()

{doublea=2.5,b=9.0;

printf(“%f\n”,sub(b-a,a,b));

}

【参考答案】

15.500000

7.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____。

空1】错误

【参考答案】

65535

【参考答案】

-32768

【参考答案】

1111111111111111,1000000000000000

8.以下程序的输出结果是_____。

main()

{intx=100,a=10,b=20,ok1=5,ok2=0;

if(a

=15)if(!

ok1)x=1;

elseif(ok2)x=10;

elsex=-1;

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

}

【参考答案】

-1

9.若有定义:

inta=8,b=5,c执行语句c=a/b+0.4后,c的值为_____

【参考答案】1

10.表达式s=10应当读做“_____”。

【参考答案】

将10赋给变量s

程序大题

1./*请编写一个函数fun,它的功能是:

求出一个2×M整型二维数组中最大元素的值,并将此值返回调用函数。

注意:

部分源程序存在文件prog.c中。

请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。

*/

 

#defineM4

#include

fun(inta[][M])

{

/**********Begin**********/

/**********End***********/

}

 

NONO()

{/*本函数用于打开文件,输入数据,调用函数,输出数据,关闭文件。

*/

FILE*wf;

intarr[][M]={5,8,3,90,76,-4,12,82};

wf=fopen("bc08.out","w");

fprintf(wf,"max=%d\n",fun(arr));

fclose(wf);

}

 

main()

{intarr[2][M]={5,8,3,90,76,-4,12,82};

printf("max=%d\n",fun(arr));

NONO();

}

【参考代码】

inti,j,base;

base=a[0][0];

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

for(j=0;j

if(base

base=a[i][j];

}

returnbase;

2./*------------------------------------------------

【程序设计】

--------------------------------------------------

功能:

请编一个函数voidfun(inttt[M][N],intpp[N]),

tt指向一个M行N列的二维数组,求出二维数组每列

中最大元素,并依次放入pp所指一维数组中。

二维

数组中的数已在主函数中赋予。

------------------------------------------------*/

#include

#include

#defineM3

#defineN4

voidbky();

voidfun(inttt[M][N],intpp[N])

{

/**********Begin**********/

/**********End**********/

}

main()

{

intt[M][N]={{22,45,56,30},

{19,33,45,38},

{20,22,66,40}};

intp[N],i,j,k;

printf("Theoriginaldatais:

\n");

for(i=0;i

{

for(j=0;j

printf("%6d",t[i][j]);

printf("\n");

}

fun(t,p);

printf("\nTheresultis:

\n");

for(k=0;k

printf("\n");

bky();

}

voidbky()

{

inti,j,array[3][4],p[4];

FILE*rf,*wf;

rf=fopen("in.dat","r");

wf=fopen("out.dat","w");

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

for(j=0;j<4;j++)

fscanf(rf,"%d",&array[i][j]);

fun(array,p);

for(j=0;j<4;j++)

{

fprintf(wf,"%7d",p[j]);

fprintf(wf,"\n");

}

fclose(rf);

fclose(wf);

}

【参考代码】

inti,j;

for(j=0;j

{

pp[j]=tt[0][j];

for(i=1;i

if(tt[i][j]>pp[j])

pp[j]=tt[i][j];

}

程序填空

1./*-------------------------------------------------------

【程序填空】

---------------------------------------------------------

功能:

将一个字符串中的前N个字符复制到一个字符数组中去,

不许使用strcpy函数。

-------------------------------------------------------*/

#include

main()

{

charstr1[80],str2[80];

inti,n;

/**********FILL**********/

gets(_____);

scanf("%d",&n);

/**********FILL**********/

for(i=0;_____;i++)

/**********FILL**********/

_____

/**********FILL**********/

_____

printf("%s\n",str2);

}

【空1】【参考答案】

str1

【空2】【参考答案】

i

n>i

i<=n-1

n-1>=i

【空3】【参考答案】

str2[i]=str1[i]

*(str2+i)=*(str1+i)

*(str2+i)=str1[i]

str2[i]=*(str1+i)

【空4】【参考答案】

str2[n]='\0'

str2[i]='\0'

str2[n]=0

str2[i]=0

*(str2+n)='\0'

*(str2+i)='\0'

*(str+n)=0

*(str2+i)=0

2.

功能:

以下程序的功能如(图1)。

-------------------------------------------------------*/

#include"stdio.h"

/***********FILL***********/

doublef(_____)

{

/***********FILL***********/

_____;

/***********FILL***********/

if(_____)

y=2.0*x*x+3.0*x+4.0;

else

y=-2.0*x*x+3.0*x-4.0;

/***********FILL***********/

_____;

}

【空1】【参考答案】

floatx

doublex

【空2】【参考答案】

doubley

floaty

【空3】【参考答案】

x<=2

2>=x

【空4】【参考答案】

returny

return(y)

3.

功能:

分别求出一批非零整数中的偶数、奇数的平均值,用零作

为终止标记。

-------------------------------------------------------*/

#include

main()

{

intx,i=0,j=0;

floats1=0,s2=0,av1,av2;

scanf("%d",&x);

/**********FILL**********/

while(_____)

{

if(x%2==0)

{

s1=s1+x;

i++;

}

/**********FILL**********/

_____

{

s2=s2+x;

j++;

}

/**********FILL**********/

_____

}

if(i!

=0)

av1=s1/i;

else

av1=0;

if(j!

=0)

/**********FILL**********/

_____

else

av2=0;

printf("oushujunzhi:

%7.2f,jishujunzhi:

%7.2f\n",av1,av2);

}

【空1】【参考答案】

x!

=0

x

【空2】【参考答案】

else

elseif(x%2==1)

elseif(x%2!

=0)

if(x%2)

【空3】【参考答案】

scanf("%d",&x)

【空4【参考答案】

av2=s2/j

选择

1.若int类型占两个字节,则以下程序段的输出是D

inta=-1;

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

A、-1,-1

B、-1,32767

C、-1,32768

D、-1,65535

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

main()

{intk=-3;

if(k<=0)

printf(“****\n”),

elseprintf(“&&&&\n”);

}

A、****

B、有语法错误不能通过编译

C、&&&&

D、****&&&&

3.当运行以下程序时,在键盘上从第一列开始,输入9876543210(此处表示Enter),则程序的输出结果是D

main()

{inta;floatb,c;

scanf(“%2d%3f%4f”,&a,&b,&c);

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

}

A、a=10,b=432,c=8765

B、a=98,b=765.0,c=4321.0

C、a=98,b=765,c=4321

D、a=98,b=765.000000,c=4321.000000

4.在C语言中,要求运算数必须是整型或字符型的运算符是(B)。

A、||

B、&

C、&&

D、!

5.C语言中用于结构化程序设计的三种基本结构是(B)。

A、for、while、do-while

B、顺序结构、选择结构、循环结构

C、if、switch、break

D、if、for、continue

6.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与(B)配对。

A、其之后最近的if

B、其之前最近的if

C、缩排位置相同的if

D、同一行上的if

7.以下程序的执行结果是___A_.

main()

{intnum=0;

while(num<=2){num++;printf("%d,",num);}}

A、1,2,3,

B、1,2,3,4,

C、1,2,

D、0,1,2

8.一个C程序的执行是从(B)。

A、本程序文件的第一个函数开始,到本程序main函数结束

B、本程序的main函数开始,到main函数结束

C、本程序的main函数开始,到本程序文件的最后一个函数结束

D、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束

9.先用语句定义字符型变量c,然后要将字符a赋给c,则下列语句中正确的是(C)。

A、c="a";

B、C='97'

C、c='a';

D、c="97";

10.从循环体内某一层跳出,继续执行循环外的语句是A

A、break语句

B、return语句

C、continue语句

D、空语句

11.以下程序段的输出结果是C

main()

{charx=‘A’;

x=(x>=’A’&&x<=’Z’)?

(x+32):

x;

printf(“%c\n”,x);

}

A、A

B、Z

C、a

D、z

12.为表示关系x≥y≥z,应使用C语言表达式C

A、(x>=y>=z)

B、(x>=y)AND(y>=z)

C、(x>=y)&&(y>=z)

D、(x>=z)&(y>=z)

13.以下正确的字符串常量是D

A、'abc'

B、'A'

C、OlympicGames

D、"\\\"

14.以下叙述中错误的是B

A、用户所定义的标识符应尽量做到"见名知意"

B、用户所定义的标识符允许使用关键字

C、用户定义的标识符中,大、小写字母代表不同标识

D、用户所定义的标识符必须以字母或下划线开头

15.inta=1,b=2,c=3;if(a>b)a=b;if(a>c)a=c;则a的值为(A)。

A、1

B、不一定

C、3

D、2

16.执行下列程序后,其输出结果是(B)。

main()

{inta=9;

a+=a-=a+a;

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

}

A、18

B、-18

C、-9

D、9

17.以下程序的输出结果是C

#include

main()

{

inti;

for(i=1;i<5;i++)

{

if(i%2)

putchar(‘<’);

else

continue;

putchar(‘>’);

}

putchar(‘#’);

}

A、<><><>#

B、><><#

C、<><>#

D、><><><#

18.若希望当A的值为奇数时,表达式的值为“真”,A的值为偶数时,表达

式的值为“假”,则以下不能满足要求的表达式是(A)。

A、!

(A%2)

B、A%2

C、A%2==1

D、!

(A%2==0).

19.当定义一个结构体变量时,系统分配给它的内存是(D)。

A、结构中最后一个成员所需内存量

B、结构中第一个成员所需内存量

C、成员中占内存量最大者所需的容量

D、各成员所需内存量的总和

20.下列关于单目运算符++、--的叙述中正确的是__C_。

A、它们的运算对象可以是int型变量,但不能是double型变量和float型变量

B、它们的运算对象可以是任何变量和常量

C、它们的运算对象可以是char型变量、int型变量和float型变量

D、它们的运算对象可以是char型变量和int型变量,但不能是float型变量

填空

1.结构化程序由_____、_____、_____三种基本结构组成。

【空1】顺序【空2】条件分支选择【空3】【参考答案】循环

2.在算法正确的前提下,评价一个算法的两个标准是_____

【参考答案】

时间复杂度和空间复杂度

空间复杂度和时间复杂度

3.当计算机用两个字节存放一个整数时,其中能存放的最大十进制整数是_____、最小十进制整数是_____,它们的二进制形式是_____。

【空1】【参考答案】65535【空2】-32768

【空3】【参考答案】1111111111111111,1000000000000000

4.以下fun函数的功能是将一个字符串的内容逆置。

请填空。

#include“string.h”

voidfun(charstr[])

{inti,j,k;

for(i=0,j=_____;i

{k=str[i];

str[

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

当前位置:首页 > 高等教育 > 工学

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

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