C卷.docx
- 文档编号:17512186
- 上传时间:2023-07-26
- 格式:DOCX
- 页数:16
- 大小:20.94KB
C卷.docx
《C卷.docx》由会员分享,可在线阅读,更多相关《C卷.docx(16页珍藏版)》请在冰点文库上搜索。
C卷
一、单项选择题(每题2分,共20分)
1、以下选项中属于C语言的数据类型是()
A.复数型B.逻辑型C.集合型D.双精度型
2、一个C程序的执行是从()
A.main()函数开始,直到main()函数结束B.第一个函数开始,直到最后一个函数结束
C.第一个语句开始,直到最后一个语句结束D.main()函数开始,直到最后一个函数结束
3、设有语句inta=3;则执行语句a+=a-=a*a;后,变量a的值是()
A.3B.0 C.-12 D.9
4、若有charc[5]={'c','d','\0','e','\0'};则执行语句printf("%s",c);结果是()。
A.cd\0eB.'c''d'C.cdD.cde
5、已知:
inta[2][3]={1,2,3,4,5,6},(*p)[3]=a;则下列表达式不是4的是()。
A.*(*p+3)B.*p+3C.*(*(p+0)+3)D.a[0][3]
6、以下有宏替换不正确的叙述().
A.宏替换不占用运行时间B.宏名无类型
C.宏替换只是字符串替换D.宏名必须用大写字母表示
7、执行charstr[10]=”Ch\nina”;strlen(str)的值是()
A.5B.6C.7D.9
8、下面程序的输出结果是:
()
#definePOWER(x)(x*x)
main()
{inti=4;printf("%d",POWER(i-2));}
A.-9B.-7C.5D.-6
9、在定义inta[3][4][2];后,第10个元素是()
A.a[2][1][2]B.a[1][0][1]C.a[2][0][1]D.a[2][2][1]
10、下面程序的输出结果是:
()
typedefstruct
{longx[2];
shorty[4];
charz[8];
}MYTYPE;
MYTYPEa;
main()
{printf("%d\n",sizeof(a));}
A.2B.8C.14D.24
二、填空题(每空1分,共11分)
1、字符串"A"在内存中占用的字节数为。
2、C语言中的标识符只能由字母、下划线和组成。
3、若有定义语句“inta=25,b=14,c=19;",以下语句的执行结果是
if(a++<=25&&b--<=2&&c++)printf("***a=%d,b=%d,c=%d\n",a,b,c);
elseprintf("###a=%d,b=%d,c=%d\n",a,b,c);
4、有如下定义a[]="B\172\\\'a%%";则执行语句printf("%d",strlen(a));的结果为。
5、若有定义:
inta[12]={1,2,3,4,5,6,7,8,9,10,11,12},*p[4],i;for(i=0;i<4;i++)
p[i]=&a[i*3];则*(*(p+1)+2)的值为,*p[2]的值为。
若数组的首地址为2000,则p[1]指向的地址为。
6、设a=2,b=3,x=3.5,y=2.5,则表达式(float)(a+b)/2+(int)x%(int)y的结果是。
7、设x、y都是int型变量,初值都为1,则执行表达式:
--x&&y++后,y的值为。
8、语句for(i=1;i==10;i++)continue;循环的次数是。
9、以下程序输出。
main()
{enumem{em1=3,em2=1,em3};
char*aa[]={"AA","BB","CC","DD"};
printf("%s%s%s\n",aa[em1],aa[em2],aa[em3]);
}
三、写程序结果(每题5分,共35分)
1、#include
main()
{intx,y,z;
x=1,y=2,z=3;x+=y+=z;
printf("1:
%d\n",z+=x>y?
x++:
y++);
x=0x02ff;y=0xff00;
printf("2:
%d\n",(x&y)>>4|0x005f);
x=y=z=-1;++x||++y&&++z;
printf("3:
%d,%d,%d\n",x,y,z);
}
2、#definef(x)x*x
main()
{inta=6,b=2,c;
c=f(a+b)/f(b);
printf(“%d\n”,c);
}
3、fun(intk)
{printf("%d",k);
if(k>0)
fun(k-1);
}
main()
{intw=5;fun(w);printf("\n");}
4、#include
main()
{intx=1,y=0;
switch(x)
{case1:
switch(y)
{case0:
printf(“first\n”);break;
case1:
printf(“second\n”);break;
}
case2:
printf(“third\n”);
}
}
5、#include
main()
{intk=4;
func(k);func(k);
}
func(inta)
{staticintm=0;
m+=a;
printf("%d",m);
}
6、structst
{intx;
int*y;
}*p;
ints[]={30,20};
structsta[]={1,&s[0],2,&s[1]};
main()
{p=a;printf("%d,",p->x);
printf("%d\n",++(*(++p)->y));
}
7、假定在当前盘目录下有2个文本文件,其名称和内容如下:
文件名:
a1.txta2.txt
内容:
ABCDEF#abcdef#
#include"stdio.h"
main()
{FILE*fp;
voidfc();
if((fp=fopen("a1.txt","r"))==NULL)
{printf("Cannotopenfile!
\n");exit
(1);}
else{fc(fp);fclose(fp);}
if((fp=fopen("a2.txt","r"))==NULL)
{printf("Cannotopenfile!
\n");exit
(1);}
else{fc(fp);fclose(fp);}
}
voidfc(fp1)
FILE*fp1;
{charc;
while((c=fgetc(fp1))!
='#')putchar(c);
}
四、程序填空(每空2分,共14分)
1、下面程序求矩阵a的主对角线元素之和,请填空。
main()
{inta[3][3]={2,4,6,8,10,12,14,16,18};
intsum=0,i,j;
for(i=0;i<3;①)
for(j=0;②;j++)
if(i==j)sum=sum+③;
printf("sum=%d\n",sum);
}
2、下列函数coy把字符数组S2中的全部字符复制到字符数组S1中,复制时’\0’也要复制过去,’\0’后面的字符不用。
coy(chars1[],chars2[])
{inti;
for(i=0;s2[i]!
=①;i++)
s1[i]=s2[i];
②;
}
3、下面程序的功能是将字符串a中的下标为奇数的元素由小到大排序,其他元素不变,请填空。
main()
{chara[]="students",t;inti,j;
for(i=1;i<7;i+=2)
for(j=i+2;j<8;①)
if(②)
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
1.设x的值为15,n的值为2,则表达式x%=(n+=3)运算后,x的值为( )。
2.设inta=7,b=9,t;执行完表达式t=(a>b)?
a:
b后,t的值是()。
3.下面程序段的输出结果是()。
inta=1234;a=a&0377;printf(“%d%o\n”,a,a);
4.a数组定义如下,按照内存排列顺序,a数组中的所有元素是()。
chara[3];
5.设有以下宏定义,则执行赋值语句a=PP*20;(a为int型变量)后,a的值是()。
#definePR80
#definePPPR+403
6.在C程序中,可以通过三种运算方式为指针变量赋地址值,它们是:
()、()和()。
7.在C文件中,数据存在的两种代码形式是()和()。
8.C语言中调用()函数打开文件,调用()函数关闭文件,调用()函数可实现文件的随机读写。
9.若有inta[3]={10,12,30};则a+1是()的地址,*(a+2)=()。
二判断对错(5分,对的划“√”,错的划“×”)
1.在TurboC中,整型数据在内存中占2个字节。
()
2.表达式1/4+2.75的值是3。
()
3.结构体类型只有一种。
()
4.函数若无返回值,则它一定无形参。
()
5.C语言只能处理文本文件和二进制文件。
()
三选择题(20分)
1.设inta=12;表达式a+=a-=a*=a的值是( )。
A12B144C0D132
2.以下程序的输出结果是( )。
main()
{inta=011;
printf(“%d\n”,++a);
}
A12B11C10D9
3.以下程序的输出结果是( )。
#defineADD(x)(x)+(x)
main()
{inta=4,b=6,c=7,d=ADD(a+b)*c;
printf(“d=%d”,d);
}
Ad=70Bd=140Cd=280Dd=80
4.下面的选项中正确的赋值语句是(chara[5],*p=a;)( )。
Ap=“abcd”;Ba=“abcd”;C*p=“abcd”;D*a=“abcd”;
5.若k为整形,则while循环执行( )次。
k=2;while(k==0)printf(“%d”,k);k--;printf(“\n”);
A10B9C0D1
6.数组名作为实参传递给形参时,数组名被处理为( )。
A该数组的长度B该数组的元素个数C该数组的首地址D该数组中各元素的值
7.两个指针变量不可以()。
A.相加B比较C相减D指向同一地址
8.若有以下程序段,则值为6的表达式是()。
structst{intn;structst*next;};
staticstructsta[3]={5,&a[1],7,&a[2],9,‘\0’},*p;p=&a[0];
Ap++->nBp->n++C(*p).n++D++p->n
9.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。
Afp=fopen("file","r");Bfp=fopen("file","w");
Cfp=fopen("file","r+");Dfp=fopen("file","w+");
四写出下列程序的运行结果。
(28分)
1.main()
{inta[6]={10,6,23,-90,0,3},i;
invert(a,0,5);
for(i=0;i<6;i++)printf(“%d,”,a[i]);
printf(“\n”);
}
invert(int*s,inti,intj)
{intt;
if(i {invert(s,i+1j-1); t=*(s+i);*(s+i)=*(s+j);*(s+j)=t; } } 2.f1(inta) {intb=0;staticintc=3; b+=1;c++; return(a+b+c); } main() {inta=1,i; chars1[10]=“java”,s2[10]=“basic”,s[10]; for(i=0;i<3;i++)printf("%d",f1(a)); printf(“\n”); if(strcmp(s1,s2)){strcpy(s,s1);puts(s);} printf(“%d,%s\n”,strlen(s2),strcat(s2,s1)); } 3.#defineMAX100 main() {intf[MAX],i,j,k=2,m=5; for(i=0;i<=m;i++)f[i]=1;f[k-1]=2; for(i=k;i<=m;i++) for(j=i-k;j<=i-1;j++)f[i]+=f[j]; printf("%d%5d%5d\n",k,m,f[m]); } 五阅读下列程序,在处填入适当内容,使程序完整。 (32分) 1.求100~200间的全部素数。 (1) main() {intm,k,i,n=0; for(m=101;m<=200;m+=2) {if(n%10==0)printf("\n"); k=sqrt(m); for(i= (2);i<=k;i++)if(m%i==0)(3); if(i==(4)) {printf("%d",m);n++;} } } 2.用选择法对数组中的10个字符按由大到小排序。 voidsort( (1)) chara[];intn; {inti,j,k; chart; for(i=0;i { (2); for(j=i+1;j if((3))k=j; t=a[k];a[k]=a[i];a[i]=t;} } main() {chars[10]; inti; for(i=0;i<10;i++)scanf(“%c”,&s[i]); (4); printf(“thesortedarray: \n”); for(i=0;i<10;i++) printf(“%c”,(5)); printf(“\n”); } 33.输入3×4数组,用指针方法实现将每行中的最小数与第0列元素对调。 main() {inta[3][4],i,j,*p=a[0]; for(i=0;i<3;i++) for(j=0;j<4;j++)scanf(“%d”,p++);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C卷.docx
![提示](https://static.bingdoc.com/images/bang_tan.gif)