二级C语言分类模拟题542.docx

上传人:b****3 文档编号:26862326 上传时间:2023-06-23 格式:DOCX 页数:19 大小:24.87KB
下载 相关 举报
二级C语言分类模拟题542.docx_第1页
第1页 / 共19页
二级C语言分类模拟题542.docx_第2页
第2页 / 共19页
二级C语言分类模拟题542.docx_第3页
第3页 / 共19页
二级C语言分类模拟题542.docx_第4页
第4页 / 共19页
二级C语言分类模拟题542.docx_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

二级C语言分类模拟题542.docx

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

二级C语言分类模拟题542.docx

二级C语言分类模拟题542

二级C语言分类模拟题542

选择题

1、关于字符常量,以下叙述正确的是______。

  A.空格不是一个字符常量

  B.字符常量能包含大于一个的字符

  C.单引号中的大写字母和小写字母代表的是相同的字符常量

  D.所有的字符常量都可以作为整型量来处理

2、以下数组定义中错误的是______。

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

  B.intx[][3]={0};

  C.intx[][3]={{1,2,3},{4,5,6}};

  D.intx[2][3]={{1,2},{3,4},{5,6}};

3、有以下程序

  #include <stdio.h>

  voidfun(int*a,intn)/*fun函数的功能是将a所指数组元素从大到小排序*/

  {int t,i,j;

   for(i=0;i<n-1;i++)

   for0=i+l;j<n;j++)

    if(a[i]<a[j]) { t=a[i];a[i]=a[j];a[j]=t; }

  }

  main()

  {int c[10]={1,2,3,4,5,6,7,8,9,0},i;

   fun(c+4,6);

   for(i=0;i<10;i++) printf("%d,",c[i]);

   printf("\n");

  }

  A.1,2,3,4,5,6,7,8,9,0,                 B.0,9,8,7,6,5,1,2,3,4,

   C.0,9,8,7,6,5,4,3,2,1,     D.1,2,3,4,9,8,7,6,5,0,

4、有以下程序:

  #include<stdio.h>

  main()

  {intk=-3;

  if(k<=0)printf("****\n")

  elseprintf("&&&&\n");

  }

  程序的输出结果是

  A.输出####  B.输出&&&&

  C.输出####&&&&  D.有语法错不能通过编译

5、以下叙述中错误的是______。

  A.gets函数用于从终端读入字符串  B.getehar函数用于从磁盘文件读入字符

  C.fputs函数用于把字符串输出到文件  D.fwrite函数用于以二进制形式输出数据到文件

6、有以下程序:

  #include<stdio.h>

  main()

  {intaa[3][3]={{2},{4},{6}},i,*p=&aa[0][0];

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

  {if(i==0)aa[i][i+1]=*p+1;

  else++p;

  printf("%d",*p);

  }

  printf("\n");

  }

  程序的输出结果是

  A.23  B.26  C.33D.36

7、有以下程序:

  #include<stdio.h>

  main()

  {ints,t,A=10;doubleB=6;

  s=sizeof(A.;t=sizeofB.;

  printf("%d,%d\n",s,t);

  }

  在VC6平台上编译运行,程序运行后的输出结果是______。

  A.2,4  B.1,4

  C.4,8  D.10,6

8、以下程序的运行结果是______。

  main()

  {charch='A';

  intnum1=ch;

  floatnum2=num1;

  printf("%f",num2);

  }

  A.A  B.65  C.65.00000 D.a

9、设变量均已正确定义并赋值,以下与其他三组输出结果不同的一组语句是______。

  A.x++;printf("%d\n",x);

  B.n=++x;printf("%d\n",n);

  C.++x;printf("%d\n",x);

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

10、有以下程序:

  #include<stdio.h>

  #include<string.h>

  main()

  {charstr[][10]={"One","Three","Five"},*p=str[0];

  printf("%s,",p+10);

  printf("%d\n",strlen(p+=10));

  }

  执行后的输出结果是______。

  A.Three,4  B.出错  C.Three,5  D.Five,5

11、面向对象方法中,继承是指______。

  A.一组对象所具有的相似性质  B.一个对象具有另一个对象的性质

  C.各对象之间的共同性质  D.类之间共享属性和操作的机制

12、若有以下程序:

  #include<stdio.h>

  main()

  {charc1,c2;

  c1='C'+'8'-'3';c2='9'-'0";

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

  }

  则程序运行后的输出结果是______。

  A.H'9'  B.H9

  C.F'9'  D.表达式不合法输出无定值

13、以下叙述中正确的是______。

  A.在scanf函数中的格式控制字符串是为了输入数据用的,不会输出到屏幕上

  B.在使用scanf函数输入整数或实数时,输入数据之间只能用空格来分隔

  C.在printf函数中,各个输出项只能是变量

  D.使用printf函数无法输出百分号“%”

14、假定已建立以下链表结构,且指针p和q已指向如图所示的结点:

  

  则以下选项中可将q所指结点从链表中删除并释放该结点的语句组是______。

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

  C.p=q;free(q);  D.(*p).next=(*q).next;free(p);

15、有以下程序:

  #include<stdio.h>

  #defineF(x)2.84+x

  #definePR(a)printf("%d",(int)(a))

  #definePRINT(a)PR(a);putehar('\n')

  main()

  {

    PRINT(F(5)*2);

  }

  程序运行后的输出结果是______。

  A.12  B.13  C.15  D.11

16、有以下程序

  #include<stdio.h>

  main()

  {intx=1,y=2,z=3;

  if(x>y)

  if(y<z)printf("%d",++z);

  elseprintf("%d",++y);

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

  }

  程序的运行结果是______。

  A.1  B.41  C.2  D.331

17、若有以下程序:

  #include<stdio.h>

  voidsub(doublex,double*y,double*z)

  {*y=*y-1.0;*z=*z+x;}

  main()

  {doublea=2.5,b=9.0,*pa,*pb;

  pa=&a;pb=&b;

  sub(b-a,pa,pa);printf("%f\n",a);

  }

  程序的输出结果是

  A.9.000000  B.1.500000  C.8.000000 D.10.500000

18、有以下程序:

  #include<stdio.h>

  main()

  {inta=0,b=0;

  for(;a<7;a++)

  {if(a%2==0)continue;

  b+=a;

  continue;

  }

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

  }

  程序运行后的输出结果是______。

  A.0  B.4  C.1  D.9

19、以下叙述中正确的是______。

  A.不能用字符串常量对字符数组名进行整体赋值操作

  B.字符串常量"Hello"会被隐含处理成一个无名字符型数组,它有5个元素

  C.charstr[7]="string!

";在语法上是合法的,运行也是安全的

  D.char*str;str="Hello";与charstr[];str="Hello";效果是一样的

20、下列选项中可作为C语言合法常量的是______。

  A.-80  B.-080

  C.-8e1.0  D.-80.0e

21、有以下程序:

  #include<stdio.h>

  main()

  {intm=1,n=2,*p=&m,*q=&n,*r;

  r=p;p=q;q=r;

  printf("%d,%d,%d,%d\n",m,n,*p,*q);

  程序运行后的输出结果是______。

  A.2,1,1,2  B.1,2,1,2  C.2,1,2,1  D.1,2,2,1

22、有以下程序:

  #include<stdio.h>

  main()

  { inta=1,b=0;

  printf("%d,",b=a+b);

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

  }

  程序运行后的输出结果是______。

  A.0,0  B.1,0

  C.3,2  D.1,2

23、下列不属于软件调试技术的是______。

  A.强行排错法 B.集成测试法 C.回溯法  D.原因排除法

24、软件设计中划分模块的一个准则是______。

  A.低内聚低耦合  B.高内聚低耦合  C.低内聚高耦合  D.高内聚高耦合

25、已知char*p,*q;,正确的语句是______。

  A.p*=3;      B.p/=q;     C.p+=3;     D.p+=q;

26、已知大写字母A的ASCII码值是65,小写字母a的ASCII码是97,则用八进制表示的字符常量'\101'是( )。

  A.字符A  B.字符a  C.字符e  D.非法的常量

27、数据流程图(DFD.是______。

  A.软件概要设计的工具  B.软件详细设计的工具

  C.结构化方法的需求分析工具  D.面向对象方法的需求分析工具

28、某系统结构图如下图所示:

  

  该系统结构图的宽度是______。

  A.2  B.3  C.4  D.n

29、有以下程序:

  #include<stdio.h>

  main()

  {

  charc[2][5]={"6938","8254"},*p[2];

  inti,j,s=0;

  for(i=0;i<2;i++)p[i]=c[i];

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

  for(j=0;p[i][j]>0;j+=2)s=10*s+p[i][j]-'0';

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

  }

  程序运行后的输出结果是______。

  A.6938  B.9824  C.4528  D.6385

30、以下选项中,能用做数据常量的是______。

  A.115L  B.0118  C.1.5e1.5  D.o115

31、以下有关宏替换的叙述不正确的是______。

  A.双引号中出现的宏名不替换

  B.使用宏定义可以嵌套

  C.宏定义仅仅是符号替换

  D.宏名必须用大写字母表示

32、以下程序段给数组所有元素输入数据:

  #include <stdio.h>

  main()

  {inta[10],i=0;

  while(i<10)scanf("%d",______);

  }

  应在下划线处填入的是

  A.a+(i++)  B.&a[i+1]  C.a+i  D.&a[++i]

33、当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是______。

  A.c=b=a;  B.(a=c)||(b=c);

  C.(a=c)&&(b=c);  D.a=c=b;

34、有以下程序:

  #include<string.h>

  structSTU

  {   charname[10];

  intnum;

  }

  voidf(char *name,intnum)

  {  structSTUs[2]={{"SunDan",20044},{"Penghua",20045}};

   num=s[0].num;

  strcpy(name,s[0].name);

  }

  main()

 {  structSTUs[2]={{"YangSan",20041},{"LiSiGuo",20042}},*p;

 p=&s[1];f(p->name,p->num);

  printf("%s%d\n",p->name,p->num);

  }

  程序运行后的输出结果是

  A.SunDan20042 B.SunDan20044  C.LiSiGuo20042  D.YangSan20041

35、若有定义:

  floatx=1.5;

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

  则正确的switch语句是______。

  A.switch(a+b)  

  {case1:

printf("*\n");

  case2+1:

printf("**\n");}

  B.switch((int)x);

  {case1:

printf("*\n");

  case2:

printf("**\n");}

  C.switch(x)

  {case1.0:

printf("*\n");

  case2.0:

printf("**\n");}

  D.switch(a+b)

  {case1:

printf("*\n");

  casec:

printf("**\n");}

36、有以下程序

  #include<stdio.h>

  voidfun(int*p,int*q)

  {intt;

  t=*p;*p=*q;*q=t;

  *q=*p;

  }

  main()

  {inta=0,b=9;

  fun(&a,&b);

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

  }

  程序的输出结果是______。

  A.09  B.00  C.90  D.99

37、由以下while构成的循环,循环体执行的次数是______。

  intk=0;

  while(k=1)k++;

  A.有语法错,不能执行  B.一次也不执行

  C.执行一次  D.无限次

38、以下程序中函数sort()的功能是对数组a中的数据进行由大到小的排序。

  #include<stdio.h>

  voidsort(inta[],intn)

  {inti,j,t;

  for(i=0;i<n-1;i++)

  for(j=i+1;j<n;j++)

  if(a[i]<a[j])

  {t=a[i];a[i]=a[j];a[j]=t;

  }

  }

  main()

  {inta[10]={1,2,3,4,5,6,7,8,9,10),i;

  sort(&a[1],7);

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

  printf("%d,",a[i]);

  }

  程序运行后的输出结果是______。

  A.1,2,3,4,5,6,7,8,9,10,  B.10,9,8,7,6,5,4,3,2,1,

  C.1,8,7,6,5,4,3,2,9,10,  D.1,2,10,9,8,7,6,5,4,3,

39、下列函数的功能是______。

  fun(char*a,char*b)

  {while((*b=*a)!

='\0'){a++;b++;}}

  A.将a所指字符串赋给b所指空间

  B.使指针b指向a所指字符串

  C.将a所指字符串和b所指字符串进行比较

  D.检查a和b所指字符串中是否有'\0'

40、有以下程序段:

  charname[20];

  intnum;

  scanf("name=%snum=%d",name,&num);

  当执行上述程序段,并从键盘输入:

name=Lilinum=1001<回车>后,name的值为______。

  A.name=Lilinum=1001  B.name=Lili

  C.Lilinun=       D.Lili

 

答案:

选择题

1、D  2、D  

3、D

[解析]本题考查的知识点是:

for循环的简单应用。

  题目中fun()函数的作用是排序,从形参指针a所指位置开始,对其后n个int型元素进行从大到小排序。

主函数中,调用fun()函数传入的两个实参分别为c+4和6,即从数组c的第5个元素开始,对其后连续的6个元素进行从大到小排序。

所以,最后通过for循环输出数组c的值为“1,2,3,4,9,8,7,6,5,0,”,故应该选择D。

4、D  

5、B

[解析]本题考查字符处理函数和文件操作函数,属于基础知识。

其中B选项getchar()函数是用于从终端读入一个字符。

所以选择B选项。

6、A  

7、C

[解析]函数sizeof()的参数为C中定义或者用户自定义的数据,作用是返回参数所指的数据类型所占用的内存空间的字节数。

本题中A是整型,B是双精浮点数,分别占4个字节和8个字节。

所以选C。

8、C

[解析]A的ASCII码为65,赋值语句num1=ch把char类型的变量转换成int类型的变量num1;赋值语句num2=num1把类型为int的变量转换为类型为float的变量num2,最后printf打印出num2的值为65.00000。

9、D

[解析]本题考查++运算操作符,当++在变量前面时,是先加1再赋值,当++在变量后面时,是先赋值再加1,所以答案选择D。

10、C

[解析]本题中定义一个二维字符数组str,它包含3个字符串,每个字符串存放在一个长度为10的一维数组中,指针变量p指向strp[0],即第一个字符串“One”,由于“One”存放在长度为10的一维数组,p+10指向下一个字符串“Three”,长度为5。

故本题答案为C选项。

11、D

[解析]继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。

广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制。

12、B

[解析]本题考查字符变量以及print()函数相关知识。

字符变量c1被赋值为'C'+'8'-'3',即ASCII码的运算,67+54-49=72,即H;字符变量c2被赋值为'9'-'0',但输出时,需要注意的是c1以字符变量输出,而c2是以十进制整型变量输出。

因此B选项正确。

13、A

[解析]scanf函数中的格式控制字符串是为了输入数据用的,无论其中有什么字符,也不会输出到屏幕上,所以A正确。

scanf函数的格式控制串可以使用其他非空白字符,如逗号,但在输入时必须输入这些字符,以保证匹配就可以,所以B错误。

printf函数可以输出常量,也可以输出变量,所以C错误。

printf函数可以用“\%”来输出百分号“%”,所以D错误。

14、A

[解析]本题考查删除链表中的结点操作,其方法是将要删除结点的上个结点指向要删除结点的下个结点,然后释放该要删除结点,所以选项A正确。

15、A

[解析]带参数的宏的调用格式:

宏名(实参表),替换过程是,用宏调用提供的实参字符串,直接置换宏定义命令行中相应形参字符串,非形参字符保持不变。

将PRINT(F(5)*2)用PR(F(5)*2);putchar('\n')替换,将PR(F(5)*2)用printf(“%d”,(int)(F(5)*2))替换,再将F(5)用2.84+5替换,最后替换结果为printf(“%d”,(int)(2.84+5*2));putchar('\n'),运行结果为:

12<回车>。

故A选项正确。

16、A

[解析]x>y不成立,之后的if和else都不执行,输出x++表达式值为1。

17、C  

18、D

[解析]由程序可知,for循环中a的取值为0~6,其中若if条件满足,即a取值为2,4,6时,b+=a不会执行,所以当a取值为1,3,5时,b+=a才会被执行。

所以循环结束后b=1+3+5,输出结果为9。

故答案选择D选项。

19、A

[解析]字符数组

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

当前位置:首页 > 自然科学 > 生物学

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

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