当前位置:文档之家› 2011-C语言预赛试题

2011-C语言预赛试题

单选题

[1]、C语言中运算对象必须是整型的运算符是()。

【答案】C

【分数】1分

【选项】

A、/

B、++

C、%

D、!=

[2]、假设所有变量均为整型,则执行运算x=(a=2,b=5,b++,a+b)后, x的值是()。

【答案】B

【分数】1分

【选项】

A、7

B、8

C、6

D、2

[3]、在下列字符序列中,属于C语言合法标识符的是()。

【答案】B

【分数】1分

【选项】

A、P12.a

B、stud_100

C、$water.1

D、88sum

[4]、在下列语句选项中,只有一个在功能上与其他三个语句不等价(其中s1和s2表示某个C语句),这个不等价的语句是()。

【答案】D

【选项】

A、if (a) s1; else s2;

B、if (!a) s2; else s1;

C、if (a!=0) s1; else s2;

D、if (a==0) s1; else s2;

[5]、若二维数组定义为a[m][n],则在a[i][j]之前的元素个数为()。【答案】B

【分数】1分

【选项】

A、j*m+i

B、i*m+j

C、i*m+j-1

D、j*m+i-1

[6]、以下程序的运行结果是()。

void fun(int *n)

{

static int m=2;

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

}

void main()

{

static int m=1;

int i;

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

fun(&m);

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

}

【分数】1分

【选项】

A、8

B、10

C、11

D、15

[7]、设有定义:#define STR "12345";,则以下叙述正确的是()。【答案】C

【分数】1分

【选项】

A、宏名STR代替的是数值常量12345

B、宏定义以分号结束,编译时会产生错误信息

C、宏名STR代替的是字符串"12345"

D、宏名STR代替的是字符串常量"12345"

[8]、下列叙述不正确的是()。

【答案】B

【分数】1分

【选项】

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

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

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

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

[9]、若变量定义时未初始化,则其值不确定的是()。

【答案】C

【分数】1分

【选项】

A、静态全局变量

B、静态局部变量

C、局部变量

D、全局变量

[10]、以下程序关于sizeof()的运行结果是()。

void main()

{

char a[]="movie",b[10]="movie";

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

}

【答案】C

【分数】1分

【选项】

A、5 5

B、6 6

C、6 10

D、其他输出

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

【答案】C

【分数】1分

【选项】

A、"ab+"

B、"rb+"

C、"wb+"

D、"ab"

[12]、设char ch,str[4],*strp;,则下列赋值语句正确的是()。

【答案】C

【分数】1分

【选项】

A、ch="CBA";

B、str="CBA";

C、strp="CBA";

D、*strp="CBA";

[13]、有以下函数:char *fun(char *p){return p;},该函数的返回值为()。

【答案】B

【分数】1分

【选项】

A、不确定值

B、参数p中存放的地址值

C、一个临时存储单元的地址值

D、形参p自身的地址值

[14]、若有定义:const int i=10,j=20;int* const pi=(int*)&i;,则下列操作正确的为()。【答案】A

【分数】1分

【选项】

A、*pi=0;

B、pi=&j;

C、i=10;pi=&j;

D、j=*pi;

[15]、有如下定义:

struct s1

{

char a[3];

int num;

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

p=&t;

则下列语句输出结果为x的是()。

【答案】A

【分数】1分

【选项】

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]);

[16]、以下程序将输出的字符是()。

#include "stdio.h"

main()

{

char c;

char (*p)[3];

char s[2][3] ={’a’,’b’,’c’,’d’,’e’,’f’}; p=&s[0];

c=*(p[1]+1);

printf("%c",c);

}

【答案】C

【分数】1分

【选项】

A、b

B、d

C、e

D、f

[17]、以下关于枚举的程序,其运行结果是()。

#include "stdio.h"

main()

{

enum weekday

{ sun,mon,tue=5,wed,thu,fri,sat } a,b,c,d;

a=sun;

b=mon;

c=tue;

d=wed;

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

}

【答案】C

【分数】1分

【选项】

A、 0 0 5 0

B、 1 2 5 4

C、 0 1 5 6

D、 0 1 5 3

[18]、设有程序段 char k;while (k>0) k++; printf("%d\n",k);则程序输出结果为()。【答案】C

【分数】1分

【选项】

A、-127

B、256

C、-128

D、128

[19]、函数调用语句:fseek(fp,-20L,2);的含义是()。

【答案】C

【分数】1分

【选项】

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

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

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

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

[20]、以下程序的输出结果为()。

int a=2;

int f(int *a)

{

return(*a)++;

}

void main()

{

int s=0;

{int a=5;

s+=f(&a);

}

s+=f(&a);

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

}

【答案】C

【分数】1分

【选项】

A、2 7

B、2 10

C、3 7

D、3 11

[21]、以下程序输出的字符序列是()。

#include "stdio.h"

main(){

char a[]="language",*p;

p=a;

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

【答案】C

【分数】1分

【选项】

A、LANGUAGE

B、language

C、LANG

D、LANGuage

[22]、以下程序的输出结果是()。

#include

int main()

{

char str[100]="ABCDEFG", *p=str;

int i;

for(i = 0; *p != ’\0’; p++,i++);

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

return 0;

}

【答案】A

【分数】1分

【选项】

A、7

B、8

C、99

D、100

[23]、字符串"a\x44\\\nbcd\102a"的长度是()。

【答案】C

【分数】1分

【选项】

A、12

B、17

C、9

D、11

[24]、以下程序的输出结果是()。

main()

{ int n;

(n=6*4,n+6),n*2;

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

}

【答案】B

【分数】1分

【选项】

A、30

B、24

C、60

D、48

[25]、以下程序的输出结果是()。

main()

{ int w=4,x=3,y=2,z=1;

if(x>y&&!(z==w)) printf("%d\n",(wx?w:z>y?z:x));

}

【答案】A

【分数】1分

【选项】

A、1

B、2

C、3

D、4

[26]、以下程序的输出结果是()。

main()

{int a=1,b=0;

switch(a)

{case 1: switch (b)

{case 0:printf("**0**");break;

case 1:printf("**1**");break;

}

case 2:printf("**2**");break;

}

}

【答案】B

【分数】1分

【选项】

A、**0**

B、**0****2**

C、**0****1****2**

D、有语法错误

[27]、以下是求两个正整数的最大公约数的函数fun(),下划线处应填入的正确语句为()。 int fun(m,n)

int m,n;

{int r;

if(m

if(n= =0) return(m);

do{ r=m%n;

if (r!=0){ m=n;n=r;} } while (______);

return(n);

}

【答案】A

【分数】1分

【选项】

A、r!=0

B、r==0

C、n!=0

D、n==0

[28]、以下程序的输出结果是()。main()

{int a=0,j;

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

{switch(j)

{case 0:

case 3:a+=2;

case 1:

case 2:a+=3;

default:a+=5;

}

}

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

}

【答案】D

【分数】1分

【选项】

A、20

B、13

C、10

D、36

[29]、以下程序功能为输入1个正整数n, 计算并输出s的前n项的和:s=1/2-2/3+3/4-4/5+ ……(-1)

n/(n+1),下划线处应填入的正确语句为()。

#include "stdio.h"

void main()

{ int k, flag=1, n;

float s=0;

scanf("%d", &n);

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

s=s+______;

flag=-flag;

}

printf("sum=%f\n", s);

}

【答案】A

【分数】1分

【选项】

A、1.0*k/(k+1)* flag

B、flag*n/(n+1)

C、-k/(k+1)

D、1.0*k/(k+1)

[30]、以下程序的输出结果是()。

{ int i,j,x=0;

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

{ x++;

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

{ if (j%2) continue;

x++;}

x++; }

printf("x=%d\n",x); }

【答案】B

【分数】1分

【选项】

A、x=4

B、x=8

C、x=6

D、x=12

[31]、以下程序的输出结果是()。

main()

{ char ch[2][5]={ "6937","8254"},*p[2]; int i,j,s=0;

for(i=0;i<2;i++)p[i]=ch[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);

}

【答案】C

【分数】1分

【选项】

B、63825

C、6385

D、693825

[32]、下列程序片段的输出结果是()。

printf("%d\n",strlen("ATS\n0l2\2\\"));

【答案】C

【分数】1分

【选项】

A、l1

B、10

C、9

D、8

[33]、在C程序中有如下语句:char *func(int x,int y); 它是()。【答案】C

【分数】1分

【选项】

A、对函数func的定义

B、对函数func的调用

C、对函数func的原型说明

D、不合法的

[34]、下列程序运行后的输出结果是()。

fun(int a, int b)

{ if(a>b) return(a);

else return(b);

}

main()

{ int x=3, y=8, z=6, r;

r=fun(fun(x,y), 2*z);

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

}

【答案】D

【分数】1分

【选项】

A、3

B、6

C、8

D、12

[35]、有如下程序,该程序的输出结果是()。

long f(int n)

{ if(n>2) return(f(n-2)+f(n-3)); else

if(n==2) return(2);

else return(1); }

main()

{ printf("%d\n",f(5)); }

【答案】C

【分数】1分

【选项】

A、2

B、3

C、4

D、5

[36]、在C语言中,函数的隐含存储类别是()。【答案】C

【分数】1分

【选项】

A、auto

B、static

C、extern

D、无存储类别

[37]、以下程序的运行结果是()。

#include "stdio.h"

main()

{

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

int *p=a+5,*q=NULL;

q=p+5;

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

}

【答案】B

【分数】1分

【选项】

A、运行后报错

B、6 11

C、6 12

D、5 5

[38]、以下选项中,能定义s为合法的结构体变量的是()。【答案】B

【分数】1分

【选项】

A、typedef struct abc

{ double a;

char b[10];

}s;

B、struct abc

{ double a;

char b[10];

}s;

C、struct ABC

{ double a;

char b[10];

}

ABC s;

D、typedef ABC

{ double a;

char b[10];

}

ABC s;

[39]、以下程序运行后的输出结果是()。

#include

struct NODE

{ int num; struct NODE *next; };

main()

{

struct NODE *p,*q,*r;

p=(struct NODE*)malloc(sizeof(struct NODE)); q=(struct NODE*)malloc(sizeof(struct NODE)); r=(struct NODE*)malloc(sizeof(struct NODE)); p->num=10; q->num=20; r->num=30;

p->next=q; q->next=r;

printf("%d\n ",p->num+q->next->num);

}

【答案】D

【分数】1分

【选项】

A、10

B、20

C、30

D、40

[40]、下列程序的输出结果是()。

struct student

{ int a, b, c; };

main()

{ struct student stu[2]={{2,3,4},{5,6,7}}; int t; t=stu[0].a+stu[1].b%stu[0].c;

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

【答案】C

【分数】1分

【选项】

A、0

B、1

C、4

D、5

[41]、若a是整型变量,表达式~(a^~a)等价于()。【答案】C

【分数】1分

【选项】

A、~a

B、1

C、0

D、2

[42]、若以下程序所生成的可执行文件名为filel.exe ,当输入命令行:FILE1 CHINA BEIJING SHANGHAI ,执行该程序时,程序的输出结果是()。

main(int argc,char * argv [])

{ while(argc-->1)

{++argv;printf("%s ",*argv);}

}

【答案】A

【分数】1分

【选项】

A、CHINA BEIJING SHANGHAI

B、FILE1 CHINA BEIJING

C、C B S

D、F C B

[43]、下列选项中属于不正确的赋值语句的是()。

【答案】D

【分数】1分

【选项】

A、t--;

B、k=i==j;

C、t1=t2=t3=3;

D、t1=1,t2=2;

[44]、若有定义:int a,b;char x,y;并有以下输入数据: 12 13 AaBb(回车)

则能给a赋整数12,给b赋整数13,给x赋字符a,给y赋字符b的正确程序段是()。

【答案】D

【分数】1分

【选项】

A、scanf(“%d”,&a);

相关主题
文本预览
相关文档 最新文档