C语言程序设计基础习题阅读题.docx
- 文档编号:4681273
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:17
- 大小:17.31KB
C语言程序设计基础习题阅读题.docx
《C语言程序设计基础习题阅读题.docx》由会员分享,可在线阅读,更多相关《C语言程序设计基础习题阅读题.docx(17页珍藏版)》请在冰点文库上搜索。
C语言程序设计基础习题阅读题
C语言程序设计基础习题(阅读类)(201512)
(1)数据类型、运算符、表达式、位运算
1、下面程序的输出结果是
#include
voidmain()
{
floata;
a=1/100000000;
printf("%g\n",a);//0
inta1=111,b1;
a1=a1^0;
printf("%d,%o\n",a1,a1);//111157
b1=a1^1;
printf("%d,%o\n",b1,b1);//110156
intx=10;
{intx=20;
printf("%d,",x);//20
}
printf("%d\n",x);//10
unsignedintn;
inti=-521;
n=i;
printf("n=%u,%d\n",n,n);
//n=4294966775,-521
inty=10,z=10;
printf("%d%d\n",y--,--z);//109
printf("%d%d\n",--y,z--);//89
printf("%d%d\n",y,z);//88
intm=1;
printf("%d%d%d\n",m,m++,m--);//111
printf("%d%d%d\n",++m,m,m);//211
printf("%d%d%d\n",m,m,++m);//333
printf("%d%d%d\n",m--,m,++m);//444
printf("%d%d%d\n",m,m,++m);//444
}
2、下面程序的输出结果是
#include
voidmain()
{inta=1,i=a+1;
intx,y,z1,z2;
do
{x=!
i;
printf("x=%d\n",x);//x=0
y=~i;
printf("y=%d\n",y);//y=-3
z1=!
~i;
printf("z1=%d\n",z1);//z2=0
z2=~!
i;
printf("z2=%d\n",z2);//z2=-1
i++;//i=3
printf("i=%d\n",i++);//i=3
~i++;//i=4
printf("i=%d\n",i);//i=5
++i;
printf("i=%d\n",i);//i=6
a++;
printf("a=%d\n",a);//a=2
}while(!
~i++>3);
printf("i=%d\n",i);//i=7
printf("a=%d\n",a);//a=2
}
(2)条件和循环控制
3、下面程序的输出结果是
#include
voidmain()
{chars[12]="abook";
printf("%.4s\n",s);//abo
inta=10,b=50,c=30;
if(a>b)a=b;
b=c;
c=a;
printf("a=%db=%dc=%d\n",a,b,c);
//a=10b=30c=10
}
4、下面程序的输出结果是
#include
voidmain()
{
inta=0,b=1,c=0,d=20;
if(a)d=d-10;
elseif(!
b)
if(!
c)d=15;
elsed=25;
printf("d=%d\n",d);//d=20
}
5、下面程序的输出结果为
#include
voidmain()
{inta=1,b=0;
switch(a)
{case1:
switch(b)
{case0:
printf("**0**");break;
case1:
printf("**1**");break;
}
case2:
printf("**2**");break;
}//**0****2**
printf("\n");
char*s="12134211";
intv1=0,v2=0,v3=0,v4=0,k;
for(k=0;s[k];k++)
{printf("k=%d,s[k]=%c\n",k,s[k]);
//k=0,1,2,3,4,5,6,7
//s[k]=1,2,1,3,4,2,1,1
switch(s[k])
{case'1':
v1++;//1,1,2,2,2,2,3,4
case'3':
v3++;//1,1,2,3,3,3,4,5
case'2':
v2++;//1,2,3,4,4,5,6,7
default:
v4++;//1,2,3,4,5,6,7,8
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
}
printf("v1=%d,v2=%d,v3=%d,v4=%d\n",v1,v2,v3,v4);
//v1=4,v2=7,v3=5,v4=8
}
6、下面程序的输出是。
#include
voidmain()
{intx=1,y=0,a=0,b=0;
switch(x)
{case1:
switch(y)
{case0:
a++;break;//a=1
case1:
b++;break;
}
case2:
a++;b++;break;
}
printf("a=%d,b=%d\n",a,b);
//a=2,b=1
intnum=0;
while(num<=2)
{num++;
printf("%d",num);
}//123
printf("\n");
printf("%d\n",num);//3
}
7、从键盘上输入"446755"时,下面程序的输出是
#include
voidmain()
{intc;
while((c=getchar())!
='\n')//446755
switch(c-'2')
{case0:
case1:
putchar(c+4);
case2:
putchar(c+4);break;
case3:
putchar(c+3);
default:
putchar(c+2);break;
}
printf("%c\n",c);//88898787
printf("\n");
intk=0;
charc1='A';
do
{switch(c1++)
{case'A':
k++;break;
case'B':
k--;
case'C':
k+=2;break;
case'D':
k=k%2;continue;
case'E':
k=k+10;break;
default:
k=k/3;
}
k++;
}while(c1<'C');
printf("k=%d\n",k);//k=4
}
8、
#include
voidmain()
{intx,i;
for(i=1;i<=50;i++)
{x=i;
if(++x%2==0)
if(++x%3==0)
if(++x%7==0)
printf("%d\n",x);//28
}
printf("\n");
}
(3)数组与函数
9、下面程序的输出结果是
#include
voidmain()
{inti,j,x=0;
for(i=0;i<2;i++)
{x++;
printf("x=%d",x);//x=1x=3
for(j=0;j<-3;j++)
{if(j%2)
continue;
x++;
printf("x=%d",x+10);//x=
}
x++;printf("x=%d\n",x);//x=2x=4
}
printf("\n");
printf("x=%d\n",x);//x=4
}
10、下面程序的输出结果是
#include
voidmain()
{intn[3][3],i,j;
for(i=0;i<3;i++)
for(j=0;j<3;j++)
n[i][j]=i+j;
for(i=0;i<2;i++)
for(j=0;j<2;j++)
n[i+1][j+1]+=n[i][j];
printf("%d\n",n[i][j]);//6
}
11、下面程序的输出结果是
#include
voidmain()
{inta[4][5]={1,2,4,-4,5,-9,3,6,-3,2,7,8,4};
inti,j,n;
n=9;
i=n/5;
j=n-i*5-1;
printf("a[%d][%d]=%d\n",i,j,a[i][j]);
//a[1][3]=-3
}
12、下面程序的输出结果是
#include
#include
f(char*s)
{char*p=s;
while(*p!
='\0')p++;
return(p-s);
}
voidmain()
{printf("%d\n",f("ABCDEF"));//6
charstr[100]="Howdoyoudo";
strcpy(str+strlen(str)/2,"esshe");
printf("%s\n",str);//Howdoesshe
}
13、下面程序的输出结果是
#include
func(inta,intb)
{intc;
c=a+b;
returnc;
}
voidmain()
{intx=6,y=7,z=8,r;
printf("%d%d%d\n",x--,y++,x+y);//6713
r=func((x--,y++,x+y),z--);
printf("r=%d\n",r);//r=21
}
(4)变量类型与存储
14、下面程序的输出结果是
#include
voidfun(int*s)
{staticintj=0;
do
{s[j]+=s[j+1];
}while(++j<2);
}
voidmain()
{intk,a[10]={1,2,3,4,5};
for(k=1;k<3;k++)
fun(a);
for(k=0;k<5;k++)
printf("a[%d]=%d,",k,a[k]);
//a[0]=3,a[1]=5,a[2]=7,a[3]=4,a[4]=5
}
15、下面程序的输出结果是
#include
intk=1;
voidmain()
{voidfun(int);
inti=4;
fun(i);
printf("\n%d,%d",i,k);//4,6
}
voidfun(intm)
{m+=k;k+=m;
{chark='B';
printf("\n%d",k-'A');//1
}
printf("\n%d,%d\n",m,k);//5,6
}
16、下面程序的输出结果是
#include
fun(intn,int*s)
{intf1,f2;
if(n==1||n==2)
*s=1;
else
{printf("n=%ds=%d\n",n,s);
//n=6s=1245052
//n=5s=1244956
//n=4s=1244856
//n=3s=1244756
fun(n-1,&f1);
printf("&f1=%d\n",&f1);
//&f1=1244656
//&f1=1244756
//&f1=1244856
fun(n-2,&f2);
printf("&f2=%d\n",&f2);
//&f2=1244652
//&f2=1244752
//&f2=1244652
*s=f1+f2;
}
}
voidmain()
{intx;
fun(6,&x);
printf("%d\n",x);//8
}
(5)指针、结构体、文件
17、下面程序的输出结果是
voidmain()
{inta[]={1,2,3,4,5,6};
int*p;
p=a;
printf("%d",*p);
printf("%d",*(++p));
printf("%d",*++p);
printf("%d",*(p--));
p+=3;
printf("%d%d",*p,*(a+3));//123354
}
18、指出错误
voidmain()
{inta[3][4]={1,2,3,4,5,6,7,8,9,10,11,12};
int*p=a;
p+=6;
printf("%d",*p);/*①*/
printf("%d",*(*(a+6)));/*②*/
printf("%d",*(a[1]+=2));/*③*/
printf("%d",*(&a[0][0]+6));/*④*/
}
//②句没有语法错误,但是a+6指向数组之外,因为a是a[0]的地址,a+1是a[1]的地址,a+2是a[2]的地址,显然数组a没有a[6]分量。
③句错误,因为a[1]是地址常量,它是a[1][0]的地址,对于地址常量是不可以进行赋值运算的。
19、下面程序的输出结果是
#include
voidmain()
{inta[]={1,2,3,4,5};
intx,y,*p;
p=&a[0];
x=*(p+2);
y=*(p+4);
printf("%d,%d,%d\n",*p,x,y);//1,3,5
}
20、下面程序的输出结果是
voidive(x,n)
intx[],n;
{intt,*p;
p=x+n-1;
while(x
{t=*x;
*x++=*p;
*p--=t;
}
return;
}
voidmain()
{inti,a[]={1,2,3,4,5,6,7,8,9,0};
ive(a,10);
for(i=0;i<10;i++)
printf("%d",a[i]);//0987654321
printf("\n");
}
21、下面程序的输出结果是
#include"string.h"
fun(char*w,intn)
{chart,*s1,*s2;
s1=w;s2=w+n-1;
while(s1 {t=*s1++; *s1=*s2--; *s2=t; } } voidmain() {staticchar*p="1234567"; fun(p,strlen(p)); printf("%s",p);//1711717 } 22、下面程序的输出结果是 #include f(intx,inty) {return(y-x); } main() {inta=5,b=6,c; intf(),(*g)()=f; printf("%d\n",(*g)(a,b));//1 } 23、下面程序的输出结果是 #include main() {inta=1,*p,**pp; pp=&p; p=&a; a++; printf("%d,%d,%d\n",a,*p,**pp);//2,2,2 }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 基础 习题 阅读