C语言知识点1.docx

上传人:b****2 文档编号:2471091 上传时间:2023-05-03 格式:DOCX 页数:33 大小:30.22KB
下载 相关 举报
C语言知识点1.docx_第1页
第1页 / 共33页
C语言知识点1.docx_第2页
第2页 / 共33页
C语言知识点1.docx_第3页
第3页 / 共33页
C语言知识点1.docx_第4页
第4页 / 共33页
C语言知识点1.docx_第5页
第5页 / 共33页
C语言知识点1.docx_第6页
第6页 / 共33页
C语言知识点1.docx_第7页
第7页 / 共33页
C语言知识点1.docx_第8页
第8页 / 共33页
C语言知识点1.docx_第9页
第9页 / 共33页
C语言知识点1.docx_第10页
第10页 / 共33页
C语言知识点1.docx_第11页
第11页 / 共33页
C语言知识点1.docx_第12页
第12页 / 共33页
C语言知识点1.docx_第13页
第13页 / 共33页
C语言知识点1.docx_第14页
第14页 / 共33页
C语言知识点1.docx_第15页
第15页 / 共33页
C语言知识点1.docx_第16页
第16页 / 共33页
C语言知识点1.docx_第17页
第17页 / 共33页
C语言知识点1.docx_第18页
第18页 / 共33页
C语言知识点1.docx_第19页
第19页 / 共33页
C语言知识点1.docx_第20页
第20页 / 共33页
亲,该文档总共33页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C语言知识点1.docx

《C语言知识点1.docx》由会员分享,可在线阅读,更多相关《C语言知识点1.docx(33页珍藏版)》请在冰点文库上搜索。

C语言知识点1.docx

C语言知识点1

C语言

一选择题(50个)

1.在程序中可以用来作为变量名的合法的标识符是:

___c_

AstaticB23_b1Cstu_1tD#33

2.下列运算符运算级别最高的是:

__D_______

A&&B+=C>=D!

3已知:

charstr1,str2[10];选择正确的输入语句:

__D______

Ascanf("%s%c",&str1,str2);Bscanf("%s%s",&str1,str2);

Cscanf("%c%c",&str1,str2);Dscanf("%c%s",&str1,str2);

4选择正确的运行结果:

___D______

#include"stdio.h"

main()

{inta=1,b=10;

do{a++;

b-=a;

b--;

}while(b>0);

printf("a=%d,b=%d",a,b);

}

Aa=2,b=-1Ba=2,b=-2Ca=4,b=-1Da=4,b=-2

5.有一个二维数组s[3][4],其第2行第3列元素的正确表示是:

___B____

A*(*(s+2)+3)B*(s+2)+3Cs[2,3]Ds[3][2]

6.以下正确的描述是:

___B______

Acontinue语句的作用是终止整个循环的执行。

Bcontinue语句的作用是结束本次循环的执行。

Ccontinue语句和break语句都可以在switch语句中使用。

Dbreak语句的作用是结束本次循环的执行。

7.假定x和y为double型,则表达式x=2,y=x+3/2的值是D

A)3.500000B)B)3

C)2.000000D)D)3.000000

8.C语言规定,数组名做实参时,它和对应形参之间的数据传递方式是:

D______

A用户指定传递方式B无传递C单向值传递D地址传递

9若有以下说明语句:

structSTUDENT

{intnum;

charname[10];

floatcj;

}a1={1001,”liming”,97.5},*p=&a1;

不正确的输出语句是:

______C___

Aprintf(“%f”,a1.cj);Bprintf(“%f”,p->cj);

Cprintf(“%f”,(*p).cj);Dprintf(“%f”,*p.cj);

10已知inta;则对指针变量正确的说明和初始化是:

_A______

Aint*p=a;Bintp=a;Cintp=&a;Dint*p=&a;

11若有定义:

intaa[8];则以下表达式中不能代表数组元aa[1]的地址的是D

A)&aa[0]+1B)&aa[1]C)&aa[0]++D)aa+1

12若有下面的说明和定义,则sizeof(structaa)的值是32

structaa

{intr1;doubler2;floatr3;

unionuu{charu1[5];longu2[2];}ua;

}mya;

A)30

B)29

C)24

D)22

13若有以下定义和语句:

ints[4][5],(*ps)[5];

ps=s;

则对s数组元素的正确引用形式是

A)ps+1B)*(ps+3)C)ps[0][2]D)*(ps+1)+3

14以下程序的输出结果是b

main()

{intb[3][3]={0,1,2,0,1,2,0,1,2},i,j,t=1;

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

for(j=i;j<=i;j++)t=t+b[i][b[j][j]];

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

}

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

15假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为

A)log2n

B)n2

C)O(n1.5)

D)n(n-1)/2

16在说明语句:

int*f();中,标识符f代表的是C

A)一个用于指向整型数据的指针变量

B)一个用于指向一维数组的行指针

C)一个用于指向函数的指针变量

D)一个返回值为指针型的函数名

17线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是

A)每个元素都有一个直接前件和直接后件

B)线性表中至少要有一个元素

C)表中诸元素的排列顺序必须是由小到大或由大到小

D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件

18以下程序的输出的结果是程序不全

intx=3;

main()

{inti;

for(i=1;i}

ncre()

{staicintx=1;

x*=x+1;

printf("%d",x);

}

A)33B)22C)26D)25

19若以下定义:

structlink

{intdata;

strucklink*next;

}a,b,c,*p,*q;

且变量a和b之间已有如下图所示的链表结构:

ab

datanextdatanext

┌──┬──┐┌──┬──┐

│5│┼──→│9│\0│

└──┴──┘└──┴──┘

↑p

c

datanext

┌──┬──┐

│7││

└──┴──┘

↑q

指针p指向变量a,q指向变量c。

则能够把c插入到a和b之间并形成新的链表的语句组是:

C

A)a.next=c;c.next=b;B)p.next=q;q.next=p.next;

C)q->next=p->next;p->next=&c;D)(*p).next=q;(*q).next=&b;

20设有以下说明语句

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是B

A)PER是结构体变量名B)PER是结构体类型名

C)typedefstruct是结构体类型D)struct是结构体类型名

21若有说明:

inta[][4]={0,0};则下面不正确的叙述是A

A)数组a的每个元素都可得到初值0

B)二维数组a的第一维大小为1

C)当初值的个数能被第二维的常量表达式的值除尽时,所得商数就是第一维的大小

D)只有元素a[0][0]和a[0][1]可得到初值,其余元素均得不到确定的初值

22以下叙述正确的是D

A)可以把define和if定义为用户标识符

B)可以把define定义为用户标识符,但不能把if定义为用户标识符

C)可以把if定义为用户标识符,但不能把define定义为用户标识符

D)define和if都不能定义为用户标识符

23若定义:

inta=511,*b=&a;,则printf("%d\n",*b);的输出结果为

A)无确定值B)a的地址C)512D)511

24以下程序的输出结果是

main()

{inta=5,b=4,c=6,d;

printf("%d\n",d=a>b?

(a>c?

a:

c)b));

}

A)5B)4C)6D)不确定

25以下程序中,while循环的循环次数是I变量没有定义。

如果是i则为D

main()

{inti=0;

while(i<10)

{if(i<1)continue;

if(I==5)break;

i++;

}

......

}

A)1B)10

C)6D)死循环,不能确定次数

26以下程序的输出结果是

main()

{inta=0,i;

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

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}

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

}

A)31B)13C)10D)20

27以下程序的输出结果是a

main()

{inta=4,b=5,c=0,d;

d=!

a&&!

b||!

c;

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

}

A)1B)0C)非0的数D)-1

28有以下程序

main()

{chara[]={′a′,′b′,′c′,′d′,′e′,′f′,′g′,′h′,′\0′};inti,j;

i=sizeof(a);j=strlen(a);

printf("%d,%d\b",i,j);

}

程序运行后的输出结果是b

A)9,9

B)8,9

C)1,8

D)9,8

29以下程序的运行结果是

#defineMIN(x,y)(x)<(y)?

(x):

(y)

main()

{inti=10,j=15,k;

k=10*MIN(i,j);

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

}

A)10

B)15

C)100

D)150

30以下程序的输出结果是D

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;

}

main()

{inti,a=0;

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

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

}

A)20B)24C)5D)15

31有如下程序

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,z=8,r;

r=func(func(x,y),z);

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

}

该程序的输出的结果是D

A)12

B)13

C)14

D)15

32若有以下程序

#include

voidf(intn);

main()

{voidf(intn);

f(5);

}

voidf(intn)

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

则以下叙述中不正确的是

A)若只在主函数中对函数f进行说明,则只能在主函数中正确调用函数f

B)若在主函数前对函数f进行说明,则在主函数和其后的其它函数中都可以正确调用函数f

C)对于以上程序,编译时系统会提示出错信息:

提示对对f函数重复说明

D)函数f无返回值,所以可用void将其类型定义为无值型

33有如下定义

structperson{charname[9];intage;};

structpersonclass[10]={"John",17,"paul",19,"Mary",18,"Adam",16,};

根据上述定义,能输出字母M的语句是

A)printf("%c\n",class[3].name);

B)printf("%c\n",class[3].name[1]);

C)printf("%c\n",class[2].name[1]);

D)printf("%c\n",class[2].name[0]);

34以下程序的输出结果是B

main()

{charch[3][5]={"AAAA","BBB","CC"};

printf("\"%s\"\n",ch[1]);

}

A)"AAAA"B)"BBB"C)"BBBCC"D)"CC"

35在C语言中,形参的缺省存储类是

A)autoB)registerC)staticD)extern

36以下程序执行后a的值是

main()

{intx,y=252,i=386,*m=&y,*z=&i;

x=(z==y);

printf("%d",x);

}

A)252

B)1

C)0

D)运行时出错,x无定值

37下列程序的输出结果是B

structabc

{inta,b,c,s;};

main()

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

t=s[0].a+s[1].b;

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

}

A)5

B)6

C)7

D)8

38若要打开A盘上user子目录下名为abc.txt的文本文件进行读、写操作,下面符合此要求的函数调用是B

A)fopen("A:

\user\abc.txt","r")B)fopen("A:

\\user\\abc.txt","r+")

C)fopen("A:

\user\abc.txt","rb")C)fopen("A:

\\user\\abc.txt","w")

39若有定义:

char*st="howareyou";下列程序段中正确的是

A)chara[11],*p;strcpy(p=a+1,&st[4]);

B)chara[11];strcpy(++a,st);

C)chara[11];strcpy(a,st);

D)chara[],*p;strcpy(p=&a[1],st+2);

40下列程序的运行结果是B

voidfun(int*a,int*b)

{int*k;

k=a;a=b;b=k;

}

main()

{inta=3,b=6,*x=&a,*y=&b;

fun(x,y);

printf("%d%d",a,b);

}

A)63

B)36

C)编译出错

D)00

41.下列用于printf函数的控制字符常量中,代表"竖向跳格"的转义字符常量是

A)\b

B)\t

C)\v

D)\f

42.设变量n为float类型,m为int类型,则以下能实现将n中的数值保留小数点后两位,第三位进行四舍五入运算的表达式是

A)n=(n*100+0.5)/100.0

B)m=n*100+0.5,n=m/100.0

C)n=n*100+0.5/100.0

D)n=(n/100+0.5)*100.0

43设x,y和z都是int型变量,且x=3,y=4,z=5,则下面表达式中,值为0的表达式是

A)x&&y

B)x<=y

C)x||++y&&y-z

D)!

(x)

44设有程序段

intk=10;

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

则下面描述中正确的是

A)while循环执行10次

B)循环是无限循环

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

D)循环体语句执行一次

45对表达式for(表达式1;;表达式3)可理解为

A)for(表达式1;0;表达式3)

B)for(表达式1;1;表达式3)

C)for(表达式1;表达式1;表达式3)

D)for(表达式1;表达式3;表达式3)

46若有如下语句

intx=3;

do{printf("%d\n",x-=2);}

while(!

(--x));

则上面程序段

A)输出的是1

B)输出的是1和-2

C)输出的是3和0

D)是死循环

47若变量a是int类型,并执行了语句:

a=‘A'+1.6;,则正确的叙述是

A)a的值是字符C

B)a的值是浮点型

C)不允许字符型和浮点型相加

D)a的值是字符‘A’的ASCII值加上1。

48以下程序段的输出结果是

inta=1234;

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

A)12B)34C)1234D)提示出错、无结果

49有以下程序

voidfun(inta,intb,intc)

{a=456,b=567,c=678;}

main()

{intx=10,y=20,z=30;

fun(x,y,z);

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

}

输出结果是B

A)30,20,10

B)10,20,30

C)456,567,678

D)678,567,456

50若有说明语句:

inta,b,c,*d=&c;,则能正确从键盘读入三个整数分别赋给变量a、b、c的语句是

A)scanf("%d%d%d",&a,&b,d);B)scanf("%d%d%d",&a,&b,&d);

C)scanf("%d%d%d",a,b,d);D)scanf("%d%d%d",a,b,*d);

51._________是合法的用户自定义标识符。

A)2bB)floatC)foo-99D)_32

52.若a为int类型,且其值为3,则执行完表达式a+=a-=a*a后,a的值是________。

A)-3B)9C)-12D)6

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

fun(intx,inty,intz){z=x*x+y*y;}

main()

{inta=31;

fun(5,2,a);

printf(“%d”,a);

}

A)0B)29C)31D)无定值

54.对于以下的变量定义,表达式_____不符合C语言语法。

structnode{

intlen;

char*pk;

}x={2,"right"},*p=&x;

A)p->pkB)*p.pkC)*p->pkD)*x.pk

55.设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是____。

A)10,11,12B)11,12,12C)10,12,12D)11,11,12

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

main()

{

charw[][10]={“ABCD”,“EFGH”,“IJKL”,“MNOP”},k;

for(k=1;k<3;k++)printf(“%s”,w[k]);

}

A)ABCDFGHKLB)ABCDEFGC)EFGJKD)EFGHIJKL

57.表达式sizeof(“hello”)与strlen(”hello”)的值分别是___C___。

A)6,6B)5,5C)6,5D)5,6

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

intf()

{staticinti=0;

staticints=1;

s+=i;i++;

returns;

}

main()

{inti,a=0;

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

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

}

A)10B)15C)20D)25

59.假定建立了以下链表结构,指针p、q分别指向如图所示的结点,则以下可以将q所指结点从链表中删除并释放该结点的语句组是。

A)free(q);p->next=q->next;B)(*p).next=(*q).next;free(q);

C)q=(*q).next;(*p).next=q;free(q);D)q=q->next;p->next=q;p=p->next;free(p);

60.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为________。

A)GEDHFBCA

B)DGEBHFCA

C)ABCDEFGH

D)ACBFEDHG 

71._________是合法的用户自定义标识符。

A、b-bB、floatC、D、_isw

72.______D___把x、y定义成float类型变量,并赋同一初值3.14。

A、floatx,y=3.14;B、floatx,y=2*3.14;

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

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

main()

{inta=0,i;

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

{switch(i)

{case0:

case3:

a+=2;

case1:

case2:

a+=3;

default:

a+=5;

}

}

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

}

A)31B)13C)10D)20

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

(s=1,2,3,4,5)

intf()

{staticinti=0;

ints=1;

s+=i;i++;

returns;

}

main()

{inti,a=0;

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

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

}

A、15B、16C、14D、17

75.表达式strlen(”hello”)的值是____5__。

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

76.对于以下的变量定义,表达式_____不符合C语言语法。

structnode{

intlen;

char*pk;

}x={2,"right"},*p=&x;

A、p->pkB、*p.pkC、*p->pkD、*x.pk

77.设有inta[]={10,11,12},*p=&a[0];则执行完*p++;*p+=1;后a[0],a[1],a[2]的值依次是

A)10,11,12B)11,12,12C)10,12,12D)11,11,12

78.设有以下说明语句

typedefstruct

{intn;

charch[8];

}PER;

则下面叙述中正确的是

A)PER是结构体变量名B)PER是结构体类型名

C)typedefstruct是结构体类型D)struct是结构体类型名

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

longfun(intn)

{longs;

if(n==1||n==2)s=2;

elses=n-fun(n-1);

returns; }

main()

{printf(“%ld\n”,fun(3));}

A、1B、2C、3

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2