9.设整型变量m,n,a,b,c,d均为1,执行“( m=a>b)&&(n=a>b)”后m,n的值是( )
①0,0 ②0,l ③1,0 ④1 ,l
「解」表达式(m=a >b)&&(n=a >b)是一个逻辑表达式,它的计算过程是先计算逻辑与的左分量(m=a>b,其中又是先计算a>b.因a>b不成立,结果为0,将0赋给变量m,最后逻辑与的
6.函数调用“strcat(strcpy(strl,str2),str3)”的功能是( )
①将字符串strl复制到字符串str2中后再连接到字符串str3之后
②将字符串strl连接到字符串str2中后再复制到字符率str3之后
③将字符串str2复制到字符串strl中后再将字符串str3连接到字符串strl之后
④将字符串str2连接到字符率strl之
4.若有说明语句“int a[10],*p=a;”,对数组元素的正确引用是( )
①a[p] ②P[a]
③*(P+2) ④P+2
「解」在 C语言中,约定数组名单独出现在表达式中时,它表示数组首元素的指针。有int a[10] ,则a可以作为a[0]使用。另有整型指针变量p,代码p=a实现p指向数组a的首元素。则表达式*(p+2)是引用数
4.在函数内,说明变量时,若省略存储类型符,系统默认其为_____存储类别,该存储类别的类型符为_____.
「解」在函数内,说明变量时,若省略存储类型符,系统就默认其为自动存储类别,该存储类别用auto标识。
5.无符号基本整型的数据类型符为_,双精度实型数据类型符为_,字符型数据类型符为,。
「解」无
(3) 用do-while循环实现的程序
# include
main() /*用do-while循环*/
{ int i, k=0 ;
i=1;
do{
if(k++%5==0) /*每行五个*/
printf(“\n”);
printf(“=*==]”,i,i,i*i);
1++;
} while(<=100);
printf(“\n”);
}
4.1 单项
8.下面的程序段所表示的数学函数关系是( )
y=-l;
if( x!= 0)if(x>0)y=l; else y=0 ;
1(x<0) 1(x<0)
① y= { 0(x= 0) ② y={-l(X=0)
1(X>0) 0(X>0)
o(X< 0) -l(X< 0)
③ y= {-1(x= 0) ④
5.下面程序的功能是将一个字符串str的内容颠倒过来,请填空。
# include
main()
{int i, j,_____________;
char str[]={“1234567”};
for(i=0,j=strlen(str); i<J;I++,J++)
{ k=str; str=str[j]; str[j]=k;&#
9.设有代码“int(*ptr)[10];”,其中的ptr是( )
①10个指向整型变量的指针
②指向10个整型变量的函数指针
③一个指向具有10个元素的一维数组的指针
④具有10个指针元素的一维数组
「解」代码“int(*ptr)[10];”的分析过程是,因圆括号,括号内的ptr先与字符*结合,字符*修饰标识符ptr是一
2.使用“Scanf(”X=%f,y=%f“,&x,y)”,要使 X,y均为1.25,正确的输入是( )
①1.25,1.25 ②1.25 1.25 ③x=1.25,y=1.25 ④X=1.25 y=1.25
「解」格式输入函数的格式字符串中的字符可以分成三类:空格类字符、其它普通字符和格式转换说明。其中空格类字符用来跳过一个空格类字符序列,直至下一个
7.设有以下定义和语句,则*(*(p+2)+l)的值为__________.
int a[3][2]={10,20,30,40,50,60},(*p)[2];
p= a;
「解」上述代码定义3行2列的二维数组a ,定义指向两个元素的一维数组指针p,并让p指向二维数组a的首行。则代码*(*(p+2)+l)中的p+2指向二维数组a的第2行a[2],*(p+2)指向a