云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > ITAT 第五届C语言预赛试题(修改版)

ITAT 第五届C语言预赛试题(修改版)

  • 62 次阅读
  • 3 次下载
  • 2026/1/9 23:26:12

{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p);}

A)非法 B)a[4]的地址 C)5 D)4

考查点:指针类型变量表达式计算。*--p相当于*(--p)。 50. 以下函数返回a所指的数组中最小值所在的下标值: fun(int *a, int n) { int i , j=0 , p ; p=j ;

for(i=j;i

if(a[i]

在下划线处应填入__D_____。(知识点10.2)

A)i=p B)a[p]=a[i] C)p=j D)p=i 51. 下列程序的运行结果是___B____。(知识点10.2) void fun(int *a,int *b) { int *k;

k=a;a=b;b=k;} main()

{ int a=3,b=6,*x=&a,*y=&b; fun(x,y); printf(“%d %d”,a,b); }

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

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

考查知识点:带参数的宏,在宏替换时,只是用实参简单的替换形参,所有替换完后i=4+4*4+4/(2+2)。 53. 下列程序的输出结果是__A_____。(知识点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

考查点:结构体、共用体类型存储空间计算。Int型占2个字节,char占1个字节,float占4个字节。结构体存储空间为各成员之和,共用体为最大占最大空间成员的空间。 54. 下列程序的输出结果是___C____。(知识点11.6) struct LH

{ int n;struct LH *m;}p[4];

9

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)程序出错 考查点:结构体数组。利用结构体数组结点元素创建循环单链表。p[0]~ p[2]为3个结点,值域依次赋值为0~2;p[3]为头结点。最后输出第3个结点和第1个结点的值域值。 55. 下列程序的输出结果是__C_____。(知识点11.6) struct st

{ 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

考查点:结构体指针,结构体数组。题中p是指向结构体的指向,aa是结构体数组。

56. 字符0的ASCII码的十进制数为48,且数组的第0个元素在低位,则以下程序的执行结果是___D____。(知识

点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

考查点:共用体,多个成员公用同一存储单元。第一个字节存的是十六进制39,是十进制的57,也就是数字字符9的ASCII。

57. 下列程序的运行结果是___D____。(知识点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

考查点:位运算,数值0236为八进制数。以大写%X输出时输出十六进制字母是大写显示。 58. 若有运算符<<,sizeof,^,&=,则它们按优先级由高至低的排列次序正确的是__B_____。(知识点3.8)

10

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

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

A)hello, B)new worldhello, C)new world D)hello,rld

考查点:文件字符读写函数,fputc(char ch,FILE *fp)将字符ch输出到fp指向的文件中。如果第二次是重新打开文件,则为替换内容;如果没有重新打开文件,则写是覆盖原来的文件位置的字符。 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);}

该程序运行后的输出结果是___A____。(知识点13.4) A)20 30 B)20 50 C)30 50 D)30 20

考查点:文件读写函数,fprintf(FILE *fp,char *format,args)把args的值以format指定的格式输出到fp所指定的文件中。fscanf(FILE *fp,char *format,args)从fp所指定的文件中以format指定的格式将输入数据送到args所指向的存储单元,args是指针。

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

1. 下列符号串中,不属于C语言合法标识符的有__ BCD ___。(知识点3.2) A)_1_2_3 B)a-b-c C)int D)9cd

考查点:C语言标识符,以字母或下划线开头,包含字母、数字和下划线3种字符组成。 2. 当把下列四个表达式用作if语句的控制表达式时,含义相同的选项有___ ABC ____。(假设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);下列叙述不正确的有___ABC____。(知今识点4.5) A) 整型变量的输出形式只有%d一种 B) %x是格式符的一种,它可以适用于任何一种类型的数据 C) %x是格式符的一种,其变量的值按十六进制输出,但%8lx是错误的 D) %8lx不是错误的格式符,其中数字81规定了输出字段的宽度 考查点:格式输出,%x是以十六进制无符号形式输出整数。 4. 下列选项中,没有构成死循环的程序段有_A __。(知识点6.7) A)int i=100; B)for( ; ; ) while(1)

11

{ 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) { ……….}

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

A)循环控制表达式的值为0 B)循环控制表达式的值为1 C)循环控制表达式不合法 D)循环有可能是个无限循环

6. 下列判断正确的是____BC___。(知识点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的程序段有_BCD____。(知识点:6.7) A)i=1;s=1; B)i=0;s=0; do do

{ s=s+i;i++; { i++; s=s+i; while(i<5); while(i<5); C)i=1;s=0; D)i=0;s=0; do do

{ s=s+i;i++; { s=s+i; i++; while(i<6); while(i<=5);

8. 下面程序把数组元素中的最小值放入a[0]中,则在if语句中条件表达式可以是__BD____。(知识点10.2) main()

{ int a[10]={5,2,9,6,7,1,12,8,23,0},*p=a,i; for(i=0;i<10;i++,p++) if(______) *a=*p ; printf(“%d”,*a); }

A)p>a B)*p

A) s数组元素的值分别是“abcd”和“ABCD”两个字符串的首地址 B) s是指针数组名,它含有两个元素分别指向字符型一维数组 C) s数组的两个元素分别存放的是含有四个字符的一维字符数组中的元素 D) s数组的两个元素中分别存放了字符?a?和?A?的地址

考查点:一维字符指针数组的定义及元素含义。字符指针数组元素相当于字符指针(即字符串的首地址) 10. 以下有关字符串赋值、赋初值的语句错误的有___ACD____。(知识点10.4) A)char sz[2][40];sz[1]=“string1”;

12

搜索更多关于: ITAT 第五届C语言预赛试题(修改版) 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

{ char a[10]={9,8,7,6,5,4,3,2,1,0},*p=a+5; printf(“%d”,*--p);} A)非法 B)a[4]的地址 C)5 D)4 考查点:指针类型变量表达式计算。*--p相当于*(--p)。 50. 以下函数返回a所指的数组中最小值所在的下标值: fun(int *a, int n) { int i , j=0 , p ; p=j ; for(i=j;i

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com