齐市中等职业学校2008年高职升学模拟考试《C语言编程基础》试卷二
题号 一 二 三 四 五 总分 一、填空题:(每空2分,共30分)
1、源程序经过编译后产生的结果称为 ,其扩展名为 。 2、一个C语言函数由 和 两部分组成。 3、在内存中应该开辟 个字节来存放一个字符。 4、字符串”ab\\n\\\\012\\\\\\’”的长度是 。 5、以下程序的输出结果是 。
#include
{ int i=6,j; j=(++i)+(i++) ; printf(“j=%d\\n”,j); }
6、有int x,y;执行y=(x=1,++x,x+2)后,赋值表达式的值为 。 7、C语言源程序的语句分隔符是 。
8、字符型常量在内存中存放的是该字符对应的 。 9、设x,y,z均为int型变量,请写出描述”x,y和z中有两个为负数的表达式”: 。 10、下列程序段中循环体的执行次数是 。
a=10; b=0;
do {b+=2;a-=2+b;} while(a>=0);
11、定义:int a[3][4]={{1,2},{0},{4,6,8,10}}; 则初始化后,a[1][2]得到的初值是 ,a[2][1]得到的初值是 。
- 1 -
12、下面程序段的运行结果是 。
char x[]=”the teacher”;i=0; while(x[++i]!=’\\0’)
if(x[i-1]==’t’) printf(“%c”,x[i]);
二、选择题:(每题2分,共30分) 1、在C程序中,main( )的位置( )。
A、必须作为第一个函数 B、必须作为最后一个函数 C、可以任意
D、必须放在它所调用函数之后
2、下列字符中不属于转义字符的是( )。 A、\\n
B、\\t
C、\\b
D、\\k
3、下面对变量说明正确的是( )。 A、Int a,b,c; B、int x,float y; C、int a,x; 4、以下正确的叙述是( )。
A、在C程序中,每行中只能写一条语句。
B、若a是实型变量,C程序中允许赋值a=10,因此实型变量中允许存放整型数。 C、在C程序中,无论是整数还是实数,都能被准确无误地表示。 D、在C程序中,运算符%只能用于整数运算。
5、若以下变量均是整型,且num=sum=7,则计算表达式sum=num++,sum++,++num后的值为( )。 A、7
B、8
C、9
D、10
D、int a,x
6、设x,y和z均为int型变量,则执行语句x=(y=(z=10)+5)-5;后,x,y和z的值是( )。 A、x=10,y=15,z=10
B、x=10,y=10,z=10 C、x=10,y=10,z=15 D、x=10,y=5,z=10
7、变量的类型说明如下:int i=8,k,a,b;unsigned long w=5;double x=1.42,y=5.2;则以下符合C语言语法的表达式是( )。
A、a+=a-=(b=4)*(a=3) B、a=a*3=2 C、x%(-3)
- 2 -
D、y=float(i)
8、以下说法正确的是( )。
A、输入项可以为一个实型常量,如scanf(“%f”,3.5);
B、只有格式控制,没有输入项也能进行正确输入,如scanf(“a=%d,b=%d”); C、当输入一个实型数据时,格式控制部分应规定小数点后的位数,如scanf(“%4.2f”,&f);
D、当输入数据时,必须指明变量的地址,如scanf(“%f”,&f); 9、以下if语句语法正确的是( )。 A、if(x>0) printf(“%f”,x)
Else printf(“%f”,-x);
B、if(x>0){x=x+y;printf(“%f”,x)}
else printf(“%f”,-x);
C、if(x>0){x=x+y;printf(“%f”,x);};
D、if(x>0){x=x+y;printf(“%f”,x)}
Else printf(“%f”,-x);
10、以下叙述中不正确的是( )。 A、预处理命令行都必须以#号开始。
B、在程序中凡是以#号开始的语句行都是预处理命令行。 C、C程序在执行过程中对预处理命令行进行处理。 D、#define IBM_pc是正确的宏定义。
11、已知字母A的ASCII码为十进制数65,且c2为字符型,则执行语句 c2=‘A’+‘6’-‘3’;后,c2的值为( )。 A、D
B、68
C、”0”
D、C
12、下面不正确的字符串常量是( )。 A、 ‘abc’ B、”12.12”
C、”0”
D、” ”
13、以下叙述不正确的是( )。 A、在C程序中,逗号运算符优先级最低。 B、在C程序中,APH和aph是两个不同的变量。
C、若a,b类型相同,在计算a=b后b中的值将放入a中,而b中的值不变。 D、当从键盘输入数据时,对于整型变量只能输入整型数值,对于实型变量只能输入
- 3 -
实型数。
14、已知int x=10,y=20,z=30;执行语句if(x>y) z=x;x=y;y=z;后, x,y,z的值是( )。 A、x=10,y=20,z=30 C、x=20,y=30,z=10
B、x=20,y=30,z=30 D、x=20,y=30,z=20
15、设x,y均为float型变量,则以下不合法的赋值语句是( )。 A、++x; B、y=(x%2)/10; C、x*=y+8; D、x=y=0; 三、写出程序的运行结果(每题4分,共20分)。 1、 main( ) { int i=1,j=1,k=2;
if((j++||k++)&&i++) printf(“%d,%d,%d”,I,j,k);
}
运行结果为 2、#include
{ char *p=”abcde\\0fghijk\\0”; printf(“%d\\n”,strlen(p)); }
运行结果为
3、 int a=5; fun(int b) {static int a=10; a+=b++;
printf(“%d”,a); main( )
{ int c=20;
- 4 -
fun(c); a+=c++;
printf(“%d\\n”,a);
} 运行结果为
4、main()
{ int x[8]={8,7,6,5,0,0},*s; s=x+3;
print(“%d\\n”,s[2]); } 运行结果为 5、main()
{ int a=-1,b=1,k; if((++a<0)&&!(b--<=0)) printf(“%d%d\\n”,a,b); else
printf(“%d%d\\n”,b,a); } 运行结果为
四、根据要求,完成程序(每个5分,共15分)。
1、下面程序的功能是在输入的一批正数中求出最大者,输入0结束循环。
#include
{if(max - 5 -