C语言练习题.docx

上传人:b****8 文档编号:29645116 上传时间:2023-07-25 格式:DOCX 页数:32 大小:32.07KB
下载 相关 举报
C语言练习题.docx_第1页
第1页 / 共32页
C语言练习题.docx_第2页
第2页 / 共32页
C语言练习题.docx_第3页
第3页 / 共32页
C语言练习题.docx_第4页
第4页 / 共32页
C语言练习题.docx_第5页
第5页 / 共32页
点击查看更多>>
下载资源
资源描述

C语言练习题.docx

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

C语言练习题.docx

C语言练习题

一、单项选择题

1.以下有4组用户标识符,其中合法的一组是()。

A)forB)4dC)f2_G3D)WORD-sub

2.以下选项中合法的字符常量是()。

A)"B"B)'\t'C)68D)D

3.假定x和y为double型,则表达式x=2,y=x+1/2的值是()。

A)2.500000B)2C)2.000000D)3.000000

4.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。

A)a:

=b+1B)a=b=c+2C)int18.5%3D)a=a+7=c+b

5.C语言中运算对象必须是整型的运算符是()。

A)%=B)/C)=D)<=

6.若变量已正确定义并赋值,下面符合C语言语法的表达式是()。

A)a=9+b=5+cB)a=9+b;c=a+9;C)a=12.5%3D)a=(9+b,c++)

7.若有以下程序段,则执行后,c3的值是()。

intc1=1,c2=2,c3;

c3=1.0/c2*c1;

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

8.设x、y均为整型变量,且x=10y=3,则语句printf("%d,%d\n",--x,y++);的输出结果是()。

A)9,4B)9,3C)10,4D)10,3

9.若num、a、b和c都是int型变量,则执行表达式num=(a=4,b=12,c=a-b)后num的值为()。

A)-8B)4C)12D)8

10.若有说明语句:

char*str="\t\’c\\Language\n";,则指针str所指字符串的长度为()。

A)13B)15C)17D)该语句不正确

11.以下对结构体类型变量rcard的定义中不正确的是()。

A)#defineRECstructcardB)structcard

REC{intid;floatsala;{intid;floatsala;};

}rcard;structcardrcard;

C)structcardD)struct

{intid;floatsala;};{intid;floatsala;}rcard;

cardrcard;

12.设ch是char类型变量,其值是'A',则以下表达式的值是()。

ch=(ch>=’A’&&ch<=’Z’)?

(ch+32):

ch

A)ZB)AC)aD)z

13.在一个源程序文件中定义的全局变量的作用域为()。

A)本文件的全部范围

B)主函数及其所调用的函数

C)离定义该变量的位置最近的函数

D)从定义该变量的位置开始至本文件结束

14.若有定义:

chara[20],b[20];,以下能为a、b正确进行赋值的语句是()。

A)gets(a,b);B)gets(a);gets(b);

C)getchar(a);getchar(b);D)scanf(“%s%s”,a[],b[]);

15.若有说明语句:

inta[2][3],m,n;且0≤m≤1,0≤n≤2,则以下对数组元素的正确引用形式是()。

A)a[m]+nB)(a+m)[n]C)*(a+m)+nD)*(*(a+m)+n)

16.x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是()。

A)INPUTx、y、z;B)scanf("%d%d%d",&x,&y,&z);

C)scanf("%d%d%d",x,y,z);D)read("%d%d%d",&x,&y,&z);

17.在C语言中,二维数组元素在内存中的存放规则是:

()。

A)所有元素都连续存放,并按行存放

B)所有元素都连续存放,并按列存放

C)同一行元素连续存放

D)同一列元素连续存放

18.若有定义:

intc[5],*p=c;,则以下对c数组元素地址的正确引用是()。

A)p+5B)c++C)&c+1D)&c[0]

19.t为int类型,进人下面的循环之前,t的值为0

while(t=-8)

{……}

则以下叙述中正确的是()。

A)循环控制表达式的值为0B)循环控制表达式的值为1

C)循环控制表达式不合法D)以上说法都不对

20.若有说明语句:

intx1=3,x2=0,x3=0;,以下程序段()。

if(x1=x2+x3)printf("****");

elseprintf("####");

A)输出****B)输出####C)存在语法错误D)无输出结果

21.若用fopen函数创建一个新的二进制文件,要求文件既能读也能写,则应选用的文件方式字符串是()。

A)"wb+"B)"w+"C)"rb+"D)"r+"

22.设x、y均为整型变量,且x=10y=3,则以下语句的输出结果是()。

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

A)10,4B)9,3C)9,2D)10,2

23.在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是()。

A)地址传递B)单向值传递

C)由实参传给形参,再由形参传回实参D)传递方式由用户指定

24.以下对一维数组a的正确说明是()。

A)chara(10);B)inta[];C)intk=5,a[k];D)chara[]={'1','a','%'};

25.若执行fopen函数时发生错误,则函数的返回值是()。

A)随机数B)1C)NULLD)EOF

26.若有说明:

inti,j=2,*p=&i;,则能完成i=j赋值功能的语句是()。

A)i=*p;B)*p=j;C)i=&j;D)i=**p;

27.以下定义语句中,错误的是()。

A)inta[]={1,2};B)char*a[3];C)chars[10]="test";D)intn=5,a[n];

28.当定义一个结构体变量rcard时,系统分配给它的内存是()。

A)结构体中第一个成员所需的内存容量

B)结构体中最后一个成员所需的内存容量

C)结构体成员中占内存量最大者所需的容量

D)结构体中各成员所需内存容量的总和

29.以下程序存在语法错误,关于错误原因的正确说法是()。

main()

{voidsearch_n(intA);

intA[5]={5,4,0,7,1},b;

……

b=search_n(A);

……

}

A)voidsearch_n();是函数调用语句,不能使用void说明

B)函数声明和函数调用语句之间有矛盾

C)变量名不能使用大写字母

D)函数名不能使用下划线

30.若k为整型变量,则以下for循环的执行次数是()。

for(k=2;k!

=0;)

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

A)无限次B)0次C)1次D)2次

31.若有以下调用语句,则不正确的fun函数的首部是()。

main()

{……

inta[50],n;

……

fun(n,a);

……

}

A)voidfun(intm,inta)B)voidfun(intm,intx[])

C)voidfun(intm,int*s)D)voidfun(intm,intx[50])

32.以下关于预处理的叙述中不正确的是()。

A)预处理命令行必须位于源程序的开始部位

B)预处理命令是在正式编译之前先行被处理的

C)一条有效的预处理命令行必须单独占据一行

D)C源程序中凡是以“#”号开始的控制行都是预处理命令行

33.若有定义:

int*p[3];,则以下叙述正确的是()。

A)p是一个指针数组,数组p有3个元素,每个元素是指针

B)p是一个指针变量,它可以指向一个一维数组中的任意元素

C)p是一个指针变量,它可以指向一个含有3个整型元素的一维数组

D)(*p)[3]等价于*p[3]

34.以下选项中,不能正确赋值的是()。

A)chars1[10];s1="Ctest";B)chars2[]={'C','t','e','s','t'};

C)chars3[20]="Ctest";D)char*s4="Ctest\n"

35.判断char型变量c1是否为大写字母的正确表达式是()。

A)'A'<=c1<='Z'B)(c1>='A')&(c1<='Z')

C)(c1>='A')&&(c1<='Z')D)('A'<=c1)AND('Z'>=c1)

36.C语言规定:

在源程序中,main函数的位置()。

A)必须在最开始B)必须在最后

C)可以任意D)必须在被调用的函数前面

37.若有以下说明和语句,则对结构体变量std中成员的引用方式不正确的是()。

structwork

{intid;

intname;

}std,*p;

p=&std;

A)std.idB)(*p)->idC)(*p).idD)p->id

38.若有语句chars1[10],s2[10]="abcdef";,则能将字符串abcdef赋给数组s1的正确语句是()。

A)s1="abcdef";B)s1=s2;C)strcpy(s1,s2);D)strcpy(s2,s1);

39.设有定义:

chars[20]="ABCDEF";,则数组s在内存中所占字节数是()。

A)6B)7C)20D)不确定

40.以下正确的函数定义形式是()。

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

{[函数体语句]}{[函数体语句]}

C)doublefun(intx,inty);D)doublefun(intx,y)

{[函数体语句]}{[函数体语句]}

41.为了避免在嵌套的条件语句if-else中产生二义性,C语言规定:

else子句总是与()。

A)缩排位置相同的if配对B)其之前最近且不带else的if配对

C)其之前最近的if配对D)第一个if配对

42.有如下程序,该程序的输出结果是()。

main()

{floatx=2.0,y;

if(x<0.0)y=0.0;

elseif(x<10.0)y=1.0/x;

elsey=1.0;

printf(“%f\n”,y);}

A)0.000000B)0.250000C)0.500000D)1.000000

43.有如下程序,该程序段的输出结果是()。

main()

{intn=9;

while(n>6){n--;printf("%d",n);}}

A)987B)876C)8765D)9876

44.以下程序的输出结果是()。

main()

{charc='a';

printf("%c",c+25);}

A)zB)ZC)a+25D)y

45.以下程序的运行结果是()。

#include"stdio.h"

main()

{union

{longa;intb;charc;

struct{intx;inty;}ss;

}m;

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

}

A)2B)4C)6D)8

46.判断字符串str1是否大于字符串str2,应当使用()。

A)if(str1>str2)B)if(strlen(str1)>strlen(str2))

C)if(strcmp(str1>str2))D)if(strcmp(str1,str2)>0)

47.若有定义:

intx[5]={0,2,4};,则数组x在内存中所占字节数是()。

A)3B)6C)10D)不能确定

48.下面对typedef的叙述中不正确的是()。

A)用typedef不能定义变量名

B)用typedef可以定义新的数据类型

C)使用typedef有利于程序的通用和移植

D)用typedef只是将已存在的类型用一个新的标识符来代表

49.以下程序的输出结果是()。

main()

{inti,a[10];

for(i=9;i>=0;i--)

a[i]=10-i;

printf("%d",a[8]);}

A)8B)5C)2D)3

50.以下程序的输出结果是()。

main()

{charst[20]="hello";

printf("%d\n",sizeof(st));}

A)6B)20C)13D)5

51.以下程序的输出结果是()。

main()

{inta,b;

for(a=1,b=1;a<=100;a++)

{if(b>=7)break;

if(b%3==1){b+=3;continue;}

}

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

A)101B)3C)5D)4

52.以下函数值的类型是()。

intfun(floatx)

{floaty;

y=3*x-4;

returny;}

A)intB)不确定C)voidD)float

53.有如下程序,该程序的执行结果是()。

main()

{inti,sum;

for(i=1;i<=3;i++)sum+=i;

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

A)6B)不确定的值C)死循环D)0

54.有如下程序,该程序的输出的结果是()。

intfunc(inta,intb)

{return(a+b);}

main()

{intx=2,y=5,r;

r=func(x,y);

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

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

55.有如下程序,该程序的输出结果是()。

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;

case2:

a++;b++;}

printf(“a=%d,b=%d\n”,a,b);}

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

56.有如下程序,运行该程序的输出结果是()。

main()

{inty=3,x=3,z=1;

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

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

57.有如下程序,该程序的执行结果是()。

main()

{intx=20;

do

{printf(“%d”,x--);}while(!

x);

}

A)19B)20C)不输出任何内容D)陷入死循环

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

main()

{inta=3;

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

A)-6B)12C)24D)-12

59.阅读以下程序:

main()

{intx;

scanf("%d",&x);

if(x--<7)printf("%d",x);

elseprintf("%d",x++);}

程序运行后,如果从键盘上输入7,则输出结果是()。

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

60.有如下程序,该程序的输出结果是()。

main()

{inta=2,b=-1,c=2;

if(b<0)c=0;

elsec++;

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

}

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

61.一个C语言程序是由()。

A)主程序和若干子程序组成B)函数组成

C)若干过程组成D)若干子程序组成

62.设变量a是整型,f是实型,i双精度型,则表达式10+’a’+i*f值的数据类型为()。

A)intB)floatC)doubleD)不确定

63.当接受用户输入的含空格的字符串时,应使用()函数。

A)scanf()B)gets()C)getchar()D)puts()

64.若a是float型变量,b是unsigned型变量,以下输入语句中合法的是()。

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

C)scanf("%f%3o",&a,&b);D)scanf("%f%f",&a,&b);

65.以下有关宏替换的叙述不正确的是()。

A)宏替换不占用运行时间B)宏名无类型

C)宏替换只是字符替换D)宏名必须用大写字母表示

66.设x为int型变量,则执行语句x=10;x+=x;后,x的值为()。

A)10B)20C)40D)30

67.设inta[]={10,20,30,40,50,60};则下列说法中,正确的是()。

A)数组名a是a数组的首地址B)a表示了数组元素a[1]的地址

C)允许进行a++运算D)允许进行a=a-1运算

68.若有说明:

inta[3][4];则对a数组元素的正确引用是()。

A)a[3][4]B)a[1,3]C)a[1+1][1+2]D)a

(2)

(1)

69.循环体至少被执行一次的语句为()。

A)for循环B)while循环C)do-while循环D)任一种循环

70.C语言用()表示逻辑“真”的值。

A)trueB)t或yC)非零D)整数0

71.有如下函数调用语句:

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

则定义子函数func时,形参个数为()。

A)3B)4C)5D)有语法错

72.循环for(i=0,j=10;i=j=10;i++,j--)的循环体执行次数是()。

A)0B)1C)10D)无限

73.英文小写字母d的ASCII码为100,英文大写字母D的ASCII码为()。

A)50B)66C)52D)68

74.设a=1,b=2,c=3,d=4,则表达式“a

a:

c

a:

d”的结果为()。

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

75.设有数组定义:

chararray[]="China";则数组array所占的空间为()。

A)4个字节B)5个字节C)6个字节D)7个字节

76.能正确表示“当x的取值在[1,10]和[200,210]范围内为真,否则为假”的表达式是()。

A)(x>1)&&(x<10)||(x>200)&&(x<2l0)

B)(x>=1)||(x<=10)||(x>=200)||(x<=210)

C)(x>=1)&&(x<=10)||(x>=200)&&(x<=2l0)

D)(x>=1)||(x<=10)&&(x>=200)||(x<=210)

77.定义如下变量和数组:

inti;

intx[3][3]={{1,2,3},{4,5,6},{7,8,9}};

则语句for(i=0;i<3;i++)printf("%2d",x[i][2-i]);的输出结果是()。

A)357B)147C)159D)369

78.C语言规定:

函数返回值的类型是由()。

A)return语句中表达式类型决定B)调用该函数时的主调函数类型决定

C)调用该函数时系统临时决定D)在定义该函数时所指定的函数类型决定

79.如果在一个函数中的复合语句中定义了一个存储类型为auto的变量,则该变量()。

A)只在该复合语句中有效B)在该函数中有效

C)在程序范围内均有效D)它是非法变量

80.下列选项中,非法的C语言转义字符是()。

A)'\t'B)'\018'C)'\n'D)'\xff'

81.C语言中运算对象必须是整型的运算符是()。

A)%=B)/C)=D)<=

82.以下程序的输出结果是()。

main()

{intx=1,a=0,b=0;

switch(x)

{case0:

b++;

case1:

a++;break;

case2:

a++;b++;

}

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

}

A)a=2,b=1B)a=1,b=1C)a=1,b=0D)a=2,b=2

83.用fopen()函数打开一个已存在的文本文件,在保留已有数据同时又可读可写,则文件打开模式为()。

A)"a+"B)"a"C)"w+"D)"r+"

84.如果a和b是两个字符串,判断a和b是否相等,应当使用如下形式()。

A)(a==b)B)(a=b)C)(strcpy(a,b)==0)D)(strcmp(a,b)==0)

85.执行以下程序后,y的值是()。

#include

main()

{inta[]={2,4,6,8,10};

inty=1,x,*p;

p=&a[1];

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

y=*p*x;

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

}

A)6B)8C)10D)4

86.以下程序执行后,sum的值是()。

main()

{inti,sum=0;

for(i=1;i<6;i++)sum+=i;

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

}

A)15B)14C)不确定D)0

87.下面的符号常量定义中,正确的是()。

A)#definePI3.14;B)#includePI3.14;

C)#definePI=3.14D)#definePI3.14

88.当定义一个结构体变量时,系统分配给它的内存是()。

A)各成员所需内存量的总

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

当前位置:首页 > PPT模板 > 节日庆典

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

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