---------------------------练****补充题型-----------------------------------------
#include <>
main( )
{ char *p="22113213";// 一个指针若指向串首字符,各字符引用可用指针名带下标形式引用
p[0]=’2’,p[1]=’2’,...,p[7]=’3’,p[8]=’\0’, 注意: ‘0’的ASCII为0
int s[3]={0,0,0},m,i;
for(m=0;p[m];m++) //若p[m]不为0(即为真) 执行循环体,当m=8时,p[m]=’\0’=0 循环停
{ switch(p[m])
{ case ‘1':i=0; //若p[m]==’1’, 从该入口进来,执行下面的所有语句,最终
i=2 。该switch语句,是根据p[m]的值,确定i等于几
case ‘2':i=1;
case ‘3':i=2;
}
s[i]++;// 确定i值后,s[i] 加1
}
for(m=0;m<3;m++) printf("%d ",s[m]);
}
输出结果: (0 0 8 ) ( 该例,不管从哪个入口进入,i=2最后都执行,i最终都等于2
若:每个case后,加break; 结果就不一样,为:3 3 2 )
2. #include <>
void main()
{ char s[]=“ABCDEFGH”;
int i,m=0;
for(i=0;s[i]!=‘\0’;i++) // s[i]==‘\0’表示当前s[i]为串尾
if(s[i]%2!=0) s[m++]=s[i]; // 留下ASCII为奇数的字符
s[m]=‘\0’;// 给留下的字符构成的串,加上结束符
printf(“%s”,s);
}
输出结果: ACEG
3. #include <>
int f_T_count(char s[][10])
{ int numT=0,i;
for(i=0;i<7;i++)
if(s[i][0]=='T') numT++; //统计各行存的串中,首字符为T的串有几个
return numT;
}
int main()
{ char s[][10]={"Mon", "Tue", "Wed", "Thu", "Fri", "Sat", "Sun" } ;//赋初值
后,该二维数组是几行?(7行)
printf("%d\n", f_T_count( s ) ); //输出函数值,即统计个数
return 0;
}
输出结果: 2
*4. int a; a=(1+2,3,5); 执行后,a等于几?------------------------ =右边是逗号表达式,值=5,所以a=5
printf(“%d”, (2,4,3+7) ); 的输出结果是多少?------------------------------- 10
*5. 局部变量的存储类别,若定义为静态的: 其存储空间保留时间长,相当于延长了它的生存期
全局变量的存储类别,若定义为静态的: 它只能在本文件中使用,限定了
算机--程序设计基础--补增--习题 来自淘豆网www.taodocs.com转载请标明出处.