编程基础练习题_第1页
编程基础练习题_第2页
编程基础练习题_第3页
编程基础练习题_第4页
编程基础练习题_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

编程基础练习题

一、单项选择题

1.下列数据中属于“字符串常量”的是(A).

A."a"B.{ABC}C.'abc\O'D.'a'

4.字符串"ABC”在内存占用的字节数是(B)。

A.3B.4C.6D.8

5.字符串"ABCD\,”内存占用的字节数是(C)。

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

6.在C语言中,合法的长整型常数是(A)。

A.OLB.4962710C.0.054838743D.2.1869el0

7.在C语言中,合法的短整型常数是(D)。

A.OLB.0821C.40000I).0x2a

8.下列数据中不属于“字符常量”的是(C)。

A.'\xff'B.''160'C.'370'D.070

9.char型常量的内存中存放的是(A)。

A.ASCII代码值B.BCD代码值C.内码值D.十进制代码值

11.常数的书写格式决定了常数的类型和值,03322是(B)。

A、16进制int类型常数B、8进制int类型常数

C、10进制int类型常数D、10进制longint类型常数

12.“e2”是(D)。

A、实型常数100B、值为100的整型常数C、非法标识符D、合法标识符

13.要为字符型变量a赋初值,下列语句中哪一个是正确的(A)。

A>chara='3*;B、chara=w3”;C、chara=%;【)、chara=*;

14.要为float类型变量x、y、z赋同一初值3.14,下列说明语句哪一个是正确的(C)。

A、floatx,y,z=3.14;B、floatx,y,z=3*3.14;

C、floatx=3.14,y=3.14,z=3.14;D、floatx=y=z=3.14;

15.语句floatpi=3.1415926535;将(D)。

A、导致编译错误B、说明pi为初值3.1415926535的单精度实型常数

C、导致运行时的溢出错误D、说明pi为初值3.141593的单精度实型常数

16.算术运算符、赋值运算符和关系运算符的运算优先级按从高到低依次为(B)。

A、算术运算、赋值运算、关系运算B、算术运算、关系运算、赋值运算

C、关系运算、赋值运算、算术运算D、关系运算、算术运算、赋值运算

17.关系运算符中优先级最低的运算符是(C)。

A、“>=”和B、和C、“=="和"!="D、"<二”和“<”

18.逻辑运算符中,运算优先级按从高到低依次为(D)。

A、||B、|!C、|!D、!,&&,||

19.对C程序在作逻辑运算时判断操作数真、假的表述,下列哪一个是正确的(A)。

A、0为假非0为真B、只有1为真C、-1为假1为真D、0为真非0为假

20.表达式X&&1等效于(C)

A.x==0B.x==lC.x!=0D.x!=l

22.表达式!x||a=b等效于(D)。

A、!((x||a)==b)B、|(x||y)=bC>!(x||(a==b))D、(!x)||(a==b)

23.设整型变量m,n,a,b,c,d均为0,执行(m=a==b)||(n=c==d)后,*n的值是(C)。

A.0,0B.0,1C.1,0D.1,1

26.设a为5,执行下列语句后,b的值不为2的是(C)。

A.b=a/2B.b=6-(~a)C.b=a%2D.b=a>3?2:2

28.intb=0,x=l;执行语句if[x++)b=x+l;后,x,b的值依次为(A)。

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

29.设有语句inta=3;,则执行了语句ai=a=a*a;后,变量a的值是(D)。

A.3B.0C.9D.-12

30.设有语句inta=3;,则执行了语句a+=a-=a*=a;后,变量a的值是(B)。

A.3B.0C.9D.-12

32.在以下一组运算符中,优先级最高的运算符是(C)。

A.<=B.=C.%D.&&

33.在以下一组运算符中,优先级最低的运算符是(D)

A.*B.!=C.+D.=

35.设整型变量i,j值均为3,执行了j=i++,j++,++i后,i,j的值是(B)。

A.3,3B.5,4C.4,5D.6,6

36.若己定义x和y为double类型,则表达式x=Ly=x+3/2的值是(C)。

A.1B.2C.2.0D.2.5

38.表达式1?(0?3:2):(10?1:0)的值是(B)。

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

39.设a=Lb=2,c=3,d=4,则表达式:a<b?a:c<d?a:d的结果为(D)。

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

40.设a为整型变量,不能正确表达数学关系:10<a<15的C语言表达式是(A)。

A.10<a<15B.a==11||a==12||a==13||a==14

C.a>10&&a<15D.!(a<=10)&&!(a>=15)

41.inta=0;if(a=l)a+=10;结果的值是(B)。

A.0B.11C.10D.出错

42.下列表达式中符合C语言语法的赋值表达式是(C)。

A.a=7+b+c=a+7B.a=7+b++=a+7C.a=(7+b,b++,a+7)D.a=7+b,c=a+7

43.设f是实型变量,下列表达式中不是逗号表达式的是(D),

A.f=3.2,1.0B.f>0,f<10C.f=2.0,f>0D.f=(3.2,1.0)赋值表达式

44.下列表达式中,不正确的表达式是(B)。

A.a=l,b=lB.y=int(x)C.a=b=5D.i++

47.设有整型变量a=35,表达式(a&15)&&(a|15)的值是(B).

A.0B.1C.15D.35

52.设a是char型变量,其值字符为‘1',则把其值变成整数1的表达式是(C)。

A.(int)aB.int(a)C.a=a-48D.a/(int)a

53.设a是int型变量,其值为3,则把其值变成字符'3,的表达式是(D)。

A.(char)aB.a=3C.a=a-48D.a=a+48

54.设ch是char型变量,其值为‘A',则下面表达式的值是(B)。

ch=(ch>='A'&&ch<=,Z')?(ch+32):ch

A.AB.aC.ZD.Z

55.设有整型变量i,j,k,i值为3,j值为6。计算表达式k=i"j«3:后,k的值是(B)<.

A.56B.51C.40D.27

58.下列格式符中,哪一个可以用于以8进制形式输出整数(C)。

A、%dB、%8dC、%oD、%ld

59.下列格式符中,哪一个可以用于以16进制形式输出整数(B)。

A、%16dB、%8xC、%dl6D、%d

60.a是int类型变量,c是字符变量。下列输入语句中哪一个是错误的(B)。

A>scanf(w%d,%cw,&a,&c);B>scanf(w%d%cw,a,c);

C、scanf(w%d%cw,&a,&c);D、scanf(wd=%d,c=%cw,&a,&c);

61.字符变量ch='A',int类型变量k=25,语句printf("%3d,%d3\n",ch,k);输出(A)。

A、65,253B、65253C、65,25D、A25

63.使用scanf("x=%f,y=%f”,&x,&y);要使x,y均为1.25,正确的输入是(C)。

A.1.25,1.25B.1.251.25C.x=l.25,y=l.25I).x=l.25y=l.25

64.要使doublex;longa;获得数据,正确的输入语句是(C)。

A.scanf(w%d,%f",&a,&x);B.scanf("%f,%ldw,&x,&a);

C.scanf(a%ld,%lf”,&a,&x);D.scanf("%ld,%lfM,a,x);

67.设有inti=010,j=10;则printf("%d,%d\n”,++i,j-);的输出的是(B)。

A.11,10B.9,10C.010,9D.10,9

68.设a、b为字符型变量,执行scanf(“a=%c,b=%c”,&a,&b);

后使a为'A',b为'IT,从键盘上的正确输入是(D)。

A.‘A''B'B.'A','B'C.A=A,B=BI),a=A,b二B

二、填充题

1.无符号基本整型的数据类型符为unsigned,双精度实型数据类型符为double,

字符型数据类型符为char。

7.设下列运算符:<<、+、++、&&、<=,其中优先级最高的是++,优先级最低的

是&&。

10.设a=3,b=2,c=l,则a>b的值为1,a>b>c的值为0(a>b>ca>b为1l>c假为0).

11.若已知a=10,b=20,则表达式!a〈b的是值为1(先求!a为0(Kb为真1)。

12.设x和y均为int型变量,且x=Ly=2,则表达式1.0+x/y的值为1.0(x/y为0整除)。

14.设floatx=2.5,y=4.7;inta=7;,表达式x+a%3*(int)(x+y)%2/4的值为2.5。

16.intx=17,y=5;执行语句x%=x++/-y后x的值为2。

17.ch是字符变量,判断ch是英文字母的逻辑表达式为ch>=,a'&&ch<='z'|

ch>:'A'&ch<=,V.

19.判断变量a、b的值均不为。的逻辑表达式为a!=0&&b!=0。

23.求解赋值表达式a=5+求=6)后表达式值、a、c的值依次为11,11,6。

27.求变量a、b中最大值的条件表达式为a>b?a:b。

28.若a=13、b=25、c=17,条件表达式((y=(a<b)?a:b)<c)?y:c的值为17。

33.inta=7,b=6,c=5;,表达式(a+b)Xc*c)&&b==c||c>b的值为0。

34.inta=3,b=5,c=7;,表达式a>c11c〉b!=0&&c==b+a的值为0。

第三章程序设计结构

一、单项选择题

1.假定所有变量均已正确定义,下列程序段运行后y的值是(A)。

inta=0>y=10;

if(a=U)y—;elseif(a>0)y++;elsey+=y;

A.20B.11C.9D.0

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

a=b=c=0,x=35;

if(!a)x—;elseif(b);if(c)x=3;elsex=4;

A.34B.4C.35D.3

4.下列各语句序列中,能够且仅输出整型变量a、b中最大值的是(C)。

A、if(a>b)printf(w%d\nM,a);printf(w%d\nw,b);

B、printf(w%d\nw,b);if(a>b)printf(w%d\nw,a);

C、if(a>b)printf(w%d\nw,a);elseprintf(w%d\nw,b);

D>if(a<b)printf(w%d\nw,a);printf(M%d\nM,b);

5.下列各语句序列中,能够将变量u、s中最大值赋值到变量t中的是(B)。

A、if(u>s)t=u;t=s;B、t=s;if(u>s)t=u;

C^if(u>s)t=s;elset=u;D、t=u;if(u>s)t=s;

6.下列各语句中,能够输出整型变量a、b中最大值的是(D)。

A、printf(w%d\nM,(a>b)?a,b);B、(a>b)?printf(w%dw,a):printf(w%d”,b);

C、printf(w%dv,if(a>b)aelseb);D、printf(M%d\nw,(a>b)?a:b);

7.下列语句应将小写字母转换为大写字母,其中正确的是(B)。

A、if(ch>=,a'&ch<='z')ch=ch-32;B、if(ch>=,a*&&ch<=,z')ch=ch-32;

C、ch=(ch>=,a'&&ch<=,z')?ch-32:'';D、ch=(ch>,a'&&ch〈'z')?ch-32:ch;

8.inta=l,x=l;循环语句while(a<10)x++;a++;的循环执行(A)。

A.无限次B.不确定次C.10次D.9次

9.下列语句中,错误的是(B)。

A.while(x=y)5;B.dox++while(x==10);

C.while(0);D.do2;while(a==b);

10.循环语句for(x=0,y=0;(y!=123)||(x<4);x++);的循环执行(A)。

A.无限次B.不确定次C.4次D.3次

11.循环语句for(i=0,x=l;i=10&&x>0;i++);的循环执行(A)。

A.无限次B.不确定次C.10次D.9次

12.isj已定义为int类型,则以下程序段中内循环体的执行次数是(A)。

for(i=5;i;i-)

for(j=0;j<4;j++){......}

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

13.C语言while语句中,用于条件的表达式是(D)

A.关系表达式B.逻辑表达式C.算术表达式D.任意表达式

14.while循环,执行次数是(A)

i=4;while(一i)printf(,i);

A.3次B.4次C.0次D.无数次

二、填充题

1.结构化程序设计规定的三种基本结构是顺序结构、选择结构和循环结构。

2.二种循环语句是等价的。

3.当循环体中的switch语句内有break语句,则只跳出switch语句。同样,当switch

语句中有循环语句,内有break语句,则只跳出循环语句。

4.循环体中的continue语句是结束本次循环。

10.程序段ints,i;for(i=l;i<=100;s+=i,i++);能否计算1~100的和?不能,

原因是s没有初试为0。

11.若int类型变量字长为2,程序段intjc=l;for(inti=2;i<10;i++)jc*=i;能否

计算10的阶乘?不能计算10阶乘,原因是i<10,且inti不能表示10阶乘。

12.设i,j,k均为int型变量,则执行完下面的for循环后,k的值为10。

for(i=0,j=10;i<=j;i++,j—)k=i+j;

13.下列程序的功能是输入一个正整数,判断是否能被3或7整除,若能整除,输出“YES”,

若不能整除,输出“N0”。请为程序填空。

voidmain()

{intk;

scanf(“%d”,&k);

if((k%3=0)11(k%7==0))printf(“YES\n");elseprintf(“N0\n”);

}

三、程序分析题

L阅读程序,写出运行结果。13,4,3

voidmain()

{inta=10,b=4,c=3;

if(a<b)a=b;

if(a<c)a=c;

printf(“%d,%d,%d\nM,a,b,c)

3.写出下列程序段输出结果3

intk,a=l,b=2;

k=(a++==b)?2:3;printf(“%d”,k);

4.阅读下列程序,写出程序运行的输出结果。852

voidmain()

{inty=9;

for(;y>0;y—)

if(y%3==0){printf(,—y);continue;}

)

第四章数组

(一)单项选择题

1.若有以下数组说明,则数值最小的和最大的元素下标分别是(B)。

inta[12]={1,2,3,4,5,6,7,8,9.10,11,12);

A.1,12B.0,11C.1,11D.0,12

2.若有以下说明,则数值为4的表达式是(D)。

inta[12]={1,2,3,4,5,6,7,8,9,10,11,12};charc=,a',d,g;

A.a[g-c]B.a[4]C.a[,d'-d]D.a[-c](即a[d-*af])

3.设有定义:chars[12]=astring"则printf("%d\n",strlen(s));的输出是

(A)。

A.6B.7C.11D.12

4.设有定义:chars[12]="string”;则printf("%d\n",sizeof(s));的输出

是(B)。

A.6B.7C.11D.12

5.合法的数组定义是(A)o

A.chara[]=Mstring”;B.inta[5]={0,1,2,3,4,5};

C.chara="string";D.chara[]={0,1,2,3,4,5)

6.合法的数组定义是(B)。

A.inta[3][]={0,1,2,3,4,5};B.inta[][3]={0,1,2,3,4);

C.inta[2][3]={0,1,2,3,4,5,6};D.inta[2][3]={0,1,2,3,4,5,};

7.下列语句中,正确的是(D)。

A.chara[3][]={<abc,,*T};B.chara[][3]={,abc',,1'};

C.chara[3][]={'a',T};D.chara[][3]={"a"1”};

8.下列定义的字符数组中,输出p列ntf("%s\n",str[2]);的输出是(C)«

staticstr[3][20]={“basic","foxpro”,uwindows"};

A.basicB.foxproC.windowsD.输出语句出错

9.下列各语句定义了数组,其中哪一个是不正确的(C)。

A、chara[3][10]={"China”「American","Asia"};B、intx[2][2]={1,2,3,4};

C、floatx[2][]={1,2,4,6,8,13};D、intm[][3]={l,2,3,4,5,6);

10.数组定义为inta[3][2]={1.2,3,4,5,6},值为6的数组元素是(B)。

A、a[3][2]B、a[2][l]

C、a[l][2]D、a[2][3]

12.函数调用strcat(strcpy(strl,str2),str3);的功能是(C)。

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

B.将字符串strl连接到字符串str2之后再复制到字符串str3之后。

C.将字符串str2兔制到字符串strl中后再将字符串str3连接到字符串strl之后。

D.将字符串str2连接到字符串strl之后再将字符串strl复制到字符串str3中。

13.有字符数组定义如下,则合法的函数调用是(A)

chara[]="Iamastudent",b[]=uteacher";

A.strcmp(a,b);B.strcpy(a,b[0]);C.strcpy(a[7],b);D.strcat(a[7],b);

14.有字符数组定义如下,则不能比较a,b两个字符串大小的表达式是(D)

chara[]="abcdefg",b[]="abcdefh”;

A.strcmp(a,b)==0B.strcmp(a,b)>0C.strcmp(a,b)<0I).a<b

(二)填充题

1.C语言中,数组的各元素必须具有相同的类型,元素的下标下限为0,但在程序执行

过程中,不检查元素下标是否越界。下标必须是正整数、0、或者整型表达式。

2.C语言中,数组在内存中占一片连续的存储区,由数组名代表它的首地址。数组名

是一个地址常量,不能对它进行加、减和赋值运算。

3.执行staticintb[5],a[][3]={1,2,3,4,5,6};后,b[4]=0,a[l][2]=6。

4.设有定义语句staticinta[3:[4]={⑴,⑵义3}句则值为2amm值为0,

的值为0。

5.设有定义语句staticchara]0]="abed”;则a[3]值为d,2[5]值为,\0'。

7.如定义语句为chara[]=*windows*,b[]="95";,

语句printfstrcat(a,b));的输出结果为windows95。

8.定义语句为chara[15],b[]=",windows95”;,则语句printfstrcpy(a,b));

的输出结果为windows950

9.定义语句为chara[]="Box",b[]="Boss";,语句printf("%d”,strcmp(a,b));

输出5o

10.定义语句为:chara[10]=wstudentM,语句printf("%d”,strlen(a));的输出结

果为7o

11.若在程序中用到putchar()函数时,应在程序开头写上包含命令

ttinclude<stdio.h>,

若在程序中用到strlen()函数时,就在程序开头写上包含命令ttinclude<string.h>«,

(二)程序分析题

7.阅读下列程序,写出程序运行的输出结果。

ttinclude<stdio.h>

#include<string.h>

voidmainO输出结果:*******

{charstrl[]=〃*******〃;*****

for(inti=0;i<4;i++){***

printfC%s\n*»strl);*

strl[i]=,';

strl[strlen(strl)-l]=,\0';

)

1

8.阅读下列程序,写出程序运行的输出结果。1022571320

ttinclude<stdio.h>

voidmain()

{inta[8]={l,0,1,0,1,0,1,0),i;

for(i=2;i<8;i++)a[i]+=a[i-l]+a[i-2];

for(i=0;i<8;i++)printf(*%da[i]);

printf('\n");

}

第5章函数

一、单项选择题

1.以下正确的说法是

A)用户若需调用标准库函数,调用前必须重新定义

B)用户可以重新定义标准库函数,若如此,该函数将失去原有含义

0系统根本不允许用户重新定义标准库函数

D)用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件

包括到用户源文件中,系统自动去调

2.知函数Hmc的定义为:

voidfunc()

{……}

则函数定义中void的含义是

A)执行函数func后,函数没有返回值B)执行函数func后,函数不再返回

0执行函数func后,可以返何任何类型C)以上答案均不正确

3.以下正确的函数首部定义形式是

A)intabc(intx,inty)

B)intabc(intx;inty)

C)intabc(intx,inty);

D)intabc(intx,y)

4.在以下对C语言的描述中正确的是

A)在C语言中调用函数时,只能将实参的值传递给形参,形参的值不能传递给实参

B)C语言函数既可以嵌套定义,又可以嵌套调用

0函数必须有返回值,否则不能使用函数

D)C语言程序中有调用关系的所有函数都必须放在同一源程序文件中

5.以下正确的函数定义形式是

A)intfun(intx,inty)B}intfun(intx,y)

{z=x+y;{intz;

returnz;z=x।y;returnz;

})

C)intfun(x,y)D)intfun(intx,inty)

{intx,y,z;{intz;

z=x+y;returnz;z=x+y;returnz;

})

6.以下正确的说法是

在C语言中

A)实参和与其对应的形参共占用一个存储单元

B)实参和与其对应的形参各占用独立的存储单元

0只有当实参和与其对应的形参同名时才共占用存储单元

D)形参是虚拟的,不占用存储单元

7.若调用一个函数,且此函数中没有return语句,则正确的说法是

该函数

A)没有返回值B)返回一个不确定的值

0能返回一个用户所希望的函数值D)返回若干个不确定值

8.以下正确的说法是

A)实参只能是常量或常量表达式B)形参可以是常量、变量或表达式

0形参只能是常量或常量表达式D)形参应与其对应的实参类型一致

9.C语言中函数返回值的类型是由决定的

A)调用该函数的主调函数类型B)retum后边的表达式类型

0调用函数时系统临时指定D)定义函数时指定的函数类型

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

A)地址传递B)由用户指定传递方式

C)由实参传给形参,再由形参传叵给实参D)值传递

11.C语言允许函数值类型缺省定义,此时该函数值隐含的类型是

A)float型B)long型C)int型D)double型

12.下面函数调用语句含有实参的个数为

fun((expl,exp2),(exp3,exp4));

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

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

A)数组第一个元素的地址B)数组第一个元素的值

0数组中全部元素的值D)数组中全部元素的地址

14.以下正确的说法是

如果在一个函数中的复合语句中定义了一个变量,则该变量的作用域

A)在该复合语句范围内有效B)在该函数范围内有效

0在本程序范围内均有效D)在本源程序文件范围内均有效

15.以下叙述中不正确的是

A)在C语言中,函数中的自动变量可以赋初值,每调用一次赋一次初值

B)在C语言中,在调用函数时,实参和对应形参的类型只需赋值兼容

0在C语言中,全局变量的隐含存储类别是自动存储类别

D)在C语言中,局部变量的隐含存储类别是寄存器存储类别

16.说明语句“staticinti=W;"中,“i=10”的含义是

A)只说明了一个变量B)与"inti=10w

温馨提示

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

评论

0/150

提交评论