试题4一、单项选择题。本题共10小题,每小题2分,满分20分。
1、下列运算符中优先级最低的是a )
a.?:b.&&c.+ d.!=
2、对for(表达式1;;表达式3)可理解为b )
a.for(表达式1;0表达式3b.for(表达式1;1;表达式3)
c.for(表达式1;表达式1;表达式3) d.for(表达式1;表达式3;表达式3)
3、如果在一个函数的复合句中定义了一个变量,该变量b )
a.在该函数中有效b.只在该复合语句中有效。
c.在本程序范围内均有效 d.为非法变量。
4、已知x=43,ch= ‘a’, y=0,则表达式(x>=y&& ch < a’ &y)的值是 ( a )
a. 0 b. 语法错 c. 1 d.“假”
5、若用数组名作为函数调用的实参,传递给形参的是a )
a.数组的首地址b.数组第一个元素的值。
c.数组中全部元素的值 d.数组元素的个数。
6、设有说明:char w;int x;float y;double z;则表达式w*x+z-y值的数据类型是( d )
a.float b.char c.int d.double
7、设int a1=7,a2=1,x;进行操作x=(a1<<1)&~a2<<2)后x的值为( c )
a.0 b.1 c.10 d.以上都错。
8、设有以下结构体定义:
struct student staff;
则下面的叙述不正确的是b )
a.struct是结构体类型的关键字 b.structstudent是结构体类型名。
c.staff 是用户定义的结构体类型名 d.name,sex和age都是结构体成员名。
9、若有以下定义:chars[10]=“include”,*p=s;则不能代表字符u的表达式是( b )
a.s[4] b.s+4 c.*(p+4) d.p+=4,*p
10、以下正确的描述是b )
a.continue语句的作用是结束整个循环的执行。
b.break语句只用在循环语句和switch语句中。
c.在循环体内使用break语句或continue语句的作用相同。
d.从多重循环嵌套中退出时只能使用goto语句。
二、填空题。本题共10小题,每小题2分,满分20分。
1、c语言中的标识符只能有三种字符组成,它们是字母、 下划线和数字 。
2、假设m是一个三位数,用a、b、c表示各位的数字,则从左到右各个数字是bac的三位数的表达式是。
3、若有定义:int b=7;float a=2.5,c=4.7,则表达式a+(int)(b/3*(int)(a+c)/2)%4的值为 5.5 。
4、设x是一个16位整数,若要通过x | y运算使x低8位置1,高8位不变,则y的八进制数是 07
5、函数swap(int x,int y)可以完成对x和y值的交换,若a=1,b=2,则执行完swap(a,b);语句后,a和b的值分别为 1 和 2 。
6、与表达式x*=y-2等价的另一种书写形式为 x=x*(y-2
7、设有int a=1,b=2,c=3,d=4,m=2,n=2;则执行(m=a>b) &n=c>d)后n的值为 2 。
8、如果要定义一个文件型指针fp,应该使用的定义语句是file*fp
9、判断字符串s1是否大于字符串s2,应当使用 if(strcmp(si,s2)>0命令。10、若有如下定义:int m=则数组元素m[m[4]+m[8]]的值是 8 ,*m+m[9]的值是7
三、判断题:本题共10小题,每小题1分,满分10分。
1、若宏定义为#definef(x) x*x,则f(3+4)的值为49f )
2、字符串“china”在内存中占5个字节f )
3、inta=b=c=3;是正确的变量定义f )
4、从变量的作用域来分,变量可分为全局变量和局部变量f )
5、逻辑运算符的优先级都低于算术运算符t )
6、定义二维数组并进行了初始化,第一维的长度可以省略。 (t )
7、打开文件的函数是fclosef )
8、外部变量必须定义在文件的开头f )
9、字符‘\0’是字符串的结束标志,其ascii**为0t )
10、调用strlen(“abc\0ef\0g”)的返回值是8f )
四、应用题,本题共6小题,满分35分。
1、写出下列程序的运行结果(6分)
#include <>
int func(int a)
intb=0;
static int c=3;
b++;c++;
return a+b+c;
void main
int a=2,i;
for( i=0; i<3; i++)
printf(“%3d”, func(a));
2、写出下列程序的运行结果(5分)
#include <>
int func(int x)
int y;
if(x==0 ||x==1)
y=3;else y=x-func(x-2);
return y;
void main()
printf(“%d”, func(9));
3、写出下列程序的运行结果(6分)
#include <>
void main()
int i;
for(i=1; i<5;i++)
switch (i%5)
4、写出下列程序的运行结果(6分)
#include<>
void func(int *p)
while(*p !=999)
void main()
inta=
inti, *pa=a;
for(i=0; a[i]!=999;i++
printf(“%3d”,a[i]);10 32 13 24 45 96 17
printf(“10 32 24
func(pa);
5、下列程序的功能是求1!+2!+…n! >2000的最小n值,请填空:(6分)
#include <>
void main()
int i, j, s=0, k;
for( i=1; i<20; i++
printf(“i=%d”, i);
填空:(1) k*=j
(2)k (3) break
6、下列程序的功能是生成并打印某数列的前20项,该数列的第项分别为0和1,以后每个奇数编号的项是前两项之和,偶数编号的项是前两项差的绝对值,生成的20个数存放在数组a中,并按每行4项输出,请填空:(6分)
#include <>
void main()
int a[21], i, j;
a[1]=0; a[2]=1;
i=3;do
while( i<20 );
for( i=1; i<=20; i++)
《高级语言程序设计》模拟试题
1.输入两个整数,要求用两个函数求出其最大公约数和最小公倍数,最大公约数和最小公倍数都在主函数中输出。如 输入36和60,输出为 zdgys 12,zxgbs 180 2.输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。3.用递归调用的方法求n!如 输入为5,输出为5!120。4.按以下递归...
高级语言程序设计模拟试题
试题6一 单项选择题 本题共10小题,每小题2分,满分20分 1.下列运算符中,结合方向为 自右至左 的是 d a.算术运算符 b.左移运算符 c.赋值运算符 d.关系运算符 2.用以下语句从键盘接收两个整型值并赋值给整型变量a,b scanf d,d a,b 则以下输入正确的是 b a.5,6 回...
高级语言程序设计模拟试题
试题1一 选择题 本题共 10 小题,满分 20 分。1 以下选项中不能作为c语言合法常量的是a a cd b 0.1e 6 c a d 011 2 以下不能正确表示代数式2ab cd的c语言表达式是d a 2 a b c d b a b c d 2 c a c d b 2 d 2 a b c d ...