C语言程序设计
一、选择题(共40分,每小题2分)
1、以下叙述不正确的是( )
A、一个C源程序可由一个或多个函数组成
B、一个C源程序必须包含一个main函数
C、C程序的基本组成单位是函数
D、在C程序中,注释说明只能位于一条语句的后面
2、下列四个选项中,是不合法的用户标识符的选项是( )
A、abc B、12AC C、sun D、 A2
3、设有语句int a=4;则执行了语句a+=a- =a*a后,变量a的值是( )
A、-24 B、0 C、4 D、16
4、下列运算符中优先级最高的是( )
A、< B、+ C、&& D、==
5、在C语言中,运算对象必须是整型数的运算符是( )
A、% B、/ C、%和/ D、 +
6、以下关于运算符的优先顺序的描述正确的是( )
A、关系运算符<算术运算符<赋值运算符<逻辑与运算符
B、逻辑与运算符<关系运算符<算术运算符<赋值运算符
C、赋值运算符<逻辑与运算符<关系运算符<算术运算符
D、算术运算符<关系运算符<赋值运算符<逻辑与运算符
7、在C语言中,如果下面的变量都是int类型,则输出的结果是( )
sum=pad=5;pAd=sum++,pAd++,++pAd;
printf(“%d
”,pad);
A、7 B、6 C、5 D、4
8、x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是( )
A、 INPUT x、y、z; B、scanf(“%d%d%d”,&x,&y,&z);
C、 scanf(“%d%d%d”,x,y,z); D、read(“%d%d%d”,&x,&y,&z);
9、假定从键盘输入23456< 回车 >,下面程序的输出结果是:( )
void main ( )
{ int m,n;
scanf(“%2d%3d”,&m,&n);
printf(“m=%d n=%d
”,m,n);
}
A、m=23 n=45 B、m=234 n=56 C、m=23 n=456 D、语句有错误
10、若运行时,给变量x输入12,则以下程序的运行结果是( )
main( )
{ int x,y;
scanf(“%d”,&x);
y=x>12?x+10:x-12;
printf(“%d
”,y);
}
A、 0 B、 22 C、 12 D、10
11、C语言中while和do-while循环的主要区别( )
A、do-while的循环体至少执行一次
B、while 的循环控制条件比do-while的循环控制条件严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
12、以下对二维数组的正确说明的语句是( )
A、int a[3][] B、float a(3,4) C、double a[3][4] D、float a(3)(4)
13、以下程序的输出结果是()
main( )
{ int i,x[3][3]={1,2,3,4,5,6,7,8,9};
for (i=0;i<3;i++)
printf(“%d”,x[i][2-i]);
}
A、1,5,9 B、1,4,7 C、3,5,7 D、3,6,9
14、以下能对一维数组a进行正确初始化的语句是( )
A、int a[10]=(0,0,0,0,0); B、 int a[10]={ };
C、int a[10]={0}; D、 int a[10]={10 *1};
15、以下程序执行后的输出结果是:( )
int fun( int a,int b,int c)
{ a=456;b=567;c=678;
}
void main( )
{ int x=10,y=20,z=30;
z=fun(x,y,z);
printf(“%d,%d,%d
”,z,y,x);
}
A、30,20,10 B、10,20,30
C、10,30,50 D、10,30,40
16、以下说法正确的是( )
如果在一个函数中的复合语句中定义了一个变量,则该变量
A、 只在该复合语句中有效
B、 在该函数中有效
C、 在本程序范围内有效
D、为非法变量
17、以下函数调用语句中含有的实参个数为( )
func((exp1,exp2,exp3),(exp4,exp5));
A、1 B、2 C、4 D、5
18、在C语言程序中,以下说法正确的是( )。
A、函数的定义可以嵌套,但函数的调用不可以嵌套
B、函数的定义不可以嵌套,但函数的调用可以嵌套
C、函数的定义和函数的调用都不可以嵌套
D、函数的定义和函数的调用都可以嵌套
19、请读程序
long fun5(int n)
{long s;
if((n==1)||(n==2))
s=2;
else
s=n+fun5(n-1);
return (s);
}
main( )
{long x;
x=fun5(4);
printf(%ld
”,x);
}
上面的程序的运行结果是( )
A、9 B、 10 C、12 D、18
20、若有下面的变量定义,以下语句中合法的是( )。
int i,a[10],*p;
A 、p=a+2; B、p=a[5]; C 、p=a[2]+2; D、p=&(i+2);
二、填空题(共20分,每空1分)
1、若a是int型变量,且a的初值为6,则计算表达式a+=(b=4)+(c=2)后,a的值为 。
2、C语言中三种逻辑运算符为 、 ____、___ 。
3、在C语言中,逻辑“真”值用 表示,逻辑“假”值用 表示。
4、如a是int型变量,则计算表达式a=25/3%3后a的值为 。
5、若a=1,b=4,c=3,则表达式!(ab>c的值是 。
7、常见的循环语句有 语句、do-while语句和 语句。
8、若有定义:double x[3][5];则x数组中行下标的下限为__ ___,列下标的下限为__ ___。
9、若有定义:int a[3][4]={{1,2},{0},{4,6,8,10}};则初始化后,a[1][2]得到的初值是____ ___,a[2][2]得到的初值是 ,a[0][2]得到的初值是 。
10、在C语言中,一个函数由 和 两部分组成,函数体一般包括 部分和 部分。
三、程序分析题(20分,每题5分)
1、以下程序的输出结果是
main( )
{int y=10;
for(;y>0;y--)
if(y%3==0)
{pri