二级C语言程序设计模拟试题(二)
一、单项选择题。(每小题1分,共20分)
1、以下程序的输出结果是( D )。(注:备选答案中,_表示空格)
main()
{ printf(“\n*s1=%15s*”,”chinabeijing”);
printf(“\n*s2=%-5s*”,”chi”);
}
A) *s1=chinabeijing_ _ _* B) *s1=chinabeijing_ _ _*
*s2=**chi* *s2=chi_ _*
C) *s1=*_ _chinabeijing* D) *s1=_ _ _chinabeijing*
*s2=_ _chi *s2=chi_ _*
2、若x,y为实数类型的变量,要判断x,y相等,最好使用下列关系表达式( C )。
A) x==y B) x-y==0 C) fabs(x-y)<1e-8 D) labs(x-y)<1e-8
3、若有以下说明和语句,那么对c数组元素的正确引用是( D )。
int c[4][5],(*cp)[5];
cp=c;
A) cp+1 B) (cp+3) C) *(cp+1)+3 D) *(*cp+2)
4、若有以下定义和语句,则输出结果为( B )。
char *sp=”\t\b\\\0English\n”;
printf(“%d”,strlen(sp));
A) 12 B) 3 C) 17 D) 13
5、如下程序运行后m的值为( C )。
#include
void main()
{ int m,n,k;
m=(n=4)+(k=10-7);
printf(“m=%d\n”,m);
}
A) 4 B) 3 C) 7 D) 14
6、若已定义x和y为double类型,则表达式x=2,y=x+10/4的值是( C )。
A) 2 B) 4 C) 4.0 D) 4.5
7、表达式k=(12<10)?4:1?2:3的值为( B )。
A) 1 B) 2 C) 3 D) 4
8、以下不是死循环的语句( D )。
A) for ( ; ; x ++= i); B) while (1) {x++;}
C) for ( i = 10; ; i-- ) sum -= i; D) for ( ; (c = getchar()) != ‘\n’;) sum -= i;
9、若有定义int a=3; 则执行完printf(“%d”,-a--); 语句后,a的值为( B )。
A) -3 B) 2 C) -2 D) 3
10、执行下列语句的程序后,a的值是( B )。
#define SQR(X) X*X
main()
{ int a=10,k=2,m=3;
a/=SQR(m)/SQR(k);
printf(“%d\n”,a);
}
A) 10 B) 1 C) 5 D) 0
11、语句printf(“s=%-5.3s”,”computer”);的输出结果是( B )。
A) s= com B) s=com C) s= ter D) s=ter
12、C语言中,以下叙述错误的是( D )。
A) 函数调用时,系统才为形参分配内存
B) 实参和对应形参的数据类型必须一致
C) 实参可以是变量、常量或表达式
D) 形参可以是变量、常量或表达式
13、int x=3,y=2; 则条件表达式x>y?1:2.3的值为( B )。
A) 1 B) 1.0 C) 2.3 D) 2
14、一个数据类型为void的函数中可以没有return语句,那么函数的被调用时( D )。
A) 没有返回值 B) 返回一个系统默认值
B) 返回值由用户临时决定 D) 返回一