c语言二级试题.docx
《c语言二级试题.docx》由会员分享,可在线阅读,更多相关《c语言二级试题.docx(15页珍藏版)》请在冰豆网上搜索。
c语言二级试题
在C语言中,不正确的int类型的常数是
A)32768B)0C)037D)0xAF
(18)语句:
printf(“%d”,(a=2)&&(b=——2);的输出结果是
A)无输出B)结果不确定C)——1D)1
19)下列描述中不正确的是
A)字符型数组中可以存放字符串
B)可以对字符型数组进行整体输入、输出
C)可以对整型数组进行整体输入、输出
D)不能在赋值语句中通过赋值运算符“=”对字符型数组进行整体赋值
(20)设有如下定义:
intx=l,y=——1;,则语句:
printf(“%d、n”,(x——&y));的输出结果是
A)1B)0C)——1D)2
(21)当c的值不为0时,在下列选项中能正确将c的值赋给变量a、b的是
A)c=b=a;B)(a=c)‖(b=c);
C)(a=c)&&(b=c);C)a=c=b;
(22)以下程序的输出结果是
A)10192B)9876C)10990D)101091
main()
{intx=10,y=10,I;
for(i=0;x》8;y=i)
printf(“%d,%d”,x——,y);
}
(23)以下程序的输出结果是
A)52B)51C)53D)97
main()
{inti,x[3][3]={9,8,7,6,5,4,3,2,1},*p=&x[1][1];
for(i=0;i《4;i=2)printf(“%d”,p[i]);
}
(24)以下程序的输出结果是
A)6B)6789C)'6'D)789
main()
{chara[10]={'1','2','3','4','5','6','7','8','9',0},*p;
inti;
i=8;
p=aI;
printf(“%s、n”,p——3);
}
(25)以下程序的运行结果是
A)运行后报错B)66C)612D)55
#include“stdio.h”
main()
{
inta[]={1,2,3,4,5,6,7,8,9,10,11,12,};
int*p=a5,*q=NULL;
*q=*(p5);
printf(“%d%d、n”,*p,*q);
}
(26)以下说法中正确的是
A)#define和printf都是C语句B)#define是C语句,而printf不是
C)printf是C语句,但#define不是D)#define和printf都不是C语句
(27)语句:
printf(“%d、n”,12&012);的输出结果是
A)12B)8C)6D)012
(28)能正确表示a和b同时为正或同时为负的逻辑表达式是
A)(a》=0‖b》=0)&&(a《0‖b《0)
B)(a》=0&&b》=0)&&(a《0&&b《0)
C)(ab》0)&&(ab《=0)
D)a*b》0
(29)以下程序的输出结果是
A)20B)31C)321D)210
main()
{intn=4;
while(n——)printf(“%d”,——n);
}
(30)若已定义:
inta[9],*p=a;并在以后的语句中未改变p的值,不能表示a[1]地址的表达式是
A)p1B)a1C)aD)p
(31)以下程序的输出结果是
A)17,021,0x11B)17,17,17
B)17,0x11,021D)17,21,11
main()
{intk=17;
printf(“%d,%o,%x、n”,k,k,k);
}
(32)以下程序的输出结果是
A)——11B)01C)10D)00
main()
{inta=——1,b=1,k;
if((a《0)&&!
(b——《=0))
printf(“%d%d、n”,a,b);
else
printf(“%d%d、n”,b,a);
}
(33)若有说明:
long*p,a;则不能通过scanf语句正确给输入项读入数据的程序段是
A)*p=&a;scanf(“%ld”,p);
B)p=(long*)malloc(8);scanf(“%ld”,p);
C)scanf(“%ld”,p=&a);
D)scanf(“%ld”,&a);
(35)若有以下的说明和语句,则在执行for语句后,*(*(ptl)2)表示的数组元素是
A)t[2][0]B)t[2][2]C)t[l][2]D)t[2][l]
intt[3][3],*pt([3],k;
for(k=0;k《3;k)pt[k]=&t[k][0];
(36)下面程序把数组元素中的最大值放入a[0]中。
则在if语句中的条件表达式应该是
A)p》aB)*p》a[0]C)*p》*a[0]D)*p[0]》*a[0]
main()
{inta[10]={6,7,2,9,1,10,5,8,4,3},*p=a,I;
for(i=o;i《10;i,p)
if(________)*a=*p;
printf(“%d”,*a);
}
(37)以下程序的输出结果是
A)ihgfedcbaB)abcdefghiC)abcdedebaD)ihgfefghi
#include
main()
{char*a=“abcdefghi”;intk;
fun(a);puts(a);
}
fun(char*s)
{intx,y;charc;
for(x=0,y=strlen(s)——1;x0)fun(k——1);
printf(“%d”,k);
}
(42)以下程序的输出结果是
A)699B)669C)61515D)6615
intd=1;
fun(intp)
{staticintd=5;
d=p;
printf(“%d”,d);
return(d);
}
main()
{inta=3;printf(“%d、n”,fun(afun(d)));}
(43)以下程序的输出结果是
A)123456780B)123456780C)12345678D)147
main()
{charch[3][4]={“123”,“456”,“78”},*p[3];inti;
for(i=0;i《3;i)p[i]=ch[i];
for(i=0;i《3;i)printf(“%s”,p[i]);
}
(44)以下程序的输出结果是
A)1B)4C)7D)5
#include
inta[3][3]={1,2,3,4,5,6,7,8,9,},*p;
main()
{p=(int*)malloc(sizeof(int));
f(p,a);
printf(“%d、n”,*p);
}
f(int*s,intp[][3])
{*s=p[1][1];}
(45)以下程序的输出结果是
A)9B)6C)36D)18
#definef(x)x*x
main()
{inta=6,b=2,c;
c=f(a)/f(b);
printf(“%d、n”,c);
}
(46)以下程序的输出结果是
A)4211B)0008C)4678D)8888
main()
{char*s=“12134211”;intv[4]={0,0,0,0},k,i;
for(k=0;s[k];k)
{switch(s[k])
{case'1':
i=0;
case'2':
i=1;
case'3':
i=2;
case'4':
i=3;
}
v[i];
}
for(k=0;k《4;k)printf(“%d”,v[k]);
}
(47)以下程序的输出结果是
A)AfghdEFGB)AbfhdC)AfghdD)Afgd
#include
main()
{char*p1,*p2,str[50]=“ABCDEFG”;
p1=“abcd”;p2=“efgh”;
strcpy(str1,p21);strcpy(str3,p13);
printf(“%s”,str);
}
(48)以下程序的输出结果是
A)#*#*#B)#####C)*****D)*#*#*
main()
{inti;
for(i=1;i《6;i)
{if(i%2){printf(“#”);continue;}
printf(“*”);
}
printf(“、n”);
}
(49)若有以下定义和语句:
doubler=99,*p=&r;
*p=r;
则以下正确的叙述是
A)以下两处的*p含义相同,都说明给指针变量p赋值
B)在“doubler=99,*p=&r;”中,把r的地址赋值给了p所指的存储单元
C)语句“*p=r;”把变量r的值赋给指针变量p
D)语句“*p=r;”取变量r的值放回r中
(50)以下程序的输出结果是
A)编译不通过,无输出B)aceg
C)acegiD)abcdefghi
main()
{inti;
for(i='A';i《'I';i,i)printf(“%c”,i32);
printf(“、n”);
}
(7)下列程序的输出结果是_____7____。
#include
main()
{charb[30],*chp;
strcpy(&b[0],“CH”);
strcpy(&b[1],“DEF”);
strcpy(&b[2],“ABC”);
printf(“%s、n”,b);
}
(8)下列程序的输出结果是____8____。
intt(intx,inty,intcp,intdp)
{cp=x*xy*y;
dp=x*x——y*y;
}
main()
{inta=4,b=3,c=5,d=6;
t(a,b,c,d);
printf(“%d%d、n”,c,d);
}
(9)下列程序中字符串中各单词之间有一个空格,则程序的输出结果是____9____。
#include
main()
{charstrl[]=“Howdoyoudo”,*p1=strl;
strcpy(strlstrlen(strl)/2,“esshe”);
printf(“%s、n”,pl);
}
(10)以下程序的功能是:
从键盘上输入若干个学生的成绩,统计计算出平均成绩,并输出低于平均分的学生成绩,用输入负数结束输入。
请填空。
main()
{floatx[1000],sum=0.0,ave,a;
intn=0,i;
printf(“Entermark:
、n”);scanf(“%f”,&a);
while(a》=0.0&&n《1000)
{sum____10____;x[n]=_____11____;
n;scanf(“%f”,&a);
}
ave=____12____;
printf(“Output:
、n”);
printf(“ave=%f、n”,ave);
for(i=0;i
main()
{FILE*fp;
charch,fname[32];intcount=0;
printf(“Inputthefilename:
”);scanf(“%s”,fname);
if((fp=fopen(____16____,“w”))==NULL)
{printf(“Can'topenfile:
%s、n”,fname);exit(0);}
printf(“Enterdata:
、n”);
while((ch=getchar())!
=“#”){fputc(ch,fp);count;}
fprintf(____17____,“、n%d、n”,count);
fclose(fp);
}
(13)以下函数creatlist用来建立一个带头节点的单链表,链表的结构如下图所示,新的结点总是插入在链表的末尾。
链表的头指针作为函数值返回,链表最后一个节点的next域放入NULL,作为链表结束标志。
data为字符型数据域,next为指针域。
读入时字符以#表示输入结束(#不存入链表)。
请填空。
structnode
{chardata;
structnode*next;
};
。
。
。
_____18_____creatlist()
{structnode*h,*s,*r;charch;
h=(structnode*)malloc(sizeof(structnode));
r=h;
ch=getchar();
{s=(structnode*)malloc(sizeof(structnode));
s——》data=____19____;
r——》next=s;r=s;
ch=getchar();}
r——》next=____20_____;
returnh;
}