c语言测试题chart *p="abcdefgh",c语言练习试题库

单项选择题

1.有charc=’1’,下面说法中正确的是(  )。

a.语句putc+2);的输出结果为51

b.语句put“%d”,c+2);的输出结果为3

c.语句put“%c”,c+2);的输出结果为51

d.语句put“%c”,c+2);的输出结果为3

2.设c1,c2均是char型变量,则下面不正确的函数调用为(  )。

a.scanf(”c1=2=%c”,&c1,&c2);

b.get);

c.putc2);

d.putc1,c2);

3.为了表示关系x>=y>=z,下面c语言表达式中正确的是(  )。

a.(x>=y)&&(y>=z)

b.(x>=y)and(y>=z)

c.(x>=y>=z)

d.(x>=y)&(y>=z)

4.设x,y,z,t为int型变量,则执行以下语句后,t的值为(  )。

x=y=z=1;

t=++x||++y&&++z;

a.不定值

b.2

c.1

d.0

5.对if语句中表达式的类型,下面正确的说法是(  )。

a.必须是关系表达式

b.必须是关系表达式或逻辑表达式

c.可以是任意表达式

d.必须是关系表达式或算术表达式

6.对for(表达式1;;表达式3)可以理解为(  )。

a.for(表达式1;0;表达式3)

b.for(表达式1;表达式1;表达式3)

c.for(表达式1;1;表达式3)

d.for(表达式1;表达式3;表达式3)

7.执行语句for(i=1;i++<4;);之后,变量i的值为(  )。

a.3

b.4

c.5

d.不确定

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

a.j*m+i

b.i*m+j

c.i*m+j-i

d.i*m+j+1

9.下面说法中正确的是(  )。

a.在c语言中,可以使用动态内存分配技术,定义元素个数可变的数组

b.在c语言中,数组元素的个数可以不确定,允许随即变动

c.在c语言中,数组元素的数据类型可以不一致

d.在c语言中,定义数组后,就确定了它能容纳的相同数据类型元素的个数

10.不能把字符串:“good!”赋给数组b的语句是(  )。

a.charb[10]={’g’,’o’,’o’,’d’,’!’};

b.charb[10];b=“good!”;

c.charb[10];strcpy(b,“good!”);

d.charb[10]=“good!”;

11.执行下面程序段,给x,y赋值时,http://tongxiehui.net/by/5fce0238366a6.html不能作为数据分隔符的是(  )。

intx,y;

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

a.回车

b.tab键

c.回车

d.逗号

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

a.ch=’a+b’;

b.ch=’’;

c.ch=’7’+’9’;

d.ch=5+9;

13.下面程序段的输出结果是(  )。

charc1=’6’,c2=’0’;

printf(”%c,%c,%d,%d”,c1,c2,c1-c2,c1+c2);

a.因输出格式不合法,输出出错信息

b.6,0,6,102

c.6,0,7,6

d.6,0,5,7

14.在c语言的循环语句for,while,dowhile中,用于直接中断最内层循环的语句是(  )。

a.switch

b.continue

c.break

d.if

15.下面的循环结构中,不是无限循环的是(  )。

a.for(i=1;;i++)printf(“%d”,i--);

b.i=1;while(i--){printf(”%d”,i++);}

c.i=1;do{printf(”%d”,i);i++;}while(--i);

d.for(i=0;i;i++)printf(”%d”,i);

16.下面程序段的运行结果是(  )。

charc[]=”will”;

printf(“%d“,strlen(c));

a.14

b.3

c.9

d.字符串中有非法字符,输出值不确定

17.下面说法中正确的是:在c语言程序中(  )。

a.函数的定义可以嵌套,但函数的调用不可以嵌套

b.函数的定义不可以嵌套,但函数的调用可以嵌套

c.函数的定义和调用均不可以嵌套

d.函数的定义和调用均可以嵌套

18.若用数据名作为函数调用的实参,传递给形参的是(  )。

a.数据的首地址

b.数组第一个元素的值

c.数组中全部元素的值

d.数组元素的个数

19.以下叙述中不正确的是(  )。

a.在不同的函数中可以使用相同名字的变量

b.函数中的形式参数是局部变量

c.在一个函数内定义的变量只在本函数范围内有效

d.在一个结函数内的符合语句中定义的变量在本函数范围内有效

20.一个变量的指针是指(  )。

a.该变量的值

b.该变量的地址

c.该变量的变量名

d.该变量的标志

21.若有定义:inta[10],*p=a;,则p+5表示(  )。

a.元素a[5]的地址

b.元素a[5]的值

c.元素a[6]的地址

d.元素a[6]的值

22.c语言规定,在一个源程序中,main函数的位置(  )。

a.必须在最开始

b.必须在系统调用的库函数的后面

c.可以任意

d.必须在最后

23.一个c语言程序是由(  )。

a.一个主程序或若干个子程序组成

b.函数组成

c.若干过程组成

d.若干个子程序组成

24.下面哪项是构成c语言的基本单位(  )。

a.函数

b.过程

c.子程序

d.子例程

25.以下正确的说法是(  )。

a.定义函数时,形参的类型说明可以放在函数体内

b.return后边的值不能为表达式

c.如果函数值的类型和返回值类型不一致,以函数值类型为准

d.如果形参与实参的类型不一致,以函数值类型为准

26.对于基类型相同的两个指针变量之间,不能进行的运算是(  )。

a.<

b.=

c.+

d.?

27.变量的指针,其含义是指该变量的(  )。

a.值

b.地址

c.名

d.一个标志

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

voidss(char*s,chart)

{while(*s)

{if(*s==t)*s=t-‘a’+’a’;

s++;

}

}

voidmain()

{charstr1[100]=”abcddfefdbd”,c=’d’;

ss(str1,c);

printf(“%s”,str1);

}

a.abcddfefdbd

b.abcddfefdbd

c.abcaafefaba

d.abcddfefdbd

29.下列说法中正确的是(  )。

a.结构体变量可以作为一个整体进行其值得输入和输出

b.结构体成员项不可以是结构体

c.结构体成员项可以是结构体或其他任何c语言的数据类型

d.结构体变量和结构体是相同的概念

30.下面说法中不正确的是(  )。

a.一个c源程序可有一个或多个函数组成

b.一个c源程序必须包含一个main函数

c.c程序的基本组成是函数

d.在c程序中,注释语句只能位于一条语句的后面

31.若执行下面的程序段,则下面描述中正确的是(  )。

intk=5;

while(k=1)k--;

a.while循环执行四次

b.循环体执行一次

c.循环体一次也不执行

d.死循环

32.下面关于for循环的正确描述是(  )。

a.for循环只能用于循环次数已经确定的情况

b.for循环中是先执行循环体语句,后判断表达式

c.在for循环中,不能用break语句跳出循环

d.for循环的循环体可以包含多条语句,但必须用花括号括起来

33.不正确的定义语句是(  )。

a.doublex[5]={2.0,4.0,6.0,8.0,10.0};

b.inty[5]={0,1,3,5,7,9};

c.charc1[]={’1’,’2’,’3’,’4’,’5’};

d.charc2[]={’x10’,’x0a’,’x08’};

34.下面是对s的初始化,其中不正确的是(  )。

a.chars[5]={“abc”};

b.chars[5]={‘a’,’b’,’c’};

c.chars[5]=””;

d.chars[5]=”abced”;

35.下面程序段的运行结果是(  )。

charc[5]={‘a’,’b’,’’,’c’,’’};

printf(“%s”,c);

a.‘a’’b’

b.ab

c.abc

d.abc

36.以下说法中正确的是(  )。

a.c语言程序总是从第一个定义的函数开始执行

b.在c语言程序中,要调用的函数必须在main函数中定义

c.c语言程序总是从main函数开始执行

d.c语言程序中的main函数必须放在程序的开始部分

37.下列常量中,合法的c常量是(  )。

a.“x-y”

b.‘105’

c.‘be’

d. 07ff

38.下面程序的输出结果是(  )。

voidmain

{

inti=011,j=11;

printf(“%d,%d”,++i,j--);

}

a.10,11

b.12,10

c.11,11

d.10,9

39.下面程序的执行结果为(  )。

voidmain()

{intx=20,y;

y=++x; y+=x;

printf(”%d,”y);

y=x--;  y+=x;

printf(”%d,”y);

}

a.42,41

b.42,42

c.40,41

d.42,40

40.下面程序的输出结果是(  )。

voidmain()

{inti=010,j=10;

printf(“%d,%d”,i++,++j);

}

a.10,11

b.11,11

c.8,11

d.8,10

41.能正确表示a和b同时为正或同时为负的表达式是(  )。

a.(a>=0||b>=0)&&(a<0||b<0)

b.(a>=0||b>=0)&&(a<0&&b<0)

c.(a+b>0)&&(a+|b<0)

d. a*b>0

42.以下关于运算符优先顺序的描述中正确的是(  )。

a.关系运算符

b.逻辑运算符

c.赋值运算符

d.算术运算符

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

voidmain()

{inta,b,d=241;

a=d/100%9;

b=(-1)&&(-1);

printf(“%d,%d”,a,b);

}

a.6,1

b.2,1

c.6,0

d.2,0

44.若有条件表达式(exp)?a++:b--,则以下表达式中完全等价于表达式(exp)的是(  )。

a.(exp==0)

b.(exp!=0)

c.(exp==1)

d.(exp!=1)

45.程序段如下,则正确的执行结果是(  )。

intk=0;

while(k++<=2);

printf(“%d”,k);

a.2

b.3

c.4

d.无结果

46.下面说法中正确的是(  )。

a.在c语言函数中,必须有形参

b.在c语言函数中,形参必须是变量名

c.在c语言函数中,可以有也可以没有形参

d.在c语言函数中,数组名不能做形参

47.下面说法正确的是,在c语言中(  )。

a.实参和与其对应的形参各占用*的存储单元

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

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

d.形参是虚拟的,不占用存储单元

48.下面不正确的说法是:c语言规定(  )。

a.实参可以是常量、变量或表达式

b.形参可以是常量、变量或表达式

c.实参传递给形参时,要求实参必须有确定的值

d.形参应与其对应的实参类型可以不一致

49.c语言允许函数值类型缺省定义,此时函数值隐含的类型是(  )。

a.float型

b.int型

c.long型

d.double型

50.若有以下定义:chars[10]=“include“,*p=s;,则不能代表字符‘u’的表达式为( )。

a.s[4]

b.s+4

c.*(p+4)

d.p+=4,*p;

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

a.地址传递

b.单向值传递

c.由实参传给形参,再由形参传给实参

d.由用户指定传递方式

52.c语言规定,函数返回值的类型是由(  )。

a.return语句中的表达式类型所决定

b.调用该函数时的主调函数类型所决定

c.调用该函数时系统临时决定

d.在定义该函数时所指定的函数类型所决定

53.若有int*p,a[10];p=a;,则下列写法不正确的是(  )。

a.p=a+2

b.a++

c.*(a+1)

d.p++

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

a.数组的首地址

b.数组第一个元素的值

c.数组中全部元素的值

d.数组元素的个数

55.若使用以为数组名作函数实参,则下面说法中正确的是(  )。

a.在被调函数中,与该实参相对应的形参必须是同类型的数组名或指针变量

b.实参数组类型与形参数组类型可以不匹配

c.在被调函数中,不需要考虑形参数组的大小

d.实参数组名与形参数组名必须一致

56.设p1、p2是指向同一个字符串的指针变量,c为字符变量,则不能正确执行的赋值语句为(  )。

a.c=*p1+*p2;

b.p2=c;

c.p1=p2;

d.c=(*p1)*(*p2);

57.若有一下结构体定义,则正确的引用和定义是(  )。

structexample{intx; inty;}v1;

a.example.x=10

b.examplev2;v2.x=10;

c.struct v2; v2.x=10;

d.struct example v2={10,5};

58.说明一个结构体变量时,系统分配给它的内存是(  )。

a.各成员所需内存量的总和

b.结构体中第一个成员所需内存量

c.成员中占内存量最大者所需的容量

d.结构体中最后一成员所需内存量

59.在c语言中,文件由下面拿个组成(  )。

a.记录

b.数据行

c.数据块

d.字符(字节)序列

60.下面程序段的运行结果是(  )。

charc[]=”will”;

printf(“%d“,strlen(c));

a.14

b.3

c.9

d.字符串中有非法字符,输出值不确定

61.以下叙述中不正确的是(  )。

a.在不同的函数中可以使用相同名字的变量

b.函数中的形式参数是局部变量

c.在一个函数内定义的变量只在本函数范围内有效

d.在一个结函数内的符合语句中定义的变量在本函数范围内有效

62.一个变量的指针是指(  )。

a.该变量的值

b.该变量的地址

c.该变量的变量名

d.该变量的标志

看了c语言练习试题库还看了:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值