C语言复习版Word文档格式.docx

上传人:b****5 文档编号:17371563 上传时间:2022-12-01 格式:DOCX 页数:28 大小:29.22KB
下载 相关 举报
C语言复习版Word文档格式.docx_第1页
第1页 / 共28页
C语言复习版Word文档格式.docx_第2页
第2页 / 共28页
C语言复习版Word文档格式.docx_第3页
第3页 / 共28页
C语言复习版Word文档格式.docx_第4页
第4页 / 共28页
C语言复习版Word文档格式.docx_第5页
第5页 / 共28页
点击查看更多>>
下载资源
资源描述

C语言复习版Word文档格式.docx

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

C语言复习版Word文档格式.docx

说明pa是用于数组处理的指针。

25.用命令scanf("

%s"

name);

对字符数组进行输入操作,当键入“IamaStudent”时,数组的内容为“I”。

(y)

26.表达式‘B’+a’-‘A’的结果是’b’(y)

27.while(){;

}表示无限循环(n)

28.switch(j){……..}语句中的变量j可以是浮点型变量(n)

29.全局变量的不加存储方式修饰符时,说明其存储类型为auto(n)

30.指针变量本身没有指针(n)

31.关键字“struct”用于定义数据类型(n)

二、单项选择题:

(1)若有定义数组命令“intb[][3]={{1,2,3},{4,5},{6,7}}”,则b数组第1维的长度是()

A)2B)3C)4D)无确定值

b[2][2]的值是()

A)0B)1C)7D)无确定值

(2)C语言中的标识符只能由字母、数字和下划线三种字符组成,且第一个字符。

A)必须为字母或下划线。

B)必须为下划线。

C)必须为字母D)可以是字母、数字和下划线中的任一种字符。

(3)下面四个选项中,均是正确的八进制数或十六进制数的选项是。

A)-100x8f-011B)010-0x110xf1

C)0abc-0170xcD)0a12-0x123-0xa

(4)以下选项中非法的表达式是()

A)0<

6x<

100B)i3=j3==0

C)(char)(65+3)D)x+y==x+z

 

(5)若有定义:

inta=7;

floax=2.5,y=4.7;

则表达式

x+a%3*(int)(x+y)%2/4的值是()。

A)2.750000B)0.00000C)3.500000D)2.500000

(6)已有定义:

inta=8,则以下表达式中b的值不等于2的是:

()

A)b=a/3B)b=10-(a++)C)b=a%2D)b=a>

3?

2:

1

(7)已知ch是字符型变量,下面不正确的赋值语句是()。

A)ch=5+9;

B)ch='

a+b'

C)ch='

\0'

D)ch='

7'

+'

6'

(8)设x,y和int型变量,且x=3,y=4,z=5则下面表达式中使x值为0的是()。

A)!

((z<

y)&

&

(x-=3))B)(x-y-1)&

y

C)(z-y)||(!

(x-=3))D)y||z&

(x-=3)

(9)设有程序段

intk=10;

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

以下描述正确的是()。

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

B)循环是无限循环。

C)while循环语句执行十次。

D)循环体语句执行一次。

(10)设有定义“chars[12]={“abcdef”};

”则命令“printf(“%d\n”,strlen(s));

”的输出结果为()

A)随机值B)7C)6D)12

(11)当a=1,b=3,c=5d=4时,则执行完下面一段程序后,x的值是()。

if(a<

b)

if(c<

d)x=1;

else

c)

if(b<

d)x=2;

elsex=3;

elsex=6;

elsex=7;

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

(12)下面程序的运行结果是。

#include"

stdio.h"

voidmain()

{inta=1,b=10

do

{b-=a;

a++;

}

while(b--<

0);

printf("

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

A)a=3,b=11B)a=4,b=9

C)a=1,b=-1D)a=2,b=8

(13)调用函数时,若实参是一个数组名,则向函数对应的形参传送的是()

A)数组长度B)数组的首地址

C)数组第一个元素的值D)整个数组元素的值

(14)若有说明:

inta[10];

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

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

(15)根据定义和数据的输入方式,输入语句的正确形式为。

已有定义:

floatf1,f2;

数据输入方式:

4.25,3.5

A)scanf("

%f%f"

&

f1,&

f2);

B)scanf("

%f,%f"

C)scanf("

%3.2f%2.1f"

D)scanf("

%2.1f%3.2f"

(16)有以下程序

voidmain()

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

intm,(*p)[3]=a;

m=(*(*p))*(*(*(p+1)+2));

printf("

%d\n"

m);

}

执行后输出的结果是()

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

(17)以下if语句语法正确的是。

A)if(x>

0)B)if(x>

0)printf("

%f"

-x)

{x=x+y;

printf("

x);

}elseprintf("

%f"

-x);

elseprintf("

-x);

C)if(x>

0)D)if(x>

0)

{x=x+y;

};

peintf("

x)}

-x);

(18)下列程序的输出结果是()

voidmain()

{inti;

for(i=’A’;

i<

’I’;

i++,++i)printf(“%c”,i+32);

printf(“\n”);

A)编译不通过,无输出B)acegC)acegiD)abcdefghi

(19)下列程序的输出结果是()

voidmain()

{inta=2,*p=&

a;

printf("

%d%d"

(*p)++,*p;

A)23B)22C)2D)21

(20)逻辑运算符两侧运算对象的数据类型。

A)只能是0或1B)可以是整型、字符型或实型数据

C)只可以是整型或字符型数据D)只能是0或非0正数

(21)以下for循环的执行次数是。

for(x=0,y=0;

(y=123)&

(x<

4);

x++);

A)无限次。

B)4次。

C)0次。

D)3次。

(22)下面的程序段。

for(t=1;

t<

=100,t++)

{scanf("

%d"

&

x);

if(x<

0)continue;

%3d"

t);

A)当x<

0时整个循环结束B)当x>

=0时什么也不输出

C)printf函数永远也不执行D)最多允许输出100个非负整数

(23)若有说明intm[5],*p;

将键入数据保存于数组第一个元素m[0],以下正确的语句段是()。

A)p=m;

B)p=&

m;

scanf("

%d"

*p);

p);

C)p=&

m[0];

D)p=m;

scanf("

*p)sacnf(“%d”,p);

 

(24)下面程序的运行结果是。

a=1;

b=2;

c=2;

while(a<

b<

c){t=a;

a=b;

b=t;

c--;

printf("

%d,%d,%d"

a,b,c);

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

(25)若有说明:

inta[3][4];

则对数组元素的非法引用是。

A)a[0][2*1]B)a[0][4]C)a[4-2][0]D)a[1][3]

(26)对以下说明的正确理解是:

inta[10]={6,7,8,9,10};

A)将5个初值依此赋给a[1]至a[5]B)将5个初值依此赋给a[0]至a[4]

C)将5个初值依此赋给a[6]至a[10]D)因长度与初值个数不同,故语句错误

(27)若二维数组a有m列,则在a[i][j]前的元素个数为

A)i*m+jB)j*m+iC)i*m+j-1D)i*m+j+1

(28)已定义以下函数

voidfun(char*p2,char*p1)

{while((*p2=*p1)!

='

\0'

{p1++;

p2++;

}}

函数的功能是()

A)将p1所指字符串复制到p2所指内存空间

B)将p1所指字符串的地址赋给指针p2

C)对p1和p2两个指针所指字符串进行比较

D)检查p1和p2两个指针所指字符串中是否有'

(29)以下正确的函数声明语句形式是。

A)doublefun(intx,inty)B)doublefun(intx;

inty)

C)doublefun(int,int);

D)doublefun(intx;

inty);

(30)有以下程序

{inti=0,s=0;

do{

if(!

(i%3)){

i++;

continue;

s+=i;

}while(i<

7);

s);

a)10B)9C)8D)16

(31)有两个字符数组a,b,则以下正确的输入格式是。

A)scanf("

%s%s"

a,&

b)B)gets(a,b)

C)scanf("

a);

b);

D)gets("

a"

);

gets("

b"

(32)以下程序正确的运行结果是。

voidmain()

{inta=2,i;

for(i=0;

i<

3;

i++)printf("

%4d"

f(a));

f(inta)

{intb=0;

staticintc=3;

b++;

c++;

return(a+b+c);

A)777B)71013C)789D)7911

(33)当运行以下程序时,从键盘输入:

ab<

CR>

c<

def<

(<

表示回车)则下面程序的运行结果是。

#include"

stdio.h"

#defineN6

{charc[N];

inti=0;

for(;

i<

N;

c[i]=getchar(),i++);

for(i=0;

i++)putchar(c[i]);

A)abcdefB)aC)bD)ab

bcc

cdd

d

e

f

(34)执行以下程序后,a,b的值为

{inta,b,k=4,m=6,*p1=&

k,*p2=&

a=p1==&

b=(-*p1)/(*p2)+7;

a=%d\n"

a);

b=%d\n"

b);

A)-1B)0C)1D)4

57610

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

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

p=&

a;

inputa:

"

);

scanf("

%d"

*p);

…}

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

B)*p表示的是指针变量p的地址。

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

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

(36)以下正确的函数形式是

A)doublefun(intx,inty)B)fun(intx,y)

{z=x+y;

returnz;

}{intz;

returnz;

C)fun(x,y)D)doublefun(intx,inty)

{intx,y;

doublez;

}{doublez;

z=x+y;

(37)以下不正确的说法是。

A)在不同函数中可以使用相同名字的变量。

B)形式参数是局部变量。

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

D)在函数内定义的变量只在本函数范围内有效。

(38)已有定义intk=2;

int*p1=&

k,*p2=&

k;

下面不能正确执行的赋值语句是。

A)k=*p1+*p2;

B)p1=p2;

C)p2=k;

D)k=(*p1)*(*p2);

(39)设x、y、z和k都是int型变量,则执行表达式:

x=(y=4,z=16,k=32)后,x的值为

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

(40)若有说明int*p,m=5,n;

以下正确的程序段是。

A)p=&

n;

Scanf("

p);

C)Scanf("

n)D)p=&

*p=n;

*p=m;

(41)若有定义:

inta[3][4];

则对a数组的第i行第j列(假设i,j已正确说明并赋

值)元素值的正确引用为。

A)*(*(a+i)+j)B)(a+j)[j]

C)*(a+i+j)D)*(a+i)+j

(42)若已定义charS[10];

则在下面表达式中不表示S[1]的地址的是。

A)S+1B)&

S[1]C)&

S[0]+1D)S++

(43)设有如下的变量定义:

  inti=8,k,a,b;

  unsingedlongw=5

  doublex=1.42,y=5.2

  则以下符合C语言语法的表达式是

  A)a+=a-=(b=4)*(a=3)  B)x%(-3);

  C)a=a*3=2D)y=float(i)

 

(44)以下叙述中正确的是

  A)输入项可以是一个实型常量,如 scanf("

%f,"

3.5);

  B)只有格式控制,没有输入项,也能正确输入数据到内存,例如:

 scanf("

a=%d,b=%d"

);

  C)当输入一个实型数据时,格式控制部分可以规定小数点后的位数,例如:

%4.2f"

,&

f);

D)当输入数据时,必须指明变量地址,例如:

 (45)在执行以下程序时,为了使输出结果为,t=4则给a和b输入的值应满足的条件是

A)a>

b B)a<

0 C)0<

a<

b D)0>

a>

b

  voidmain()

{

ints,t,a,b;

  scanf("

%d,%d"

a,&

b);

  s=1;

t=1;

  if(a<

0)s=s+1;

if(a>

b)t=s+1;

elseif(a==b)t=5;

  elset=2*s;

printf("

t=%d\n"

,t);

(46)设x和y均为int型变量,则以下语句:

x+=y;

y=x-y;

x-=y;

的功能是

A)把x和y按从大到小排列 B)把x和y按从小到大排列 

C)无确定结果 D)交换x和y中的值

(21)以下程序的输出结果是:

{inta=12,b=12;

%d%d\n"

,--a,++b);

A)1010 B)1212 C)1110 D)1113

(47)以下程序运行后,输出结果是:

  A)cdeB)字符c的ASCII码值 C)字符c的地址D)出错

  

  {char*s="

abcde"

  s+=2;

  printf("

%ld\n"

,s);

  }

(48)以下程序输出结果是

  A)7B)6C)5D)4

  main()

  {intm=5;

  if(m++>

5)printf("

,m);

  elseprintf("

,m--);

(49)当a=1,b=3,c=5,d=4时,执行下面一段程序后,x的值为

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

  if(a<

b)

  if(c<

d)

x=1;

  else

  if(a<

c)

  if(b<

d)x=2;

  elsex=3;

  elsex=3;

  elsex=6;

 (50)在执行以下程序时,如果从键盘上输入:

ABCdef<

回车>

,则输出为

  A)ABCdefB)abcDEFC)abcD)DEF

  #include<

stdio.h>

{charch;

while((ch=getchar())!

\n'

){

if(ch>

A'

&

ch<

Z'

)ch=ch+32;

  elseif(ch>

a'

'

z'

)ch=ch-32;

%c"

,ch);

}printf("

\n"

(51)下面能正确进行字符串赋值操作的语句是

  A)chars[5]={"

ABCDE"

};

  B)chars[5]={'

、'

B'

C'

D'

E'

  C)char*s;

s="

ABCDEF"

  D)char*s;

scanf("

(52)当执行以下程序段时

  x=-1;

  do{x=x*x;

}while(!

x);

A)循环体将执行一次 B)循环体将执行两次

C)循环体将执行无限次 D)系统将提示有语法错误

(53)在下列选项中,没有构成死循环的程序段是

(A)inti=100(B)for(;

  while

(1)

  {i=i%100+1;

(C)intk=1000;

if(i>

100)break;

do{++k;

  }  }while(k>

=1000);

(D)ints=36

  While(s);

--s;

(54)执行语句:

for(i=1;

i++<

4;

)后;

变量i的值是

  A)3B)4C)5D)不定

(55)以下程序运行后,如果从键盘上输入ABCDE<

,则输出结果为

  A)8B)7C)6D)5

string.h>

  func(charstr[])

  {intnum=0;

  while(*(str+num)!

)num++;

  return(num);

  voidmain

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

当前位置:首页 > 高中教育 > 高中教育

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

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