C语言总复习资料.docx
- 文档编号:3639722
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:46
- 大小:37.24KB
C语言总复习资料.docx
《C语言总复习资料.docx》由会员分享,可在线阅读,更多相关《C语言总复习资料.docx(46页珍藏版)》请在冰豆网上搜索。
C语言总复习资料
一、单项选择题(每小题2分,共计50分)
1.编写C语言源程序后要通过()和连接才能在机器上运行。
(A)编辑(B)编写(C)汇编(D)编译
2.如有语句inta=5,则下列说法正确的是()。
(A)a/2的结果为2.5(B)a/2的结果为2(C)a/2.0的结果为2(D)a%2结果为0
3.对应于scanf(“%d+%d”,&a,&b);的正确输入形式是()。
(A)3+4↙(B)3,+,4↙(C)3,4↙(D)3,+4↙
4.有以下程序
voidmain(){inti,s=0;
for(i=0;i<10;i+=2)s+=i+1;
printf(“%d\n”,s);}
程序执行后的输出结果是()。
(A)自然数1~9的累加和(B)自然数1~10的累加和
(C)自然数1~9中的奇数之和(D)自然数1~10中的偶数之和
5.有以下程序
voidmain()
{inti;
for(i=0;i<3;i++)
switch(i)
{ case0:
printf("%d",i);
case1:
printf("%d",i);break;
default:
printf("%d",i);
}}程序运行后的输出结果是()
(A)022111(B)0012(C)000122(D)012
6.要打开一个已存在的非空文件"file"用于修改,选择正确的语句()。
(A)fp=fopen("file","r");(B)fp=fopen("file","w");
(C)fp=fopen("file","r+");(D)fp=fopen("file","w+");
7.以下叙述中正确的是()。
A)用C程序实现的算法必须要有输入和输出操作
B)用C程序实现的算法可以没有输出但必须要输入
C)用C程序实现的算法可以没有输入但必须要有输出
D)用C程序实现的算法可以既没有输入也没有输出
8.以下不能定义为用户标识符的是()。
A)MainB)_0C)_intD)sizeof
9.以下选项中不能作为合法常量的是()。
A)1.234e04B)1.234e0.4C)1.234e+4D)1.234e0
10.数字字符0的ASCII值为48,若有以下程序
main()
{chara='1',b='2';
printf("%c,",b++);
printf("%d\n",b-a);
}程序运行后的输出结果是()。
A)3,2B)50,2C)2,2D)2,50
11.有以下程序
成功接收文件
main()
{intm=12,n=34;
printf("%d%d",m++,++n);
printf("%d%d\n",n++,++m);}
程序运行后的输出结果是()。
A)12353514B)12353513C)12343514D)12343513
12.有定义语句:
intb;charc[10];,则正确的输入语句是()。
A)scanf("%d%s",&b,&c);B)scanf("%d%s",&b,c);
C)scanf("%d%s",b,c);D)scanf("%d%s",b,&c);
13.有以下程序
main()
{intm,n,p;
scanf("m=%dn=%dp=%d",&m,&n,&p);
printf("%d%d%d\n",m,n,p);
}若想从键盘上输入数据,使变量m中的值为123,n中的值为456,p中的值为789,则正确的输入是()。
A)m=123n=456p=789B)m=123n=456p=789C)m=123,n=456,p=789D)123456789\
14.有以下程序
main()
{inta,b,d=25;
a=d/10%9;
b=a&&(-1);
printf("%d,%d\n",a,b);
}程序运行后的输出结果是()。
A)6,1B)2,1C)6,0D)2,0
15.有以下程序
main()
{inti=1,j=2,k=3;
if(i++==1&&(++j==3||k++==3))
printf("%d%d%d\n",i,j,k);}
程序运行后的输出结果是()。
A)123B)234C)223D)233
16.若整型变量a、b、c、d中的值依次为:
1、4、3、2。
则条件表达式a>b||c>d的值为()
A)1B)0C)3D)4
17.有以下程序
main(){
intp[8]={11,12,13,14,15,16,17,18},i=0,j=0;
while(i++<7)if(p[i]%2)j+=p[i];
printf("%d\n",j);
}程序运行后的输出结果是()。
A)42B)45C)56D)60
18.有以下程序
main(){chara[7]="a0\0a0\0";inti,j;
i=sizeof(a);j=strlen(a);
printf("%d%d\n",i,j);}
程序运行后的输出结果是()。
A)22B)76C)72D)62
19.以下能正确定义一维数组的选项是()。
A)inta[5]={0,1,2,3,4,5};B)chara[]={0,1,2,3,4,5};
C)chara={'A','B','C'};D)inta[5]="0123";
20有以下程序
intf1(intx,inty){returnx>y?
x:
y;}
intf2(intx,inty){returnx>y?
y:
x;}
main(){inta=4,b=3,c=5,d=2,e,f,g;
e=f2(f1(a,b),f1(c,d));f=f1(f2(a,b),f2(c,d));
g=a+b+c+d-e-f;
printf("%d,%d,%d\n",e,f,g);
}程序运行后的输出结果是()。
A)4,3,7B)3,4,7C)5,2,7D)2,5,7
21.已有定义:
chara[]="xyz",b[]={'x','y','z'};,以下叙述中正确的是()。
A)数组a和b的长度相同B)a数组长度小于b数组长度
C)a数组长度大于b数组长度D)上述说法都不对
22.有以下程序
voidf(int*x,int*y)
{intt;
t=*x;*x=*y;*y=t;}
main()
{inta[8]={1,2,3,4,5,6,7,8},i,*p,*q;
p=a;q=&a[7];
while(p{f(p,q);p++;q--;}
for(i=0;i<8;i++)printf("%d,",a[i]);
}程序运行后的输出结果是()。
A)8,2,3,4,5,6,7,1,B)5,6,7,8,1,2,3,4,C)1,2,3,4,5,6,7,8,D)8,7,6,5,4,3,2,1,
23有以下程序
main(){
inta[3][3],*p,i;
p=&a[0][0];
for(i=0;i<9;i++)p[i]=i;
for(i=0;i<3;i++)printf("%d",a[1][i]);}程序运行后的输出结果是()。
A)012B)123C)234D)345
24以下叙述中错误的是()。
A)对于double类型数组,不可以直接用数组名对数组进行整体输入或输出
B)数组名代表的是数组所占存储区的首地址,其值不可改变
C)当程序执行中,数组元素的下标超出所定义的下标范围时,系统将给出“下标越界”出错信息
D)可以通过赋初值的方式确定数组元素的个数
25为了判断两个字符串s1和s2是否相等,应当使用()。
A)if(s1==s2)B)if(s1=s2)C)if(strcpy(s1,s2))D)if(strcmp(s1,s2))
二、阅读程序填空(每小题3分,共30分)
1.以下程序运行时,若从键盘输入:
102030<回车>,输出的结果是
(1)。
#include
main() {inti=0,j=0,k=0;
scanf("%d%*d%d",&i,&j,&k);
printf("%d%d%d\n",i,j,k);}
2.以下程序运行后的输出结果是
(2)。
#defineS(x)4*x*x+1
main(){inti=6,j=8;
printf("%d\n",S(i+j));}
3.以下程序运行后的输出结果是(3)。
main(){inta=3,b=4,c=5,t=99;
if(bif(aprintf("%d%d%d\n",a,b,c)}
4.以下程序运行后的输出结果是(4)。
main(){inta,b,c;
a=10;b=20;c=(a%b<1)||(a/b>1);
printf("%d%d%d\n",a,b,c);}
5以下程序运行后的输出结果是(5)。
main(){charc1,c2;
for(c1='0',c2='9';c1printf("\n");}
6.已知字符A的ASCII代码值为65,以下程序运行时若从键盘输入:
B33<回车>,则输出结果是(6)。
#include
main(){chara,b;
a=getchar();scanf("%d",&b);
a=a-'A'+'0';b=b*2;
printf("%c%c\n",a,b);}
7.以下程序中,fun函数的功能是求3行4列二维数组每行元素中的最大值。
请填空。
voidfun(int,int,int(*)[4],int*);
main(){inta[3][4]={{12,41,36,28},{19,33,15,27},{3,27,19,1}},b[3],i;
fun(3,4,a,b);
for(i=0;i<3;i++)printf("%4d",b[i]);
printf("\n");}
voidfun(intm,intn,intar[][4],int*br)
{inti,j,x;
for(i=0;i{x=ar[i][0];
for(j=0;j(7)=x; }}
10.以下程序运行后的输出结果是(10)。
#include
main(){charch[]="abc",x[3][4];inti;
for(i=0;i<3;i++)strcpy(x[i],ch);
for(i=0;i<3;i++)printf("%s",&x[i][i]);
printf("\n");}
8.以下程序运行后的输出结果是(8)。
voidswap(intx,inty)
{intt;
t=x;x=y;y=t;printf("%d%d",x,y);}
main(){inta=3,b=4;
swap(a,b);printf("%d%d",a,b);}
9.以下程序运行后的输出结果是(9)。
#include
voidfun(char*s,intp,intk){inti;
for(i=p;i}
main(){chars[]="abcdefg";
fun(s,3,strlen(s));puts(s);}
三、程序改错题(本题共20分)
下面程序的功能是对a数组中的元素按从大到小的顺序排序。
其中有5处错误(包括语法错误和逻辑错误),请找出其中的错误,并改正之。
(每找对1个错误位置,得2分,每修改正确1个错误,再得2分。
)
#include
#defineN10;
main()
{inta[N]={2,17,8,3,24,53,82,1,29,101};
inti,j,k,t;
for(i=0;i<9;i++)
{k=i;
for(j=i+1;j<10;j++)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 复习资料