C语言预赛试题 联系客服

发布时间 : 星期二 文章C语言预赛试题更新完毕开始阅读d68294b9e45c3b3566ec8be5

A)6 3 B)3 6 C)编译出错 D)0 0 52. 有如下程序: #define f(x)x*x main() { int i ;

i=f(4+4)/(2+2); printf(“%d\\n”,i);}

该程序执行后的输出结果是_______。(知识点9.1) A)28 B)21 C)16 D)4

53. 下列程序的输出结果是_______。(知识点11.4) struct tt;

{ int n1;char n2;float n3;

union uu{int u1[2];char u2[2];}su; }; main()

{printf(“%d\\n”,sizeof(struct tt));}

A)11 B)12 C)7 D)9 54. 下列程序的输出结果是_______。(知识点11.6) struct LH

{ int n;struct LH *m;}p[4]; main() { int i;

for(i=0;i<3;i++) {p[i].n=i;p[i].m=&p[i+1];} p[i].m=p;

printf(“%d,%d\\n”,(p[1].m)->n,p[3].m->n); }

A)1,2 B)1,3 C)2,0 D)程序出错 55. 下列程序的输出结果是_______。(知识点11.6) struct st

13

{ int x;int *y;}*p; int dt[4]={10,20,30,40};

struct st aa[4]={50,&dt[0],60,&dt[1],70,&dt[2],80,&dt[3]}; main() { p=aa;

printf(“%d ”,++p->x); printf(“%d ”,(++p)->x); printf(“%d ”,++(*p->y));}

A)10 20 20 B)50 60 21 C)51 60 21 D)60 70 31

56. 字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行

结果是_______。(知识点11.8) #include main() { union { int i[4];

long k; char c[6]; }a,*s=&a ; s->i[0]=0x39; s->i[1]=0x38;

printf(“%c\\n”,s->c[0]); }

A)5 B)3 C)6 D)9 57. 下列程序的运行结果是_______。(知识点12.2) main()

{ unsigned c1=0xff,c2=0x00; c1=c2|c1>>2;c2=c1^0236; printf(“%x,%x\\n”,c1,c2); }

A)0x3f,0XA1 B)3f,A1 C)ffff,61 D)3f,a1

14

58. 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的排列次序正确的是_______。

(知识点3.8)

A)sizeof,&= , <<, ^ B)sizeof,<<, ^,&= C)^,<<,sizeof, &= D)<<,^,&=,sizeof 59. 有以下程序: #include

void fun(char *fname,char *st) { FILE *myf;int i; myf=fopen(fname,“w”);

for(i=0;i

{ fun(“test.t”,“new world”);fun(“test.t”,“hello,”);} 执行该程序后,文件test.t中的内容是_______。(知识点13.4)

A)hello, B)new worldhello, C)new world D)hello,rld 60. 有以下程序: #include main()

{ FILE *fp;int i=20,j=30,k,n; fp=fopen(“d1.dat”,“w”);

fprintf(fp,“%d\\n”,i);fprintf(fp,“%d\\n”,j); fclose(fp);

fp=fopen(“d1.dat”,“r”);

fscanf(fp,“%d%d”,&k,&n);printf(“%d %d\\n”,k,n); fclose(fp);}

该程序运行后的输出结果是_______。(知识点13.4) A)20 30 B)20 50 C)30 50 D)30 20 二、多选题(共20小题,每题2分,共40分)

1. 下列符号串中,不属于C语言合法标识符的有_____。(知识点3.2)

15

A)_1_2_3 B)a-b-c C)int D)9cd

2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有_______。(假设

k>0)(知识点5.3)

A)k%2 B)k%2= =1 C)(k%2)!=0 D)!k%2= =0

3. 已有定义 int a=-2;和输出语句printf(“%8lx”,a);下列叙述不正确的有_______。(知

今识点4.5)

A) 整型变量的输出形式只有%d一种

B) %x是格式符的一种,它可以适用于任何一种类型的数据

C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D) %8lx不是错误的格式符,其中数字81规定了输出字段的宽度 4. 下列选项中,没有构成死循环的程序段有_____。(知识点6.7) A)int i=100; B)for( ; ; ) while(1) { i=i0+1; if(i>=100)break;}

C)int k=0; D)int s=36; do { ++k;} while(k>=0); while(s);--s; 5. t为int类型,进入下面的循环之前,t的值为0: while(t=1) { ……….}

则下列叙述不正确的有________。(知识点6.3)

A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)循环有可能是个无限循环 6. 下列判断正确的是_______。(知识点10.3) A) char *a=“china”;等价于 char *a;*a=“china”; B) char str[6]={“china”};等价于char str[ ]= {“china”}; C) char *s=“china”;等价于char *s;s=“china”;

D) char c[4]=“abc”,d[4]=“abc”;等价于char c[4]=d[4]=“abc”;

7. 若变量已正确定义,以下能正确计算1+2+3+4+5的程序段有_____。(知识点:6.7) A)i=1;s=1; B)i=0;s=0;

16