C串讲.docx
- 文档编号:26247101
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:21
- 大小:21.35KB
C串讲.docx
《C串讲.docx》由会员分享,可在线阅读,更多相关《C串讲.docx(21页珍藏版)》请在冰豆网上搜索。
C串讲
(27)设x,y,z,t均为int型变量,则执行以下语句后,t的值为
x=y=z=1;
t=++x||++y&&++z;
A)不定值B)2C)1D)0
(28)设i是int型变量,f是float型变量,用下面的语句给这两个变量输入值:
scanf("i=%d,f=%f",&i,&f);
为了把100和765.12分别赋给i和f,则正确的输入为
A)100765.12B)i=100,f=765.12
C)100765.12D)x=100y=765.12
(33)设j为int型变量,则下面for循环语句的执行结果是
for(j=10;j>3;j--)
{if(j%3)j--;
--j;--j;
printf("%d",j);
}
A)63B)74C)62D)73
(34)设有以下宏定义:
#defineN3
#defineY(n)((N+1)*n)
则执行语句:
z=2*(N+Y(5+1));后,z的值为
A)出错B)42C)48D)54
(36)设有如下定义:
intarr[]={6,7,8,9,10};
int*ptr;
则下列程序段的输出结果为
ptr=arr;
*(ptr+2)+=2;
printf("%d,%d\n",*ptr,*(ptr+2));
A)8,10B)6,8C)7,9D)6,10
(38)执行以下程序段后,m的值为
inta[2][3]={{1,2,3},{4,5,6}};
intm,*p;
p=&a[0][0];
m=(*p)*(*(p+2))*(*(p+4));
A)15B)14C)13D)12
(41)有下列程序
#include
main()
{union
{intk;
chari[2];
}*s,a;
s=&a;
s-i[0]=0x39;s-i[1]=0x38;
printf("%x\n",s-k);
}
输出结果是
A)3839B)3938C)380039D)390038
(42)有以下程序
#include
main()
{
inta,b,c=246;
a=c/100%9;
b=(-1)&&(-1);
printf("%d,%d\n",a,b);
}
输出结果是
A)2,1B)3,2C)4,3D)2,-1
(44)有以下程序
#include
structstu
{intnum;
charname[10];
intage;
};
voidfun(structstu*p)
{
printf("%s\n",(*p).name);}
main()
{
structstustudents[3]={{9801,"Zhang",20},
{9802,"Wang",19},
{9803,"Zhao",18}};
fun(students+2);
}
输出结果是
A)ZhangB)ZhaoC)WangD)18
(45)设有以下说明和定义:
typedefunion
{
longi;
intk[5];
charc;
}DATE;
structdate
{
intcat;
DATEcow;
doubledog;
}too;
DATEmax;
则下列语句的执行结果是
printf("%d",sizeof(structdate)+sizeof(max));
A)26B)30C)18D)8
(46)有以下程序
main()
{chara[]="programming",b[]="language";
char*p1,*p2;
inti;
p1=a;p2=b;
for(i=0;i<7;i++)
if(*(p1+i)==*(p2+i))printf("%c",*(p1+i));
}
输出结果是
A)gmB)rgC)orD)ga
(50)有以下程序
#include"atdio.h"
intabc(intu,intv);
main()
{
inta=24,b=16,c;
c=abc(a,b);
printf('%d\n",c);
}
intabc(intu,intv)
{
intw;
while(v)
{
w=u%v;
u=v;
v=w
}
returnu;
}
输出结果是
A)6B)7C)8D)9
(6)设x和y均为int型变量,且x=1,y=2,则以下表达式的值为___(6).
1.0+x/y
(7)设i,j,k均为int型变量,则执行完下面的for循环后,k的值为___(7).
for(i=0,j=10;i<=j;i++,j--)k=i+j;
(8)设有以下定义的语句:
inta[3][2]={10,20,30,40,50,60},(*p)[2];
p=a;
则*(*(p+2)+1)值为___(8).
(9)以下程序的输出结果是___(9).
#include
intfun(intx,inty)
{
staticintm=0,i=2;
i+=m+1;
m=i+x+y;
returnm
}
main()
{
intj=4,m=1,k;
k=fun(j,m);printf("%d,",k);
k=fun(j,m);printf("%d\n",k);
}
(10)函数fun的功能是:
使一个字符串按逆序存放,请填空
voidfun(charstr[])
{charm;inti,j;
for(i=0,j=strlen(str);i<_j___(10);i++,j--)
{
m=str[i];
str[i]=_str[j-1]_(11);
str[j-1]=m;
}
printf("%s\n",str);
}
(11)以下程序的功能是:
从键盘上输入一行字符,存入一个字符数组中,然后输出该
字符串,请填空.
#include"ctype.h"
#include"stdio.h"
main()
{charstr[81],*sptr;
inti;
for(i=0;i<80;i++)
{str[i]=getchar();
if(str[i]=='\n')break;
}
str[i]=____(12);
sptr=str;
while(*sptr)putchar(*sptr____(13));
}
(12)以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串中
第一个不相同字符的ASCII码之差.例如:
输入的两个字符串分别为abcdef和
abceef,则输出为-1.请填空.
#include
main()
{charstr[100],str2[100],c;
inti,s;
printf("\ninputstring1:
\n");gest(str1);
printf("\ninputstring2:
\n");gest(str2);
i=0;
while((strl[i]==str2[i]&&(str1[i]!
=____(14)))
i++;
s=____(15);
printf("%d\n",s);
}
(13)以下程序的功能是:
从键盘上输入一个字符串,把该字符串中的小写字母转换
为大写字母,输出到文件test.txt中,然后从该文件读出字符串并显示出来.请
填空.
#include
main()
{FILE*fp;
charstr[100];inti=0;
if((fp=fopen("text.txt",____(16)))==NULL)
{printf("can'topenthisfile.\n");exit(0);}
printf("inputastring:
\n");gest(str);
while(str[i])
{if(str[i]='a'&&str[i]<='z')
str[i]=____(17);
fputc(str[i],fp);
i++;
}
fclose(fp);
fp=fopen("test.txt",____(18));
fgets(str,100,fp);
printf("%s\n",str);
fclose(fp);
}
(14)以下程序可以把从键盘上输入的十进制数(long型)以二到十六进制形式输出
请填空.
#include.
main()
{charb[16]={'0','1','2','3','4','5','6','7','8','9','A','B','C'
'D','E','F'};
intc[64],d,i=0,base;
longn;
printf("enteranumber:
\n");scanf("%ld",&n);
printf("enternewbase:
\n");scanf("%d",&base);
do
{c[i]=____(19);
i++;n=n/base;
}while(n!
=0);
printf("transmitenewbase:
\n");
for(--i;i=0;--i)
{d=c[i];
printf("%c",b____(20);
}
}
(16)设x、y、z和k都是int型变量,则执行表达式:
x=(y=4,z=16,k=32)后,x的值为
A)4B)16C)32D)52
(17)设有如下的变量定义:
inti=8,k,a,b;
unsignedlongw=5;
doublex=1,42,y=5.2;
则以下符合C语言语法的表达式是
A)a+=a-=(b=4)*(a=3)B)x%(-3);
C)a=a*3=2D)y=float(i)
(18)假定有以下变量定义:
intk=7,x=12;
则能使值为3的表达式是
A)x%=(k%=5)B)x%=(k-k%5)C)x%=k-k%5D)(x%=k)-(k%=5)
(20)设x和y均为int型变量,则以下语句:
x+=y,y=x-y;x-=y;的功能是
A)把x和y按从大到小排列B)把x和y按从小到大排列
C)无确定结果D)交换x和y中的值
(21)以下程序的输出结果是
A)1010B)1212C)1110D)1113
main()
{inta=12,b=12;
printf("%d,%d\n",--a,++b);
}
(22)以下程序运行后,输出结果是
A)cdeB)字符c的ASCII码值C)字符c的地址D)出错
main()
{char*s="abcde";
s+=2;
printf("%ld\n",s);
}
(23)以下程序输出结果是
A)7B)6C)5D)4
main()
{intm=5;
if(m++>5)printf("%d\n",m);
esleprintf("%d\n",m--);
}
(25)在执行以下程序时,如果从键盘上输入,ABCdef<回车>,则输出为
A)ABCdefB)abcDEFC)abcD)DEF
#include
main()
{charch;
while((ch=getchar())!
='\n')
{if(ch>='A'&&ch<='Z')ch=ch+32;
elseif(ch>='a'&&ch<='z')ch=ch-32;
printf("%c",ch);
}
printf("\n");
}
(28)执行以下程序后,输出的结果是
A)-1B)1C)8D)0
main()
{inty=10;
do{y--;}while(--y);
printf("%d\n",y--);
}
(29)在下列选项中,没有构成死循环的程序段是
A)inti=100B)for(;;);
while
(1)
{i=i%100+1;
if(i>100)break;
}
C)intk=1000;D)ints=36;
do{++k;}while(k);while(s);--s;
(31)以下程序运行后,如果从键盘上输入ABCDE<回车>,则输出结果为
A)8B)7C)6D)5
#include
#include
func()
{intnum=0;
while(*(str+num)!
='\0')num++;
return(num);
}
main()
{charstr[10],*p=str;
gets(p);printf("%d\n",func(p));
}
(32)运行以下程序后,如果从键盘上输入china#<回车>,则输出结果为
A)2,0B)5,0C)5,5D)2,5
#include
mair()
{intv1=0,v2=0;
charch;
while((ch=getchar())!
='#')
switch(ch)
{case'a';
case'0';
default;v1++;
case'h';v2++;
}
printf("%d,%d\n",v1,v2);
}
(34)下面程序运行的结果是
A)2ba56B)6521C)6D)62
main()
{charch[7]={65ab21"};
inti,s=0
for(i=0;ch[i]>='0'&&ch[i]<='9';i+=2)
s=10*s+ch[i]-'0';
printf("%d\n",s);
}
(38)以下程序运行后,输出结果是
A)49.5B)9.5C)22.0D)45.0
#include
#definePT5.5
#defineS(x)PT*x*x
main()
{inta=1,b=2;
printf("%4.1f\n",S(a+b));
}
(39)以下程序运行后,输出结果是
A)ABCDEFGB)CDGC)abcdefghD)abCDefGh
main()
{staticchara[]="ABCDEFGH",b[]="abCDefGh";
char*p1,*p2;
intk;
p1=a;p2=b;
for(k=0;k<=7;k++)
if(*(p1+k)==*(p2+k))
printf("%c",*(p1+k));
printf("\n");
)
(40)以下程序运行后,a的值是
A)4B)1C)0D)运行时出错,a无定值
main()
{inta,k=4,m=6,*p1=&k,*p2=&m;
a=p1==&m;
printf("%d\n",a);
}
(42)以下程序运行后,输出结果是
A)6385B)22C)33D)693825
main()
{charch[2][5]={'693","825"},*p[2];
inti,j,s=0;
for(i=0;i<2;i++)p[i]=ch[i];
for(i=0;i<2;i++)
for(j=0;p[i][j]='0'&&p[i][j]<='9';j+=2)
s=10*s+p[i][j]-'0';
printf("%d\n",s);
}
(43)以下程序运行后,输出结果是
A)1B)7C)9D)11
fut(int**s,intp[2][3])
{**s=p[1][1];}
main()
{inta[2][3]={1,3,5,7,9,11},*p;
p=(int*)malloc(sizeof(int));
fut(&p,a);
printf("%d\n",*P);
}
(31)下列程序的输出结果是
A)4B)6C)8D)10
intb=2;
intfunc(int*a)
{b+=*a;return(b);}
main()
{inta=2,res=2;
res+=func(&a);
printf("%d\n",res);
}
(33)下列程序的输出结果是
A)5B)6C)7D)8
structabc
{inta,b,c;};
main()
{structabcs[2]={{1,2,3},{4,5,6}};intt;
t=s[0].a+s[1].b;
printf("%d\n",t);
}
(36)下列程序执行后的输出结果是
A)-32767B)FFFEC)-1D)-32768
main()
{charx=0xFFFF;printf("%d\n",x--);}
(40)语句printf("a\bre\'hi\'y\\\bou\n");的输出结果是
A)a\bre\'hi\'y\\\bouB)a\bre\'hi\'y\bou
C)re'hi'youD)abre'hi'y\bou
(说明:
'\b'是退格符)
(44)下列程序执行后的输出结果是
A)you&neB)youC)meD)err
mai()
{chararr[2][4];
strcpy(arr,"you");strcpy(arr[1],"me");
arr[0][3]='&';
printf("%s\n",arr);
}
(47)下列程序执行后的输出结果是
A)6B)8C)10D)12
#defineMA(x)x*(x-1)
main()
{inta=1,b=2;printf("%d\n",MA(1+a+b));}
(50)执行下列程序时输入:
123<空格>456<空格>789<回车>,输出结果是
A)123,456,789B)1,456,789
C)1,23,456,789D)1,23,456
main()
{chars[100];intc,i;
scanf("%c",&c);scanf("%d",&i);scanf("%s",s);
printf("%c,%d,%s\n",c,i,s);
}
(10)下面程序的功能是:
计算1到10之间奇数之和及偶数之和,请填空。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<10;i+=2)
{a+=i;
[12];
------
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
(11)下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;[13];i++)
------
{j=i*10+6;
if([14])continue;
------
printf("%d",j);
}
}
(12)下面程序的功能是:
将字符数组a中下标值为偶数的元素从小到大排列,其它元
素不变。
请填空。
#include
#include
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;[15])
------
if([16])
------
{t=a[i];a[i]=a[j];a[j]=t;}
puts(a);
printf("\n");
}
(13)以下程序的运行结果是[17]
------
#include
main()
{intk=4,m=1,p;
p=func(k,m);printf("%d,",p);
p=func(k,m);printf("%d\n",p);
}
func(inta,intb)
{staticintm=0,i=2;
i+=m+1;
m=i+a+b;
returnm;
}
(10)下面程序的功能是:
计算1到10之间奇数之和及偶数之和,请填空。
#include
main()
{inta,b,c,i;
a=c=0;
for(i=0;i<10;i+=2)
{a+=i;
[12];
------
c+=b;
}
printf("偶数之和=%d\n",a);
printf("奇数之和=%d\n",c-11);
}
(11)下面程序的功能是:
输出100以内能被3整除且个位数为6的所有整数,请填空。
#include
main()
{inti,j;
for(i=0;[13];i++)
------
{j=i*10+6;
if([14])continue;
------
printf("%d",j);
}
}
(12)下面程序的功能是:
将字符数组a中下标值为偶数的元素从小到大排列,其它元
素不变。
请填空。
#include
#include
main()
{chara[]="clanguage",t;
inti,j,k;
k=strlen(a);
for(i=0;i<=k-2;i+=2)
for(j=i+2;j<=k;[
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 串讲