C程序设计总复习题及答案11121.docx

上传人:b****8 文档编号:29619874 上传时间:2023-07-25 格式:DOCX 页数:17 大小:26.74KB
下载 相关 举报
C程序设计总复习题及答案11121.docx_第1页
第1页 / 共17页
C程序设计总复习题及答案11121.docx_第2页
第2页 / 共17页
C程序设计总复习题及答案11121.docx_第3页
第3页 / 共17页
C程序设计总复习题及答案11121.docx_第4页
第4页 / 共17页
C程序设计总复习题及答案11121.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

C程序设计总复习题及答案11121.docx

《C程序设计总复习题及答案11121.docx》由会员分享,可在线阅读,更多相关《C程序设计总复习题及答案11121.docx(17页珍藏版)》请在冰豆网上搜索。

C程序设计总复习题及答案11121.docx

C程序设计总复习题及答案11121

C语言程序设计总复习题

一、选择题

1以下选项中正确的整型常量是A)12.B)-20C)1,000D)4.56答案:

B

2以下选项中正确的实型常量是A)0B)3.1415C)0.329×102D)871答案:

B

3C语言中运算对象必需是整型的运算符是A)%B)/C)!

D)*答案:

A

4可在C程序中用作用户标识符的一组标识符是A)voiddefineWORDB)as_b3_123IfC)For-abccaseD)2cDOSIG答案:

B

5MicrosoftC++中int类型变量所占字节数是A)1B)2C)3D)4答案:

D

2.12不合法的八进制数是A)0B)028C)077D)01答案:

B

6若a、b、c、d都是int类型变量且初值为0,以下选项中不正确的赋值语句是A)a=b=c=100;B)d++;C)c+b;D)d=(c=22)-(b++);答案:

C

7以下程序的输出结果是A)0B)1C)3D)不确定的值main(){intx=10,y=3;printf("%d\n",y=x/y);}答案:

C

8若变量以正确定义,要将a和b中的数进行交换,下面正确的语句组是

A)a=b;b=a;a=a-b;B)a=t;a=b;b=t;C)t=a;a=b;b=t;D)b=t;b=a;a=t;答案:

C

9若有以下程序段,c3中的值是A)0B)1/2C)0.5D)1

intc1=1,c2=2,c3;c3=c1/c2;

答案:

A

10下列运算符中优先级最高的运算符是A)!

B)%C)=D)&&答案:

A

11为表示关系x≥y≥z,应使用的C语言表达式是A)(x>=y)&&(y>=z)B)(x>=y)AND(y>=z)C)(x>=y>=z)D)(x>=y)&(y>=z)答案:

A

12以下程序段的输出结果是A)15B)14C)不确定D)0

main()

{inti,sum=0;

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

sum+=i;

printf("%d\n",sum);}

答案:

A

13C语言中,字符(char)型数据在微机内存中的存储形式是A)反码B)补码C)EBCDIC码D)ASCII码答案:

D

14判断char型变量c是否为大写字母的最简单且正确的表达式是A)‘A’<=c<=’Z’B)(c>=’A’)&(c<=’'Z’)C)(‘A’<=c)AND(‘Z’>=c)D)(c>=’A’)&&(c<=’Z’)答案:

D

15以下说法中正确的是A)C语言程序总是从第一个定义的函数开始执行B)在C语言程序中,要调用的函数必须在main函数中定义C)C语言程序总是从main函数开始执行D)C语言程序中的main函数必须放在程序的开始部分答案:

C

16若i,j已定义为int类型,则以下程序段中循环体的执行次数是(③)

for(i=6;i;i--)for(j=0;j<5;j++){…}

①20②24③30④25

17设x为整型变量,不能正确表达数学关系:

3

①x=4||x=5||x=6②33&&x<7④!

(x<=3)&&!

(x>=7)

18正确的标识符是(①)

①x_2②x·1③x=2④?

x

19以下叙述不正确的是D。

A)一个C源程序可由一个或多个函数组成

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

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

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

20以下正确的函数定义形式是(②)

①doublefun(intx;inty)②doublefun(intx,inty)

③doublefun(intx,y)④doublefun(x,inty)

21若x,i,j和k都是int型变量,则计算下面表达式后,x的值为 C   。

x=(i=4,j=16,k=32)

A)4   B)16   C)32   D)52

22在C语言中,char型数据在内存中的存储形式是 D   。

A)补码   B)反码   C)原码   D)ASCII码

23若有说明:

intx,y=5,*p=&y,则与*&x=*p;等价的语句是(①)

①x=y②y=*p③x=&y④y=&x

24已知学生记录描述为

structstudent

{intno;struct{intyear;intmonth;intday;}birth;}s;

设变量S中的“生日”应是“1984年11月11日”,下列对“生日”的正确赋值方式是(①)

1s·birth·year=1984;②birth·year=1984;

s·birth·month=11;birth·month=11;

s·birth·day=11;birth·day=11;

③s·year=1984;④year=1984;

s·month=11;month=11;

s·day=11;day=11;

25根据题目中给出的数据输入和输出形式,程序中输入输出语句的正确内容是B。

main()

{intx;floaty;

printf(“enterx,y:

”)

输入语句

输出语句

}

输入形式enterx,y:

2,3.4

输出形式x+y=5.40

A)scanf(“%d%f”,&x,&y);

printf(“\nx+y=%4.2f”,x+y)

B)scanf(“%d,%f”,&x,&y);

printf(“\nx+y=%4.2f”,x+y)

C)scanf(“%d,%f”,x,y);

printf(“\nx+y=%6.1f”,x+y)

D)scanf(“%d%3.1f”,&x,&y);

printf(“\nx+y=%4.2f”,x+y);

26在C语言中,合法的长整型常数是(④)

①1297560②0.05678③2.1869e10④0L

27设x为5,执行下列语句后,y的值不为2的是(③)

①y=x/2②y=6-(--x)③y=x%2④y=x>3?

2:

2

28.设有程序段

intk=10;

while(k=0)k=k-1;

则下面描述中正确的是C。

A)while循环执行10次

B)循环是无限循环

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

D)循环体语句执行一次

29.C语言中while和do-while循环的主要区别是A。

A)do-while的循环体至少无条件执行一次

B)while的循环控制条件比do-while的循环控制条件严格

C)do-while允许从外部转到循环体内

D)do-while的循环体不能是复合语句

30若有说明:

inta[10];则对a数组元素的正确引用是D。

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

31以下不能对二维数组a进行正确初始化的语句是A。

A)inta[2][3]=0

B)inta[2][3]={{1,2},{0}}

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

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

32下面函数调用语句含有实参的个数为(③)

func((exp1,exp2),(exp3,exp4,exp5));

①1②4③2④5

33设x为5,执行下列语句后,y的值不为2的是___C________

A)y=x/2B)y=6-(--x)C)y=x%2D)y=x>3?

2:

2

34C语言允许函数不返回值,此时该函数的类型是B。

A)float型

B)void型

C)long型

D)double型

27.若用数组名作为函数调用的实参,传递给形参的是A。

A)数组的首地址

B)数组第一个元素的值

C)数组中全部元素的值

D)数组元素的个数

35以下程序中调用scanf函数给变量a输入数值的方法是错误的,其错误原因是B。

main()

{int*p,*q,a,b;

p=&a;

printf(“inputa:

”);

scanf(“%d”,*p);

······

A)*p表示的是指针变量P的地址

B)*p表示的是变量a的值,而不是变量a的地址

C)*P表示的指针变量p的值

D)*p只能用来说明p是一个指针变量

36变量的指针,其含义是指该变量的B。

A)值B)地址C)名D)一个标志

37若有以下定义,则对a数组元素地址的正确引用是D。

inta[5],*p=a;

A)p+5B)*a+1C)&a+1D)&a[0]

 

38字符串“ABC”在内存占用的字节数是(④)

①3②8③6④4

39若有以下定义:

charx,inty,floatt,doublev,则表达式x*y+t—v值的类型为(②)

①char②double③int④float

40若有以下的定义,则值为4的表达式是(②)

inta[]={1,2,3,4,5,6},*p=a;

①p+=2,*(p++)②p+=3,*p++③p+=4,*p++④p+=3,*++p

 

二、填空题:

1在Microsoftc++环境中运行一个C程序时,所运行的程序的后缀是______。

答案:

.exe

2C语言源程序文件的后缀是_____,经过编译后,生成文件的后缀是_____,经过连接后,生成文件的后缀是_____。

答案:

.c.obj.exe

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

答案:

顺序、选择、循环

4若k为int整型变量且赋值11。

请写出运算k++后表达式的值A)_____和变量的值B)_____。

答案:

11、12

5函数体由符号____开始,用符号____结束。

函数体的前面是____部分,其后是____部分。

答案:

{、}、定义、执行

6在C语言程序中,用关键字____定义基本整型量,用关键字____定义单精度实型变量,用关键字___定义双精度实型变量。

答案:

int、float、double

7把a1、a2定义成单精度实型变量,并赋初值1的定义语句是____。

答案:

floata1=1.0,a2=1.0;

8表达式3.5+1/2的计算结果是____。

答案:

3.5

9表达式s=10应当读做“____”。

答案:

将10赋给变量s

10计算机中内存储器的最小存储单位称____,其中能容纳的数是____。

答案:

位、0或1

11在C语言中整数可用____进制数、____进制数和____进制数三种数制表示。

答案:

十、八、十六

12复合语句在语法上被认为是____。

空语句的形式是____。

答案:

一条语句、;13C语句的最后用____结束。

答案:

14以下程序段的输出结果是____。

15C语言中用____表示逻辑值“真”,用____表示逻辑值“假”。

答案:

非0、0

16将下列数学式改写成C语言的关系表达式或逻辑表达式A)____B)____。

A)a=b或a4答案:

A)a==b||a4||x<-4

17请写出以下程序的输出结果____。

main()

{inta=100;

if(a>100)printf("%d\n",a>100);

elseprintf("%d\n",a<=100);

}

答案:

1

18请写出与以下表达式等价的表达式A)____B)____。

A)!

(x>0)B)!

0答案:

A)x<=0B)1

19当a=1,b=2,c=3时,以下if语句执行后,a、b、c中的值分别为____、____、____。

if(a>c)b=a;a=c;c=b;

答案:

3、2、2

20以下程序段的输出结果是____。

intk,n,m;n=10;m=1;k=1;while(k<=n)m*=2;printf("%d\n",m);

答案:

死循环

21一个C源程序至少包含一个_main_函数。

C程序是由_函数_构成。

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

23请写出数学式“

”的C语言表达式a/b/c。

24*后跟指针变量名,表示该指针变量_指向的变量__。

25函数中的形参和调用时的实参都是数组名时,传递方式为_地址_传递方式。

26设inta[20],*p=a;则对a[5]的引用可以是p[5]。

27C语言中的标识符只能由三种字符组成,它们是字母、数字和下划线_。

28请写出数学式

的C语言表达式(a+b)/(c+d)。

29设有char*a=”ABCD”,则printf(“%s”,a)的输出是ABCD;

30若已知a=10,b=20,则表达式!

a

31设a=2,c=‘a’,f=3.0,下列表达式的值为_1__

f==3.0?

a<=c:

a>=c

32设x和y均为int型变量,且x=1,y=2,则表达式1.0+x/y的值为__1.0_。

33若自定义函数要求不返回一个值,则在该函数说明时加一个类型说明符_void。

34在内存中存储“A”要占用_2_个字节,存储‘A’要占用_1个字节。

35若x和a均为int型变量,则计算表达式

(1)后的x值为_4_,计算表达式

(2)后的x值为_12_。

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

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

三、阅读程序,写出运行结果

1、main()

{inta1,a2;

inti=5,j=7,k=0;

a1=k&&j;

a2=a1||j;printf(“a1=%d\na2=%d\n”,a1,a2);}

结果:

a1=0

a2=1

2、main()

{inti,j,a[5];

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

a[i]=i+1;

for(j=4;j>=0;j--)

printf(“%3d”,a[j]);

}

结果:

54321

3、main()

{inti=2,x=5,j=7;

fun(j,6);

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

}

fun(inti,intj)

{intx=7;

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

}

结果:

i=7;j=6;x=7

i=2;j=7;x=5

 

4.main()

{inta=1,b=2,c;

c=max(a,b);

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

}

max(intx,inty)

{

intz;z=(x>y)?

x:

y;

return(z);

}

结果:

maxis2

5、main()

{intt,a=2,b=4;

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

t=a,a=b,b=t;

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

}

结果:

a=2,b=4

a=4,b=2

 

6.

  #include

voidmain()

{voidprint_star();

voidprint_message();

print_star();

print_message();

print_star();

}

voidprint_star()

{printf(″******************\n″);}

voidprint_message()

{printf(″Howdoyoudo!

\n″);}

结果:

******************

Howdoyoudo!

******************

四、程序填空

1、以下程序实现:

输入三个整数,按从大到小的顺序进行输出。

请在括号内填入正确内容

main()

{intx,y,z,c;

scanf(“%d%d%d”,&x,&y,&z);

if(_x

if(x

if(y

printf(“%d,%d,%d”,x,y,z);

}

2、下面程序将二维数组a的行和列元素互换后存到另一个二维数组b中,请填空。

main()

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

intb[3][2],i,j;

printf(“arraya:

\n”);

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

{for(i=0;_i<=2_;i++)

{printf(“%5d“,a[j][i]);

__b[i][j]=a[j][i]_;}

printf(“\n”);

}

printf(“arrayb:

\n”);

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

{for(j=0;j<=1;j++)

printf(“%5d”,b[i][j]);

printf(“\n”);

}

}

3、输入一个字符,如果它是一个大写字母,则把它变成小写字母;如果它是一个小写字母,则把它变成大写字母,其它字符不变,请在括号内填入正确内容。

main()

{charch;scanf(“%c“,&ch);

ifif (ch>=’a’&&ch<=’z’)  ch=ch-32 ;

else ( ch>=’A’&&ch<=’Z’ ) ch=ch+32;

printf(“%c”,ch);

}

4、以下程序实现输出x,y,z三个数中的最大数,请在括号内填入正确内容

main()

{intx=4,y=6,z=7;

int_u,v_;

if(_x>y)u=x;

elseu=y;

if(__u>z_)v=u;

elsev=2;

printf(“v=%d”,v);

}

5下面程序的功能是从键盘输入的一组字符中统计出大写字母的个数m和小写字母的个数n,并输出m、n中的较大者,请选择填空:

    #indude   "stdio.h"   

      main()

      {int  m=0,n=0;

      char    c;  1

      while((【c=getchar()】)!

='\n')

      { if(c>='A' && C<='Z') m++ ;

      if(c>='a'  && c<='z')  n++; }     

      printf("%d\n",  m

 n:

m);   

 }     

五、程序设计

1、编一程序,从键盘输入6名学生的5门成绩,分别统计出每个学生的平均成绩。

main()

{inti,j;

floatg,sum,ave;

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

{sum=0;

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

{scanf(“%d”,&g);sum+=g;}

ave=sum/5;

printf(“no=%dave=%5.2f\n”,i,ave);

}

}

2、编一个程序,输入10个整数,统计并输出其中正数、负数和零的个数。

main()

{intx,i,m1=0,m2=0,m3=0;

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

{scanf(“%d”,&x);

if(x>0)m1++;

elseif(x==0)m2++;

elsem3++;

}

printf(“numberof>0%d\n”,m1);

printf(“numberof=0%d\n”,m2);

printf(“numberof<0%d\n”,m3);

}

3、编一个程序,输入三个单精度数,输出其中最小数。

main()

{floatx,y,z;

scanf(“%f,%f,%f”,,&x,&y,&z);

if(x

elsemin=y;

printf(“min=%f\n”,min);

}

4.输入4个整数,找出其中最大的数。

用一个函数来实现。

#include

voidmain()

{intmax_4(inta,intb,intc,intd);

inta,b,c,d,max;

printf(“4intergernumbers:

");

scanf("%d%d%d%d",&a,&b,&c,&d);

max=max_4(a,b,c,d);

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

}

intmax_4(inta,intb,intc,intd)

{intmax(inta,intb);

intm;

m=max(a,b);

m=max(m,c);

m=max(m,d);

return(m);

}

intmax(intx,inty)

{if(x>y)

returnx;

else

returny;

}

 

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

当前位置:首页 > 幼儿教育 > 育儿知识

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

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