C语言复习题库_第1页
C语言复习题库_第2页
C语言复习题库_第3页
C语言复习题库_第4页
C语言复习题库_第5页
已阅读5页,还剩92页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1

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

A、_123tempint

B、AP_0do

C、floatlaO_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)o

main()

{inty=10;

while(y-);

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

)

A、while构成无限循环

B、y=0

C、y=-l

D、y=l

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,&&xv=Z)?(x+32):x;

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

A、A

Z

C、a

D、z

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

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

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

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

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

ll,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(u%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,若有宏定义如下:

#defineM)D(x,y)x%y

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

intz,a=15,b=100;

z=MOD(b,a);

printf(u%d\n,\z++);

A、11

B、6

C、10

D、5

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

inta=-l;

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

A、-1,-1

B、-1,32767

C、-1,32768

D、-1,65535

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

kl=l;

k2=2;

k3=3;

x=15;

if(!kl)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;

datalink

【参考答案】

structnode*link

5.若有以下说明和输入语句,要求给cl、c2、c3输入字符A、B和C,请写出从键盘正确

输入数据的形式是。

charcl,c2,c3;

scanf(“%4c",&cl);

scanf(u%4c,\&c2);

scanf(u%4cv,&c3);

【参考答案】

AAAABBBBCCCC

AAAABBBBCCCCZ

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

doublesub(doublex,doubley,cbublez)

{y-=io;

Z=Z+X;

returnz;

main()

{doublea=2.5,b=9.0;

printf("%t\n”,sub(b-a,a,b));

}

【参考答案】

15.500000

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

制整数是,它们的二进制形式是.

空1]错误

【参考答案】

65535

【参考答案】

-32768

【参考答案】

1111111111111111,1000000000000000

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

main()

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

if(a<b)if(b!=15)if(!okl)x=l;

elseif(ok2)x=10;

elsex="l;

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

}

【参考答案】

-1

9.若有定义:inta=8,b=5,c执行语句c=a/b+O.4后,c的值为

【参考答案】1

10.表达式s=10应当读做“___

【参考答案】

将10赋给变量S

程序大题

1./*请编写一个函数fun,它的功能是:求出一个2XM整型二维数组中最大元素的值,并将此值返

同调田南新'

注意:编分源程序存在文件prog.*。

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

*/

#defineM4

#include<stdio.h>

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<M;j++){

if(base<a[i][j])

base=a[i][j];

)

returnbase;

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

【程序设计】

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

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

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

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

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

#include<conio.h>

#include<stdio.h>

#defineM3

#defineN4

voidbky();

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

(

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

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

mainO

(

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<M;i++)

(

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

printfC%6d*,t[i][j]);

printf("\n");

)

fun(t,p);

printf("\nTheresultis:\n");

for(k=0;k<N;k++)printf("%4d",p[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,/z%7d/z,p[j]);

fprintf(wf,〃\n〃);

)

fclose(rf);

fclose(wf);

)

【参考代码】

inti,j;

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

{

Pp[j]=tt[0][j];

for(i=l;i<M;i++)

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

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

}

程序填空

1./*------

【程序填空】

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

不许使用strcpy函数。

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

#include<stdio.h>

main()

(

charstr1[80],str2[80];

inti,n;

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

gets(_____);

scanf(绘d〃,&n);

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

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

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

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

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

)

【空1】【参考答案】

strl

【空2】【参考答案】

i<n

n>i

i<=n-l

n-l>=i

【空3】【参考答案】

str2[i]=strl[i]

*(str2+i)=*(strl+i)

*(str2+i)=strl[i]

str2[i]=*(strl+i)

【空4】【参考答案】

str2[n]=\0)

str2[i]=,\0'

str2[n]=0

str2[i]=0

*(str2+n)=\OS

*(str2+i)=\Of

*(str+n)=0

*(str2+i)=0

2.

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

计算s=M・1.0)+T5-5))的值。其中:

“2x2+3x+4x<=2

RX)=Y

・2婷+3x-4x>2

当程序正确时,函数值应为2488.000000。

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

#include〃stdio.h〃

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

doublef(_____)

{

/***********F[LL***********/

/***********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<stdio.h>

mainO

(

intx,i=O,j=0;

floatsl=0,s2=0,avl,av2;

scanf&x);

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

while(______)

(

if(x%2=0)

(

sl=sl+x;

i++;

)

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

s2=s2+x;

j++;

}

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

)

if(i!=0)

avl=sl/i;

else

avl=0;

if(j!=O)

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

else

av2=0;

printf(,zoushujunzhi:%7.2f,jishujunzhi:%7.2f\n〃,avl,av2);

)

【空1】【参考答案】

x!=0

x

【空2】【参考答案】

else

elseif(x%2==l)

elseif(x%2!=0)

if(x%2)

【空3】【参考答案】

scanf&x)

【空4【参考答案】

av2=s2/j

选择

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

inta=-l;

printf(t4%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)

elseprintf("&&&&\n‘‘);

A、****

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

C、&&&&

D、****&&&&

3.当运行以下程序时,在键盘上从第一列开始,输入9876543210<CR>(此处<CR>表示

Enter),则程序的输出结果是D

main()

{inta;floatb,c;

scanf(u%2d%3f%4f\&a,&b,&c);

printf(tt\na=%d,b=%f,c=%^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、II

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、O'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.为表示关系x2y2z,应使用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=l,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<stdio.h>

main()

inti;

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

if(i%2)

putchar('v');

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(<harstr[])

{inti,jk;

for(i=0,j=;i<j;i++-------)

{k=str[i];

str「]=str[jj;

str[j]=k;}

)

【空1]【参考答案】strlen(str)-1【空2】【参考答案】j-

5.若变量x、y已定义为int类型且x的值为99,y的值为9,请将输出语句

printf(,x/y);补充完整,使其输出的计算结果形式为:x/y=ll

【空1】【参考答案】〃x/y=%d”

6.若k为int型变量且赋值11,请写出运算k++后表达式的值..和变量的值

【空1]【参考答案】11

【空2]【参考答案】12

7.阅读下面程序,程序执行后的输出结果是___o

^include"stdio.h〃

main()

intx,y,z;

x=1;y=2;z3;

if(x>y)

if(x>z)printfx);

elseprintf(〃%d〃,y);

printf(〃%d\n〃,z);

【参考答案】3

8.函数体由符号开始,用符号_}_结束。

9.描述算法的常用方法有:c

【参考答案】自然语言流程图N-S图伪代码和计算机语言

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

structslink

{chardata;

}node;

datalink

【参考答案】structnode*link

程序设计

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

【程序设计】

功能:编写函数fun对主程序中用户输入的具有10

个数据的数组.a按由大到小排序,并在主程序中输出

排序结果。

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

^include<stdio.h>

voidbky();

intfun(intarray[],intn)

(

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

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

)

main()

inta[10],i;

printf(〃请输入数组a中的十个数:\n〃);

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

scanf(绘d〃,&a[i]);

fun(a,10);

printf(〃由大到小的排序结果是:\n");

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

printf("%4d",a[i]);

printf(〃\n〃);

bky();

voidbky()

(

FILE*IN,*0UT;

intn;

inti[10];

IN=fopen(,zin.dat〃,“r〃);

if(IN=NULL)

(

printf("ReadFILEError");

)

OUT二fopen("out.dat",〃w");

if(OUT=NULL)

(

printf("WriteFILEError");

}

for(n=0;n<10;n++)

(

fscanf(IN,*%d*,&i[n]);

)

fun(i,10);

for(n=0;n<10;n++)

(

fprintf(OUT,〃%d\n”,i[n]);

)

fclose(IN);

fclose(OUT);

)

【参考代码】

intk,j,t;

for(k=0;k<n-l;k++)

for(j=k+l;j<n;j++)

if(array[k]<array[j])

{

t二array[k];

array[k]=array[j];

array[j]=t;

)

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

【程序设计】

功能:编写函数判断一个整数能否同时被3和5整除,若能

则返回值为1,否则为0。调用该函数求出15、300之

间能同时被3和5整除的数的个数。

*/

#include<stdio.h>

voidbky();

intsum(intn)

(

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

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

)

mainO

(

inti,s=0;

for(i=15;i<=300;i++)

if(sum(i)==l)s=s+l;

printf("s二%d\n',s);

bky();

voidbky()

(

FILE*IN,*0UT;

intn;

inti[12];

into;

IN=fopen(z,in.dat〃,“r〃);

if(IN=NULL)

(

printf(^ReadFILEError");

}

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

if(OUT=NULL)

(

printf(*WriteFILEError");

)

for(n=0;n<5;n++)

(

fscanf(IN,〃%d”,&i[n]);

)

for(n=0;n<5;n++)

{

o=sum(i[n]);

fprintf(OUT,*%d\nz,,o);

}

fclose(IN);

fclose(OUT);

}

【参考代码】

if(n%3-0&&n%5-0)return(1);

return(0);

程序填空

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

【程序填空】

功能:求两个非负整数的最大公约数和最小公倍数。

■*/

#include<stdio.h>

main()

(

intm,n,r,p,gcd,1cm;

scanf("%d%d”,&ni,&n);

if(m<n){p=m,m二n;n=p;}

p=m*n;

r=m%n;

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

while(_____)

(

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

m=n;n=r;___;

)

/**********FI1,1,**********/

gcd=____

lcm=p/gcd;

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

printf(,zgcd=%d,lcm=%d\n,z,);

)

【空1】【参考答案】

r!=0

0!=r

r

【空2】【参考答案】

r=m%n

r=m-m/n*n

【空3】【参考答案】

n

【空4】【参考答案】

gcd,1cm

n,1cm

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

【程序填空】

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

计算$=『片1.0)+1(5.0))的值。其中:

2X2+3X+4X<=2

-2N+3x-4x>2

当程序正确时,函数值应为2488.0。00口工

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

#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***********/

main()

printff(f(-1.0)+f(5.0)));

)

【空1】【参考答案】

floatx

doublex

【空2】【参考答案】

doubley

floaty

【空3】【参考答案】

x<=2

2>=x

【空4】【参考答案】

returny

return(y)

3./*--------------------------------------------

【程序填空】

功能:下面的程序是求1!+3!+5!+……+n!的和。

^include<stdio.h>

main()

(

longintf,s;

inti,j,n;

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

scanf(〃%d〃,&n);

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

for(i=l;i<=n;_____)

{

f=l;

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

for(j=l;_____;j++)

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

s=s+f;

}

printf("n=%d,s=%ld\n,z,n,s);

)

【空1】【参考答案】

s=0

【空2】【参考答案】

i+=2

i=i+2

i=2+i

i++,i++

【空3】【参考答案】

j<=i

i>=J

j<i+l

i+l>j

j<l+i

l+i>j

【空4】【参考答案】

f=f*j

f=j*f

1.以下非法的赋值语句是D

A、j++

B、x=j>0

C、n=(i=2,++i)

D、++(i+1)

2.有以下程序

main()

(

inti=l,j=l,k=2;

if((j++llk++)&&i++)

printf("%d,%d,%d\n",i,j,k);

)

执行后输出结果是A

A、2,2,2

B、2,2,3

C、1,1,2

D、2,2,1

3.以下叙述中正确的是A

A、C语言的每条可执行语句最终都将被转换成二进制的机器指令

B、C语言的函数不可以单独进行编译

C、C语言的源程序不必通过编译就可以直接运行

D、C语言的源程序经编译形成的二进制代码可以直接运行

4.下列语句的结果是(B)。

main()

{intj;

j=3;

printf(〃%d,",++j);

printfj++);

)

A、3,4

B、4,4

C、4,3

D、3,3

5.C语言中,字符(char)型数据在微机内存中的存储形式是C

A、反码

B、EBCDIC码

C、ASCH码

D、补码

6.以下叙述不正确的是(B)。

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

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

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

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

7.设a、b和c都是int变量,且a=3,b=4,c=5;则以下的表达式中,值为0的表达式是C

A、a||b+c&&b~c

B、a<=b

C、!((a<b)&&!c||1)

D、a&&b

8.C语言源程序文件经过C编译程序编译连接之后生成•个后缀为。的可执行文件B

A、.obj

B、.exe

C、.c

D、.bas

9.假设C语言中,int类型数据占2个字节,则unsigned类型数据占(C)。

A、8个字节

B、1个字节

C、2个字节

D、4个字节

10.设有语句chara=\172,;,则变量aC

A,说明不合法

B、包含2个字符

C、包含1个字符

D、包含3个字符

11.若有以下程序段,其输出结果是B

inta=0,b=0,c=0;

c=(a-=a-5),(a=b,b+3);

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

A、0,0,-10

B、0,0,5

C、-10,3,-10

D、3,3,-10

12.在C语言中,能代表逻辑值“真”的是(C)。

A、大于0的数

B、True

C、非0的数

D、非0整数

13.下列关于单目运算符++、一的叙述中正确的是

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

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

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

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

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

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

A、其之后最近的if

B、其之前最近的if

C、缩排位置相同的if

D、同一行上的if

15.以下标识符中,不能作为合法的C用户定义标识符的是(C)。

A、_123

B,void

C、a3b3

D、IF

16.已知i、j、k为int型变量,若从键盘输入:1,2,3〈回车〉,使i的值为1、j的值

为2、k的值为3,以下选项中正确的输入语句是B

A、scanf(〃%d%d%d〃,&i,&j,&k);

B、scanfC%d,%d,%d",&i,&j,&k);

C、scanf(〃%2d%2d%2d〃,&i,&j,&k);

D、scanf(z/i=%d,j=%d,k=%d〃,&i,&j,&k);

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

A、>

B、%

C、!

D、人

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

main()

{inti,j,k,a=3,b=2;

i=(-a==b++)?-a:++b;

j=a++;k=b;

printf(,zi=%d,j=%d,k=%d\n〃,i,j,k);

)

A、i=l,j=l,k=2

B、i=2,j=l,k=3

C、i=l,j=l,k=3

D、i=4,j=2,k=4

19.以下程序段的输出是B

floata=3.1415;

printf(T%6.Ofl\n",a);

A、13.1415|

B、I3|

C、|3.0|

D、|3.|

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

A、for、while、do-while

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

C、if、switch、break

D、if^for>continue

填空

1.若从键盘输入58,则以下程序输出的结果是。

main()

(

inta;

scanf"%d",&a);

if(a>50)printf("%d",a);

if(a>40)printf("%d",a);

if(a>30)printf("%d",a);

)

【参考答案】585858

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

unsignedfun6(unsignednum)

{unsignedk=1;

do

{k*=num%10;

num/=10;

}while(num);

returnk;

)

main()

{unsignedn=26;

printf("%d\n”,fun6(n));

}【参考答案】

12

3.表达式(int)((double)(5/2)+2.5)的值是___.

【参考答案】4

4.以下程序的执行结果是o

main()

(

inta,b,*p=&a,*q=&b;

a=10;

b=20;

*p=b;

*q=a;

printfC*a=%d,b=%d\n,*,a,b);

}【参考答案】

a=20,b=20

5.以下程序的运行结果是o

#include<string.h>

typedefstructstudent

{charname[10J;

longsno;

floatscore;

}STU;

main()

{STUa={"Zhangsan”,2001,95},b={“Shangxian”,2002,90},

c={"Anhua”,2003,95},d=a,*p=&d;

if(strcmp(,)>0)d=b;

if(strcmp(,)>0)d=c;

printf(<4%ld%s\n,\d.sno,p->name);

}【参考答案】

30x

6.把al、a2定义成单精度实型变量,并赋初值1的说明语句是。

【参考答案】floatal=1.0,a2=1.0;

7.由7*“和''*/"括起来的内容称为,它的作用是。

【空1]【参考答案】注释【空2]【参考答案】提高程序的可读性

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

chars[20J="gooddog!”,*sp=s;

sp=sp+2;

sp="to”;

puts(s);

【参考答案】gooddog!

9.C语言中用表示逻辑真,用表示逻辑假。

【空1】【参考答案】非0【空2】【参考答案】0

10.描述算法的常用方法有:。

【参考答案】自然语言流程图N-S图伪代码和计算机语言

程序设计

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

【程序设计】

功能:编写函数求rioo中奇数的平方和。

结果为166650.OOOOOOo

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

#include<stdio.h>

voidbky();

floatsum(intn)

(

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

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

main()

{

printf("sum=%f\n〃,sum(100));

bky();

voidbky()

(

FILE*IN,*OUT;

inti;

floato;

IN二fopen("in.dat","r");

if(IN==NULL)

{

printf("ReadFILEError");

}

OUT二fopen("out.dat","w〃);

if(OUT=NULL)

(

printf("WriteFILEErrorz,);

}

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

(

fscanf(IN,,z%d,z,&i);

o二sum⑴;

fprintf(OUT,o);

}

fclose(IN);

fclose(OUT);

)

【参考代码】

floats=0;

inti;

for(i=l;i<=n;i=i+2)

s=s+i*i;

return(s);

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

【程序设计】

功能:求一批数中最大值和最小值的积。

*/

#defineN30

#include〃stdlib.h〃

#include“stdio.h"

intmaxmin(inta[],intn)

(

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

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

main()

(

inta[N],i,k;

voidTestFunc();

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

a[i]=rand()%51+10;

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

(

printf("%5d",a[i]);

if((i+l)%5=0)printfCV);

)

k=max_min(a,N);

printf(,ztheresultis:%d\n〃,k);

TestFunc();

)

voidTestFunc()

{

FILE*IN,*0UT;

intn;

inti[10];

into;

IN二fopen(〃in.dat〃,〃r〃);

if(IN==NULL)

(

printf("ReadFileError");

}

OUT二fopen("out.dat〃,〃w");

if(OUT二二NULL)

printf("'WriteFileError");

)

for(n=0;n<10;n++)

{

fscanf(IN,〃%d〃,&i[n]);

)

o=max_min(i,10);

fprintf(OUT,/,%d\n,\o);

fclose(IN);

fclose(OUT);

}

【参考代码】

inti,max,min;

max二min=a[0];

for(i=l;i<n;i++)

if(a[i]>max)max=a[i];

elseif(a[i]<min)min=a[i];

return(max*min);

程序填空

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

【程序填空】

功能:以下程序的功能如(图1如

计算s=KfiH.0)+45.0))的值。其中:

一2x2+3x+4x<=2

贝X)=Y

-2N+3x-4x>2

当程序正确时,函数值应为2488.0。00口工

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

#include〃stdio.h〃

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

doublef()

(

/***********/[LL***********/

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

if()

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

else

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

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

}

main()

printf("%f\n”,f(f(-1.0)+f(5.0)));

)

【空1】【参考答案】

floatx

doublex

【空2】【参考答案】

doubley

floaty

【空3】【参考答案】

x<=2

2>=x

【空4】【参考答案】

returny

return(y)

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

【程序填空】

功能:求100-999之间的水仙花数

说明:水仙花数是指个三位数的各位数字的立方和是这个数本身。

例如:153=「3+5~3+3~3)。

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

#include<stdio.h>

intfun(intn)

{inti,j,k,m;

m=n;

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

for(i=l;i<4;i++)

(

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

m=(m-j)/10;

k=k+j*j*j;

}

if(k==n)

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

else

return(0);}

main()

(

inti;

for(i=100;i<1000;i++)

/**********FI[,[,**********/

if(______==1)

printf(*%disok!\n",i);

}

【空1】【参考答案】

k二0

【空2】【参考答案】

j=m%10

j=m-m/10*10

j=m-10*(m/10)

【空3】【参考答案】

return(1)

【空4】【参考答案】

fun(i)

3./*------------------

【程序填空】

功能:打印以下图形。

#include<stdio.h>

main()

(

chara[5][9]={〃〃};

inti,j;

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

/**********FI[,[,**********/

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

a[i]

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

for(____;i<5;i++)

(

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

/**********FI]],**********/

printf(z,%cz,,);

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

)

}【空1】【参考答案】

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论