C练习题.docx

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

C练习题.docx

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

C练习题.docx

C练习题

一、       选择题

 (本大题共40个选项,每个选择项1.5分,共60分)

1.在C语言中,合法的字符常数是

(1)

A)‘程序设计’              B)“程序设计”

C)c                         D)‘\\’

2.在C语言中,以下不正确的八进制或不正确的十六进制数是

(2)

A)090                            B)0xAB

C)0xla                           D)-016

3.执行intx=2,y=3;后表达式x=(y==3)的值是(3)

A)0                             B)1

C)2                             D)3

4.执行语句inta,b,c;a=(b=c=3,c++,b+=c);则a的值是(4)

     A)3           B)4

     C)7           D)11

5.在循环结构的循环体中执行break语句,其作用是(5)

     A)结束本次循环,进行下次循环

     B)继续执行break语句之后的循环体中各语句

     C)跳出该循环体,提前结束循环

     D)终止程序运行

6.以下程序运行结果是(6)

      main()

      {chars[]=”\’Address\’”;

       printf(%d\n”,strlen(s));

      }

      A)9                   B)10

      C)11                  D)12

7.以下程序运行结果是(7)

      main()

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

       for(x=0;x<3;x++)   y+=a[x+1];

       printf(“%d\n”,y);

       }

      A)17               B)18

      C)19               D)20

8.已定义charx[8];inti;为了给x数组赋值,以下正确的语句是(8)

     A)x[8]=”TurboC”;              B)x=”TurboC”;

     C)x[]=”TurboC”;               D)for(i=0;i<7;i++) x[i]=getchar();

9.设inta[][4]={0,0};则以下错误的描述是(9)

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

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

      C)数组a的行数为1

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

10.以下程序运行结果是(10)

      fun3(intx)

        {staticinta=3;

         a+=x;

         returna;

          }

       main()

         {intk=2,m=1,n;

          n=fun3(k);

          n=fun3(m);

          printf(“%d\n”,n);

         }

         A)3            B)4

         C)6            D)9

11.以下四个运算符,按优先级由高到低的排列顺序是(11)

      A)++ % += >                   B)% ++ > +=

      C)% += > ++                   D)++ % > +=

12.以下不正确的描述是(12)

      A)在函数外部定义的变量是全局变量

      B)在函数内部定义的变量是局部变量

      C)函数的形参是局部变量

      D)局部变量不能与全局变量同名

13.“文件包含”预处理语句的使用形式中,当#include后面的文件名用“”括起时,寻找被包含的文件的方式为(13)

       A)直接按系统设定的标准方式搜索目录

       B)先在源程序所在目录搜索,再按系统设定的标准方式搜索

       C)仅仅搜索源程序所在的目录

       D)仅仅搜索当前目录

14.设有语句int(*p)();则p是一个(14)

      A)指向一维整型数组的指针变量

      B)指针函数,该函数的返回值为指向整型变量的指针

      C)指向函数的指针变量,该函数的返回值为整型

      D)数组指针,它的每个元素都是一个可以指向整型变量的指针变量

15.若有typedeffloatAR[5];ARa;则以下叙述正确的是(15)

      A)a是一个新类型名

      B)AR是一个实型数组

      C)AR是一个实型变量

    D)a是一个实型数组

16.C语言的简单数据类型包括(16)

A)整型、实型、逻辑型         B)整型、实型、字符型、逻辑型

C)整型、字符型、逻辑型       D)整型、实型、字符型

17.在C语言中,变量所分配的内存空间大小(17)

A)均为一个字节                B)由用户自己定义   

C)由变量的类型决定           D)是任意的

18.在C语言中,合法的整型常数是(18)

A)-0x123    B)3.14159    C)01001101b   D)6.7e10

19.下列各变量均为整型,选项中不正确的C语言赋值语句是(19)

A)i+=++i;                B)i=j==k;   

C)i=j+=i;                    D)i=j+1=k;

20.数学关系式x≤y≤z可用C语言的表达式表示为(20)

A)(x<=y)&&(y<=z)           B)(x<=y)and(y<=z)   

C)(x<=y<=z)                  D)(x<=y)&(y

21.若定义floata;现要从键盘输入a数据,其整数位为3位,小数位为2位,则选用(21)

A)scanf(“%6f”,&a);        B)scanf(“%5.2f”,a);   

C)scanf(“%6.2f”,&a);     D)scanf(“%f”,a);

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

unsigneda=0356,b;

b=~a|a<<2+1;

printf(“%x\n”,b);

A)ffba       B)ff71      C)fff8      D)fc02

23.要使以下程序的输出结果为4,则a和b应满足的条件是(23)

main()

{ints,t,a,b;

      scanf(“%d%d”,&a,&b);

      s=t=1;

      if(a>0)s+=1;

      if(a>b)t=s+t;

else

 if(a==b)t=5;

 elset=2*s;

printf(“%d\n”,t);

}

A)a>0并且a

C)a>0并且a>b                 D)a<0并且a

24.若inti;则以下循环语句的循环执行次数是(24)

        for(i=2;i==0;)printf(“%d”,i--);

A)无限次                      B)0次   

C)1次                         D)2次

25.下面程序的输出结果为(25)

main()

{inti;

 for(i=100;i<200;i++)

{

 if(i%5==0)continue;

 printf(“%d\n”,i);

 break;

}

}

A)100                         B)101

C)无限循环                    D)无输出结果

26.下列程序段的运行结果是(26)

inti=1,a[]={1,5,10,9,13,7};

while(a[i]<=10)a[i++]+=2;

for(i=0;i<6;i++)printf(“%d”,a[i]);

A)271211139              B)171211137   

C)171211139              D)17129137

27.以下语句把字符串“abcde”赋初值给字符数组,不正确的语句是(27)

A)chars[]=“abcde”;          B)chars[]={’a’,’b’,’c’,’d’,’e’,’\0’};

C)chars[]={“abcde”};       D)chars[5]=“abcde”;

28.若变量c为char类型,能正确判断出c为小写字母的表达式是(28)

A)'a'<=c<='z'                   B)(c>='a')||(c<='z')

C)('a'<=c)and('z'>=c)             D)(c>='a')&&(c<='z')

29.下列程序段的输出结果是(29)

voidfun(int*x,int*y)

{printf("%d%d",*x,*y);*x=3;*y=4;}

main()

{intx=1,y=2;

fun(&y,&x);

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

}

A)2143      B)1212     C)1234     D)2112

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

main()

{inti,k,a[10],p[3];

k=5;

for(i=0;i<10;i++) a[i]=i;

for(i=0;i<3;i++) p[i]=a[i*(i+1)];

for(i=0;i<3;i++) k+=p[i]*2;

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

}

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

31.当执行下面的程序时,如果输入ABC,则输出结果是(31)

main()

{charss[10]="1,2,3,4,5";

gets(ss);strcat(ss,"6789");printf("%s\n",ss);

}

A)ABC6789  B)ABC67  C)12345ABC6  D)ABC456789

32.以下不能对二维数组a进行正确的初始化的语句是(32)

A)inta[2][3]={0};               B)inta[][3]={1,2,3,4,5};

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

33.若inta[][3]={1,2,3,4,5,6,7};则a数组第一维的大小是(33)

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

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

inta[2][3]={1,2,3},i,j;

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

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

 {a[i][j]=a[i*j%2][j]+a[i][(i+j)%3];

printf(“%d,”,a[i][j]);

}

A)2,4,6,2,0,8,                   B)1,2,3,0,0,0,

C)1,2,3,2,0,6,                   D)2,4,6,2,0,6,

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

inta[][3]={1,2,3,4,5,6,7,8,9,10,11,12};

printf(“%d\n”,a[2][1]);

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

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

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

B)成员中占内存量最大者所需内存容量

C)结构中第一个成员所需内存容量

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

37.若typedefcharSTRING[255];STRINGs;,则s是(37)

A)字符指针数组变量

B)字符数组变量

C)字符变量

D)字符指针变量

38.若已定义:

int*p,a;,则语句p=&a;中的运算符“&”的含义是(38)

A)位与运算                    B)逻辑与运算

C)取指针内容                  D)取变量地址

39.若有定义char*p,ch;则不能正确赋值的语句组是(39)

A)p=&ch;scanf(“%c”,p);

B)p=(char*)malloc

(1);*p=getchar();

C)*p=getchar();p=&ch;

D)p=&ch;*p=getchar();

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

chars[]=“ABC”;inti;

for(i=0;i<3;i++)printf(“%s”,&s[i]);

A)ABC    B)ABCABCABC   C)AABABC   D)ABCBCC

 

 

 

 

1.下列叙述中正确的是

A)C语言编译时不检查语法

B)C语言的子程序有过程和函数两种

C)C语言的函数可以嵌套定义

D)C语言所有函数都是外部函数

2.以下所列的C语言常量中,错误的是

A)0xFF    B)1.2e0.5     C)2L         D)'\72'

3.下列选项中,合法的C语言关键字是

A)VAR    B)cher        C)integer     D)default

4.设x、y、t均为int型变量,则执行语句:

x=y=3;t=++x||++y;后,y的值为

A)不定值 B)4           C)3         D)1

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

floaty=0.0,a[]={2.0,4.0,6.0,8.0,10.0},*p;

inti;

p=&a[1];

for(i=0;i<3;i++)y+=*(p+i);

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

A)12.0000   B)28.0000     C)20.0000     D)18.0000

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

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

printf(“%s\n”,c);

A)abc   B)‘a’‘b’     C)abc     D)ab

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

chars[10],*sp=“HELLO”;

strcpy(s,sp);

s[0]=‘h’;s[6]=‘!

’;

puts(s);

A)hELLO   B)HELLO     C)hHELLO!

     D)h!

8.若有定义inta[3][5],i,j;(且0≤i<3,0≤j<5),则a[i][j]的地址不正确表示是(8)

A)&a[i][j]                      B)a[i]+j

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

9.若有定义int*p[4];,则标识符p是一个(9)

A)变量的指针变量

B)指向函数的指针变量

C)指向有四个整数元素的一维数组的指针变量

D)   指针数组名,有四个元素,每个元素均为一个指向整型变量的指针

10.若有定义char*language[]={“FORTRAN”,“BASIC”,“PASCAL”,“JAVA”,

“C”};则language[2]的值是(10)

   A)一个字符   B)一个地址     C)一个字符串     D)不确定

11.C语言规定,函数返回值的类型由(11)所决定。

A)return语句中的表达式类型

B)调用该函数时的主调函数类型

C)调用该函数时的形参类型

D)   在定义该函数时所指定的函数类型

12.下面程序的输出结果为(12)

#include

#defineSQR(x)x*x

main()

{inta=10,k=3,m=2;

 a=SQR(k+m);

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

}

A)25     B)11     C)5      D)10

13.下面程序的输出结果为(13)

#include

main()

{inta=10;

 {inta=15;

  printf(“a.1=%d,”,a);

 }

printf(“a.2=%d\n”,a);

}

A)a.1=10,a.2=15                 B)a.1=15,a.2=10

C)a.1=15,a.2=15                 D)a.1=10,a.2=10

14.下面函数调用正确的是(14)

A)fopen(‘file.dat’,‘r’);       B)fprintf(“%ld”,data,fp);

C)fclose(“file.dat”);            D)fread(&i,sizeof(int),1,fp);

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

A)a:

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

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

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

17.若已定义x和y为double类型,则表达式x=1,y=x+3/2的值是(17)

A)1     B)2     C)2.0      D)2.5

18.有如下程序:

main()

{inti,sum;

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

  sum+=i;

printf(“%d\n”,sum);

}

 该程序的执行结果是(18)

A)6     B)3     C)死循环      D)0

19.如下程序:

intrunc(inta,intb)

{return(a+b);}

main()

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

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

printf(“%d\n”,r);

}

该程序的执行结果是(19)

A)12     B)13     C)14      D)15

20.有如下程序段:

int*p,a=10,b=1;

p=&a;a=*p+b;

执行该程序段后,a的值为(20)

A)12     B)11     C)10      D)编译出错

21.以下函数返回a所指数组中最小的值所在的下标值

  fun(int*a,intn)

  {inti,j=0,p;

p=j;

for(i=j;i

 if(a[i]

return(p);

}

在下划线处应填入的是(21)。

A)i=p     B)a[p]=a[i]     C)p=j      D)p=i

22.在C语言中,函数的隐含存储类别是(22)。

A)auto     B)static     C)extern      D)无存储类别

23.以下所列的C语言常量中,错误的是(23)。

A)0xFF     B)1.2e0.5     C)2L      D)‘\72’

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

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

25.有以下程序段:

intk=0;

while(k=1)k++;

while循环执行的次数是(25)

A)无限次                     B)有语法错,不能执行

C)一次也不执行               D)执行1次

26.当调用函数时,实参是一个数组,则向函数传递的是(26)

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

C)数组每一个元素的地址       D)数组每个元素中的值

27.以下对C语言共用体类型数据的描述中,不正确的是(27)

A)共用体变量占的内存长度等于最长的成员的长度

B)共用体类型可以出现在结构体类型定义中

C)共用体变量可以作为函数的形参

D)同一共用体中各成员的首地址相同

28.下面函数st的功能是(28)

st(char*s)

{char*q=s;

 while(*q!

=‘\0’)q++;

return(q-s);

}

A)检查字符串s中是否含有空字符

B)生成一个新的字符串q,字符串q是从字符串s的尾部到头部排列的

C)将字符串s中的非空字符的ASCII码值增1

D)计算字符串s的长度

29.以下正确的叙述是(29)

A)在C语言中,main函数必须位于文件的开头

B)C语言的每行中只能写一条语句

C)C语言本身没有输入、输出语句

D)对一个C语言程序进行编译预处理时,可检查宏定义的语法错误

30.若执行以下程序段:

inta=1,b=2,m=2,n=2;

(m=a>b)&&++n;

  则n的值是(30)

A)1                       B)2

C)

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

当前位置:首页 > 人文社科 > 军事政治

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

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