《C语言程序设计》习题库建议收藏保存.docx

上传人:b****5 文档编号:4552839 上传时间:2022-12-06 格式:DOCX 页数:51 大小:28.10KB
下载 相关 举报
《C语言程序设计》习题库建议收藏保存.docx_第1页
第1页 / 共51页
《C语言程序设计》习题库建议收藏保存.docx_第2页
第2页 / 共51页
《C语言程序设计》习题库建议收藏保存.docx_第3页
第3页 / 共51页
《C语言程序设计》习题库建议收藏保存.docx_第4页
第4页 / 共51页
《C语言程序设计》习题库建议收藏保存.docx_第5页
第5页 / 共51页
点击查看更多>>
下载资源
资源描述

《C语言程序设计》习题库建议收藏保存.docx

《《C语言程序设计》习题库建议收藏保存.docx》由会员分享,可在线阅读,更多相关《《C语言程序设计》习题库建议收藏保存.docx(51页珍藏版)》请在冰豆网上搜索。

《C语言程序设计》习题库建议收藏保存.docx

《C语言程序设计》习题库建议收藏保存

一、单选题(每题4分,共25道小题,总分值100分)

1.

fscanf函数的正确调用形式是()。

(4分)

Afscanf(fp,格式字符串,输出表列);

Bfscanf(格式字符串,输出表列,fp);

Cfscanf(格式字符串,文件指针,输出表列);

Dfscanf(文件指针,格式字符串,输入表列);

正确答案D

2.

下面程序段中,for循环的执行次数是()。

         char*s=”a18bc”;

         for( ;*s!

=’’;s++)    printf(“*”);

(4分)

A9

B5

C6

D7

正确答案C

3.

以下在任何情况下计算平方数时都不会引起二义性的宏定义是( )。

(4分)

A#definePOWER(x)x*x

B#definePOWER(x)(x)*(x)

C#definePOWER(x)(x*x)

D#definePOWER(x)((x)*(x))

正确答案D

4.

请读程序

#include

#defineMUL(x,y)(x)*y

main()

{inta=3,b=4,c;

c=MUL(a++,b++);

printf("%d",c);       

}

上面程序的输出结果是()。

(4分)

A12

B15

C20

D16

正确答案A

5.

若哟于以下说明和语句:

         structstudent 

         {intage;

           intnum;

          }std,*p;

          p=&std;

          则以下对结构体变量std中成员age的引用方式不正确的是()。

(4分)

Astd.age

Bp->age

C(*p).age

D*p.age

正确答案D

6.

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

(4分)

Aj*m+i

Bi*m+j

Ci*m+j-1

Di*m+j+1

正确答案B

7.

判断char型变量cl是否为小写字母的正确表达式为().

(4分)

A’a’<=c1<=f’z’

B(c1>=a)&&(c1<=z)

C(‘a’>=c1) (‘z’<=c1)

D(c1>=’a’)&&(c1<=’z’)

正确答案D

8.

如果a=1,b=2,c=3,d=4,则条件表达式a<b?

a:

c<d?

c:

d的值为().

(4分)

A1

B2

C3

D4

正确答案A

9.

在位运算中,操作数每右移一位,其结果相当于().

(4分)

A操作数乘以2

B操作数除以2

C操作数除以4

D操作数乘以4

正确答案B

10.

以下程序的正确运行结果是( ).

main()

{inta=2,I;

for(I=0;I<3;I++)printf(“4%d”,f(a));

}

f(inta)

{intb=0;staticintc=3;

b++;c++;

return(a+b+c);

}

(4分)

A7 7 7

B7 1013

C7 9 11

D7 8 9

正确答案D

11.

下面有关for循环的正确描述是(   )

(4分)

Afor循环只能用于循环次数已经确定的情况

Bfor循环是先执行循环体语句,后判定表达式

C在for循环中,不能用break语句跳出循环体

Dfor循环体语句中,可以包含多条语句,但要用花括号括起来

正确答案D

12.

若有说明:

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

(4分)

A2

B3

C4

D无确定值

正确答案B

13.

编辑程序的功能是(  )。

(4分)

A建立并修改程序

B将c源程序编译成目标程序

C调试程序

D命令计算机执行指定的操作

正确答案A

14.

已知x=43,ch=’A’,y=0;则表达式(x>=y6&&ch(‘B’&&!

Y)的在值是().

(4分)

A0

B语法错

C1

D“假”

正确答案C

15.

以下程序有错,错误的原因是()。

        main()

        {int*p,i;char*q,ch;

    p=&i;

q=&ch;

 *p=40;

 *p=*q;

 .

 .

 .

}

(4分)

Ap和q的类型不一致,不能执行*p=*q;语句

B*p中存放的是地址值,因此不能执行*p=40;语句

Cq没有指向具体的存储单元,所以*q没有实际意义

Dq虽然指向了具体的存储单元,但该单元中没有确定的值,所以不能执行*p=*q;语句

正确答案D

16.

请读程序片段:

intx=20;

printf(“%d”,~x);

上面程序片段的输出结果是().

(4分)

A02

B–20

C-21

D-11

正确答案C

17.

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

#include 

main()

{intnum=0;

while(num<=2)

{num++;

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

}

}

(4分)

A1

B1 2

C123

D1234

正确答案C

18.

下面程序()。

1main()

2{

3inta[3]={0};

4intI;

5for(I=0;I<3;I++)scanf(“%d”,&a[I]);

6for(I=I;I<4;I++)a[0]=a[0]+a[I];

7printf(“%d”,a[0]);

8}

(4分)

A没有错误

B第3行有错误

C第5行有错误

D第6行有错误

正确答案D

19.

根据定义和数据的输入方式,输入语句的正确形式为()。

已有定义:

floatf1,f2;

数据的输入方式:

4.52

3.5

(4分)

Ascanf(“%f,%f”,&f1,&f2);

Bscanf(“%f%f”,&f1,&f2);

Cscanf(“%3.2f%2.1f”,&f1,&f2);

Dscanf(“%3.2f,%2.1f”,&f1,&f2);

正确答案B

20.

已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

(4分)

Ak=*ptr1+*ptr2;

Bptr2=k;

Cp1=*p2;

D*p1=p2;

正确答案B

21.

以下能正确计算1*2*3*……*10的程序是().

(4分)

A

do

s=s*i;

i++;                                             

}while(i<=10);

Bdo{i=1;s=0;

s=s*i;                                                                                      i++;

}while(i<=10);

Ci=1;s=1;

do{s=s*i;

i++; 

}while(i<=10);

Di=1;s=0;                                        

do{s=s*i;

i++;

}while(i<=10);

正确答案C

22.

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

voidmain()

{ inta=5,*p1,**p2;

  p1=&a,p2=&p1;

  (*p1)++;

  printf(“%d”,**p2);

}

(4分)

A5

B4

C6

D不确定

正确答案C

23.

若有以下说明和语句,则对中域的正确引用方式是()。

         Structpupil 

          {char  name[20;

              intsex;

           }pup,*p;

           p=&pup;

(4分)

Ap.pup.sex

Bp->pup.sex

C(*p).pup.sex

D(*p).sex

正确答案D

24.

若有以下定义和说明:

        #include“stdio.h”

        structstd

        {charnum[6];

         charname[8];

         floatmark[4];

        }a[30];

         FILE *fp;

        设文件中以二进制形式存有10个班的学生数据,且已正确打开,文件指针定

        位于文件开头。

若要从文件中读出30个学生的数据放入a数组中,以下不能

        此功能的语句是()。

(4分)

Afor(i=0;i<30;i++)

fread(&a[i],sizeof(structstd),1L,fp);

Bfor(i=0;i<30; i++, i++)

fread(a+i,sizeof(structstd),1L,fp);

Cfread(a,sizeof(structstd),30L,fp);

Dfor(i=0;i<30;i++)

fread(a[i],sizeof(structstd),1L,fp);

正确答案D

25.

设有以下说明语句

structstu

  {inta;

   floatb;

  }stutype;

则下面的叙述不正确的是().

(4分)

Astruct是结构体类型的关键字

Bstructstu是用户定义的结构体类型

Cstutype是用户定义的结构体类型名

Da和b都是结构体成员名

正确答案C

一、单选题(每题4分,共25道小题,总分值100分)

1.

根据题目中已给出的数据的输入和输出形式,程序中输入输出语句的正确内容是()。

main()

{intx;floaty;

pringf(“enterx,y;”)

输入语句

输出语句

}

输入形式 enterx,y:

23.4

输出形式 x+y=5.40

(4分)

Ascanf(“%d,%f”,&x,&y);

printf(“x+y=%4.2f”,x+y);

Bscanf(“%d%f”,&x,&y);

printf(“x+y=%4.2f”,x+y);

Cscanf(“%d%f”,&x.&y);

printf(“x+y=%6.1f”,x+y);

Dscanf(“%d%3.1f”,&x,&y);

printf(“x+y=%4.2f”,x+y);

正确答案B

2.

对以下说明语句的正确理解是()。

inta[10]={6,7,8,9,10};

(4分)

A将5个初值依次赋给a[1]至a[5]

B将5个初值依次赋给a[0]至a[4]

C将5个初值依次赋给a[6]至a[10]

D因为数组长度与初值的个数不同,所以此语句不正确

正确答案B

3.

下面程序()。

1main()

2{

3inta[3]={0};

4intI;

5for(I=0;I<3;I++)scanf(“%d”,&a[I]);

6for(I=I;I<4;I++)a[0]=a[0]+a[I];

7printf(“%d”,a[0]);

8}

(4分)

A没有错误

B第3行有错误

C第5行有错误

D第6行有错误

正确答案D

4.

以下对C语言中共用体类型数据的叙述正确的是(   )。

(4分)

A可以对共用体变量名直接赋值

B一个共用体变量中可以同时存放其所有成员

C一个共用体变量中不可能同时存放其所有成员

D共用体类型定义中不能出现结构体类型的成员

正确答案C

5.

设有以下语句:

charx=3,y=6,z;

z=x^y<<2;

则z的二进制值是().

(4分)

A00010100

B00011011

C00011100

D0*******

正确答案B

6.

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

      intn=0;

      while(n++<=2); printf(“%d”,n);

(4分)

A2

B3

C4

D有语法错

正确答案C

7.

fwrite函数的一般调用形式是()。

(4分)

Afwrite(buffer,count,size,fp);

Bfwrite(fp,size,count,buffer);

Cfwrite(fp,count,size,buffer);

Dfwrite(buffer,size,count,fp);

正确答案D

8.

若要利用下面的程序片段使指针变量p指向一个存储整型变量的存储单元,则[ ]中应填入的内容是(      )。

Int*p;

P=[ ]malloc(sizeof(int));

(4分)

Aint

Bint*

C(*int)

D(int*)

正确答案D

9.

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

for(y=1;y<10;)y=((x=3*y,x+1),x-1);

printf(“x=%d,y=%d”,x,y);

(4分)

Ax=27,y=27

Bx=12,y=13

Cx=15,y=14

Dx=y=27

正确答案C

10.

下面程序段中,for循环的执行次数是()。

         char*s=”a18bc”;

         for( ;*s!

=’’;s++)    printf(“*”);

(4分)

A9

B5

C6

D7

正确答案C

11.

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

(4分)

Afor(表达式1;0;表达式3)

Bfor(表达式1;1;表达式3)

Cfor(表达式1;表达式1;表达式3)

Dfor(表达式1;表达式3;表达式3)

正确答案B

12.

设有下面的程序段:

         chats[]=”china”;char*p;p=s;

         则下列叙述正确的是()。

(4分)

As和p完全相同

B数组s中的内容和指针变量p中的内容相等

Cs数组长度和p所指向的字符串长度相等

D*p与s[0]相等

正确答案D

13.

设有以下说明:

structpacked

{unsignedone:

1;

unsignedtwo:

2;

unsignedthree:

3;

unsignedfour:

4;

}data;

则以下位段数据的引用中不能得到正确数值的是()

(4分)

Adata.one=4

Bdata.two=3

Cdata.three=2

Ddata.four=1

正确答案A

14.

在宏定义#definePI 3.14159中,用宏名PI代替一个()。

(4分)

A常量

B单精度数

C双精度数

D字符串

正确答案D

15.

若有宏定义:

#defineMOD(x,y)x%y

则执行以下语句后的输出为( )。

         Intz,a=15,b=100;

         Z=MOD(b,a);

         Printf(“%d”,z++);

(4分)

A11

B10

C6

D宏定义不合法

正确答案B

16.

阅读以下程序及对程序功能的描述,其中正确的描述是()。

        #include

        main()

        {

        file*in,*out;

        charch,infile[10],outfile[10];

        scanf(“%s”,infile);

        printf(“Entertheinfilename:

”);   

        scanf(“%s”,outfile);

        if(in=fopen(infile,”r”))==NULL)

          {

            printf(“cannotopeninfile”);

            exit(0);

           }

         if((out=fopen(outfile,”w”))==NULL)

            {

             Printf(“cannotopenoutfile”);

             Exit(0);

            }

         while(!

 Feof(in)fputc(fgetc(in),out);

         fclose(in);

         fclose(out);

}

(4分)

A程序完成将磁盘文件的信息在屏幕上显示的功能

B程序完成将两个磁盘文件和二为一的功能

C程序完成将一个磁盘文件复制到另一个磁盘文件中

D程序完成将两个磁盘文件合并且在屏幕上输出

正确答案C

17.

若使用一维数组名作函数实参,则以下正确的说法是().

(4分)

A必须在主调函数中说明此数组的大小

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

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

D实参数组名与形参数组名必须一致

正确答案A

18.

以下能正确计算1*2*3*……*10的程序是().

(4分)

A

do

s=s*i;

i++;                                             

}while(i<=10);

Bdo{i=1;s=0;

s=s*i;                                                                                      i++;

}while(i<=10);

Ci=1;s=1;

do{s=s*i;

i++; 

}while(i<=10);

Di=1;s=0;                                        

do{s=s*i;

i++;

}while(i<=10);

正确答案C

19.

已有定义intk=2;int*ptr1,*ptr2;且ptr1和ptr2均已指向变量k,下面不能正确执行的赋值语句是()。

(4分)

Ak=*ptr1+*ptr2;

Bptr2=k;

Cp1=*p2;

D*p1=p2;

正确答案B

20.

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

(4分)

A#defineSTUDENTstructstudent

 STUDENT

{intnum;

floatage;

}std1;

Bstructstudent

{intnum;

 floatage;

}std1;

Cstruct

{intnum;

floatage;

}std1;

Dstruct

intnum; 

floatage;

}student;

   structstudentstd1;

正确答案D

21.

若有以下定义和语句:

         uniondata

              {inti;

               charc;

               floatf;

              }a;

         intn;

         则以下语句正确的是(    )。

(4分)

Aa=5;

Ba={2,’a’,1.2};

Cprintf(“%d”,a);

Dn=a;

正确答案B

22.

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

(4分)

Afor(表达式1;1;表达式3)

Bfor(表达式1:

1;表达式3)

Cfor(表达式1;表达式1;表达式3)

Dfor(表达式1;表达式3;表达式3)

正确答案B

23.

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

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

(x):

(y)

main()

{inti=10,j+15,k;

k+10*MIN(i,j);

printf(“%d”,k);

}

(4分)

A10

B15

C100

D150

正确答案B

24.

以下可作为函数fopen中第一个参数的正确格式是()。

(4分)

Ac:

userext.txt

Bc:

userext.txt

Cuserext.txt

Dc\user\text.txt

正确答案D

25.

以下使i的运算结果为4的表达式是()。

(4分)

Ainti=0,j=0;

(i=3,(j十十)十i);

Binti=1,j=0;

j=i=((i=3)*2);

Cinti=0,j=1;

(j==1)?

(i=1);(i=3);

Dinti=1,j=1;

i+=j十=2;

正确答案D

一、单选题(每题4分,共25道小题,总分值100分)

1.

若有以下程序段:

…………

inta[]={4,0,2,3,1},I,j,t;

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

{t=a[I];j=I-1;

while(j>=0&&t>a[j])

{a[j+I]=a[j];j--;}

a[j+1]=t;}

 …………

则该程序段的功能是()。

(4分)

A对数组a进行插入排序(升序)

B对数组a进行插入排序(降序)

C对数组a进行选择排序(升序)

D对数组a进行选择排序(降序)

正确答案B

2.

对以下说明语句的正确理解是()。

inta[10]={6,7,8,9,10};

(4分)

A将5个初值依次赋给a[1]至a[5]

B将5个初值依次赋给a[0]至a[4]

C将5个初值依次赋给a[6]至a[10]

D因为数组长度与初值的个数不同,所以此语句不正确

正确答案B

3.

设有以下说明语句

structstu

  {inta;

   floatb;

  }stutype;

则下面的叙述不正确的是().

(4分)

Astruct是结构体类型的关键字

Bstructstu是用户定义的结构体类型

Cstutype是用户定义的结构体类型名

Da和b都是结构体成员名

正确答案C

4.

当说明一个共用体变量时系统分配给它的内存是(  )。

(4分)

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

B结构中第一个成员所需内存量

C成员中占内存量最大者所需

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

当前位置:首页 > 高中教育 > 高中教育

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

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