C语言基础题分析.docx

上传人:b****6 文档编号:7980541 上传时间:2023-01-27 格式:DOCX 页数:19 大小:52.91KB
下载 相关 举报
C语言基础题分析.docx_第1页
第1页 / 共19页
C语言基础题分析.docx_第2页
第2页 / 共19页
C语言基础题分析.docx_第3页
第3页 / 共19页
C语言基础题分析.docx_第4页
第4页 / 共19页
C语言基础题分析.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

C语言基础题分析.docx

《C语言基础题分析.docx》由会员分享,可在线阅读,更多相关《C语言基础题分析.docx(19页珍藏版)》请在冰豆网上搜索。

C语言基础题分析.docx

C语言基础题分析

1.执行下列语句序列后,不可能出现的运行结果是________。

intn;

scanf("%d",&n);

switch(n)

{

case1:

case2:

putchar('X');

case3:

case4:

putchar('Y');break;

default:

putchar('Z');

A.显示:

z

B.显示:

xy

C.显示:

x

D.显示:

y

2.设a,b为整型变量,且二者均不为0,以下关系表达式中恒成立的是________。

A.a/b*b/a==1

B.a/b*b==a

C.a*b/a==b

D.a*b/a*b==1

3.设有定义:

intx=10,y=20,z=30;则执行下列语句后的结果是________。

if(x>y)z=x;

x=y;y=z;

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

A.20,30,20

B.20,30,30

C.20,30,10

D.10,20,30

4.下列程序的输出结果是_______。

main()

{

inta=011;

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

}

A.9

B.10

C.11

D.12

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

A.!

(x

z||1

B.x==y&&y!

=z

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

D.y&&’y’

6.以下所列的各函数声明中,正确的是________。

A.subplay(aasinteger,basinteger)

B.voidplay(vara:

Integer,varb:

Integer)

C.voidplay(inta,b)

D.voidplay(inta,intb)

7.表达式!

x等价于________。

A.x==1

B.x==0

C.x!

=0

D.x!

=1

8.设有定义inta[10];则合法数组元素的下标范围为______。

A.1至10

B.0至9

C.1至9

D.0至10

9.下列关于数组的描述中错误的是______。

A.当数组名作为参数传递给某个函数时,原数组中的元素的值可以被函数修改

B.数组的名称其实是数组在内存中的首地址

C.一个数组只允许存储同种类型的变量

D.如果在对数组进行初始化时,给定的数组元素个数比数组元素少时,多余的数组元素自动初始化为最后一个给定元素的值

10.下列标识符中,不合法的标识符为________。

A._int

B.a_10

C.a#b

D.Pad

11.下列C语言的标识符中,不合法的标识符为____________

A.star

B.1234

C._a100

D.circuit9

12.若已定义:

intx=10;

则表达式x=(4*5,x*5,x+25)的值是______。

A.20

B.45

C.125

D.35

13.若x是int类型变量,y是float类型变量,则为了将数据55和55.5分别赋给x和y,则执行语句:

scanf(“%d,%f”,&x,&y,);时,正确的键盘输入是______。

A.55,55.5↙

B.x=55,y=55.5↙

C.55↙55.5↙

D.x=55↙y=55.5↙

14.若有说明语句:

intx=25,y=20,z=30;

则执行语句:

if(x>y){y=z;z=x;}x=y;printf(“%d,%d,%d”,x,y,z);后,输出是____________

A.25,20,30

B.30,30,25

C.25,30,30

D.25,30,25

15.程序段:

intnum=2;

while(num)

printf(“%d,”,num--);

的运行结果是_______________

A.2,1,

B.2,1

C.2,1,0

D.2,1,0,

16.若有说明:

inta[3][4],s;则对数组a的元素引用正确的是____________

A.s=0;for(i=0;i<=3;i++)for(j=0;j<4;j++)s+=a[i][j];

B.s=0;for(j=0;j<=4;j++)for(i=0;i<3;i++)s+=a[i][j];

C.s=0;for(i=0;i<4;i++)for(j=0;j<=3;j++)s+=a[j][i];

D.s=0;for(i=0;i<3;i++)for(j=0;j<4;j++)s+=a[i][j];

17.如果形参获取实参的地址,则____________作为函数调用时的实参。

A.数组名

B.全局量

C.数组中全部元素的值

D.数组中的元素个数

18.若有定义:

inti,j,*pi=&i;则与i==j等价的比较表达式是____________

A.i==*pi

B.*pi==*&j

C.i==&j

D.i==**pi

19.若有定义:

structperson{

intid;

charname[20];

}per,*s=&per;

则以下对结构体成员的引用中正确的____________

A.per.name[0]

B.s->name[0]

C.per.name[8]

D.per.id

20.若有以下语句:

charx=5,y=9,z;z=(y|x)<<2;

则z的二进制值是________________

A.00011011

B.00001010

C.00110100

D.00001100

21.以下C程序中预处理命令写法正确的是:

A.#include(stdio.h)

B.#include[stdio.h]

C.#include{stdio.h}

D.#include

22.设有变量定义语句chara;则下面的赋值语句中是正确的。

A.a='&';

B.a="&";

C.a=''';

D.a='16';

23.设有charch;与语句“ch=getchar();”等价的语句是:

A.printf("%c",ch);

B.printf("%c",&ch);

C.scanf("%c",ch);

D.scanf("%c",&ch);

24.inta=2,b=5;则表达式21%9/(float)a+4/b*b的运算结果为。

A.2

B.1

C.1.5

D.0

25.能正确表示逻辑关系"a>=10或a<=0"的C语言表达式是。

A.a>=10ora<=0

B.a<=0|a>=10

C.a<=0||a>=10

D.a>=10&&a<=0

26.设有intn=60;写出下列语句的运行结果

switch(n/10)

{

case6:

printf("@");break;

case5:

printf("#");

default:

printf("$");

}

A.@#$

B.#$

C.$

D.@

27.设有inti;以下语句中,循环次数为100次的语句是:

A.for(i=0;i<=100;i++)

B.for(i=0;i<99;i++)

C.for(i=1;i<99;i++)

D.for(i=0;i<100;i++)

28.C程序中,用于提前结束本次循环、进行下一次循环的语句是。

A.break

B.continue

C.return

D.exit

29.若有数组定义语句:

intt[3][2];则t数组最后一个元素是:

A.t[3][2]

B.t[2][3]

C.t[2]

D.t[2][1]

30.设有定义inta[]={1,3,5,7,9},*p=a;while(*p!

=3)p++;结果为7的表达式是:

A.*(p+2)

B.*(p+3)

C.*p+2

D.*p+3

31.chara[10];不能将字符串"abc"存储在数组a中的是。

A.strcpy(a,"abc");

B.a[0]=0;strcat(a,"abc");

C.a="abc";

D.inti;for(i=0;i<3;i++)a[i]=i+97;a[i]=0;

32.设有下列函数原型和变量定义语句,则合法的函数调用语句是:

intfunc(inta[],intn);

inta[10],n,x;

A.func(a,n)=x;

B.x=func(a,n);

C.x=func(a[],n);

D.x=func(a[10],n);

33.若有以下定义,输出字母M的语句是:

structperson

{

charname[9];

intage;

};

structpersonst[10]=

{{"john",17},{"paul",19},{"Mary",18}};

A.printf("%c",st[2].name);

B.printf("%c",st[3].name[1]);

C.printf("%c",st[2].name[1]);

D.printf("%c",st[2].name[0]);

34.需要以写模式打开当前目录下一个名为myfile.txt的文本文件,下列打开文件正确的选项是:

A.fopen("myfile.txt","r");

B.fopen("myfile.txt","w");

C.fopen("myfile.txt","rb");

D.fopen("myfile.txt","wb");

35.假定建立了以下链表结构:

structnode{

charid;

structnode*next;

}*head,*p;

如下图所示:

指针p指向一个新结点,将新结点插入到链表成为头结点的两条C语言语句是。

A.head=p->next;p=head;

B.p->data=head;head=p;

C.head=p->data;p=head;

D.p->next=head;head=p;

36.C语言程序中可以对程序进行注释,注释部分必须用符号_____括起来。

A.{和}

B.[和]

C./*和*/

D.*/和/*

37.设要定义n为整型变量,定义x为浮点型变量,正确的语句是:

_____。

A.intn,floatx,

B.intn,floatx;

C.intn;floatx,

D.intn;floatx;

38.设有intn;从键盘上输入整数给变量n,正确的语句是:

_____。

A.scanf(n);

B.scanf("n");

C.scanf("%d",n);

D.scanf("%d",&n);

39.程序段

intx=3,y=2;

printf("%d",x*=y+8/5);

的输出结果为_____。

A.1

B.5

C.7

D.9

40.要判断char型变量m是否是数字,可以使用表达式__________。

A.0<=m&&m<=9

B.m>='0'&&m<='9'

C."0"<=m&&m<="9"

D.'0'<=m<='9'

41.执行以下代码段后,a的值为_____。

inta=1,b=2,c=3;

if(a>b)a=b;

if(a>c)a=c;

A.1

B.2

C.3

D.不确定

42.下面的for语句执行时,_______将形成无限循环。

A.for(s=j=0;j<100;j+=1)s+=j;

B.for(s=j=0;j<100;j+1)s+=j;

C.for(s=j=0;j<100;++j)s+=j-1;

D.for(s=j=0;j<100;j++)s+=j;

43.循环语句中,break的作用是_______。

A.终止程序运行

B.结束本次循环

C.从本循环体内跳出

D.跳出子函数

44.以下正确的语句是__________。

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

B.floatx[3][]={{1},{2},{3}};

C.longb[2][3]={{1},{1,2},{1,2,3}};

D.doubley[][3]={0};

45.执行以下程序段后,m的值是_____。

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

intm=10,k,*ptr=a;

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

m+=*(ptr+k);

A.23

B.24

C.25

D.26

46.若有数组定义并初始化语句:

chara1[]={’p’,’r’,’o’};chara2[]=〝pro〞;则下列正确的说法是__________。

A.a1和a2完全相同

B.a1和a2不同,a1是指针

C.a1和a2存储单元的数目相同

D.a1和a2不同,a2的存储单元的数目多

47.若有函数调用语句:

func(rec1,rec2+rec3,(rec4,rec5));

则可以判断该函数的参数个数是_______。

A.3

B.2

C.5

D.有语法错误

48.若有以下定义:

structperson{

charname[9];

intage;}c[10]={"Wang",19,"Zhang",17,"Li",20,"Zhao",18},*p=&a[0];

则能打印出字母'L'的语句是_____。

A.printf(“%c”,c[3].name);

B.printf(“%c”,c[3].name[1]);

C.printf(“%c”,c[2].name[1]);

D.printf(“%c”,c[2].name[0]);

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

A.fopen("A:

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

B.fopen("A:

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

C.fopen("A:

\user\abc.txt","rb");

D.fopen("A:

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

50.若建立了以下链表结构,如图所示。

指针p指向如图所示的结点,t为与data同类型的数据变量,则交换p所指向的结点的数据和该结点的下一个结点的数据的语句为:

t=p->data;__________。

A.p->next->data=p->data;p->data=t;

B.p->data=p->next->data;p->next->data=t;

C.p->data=t;p->next->data=p->data;

D.p->next->data=t;p->data=p->next->data;

51.关于C程序的主函数,以下描述中正确的是:

_______。

A.C程序的第一个函数称为主函数,程序从该函数开始运行。

B.C程序可以有多个主函数,程序从第一个主函数开始运行。

C.C程序可以没有主函数,程序从第一个函数开始运行。

D.C程序的主函数即是main函数,程序从该函数开始运行。

52.字符变量a与b分别初始为'S'与'B',正确的语句是:

_______。

A.chara,b='S','B';

B.chara='S',charb='B';

C.chara="S",b="B";

D.chara='S',b='B';

53.设有intn=2010;要求屏幕上显示“n=2010”结果,正确的语句是:

_______。

A.printf(n);

B.printf("n=",n);

C.printf("n=","%d",n);

D.printf("n=%d",n);

54.设有变量定义:

inta=5,b=8;当执行完语句:

b=a

a:

b-1;之后,变量a和b的值为_______。

A.5和5

B.5和7

C.5和8

D.5和9

55.设intn;判断“n不为0”的表达式是:

_______。

A.n==0

B.!

(n=0)

C.n=!

0

D.n!

=0

56.若有定义:

floatw;intnum;chars;则合法的switch语句是_______。

A.switch(w){case1.0:

printf("*\n");case2.0:

printf("**\n");}

B.switch(num);{case1printf("*\n");case2printf("**\n");}

C.switch(s){case'a':

printf("*\n");case'b':

printf("**\n");default:

printf("\n");}

D.switch(num+1){case1:

printf("*\n");case1:

printf("**\n");default:

printf("\n");}

57.以下语句中,循环次数不为10次的语句是_______。

A.for(i=1;i<10;i++);

B.i=1;do{i++;}while(i<=10);

C.i=10;while(i>0){--i;}

D.for(i=10;i>=1;i--};

58.用于for循环体中的continue语句的作用是_______。

A.终止程序执行

B.终止循环继续

C.结束本次循环

D.重新执行循环

59.若要定义一个int型二维数组a,并使其各元素具有初值:

2300

4050

0000

则正确的定义语句是_______。

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

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

C.inta[3][4]={{2,3},{4,,5}};

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

60.设有语句:

intx[]={0,1,2,3,4,5,6,7,8,9},*p=x+5;

while(*p++<7);

则语句printf("%d",*p--);

的输出结果为_______。

A.出错

B.x[7]的地址

C.7

D.8

61.下列说明语句中_______是错误的。

A.chara[]='china';

B.chara[]="china";

C.chara[]={"china"};

D.chara[]={'c','h','i','n','a'};

62.已知函数原型intf(int)和intg(int)。

下列语句中,正确调用函数的语句是_______。

A.intf(3);

B.f(intg(3));

C.intg(f(3));

D.p=f(g(3)+1);

63.设有以下结构体定义及初始化:

structfs{intfz,fm;};

structfsx={2,3},y={5,7};

则表达式x.fz*y.fm的结果是:

_______。

A.14

B.10

C.21

D.15

64.若定义了文件指针FILE*fp;如要打开当前目录下一个只读文件abc.c并使fp指向该文件,正确的语句是_______。

A.fp=fopen("abc.c","rb");

B.fp=fopen("abc.c","rb+");

C.fp=fopen("abc.c","r");

D.fp=fopen("abc.c","r+");

65.假定建立了下图所示的链表结构,指针p指向如图所示的结点,已定义q是与p相同类型的指针变量,则将p所指结点的下一个结点从链表中删除的语句是_______。

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

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

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

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

66.C程序是由_______组成的。

A.子程序

B.过程

C.子函数

D.主函数和子函数

67.若有定义语句:

charc='\n';则变量c_______。

A.包含4个字符

B.包含2个字符

C.包含1个字符

D.说明不合法,c的值不确定

68.设有floatx=1.25;intn=x;则语句printf("%.2f,%d\n",x,n);的输出是:

_______。

A.1.25,1.25

B.1,1

C.1,1.25

D.1.25,1

69.设x为int型变量,且初值为'f',则执行printf("%c\n",'A'+(x-'a'+1));后的输出结果是_______。

A.G

B.H

C.I

D.J

70.设有intn;则判断“n为二位数(10至99)”的表达式是:

_______。

A.10<=n<=99

B.10<=n||n<=99

C.10<=n,n<=99

D.10<=n&&n<=99

71.下列if语句中,错误的是_______。

A.if(a==b)a--elseb++;

B.if(a-b>0)printf("a>b\n");

C.if(x>0&&x<10)y=x*x-1.5;

D.if(x)y+=1;

72.设:

inti,n; floatsum;则求调和级数s=1+1/2+1/3+...前n项之和的正确循环语句是_______。

A.for(i=1;i<=n;i++)sum+=1/i;

B.for(i=1,sum=0.0;i<=n;i++)sum+=1/i;

C

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

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

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

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