第七届ITAT竞赛C语言模拟题

 

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

C语言程序设计

注:试卷满分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

8.若有定义:

int

float

chara=2,*p;x=1,y=2;e=‘w’;

)。a;a=-13.06;在程序编译中将会提示出错则以下用法不正确的是(

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<stdio.h>

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--)的输出结果是(

A:-4

B:-3

C:-3

D:-43344

)。),i的值是()。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<stdio.h>

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<stdio.h>

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<stdio.h>

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<stdio.h>

#include<string.h>

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<stdio.h>

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<stdio.h><string.h>)。

fun(char*w,intn)

{chart,*s1,*s2;

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

while(s1<s2){t=*s1++;*s1=*s2--;*s2=t;}

}

main()

{char*p;

p="1234567";

fun(p,strlen(p));

puts(p);

}

A:7654321

B:1714171

C:1711717

D:7177171

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

#include<stdio.h>

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

www.99jianzhu.com/包含内容:建筑图纸、PDF/word/ppt 流程,表格,案例,最新,免费下载,施工方案、工程书籍、建筑论文、合同表格、标准规范、CAD图纸等内容。


TOP最近更新内容

    园林史名词解释
    长城小学关爱留守儿童工作制度
  • 上一篇:第十九届2013全国青少年信息学奥林匹克联赛初赛试题C 及解析
  • 下一篇:9、浠水实验高中“学生导师制”实施方案