第七届全国信息技术应用水平大赛模拟题.docx

上传人:b****4 文档编号:6086543 上传时间:2023-05-09 格式:DOCX 页数:23 大小:24.69KB
下载 相关 举报
第七届全国信息技术应用水平大赛模拟题.docx_第1页
第1页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第2页
第2页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第3页
第3页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第4页
第4页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第5页
第5页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第6页
第6页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第7页
第7页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第8页
第8页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第9页
第9页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第10页
第10页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第11页
第11页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第12页
第12页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第13页
第13页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第14页
第14页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第15页
第15页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第16页
第16页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第17页
第17页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第18页
第18页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第19页
第19页 / 共23页
第七届全国信息技术应用水平大赛模拟题.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

第七届全国信息技术应用水平大赛模拟题.docx

《第七届全国信息技术应用水平大赛模拟题.docx》由会员分享,可在线阅读,更多相关《第七届全国信息技术应用水平大赛模拟题.docx(23页珍藏版)》请在冰点文库上搜索。

第七届全国信息技术应用水平大赛模拟题.docx

第七届全国信息技术应用水平大赛模拟题

第七届全国信息技术应用水平大赛模拟题

C语言程序设计

注:

模拟题题量总计88道,其中单选题60道,每道题1分;多选题20道,每道题2分;程序填充题6道,每道题5分;编程操作题2道,每道题10分。

试卷满分为150分,完成时间为180分钟。

此模拟题仅供参考,具体题型、题量、分值分配与试题难度以实际预赛题为准。

单选题(共60题,每题1分,共60分)

1.下列符号串中,属于C语言合法标识符的个数为( )。

_1_2_3,a-b-c,float,9cd,a3b4

   A:

1

    B:

2

    C:

3

    D:

4

2.下列能为字符变量a赋值的是:

chara=( )。

    A:

'ab'

    B:

"a"

    C:

'\0'

    D:

"\0"

3.在下列字符序列中,合法的标识符是( )。

    A:

P12.a

    B:

stud_100

    C:

$water.1

    D:

88sum

4.下列用于printf函数的控制字符常量中,代表tab的字符常量是( )。

    A:

'\b'

    B:

'\t'

    C:

'\r'

    D:

'\f'

5.下列用于printf函数的控制字符常量中,代表退格的字符常量是( )。

    A:

'\b'

    B:

'\t'

    C:

'\r'

    D:

'\n'

6.如有以下程序:

unsignedinta=6;intb=-20;charc;c=(a+b>6);

则c的值为( )。

   A:

6

   B:

-14

  C:

1

   D:

0

7.关于C语言,以下不正确的叙述是( )。

   A:

在C语言程序设计中,逗号运算符的优先级最低

   B:

在C语言程序设计中,var和VAR是两个相同的变量

   C:

C语言也支持重载

   D:

此处的两个语句int a; a=-13.06;在程序编译中将会提示出错

8.若有定义:

int a=2,*p;

float x=1,y=2;

char e=‘w’;

则以下用法不正确的是( )。

A:

printf("%c",e+a);

    B:

p=&x;

    C:

a*=y+x;

    D:

x=y=e;

9.intx=20;printf("%d\n",~x);

以上程序片段的输出是( )。

    A:

235

    B:

-21

    C:

-20

    D:

-11

10.在C语言中,要求运算数必须是整型的运算符是( )。

  A:

/

    B:

++

    C:

!

=

    D:

%

11.若有定义:

inta=7;floatx=2.5,y=4.7;则表达式x+a%3*(int)(x+y)%2/4的值是(结果保留两位小数)( )。

    A:

2.50

    B:

2.75

    C:

3.50

    D:

0.00

12.以下运算符中优先级最低的是( )。

    A:

&&

    B:

&

    C:

||

    D:

|

13.设有定义语句:

charc1=1,c2=1;,则以下表达式中值为零的是( )。

    A:

c1^c2

    B:

c1&c2

    C:

~c2

    D:

c1|c2

14.以下程序的输出结果是

#include

voidmain()

{

   unsignedchara,b;

   a=0x0a|3;

   b=0x0a&3;

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

}( )。

    A:

211

    B:

112

    C:

713

    D:

137

15.如果inti=4,则printf("%d",-i--)的输出结果是(  ),i的值是( )。

    A:

-4 3

    B:

-3 3

    C:

-3 4

    D:

-4 4

16.若x=2,y=3则x&y的结果是( )。

    A:

1

    B:

2

    C:

3

    D:

5

17.下列程序的输出是( )。

main()

{intx;

printf("%d\n",(x=3*5,x*2,x+10));}

    A:

15

    B:

25

    C:

30

    D:

40

18.若x,i,j和k都是int型变量,则计算下面表达式后,x的值为( )。

x=(i=4,j=16,k=32)

    A:

4

    B:

16

    C:

32

    D:

其他值

19.假设所有变量均为整型,则表达式(a=2,b=5,b++,a+b)的值是( )。

    A:

7

    B:

8

    C:

6

    D:

2

20.以下程序运行后的输出结果是( )。

main()

{inta,b;

a=50;b=90;

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

}

    A:

90

    B:

5090

    C:

50

    D:

其他

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

voidmain()

{

   inta=4;charch=‘a’;

   printf("%d\n",(a&2)&&(ch>‘A’));

}

    A:

0

    B:

1

    C:

2

    D:

3

22.以下程序的输出是( )。

#include

main( )                           

{inti,j=4;                  

 for(i=j;i<=2*j;i++)

 switch(i/j)

 {  case0:

    case1:

printf("*");break;

    case2:

printf("#");break;

 }

}

    A:

*###

    B:

**##

    C:

***#

    D:

****#

23.有如下程序片段:

inti=0;

while(i++<=2);

printf("%d",i--);

则正确的执行结果是( )。

    A:

2

    B:

3

    C:

4

    D:

以上都不是

24.有以下程序段

main()

{inti=1,sum=0,n;

  scanf(“%d”,&n);

do

{ i+=2; 

sum+=i;

}while(i!

=n);

printf(“%d”,sum);

}

若使程序的输出值为15,则应该从键盘输入的n的值是( )。

    A:

1

    B:

3

    C:

5

    D:

7

25.以下程序的输出是( )。

 #include

 voidfun(int*p)

 {

    inta=10;

    p=&a;

    ++a;

 }

 voidmain()

 {

 inta=5;

       fun(&a);

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

 }

    A:

5

    B:

6

    C:

10

    D:

11

26.以下关于函数的说法中正确的是( )。

    A:

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

    B:

return语句后边的值不能为表达式

    C:

如果函数类型与返回值类型不一致,以函数类型为准

    D:

如果形参与实参的类型不一致,以实参为准

27.已知有定义:

int*p();则以下说法正确的是( )。

    A:

指向int型的指针变量

    B:

int型的指针数组

    C:

一个函数,该函数的返回值是指向int型的指针变量

    D:

一个指向函数的指针变量,该函数的返回值为int型

28.若有如下程序:

voids(char*m,intn)

{

  *m=*m+3;n=n+3;

  printf("%c,%c,",*m,n);

}

voidmain()

{

  charp=‘b’,q=‘B’;

  s(&q,p);

  printf("%c,%c\n",p,q);

}则程序运行后的输出结果是( )。

    A:

E,e,b,E

    B:

e,E,b,F

    C:

E,e,e,E

    D:

e,E,b,E

29.C语言规定函数返回值的类型由( )。

    A:

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

    B:

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

    C:

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

    D:

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

30.要在c语言中求正弦30度的值,可以调用库函数,可用格式为( )。

    A:

sin(30)

    B:

sin(30.0)

    C:

sin((double)30)

    D:

sin(3.1415/6)

31.在C语言程序设计中,简单变量作为实参时,它和对应形参之间的数据的传递方式是( )。

    A:

地址传递

    B:

单向值传递

    C:

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

    D:

由用户指定传递方式

32.以下程序的输出为( )。

inta=2;

intf(int*a)

{

   return(*a)++;

}

voidmain()

{

   ints=0;

   {inta=5;

    s+=f(&a);

   }

   s+=f(&a);

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

}

    A:

27

    B:

210

    C:

37

    D:

311

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

#include

int*fun()

{

inta[4],k;

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

return(a);

}

voidmain()

{int*p,j;

p=NULL;

p=fun();

for(j=0;j<4;j++){printf("%d\n",*p);p++;}

}

    A:

输出0000

   B:

输出0123

    C:

输出1111

    D:

输出不确定值

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

voidfun(int*n)

{  

   staticintm=2;

   *n*=m-1;m+=2;

}

voidmain()

   staticintm=1;

   inti;

   for(i=1;i<4;i++)

       fun(&m);

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

}

    A:

8

    B:

10

    C:

11

    D:

15

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

    A:

用typedef可以定义各种类型名,但不能用来定义变量

    B:

typedef和#define都是在预编译时处理的

    C:

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

    D:

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

36.要使用内存分配函数malloc,需要引入的头文件是( )。

    A:

stdio.h

    B:

stdlib.h

    C:

malloc.h

    D:

memory.h

37.以下宏定义中,不会引起二义性的宏个数为( )。

1)#definePOWER(x)x*x

2)#definePOWER(x)(x)*(x)

3)#definePOWER(x)(x*x)

4)#definePOWER(x)((x)*(x))

    A:

1个

    B:

2个

    C:

3个

    D:

4个

38.若有二维数组定义语句:

inta[4][5];则下面对元素a[2][3]不正确的引用方式是( )。

    A:

*(&a[2][3])

    B:

*(a+5*2+3)

    C:

*(a[2]+3)

    D:

*(*(a+2)+3)

39.若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为( )。

    A:

j*m+i

    B:

i*m+j

    C:

i*m+j-1

    D:

j*m+i-1

40.有字符数组a[10]={‘A’,‘\0’}和b[10]={‘B’},则以下正确的输出语句是( )。

    A:

puts(a,b);

    B:

printf("%s%s\n",a[],b[]);

    C:

putchar(a,b);

    D:

puts(a);puts(b);

41.下列程序的输出结果是( )。

#include

#include

voidmain()

{

   charp1[20]="abcd",p2[20]="ABCD";

   charstr[50]="xyz";

   strcpy(str+2,strcat(p1+2,p2+1));

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

}

    A:

xyabcAB

    B:

abcABz

    C:

Ababcz

    D:

xycdBCD

42.以下程序执行后输出结果是( )。

voidmain()

{

  chara[]="movie",b[10]="movie";

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

}

    A:

55

    B:

66

    C:

610

   D:

1010

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

voidmain()

{

  char*p[10]={"abc","aabdfg","dcdbe","abbd","cd"};

  printf("%d\n",strlen(p[4]));

}

    A:

2

    B:

3

    C:

4

    D:

编译出错

44.已知有以下的说明,

inta[]={8,1,2,5,0,4,7,6,3,9};那么a[*(a+a[3])]的值为( )。

    A:

5

    B:

0

    C:

4

    D:

7

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

#include 

main()

 {

  inta[2][2]={1,2,3,4},(*p)[2];

       p=a;

       p++;   

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

 }

    A:

2

    B:

3

    C:

4

   D:

以上都不对

46.设charch,str[4],*strp;,则正确的赋值语句是( )。

    A:

ch="CBA";

    B:

str="CBA";

    C:

strp="CBA";

    D:

*strp="CBA";

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

#include 

#include 

fun(char*w,intn)

{chart,*s1,*s2;

 s1=w;s2=w+n-1;

 while(s1

 }

main()

{char*p;

 p="1234567";

 fun(p,strlen(p));

 puts(p);

 }

    A:

7654321

    B:

1714171

    C:

1711717

    D:

7177171

48.以下程序的输出是()。

#include

main(){

chara[]="language",*p;

p=a;

 while(*p!

=‘u’){printf("%c",*p-‘u’+‘U’);p++;}

}

    A:

LANGUAGE

    B:

language

     C:

LANG

     D:

LANGuage

49.structs1

   chara[3];

   int num;

}t={‘a’,‘b’,‘x’,4},*p;

p=&t;

则输出为x的语句是( )。

    A:

printf(“%c\n”,p->t.a[2]);

    B:

printf(“%c\n”,(*p).a[2])

    C:

printf(“%c\n”,p->a[3]);

    D:

printf(“%c\n”,(*p).t.a[2]);

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

#include

main(){

    structst

    {intx;

     inty;

    }cnum[2]={1,3,2,7};

    printf("%d\n",cnum[0].y/cnum[0].x*cnum[1].x);

}

    A:

0

    B:

1

    C:

3

    D:

6

51.以下对age的非法引用是( )。

struct student

 {intage;

  intnum;

 }stu1,*p;

 p=&stu1;

    A:

stu1.age

    B:

student.age

    C:

p->age

    D:

(*p).age

52.以下程序的输出是( )。

#include

unionmyun

{struct

{intx,y,z;}u;

intk;

}a;

voidmain()

{a.u.x=4;a.u.y=5;a.u.z=6;

a.k=0;

printf("%d\n",a.u.y);

}

    A:

4

    B:

5

    C:

6

    D:

0

53.若要用fopen函数打开一个二进制文件,该文件要既能读也能写,当文件不存在时新建文件,则文件打开方式字符串应是( )。

    A:

"ab+"

    B:

"rb+"

    C:

"wb+"

    D:

"ab"

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

    A:

地址值

    B:

0

    C:

1

    D:

EOF

55.要打开文件c:

\user\text.txt用于追加数据,正确的语句是( )。

    A:

fp=fopen("c:

\turboc2\abc.txt","r");

    B:

fp=fopen("c:

\\turboc2\abc.txt","r");

    C:

fp=fopen("c:

\\turboc2\\abc.txt","a+");

    D:

fp=fopen("c:

\turboc2\abc.txt","a+");

56.在执行fopen函数时,ferror函数的初值是( )。

    A:

TRUE

    B:

-1

    C:

1

    D:

0

57.#include 

main()

 {

  char*s1="Hello",*s2="Beijing";

       FILE*pf=fopen("abc.dat","wb+");

       fwrite(s2,7,1,pf);

       fseek(pf,-1,SEEK_CUR);

       fwrite(s1,5,1,pf);

       fclose(pf);

 }

以上程序执行后,文件abc.dat中的内容为( )。

    A:

Hellong

     B:

BeijingHello

     C:

BeijinHello

     D:

Hello

58.若fp为文件指针,且文件已正确打开,i为整型数据,以下语句的输出结果是( )。

fseek(fp,0,SEEK_END);

i=ftell(fp);

printf("i=%d\n",i);

    A:

fp所指的文件记录长度

    B:

fp所指的文件长度,以字节为单位

    C:

fp所指的文件长度,以比特为单位

    D:

fp所指的文件当前位置,以字节为单位

59.函数调用语句:

fseek(fp,-20L,2);的含义是( )。

    A:

将文件位置指针移到距离文件头20个字节处

    B:

将文件位置指针从当前位置向后移动20个字节

    C:

将文件位置指针从文件末尾处后退20个字节

   D:

将文件位置指针移到离当前位置20个字节处

60.若将文件指针的读写位置指针移动到距离文件头200个字节的位置,对应正确的操作是( )。

    A:

fseek(fp, 200,SEEK_SET)

    B:

fseek(fp, 200, SEEK_CUR)

    C:

fseek(fp, 200,SEEK_END)

    D:

ftell(200)

多选题(共20题,每题2分,共40分)

1.关于以下运算,说法正确的有( )。

    A:

设有宏定义"#defineF(N)2*N",则表达式F(2+3)的值是10

    B:

设intx=4;则执行语句x+=x*=x+1;后,x的值为40

    C:

设inta,b=8;执行a=b<<2+1;后a的值是33

    D:

设inta[3][4],*p=a[1];该指针变量p指向的元素是a[1][0]

2.有以下定义:

chara[10],*b=a;

则能给a数组输入字符串的语句有( )。

    A:

gets(a);

    B:

gets(a[0]);

    C:

gets(&a[0]);

    D:

gets(b);

 3.要求函数的功能是在一维数组a中查找x值。

若找到,则返回所在的下标值;否则,返回0。

设数据放在数组元素的a[1]到a[n]中。

在以下给出的函数中,不能正确执行此功能的函数有( )。

    A:

funa(int*a,intn,intx)

{

   *a=x;

   while(a[n]!

=x)n--;

   returnn;

}

     B:

funb(int*a,intn,intx)

   intk;

   for(k=1;k<=n;k++)

   if(a[k]==x)returnk;

      return

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

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

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2