C语言模拟题解读
十一
1、判断题(10分)
(1)一个C语言源程序文件中,有且只能有一个主函数。
(2)C程序中的一个变量可以被定义为两个或多个不同的类型。
(3)x*=y+8 等价于 x=x*(y+8)。?
(4)若有int i=10, j=0;则执行完语句:if(j=0) i++; else i--; i的值为11。?
(5)while和do…while循环不论什么条件下它们的结果都是相同的。
(6)如果想使一个数组中全部元素的值为0,可以写成 int a[10]={0*10};
(7)只有在函数被调用时,其形式参数才临时性地占有存储空间。
(8)语句char *p=“Visual C++”;的含义是将字符串赋给字符型指针变量p。
(9)函数即可以嵌套定义,又可以嵌套调用。
(10)C语言中的标识符以字母或下划线开头,可跟任何字符。
2、选择题(20分)
(1)8、以下叙述不正确的是_____________。
A:一个C 源程序可由一个或多个函数组成
B:一个C 源程序必须包含一个main 函数
C:C 程序的基本组成单位是函数
D:C 程序中,注释说明只能位于一条语句的后面
(2)以下选项中,非法的字符常量是______。
A:'\t'? ??B:'\17'? ??C:"\n"? ??D:'\xaa'
(3)有以下程序
#include
int main()
{
?? int x=102,y=012;
?? printf("%2d,%2d\n",x,y);
?? return 0;
}
执行后输出结果是______。
A:10,01? ??B:02,12? ??C:102,10? ??D:02,10
(4)有以下程序片段,执行后输出的结果是______。
int a=5,b=4,c=3,d=2;
if(a>b>c)
??? printf(“%d\n”,d);
else if((c-1>=d)==1)
??? printf(“%d\n”,d+1);
else
??? printf(“%d\n”,d+2);
A:2? ??B:3? ??C:4? ??D:编译时有错,无结果
(5)若x是int型变量,且有下面的程序片段:
for(x=3;x<6;x++)
printf((x%2) ? ("**%d"):("##%d\n"),x);
上面程序片段的输出结果是______。
①
**3
##4
**5②
##3
**4
##5③
##3
**4##5④
**3##4
**5A:①? ??B:②? ??C:③? ??D:④
(6)判断字符串a和b是否相等,应当使用________。
A:if(a==b)??? B:if(a=b)??? C:if(strcpy(a,b))??? D:if(strcmp(a,b))
(7)以下正确的说法是________。在C语言中,
A:实参和与其对应的形参各占用独立的存储单元
B:实参和与其对应的形参共占用一个存储单元
C:只有当实参和与其对应的形参同名时才共占用存储单元
D:形参是虚拟的,不占用存储单元
(8)下面程序段的运行结果是_________。
char str[]="ABC",*p=str;
printf("%d\n",*(p+3));
A:67? ??B:0? ??C:字符'C'的地址??? D:字符'C'
(9)若有条件表达式(exp)?a++:b--,则以下表达式中能完全等价于表达式(exp)的是___。
A:(exp==0)??? B:(exp!=0)??? C:(exp==1)??? D:(exp=1)
(10)下面程序段的运行结果是__________。
a=1; b=2; c=2;
while(a
printf(“%d,%d,%d”,a,b,c);
A:1,2,0??? B:2,1,0??? C:1,2,1??? D:2,1,1
3、填空题(10分)
(1)下面程序的运行结果是___________。
for(i=1;i<=5;i++)
? switch(i%2)
? {
??? case 0: i++; printf(“#”);break;
??? case 1: i+=2; pirntf(“*”);
??? default: printf(“\\”);
}
(2)下面程序片段用“顺序查找法”查找数组a中是否存在某一关键字。如果查找成功,返回关键字第一次出现的序号。
int a[8]={25,57,48,37,12,25,86,33};
int i,x;
scanf("%d",&x);
for(i=0;i<8;i++)
??? if(x==a[i])
??? {
??? ????printf("Found! The index is